I have just been asked by someone, "what is the recommanded way to implement the splitter patterne with an SSIS DataFlow", asked in the context of this article: http://www.enterpriseintegrationpatterns.com/Sequencer.html which talks about splitting an incoming message so as to send the resultant message fragments to different systems.
I guess you have to think about this in SSIS terms. That is, a message is a recordset coming from a source adapter. Each row in that recordset can be considered a constituent part of of the recordset, just as in the example above each order line is a constituent part of the order. Experienced SSIS developers will immediately tell you that the SSIS Conditional Split transformation maps very well to this situation. It can divert an incoming row to any one of a number of sources based upon attributes of that row.
OK, so that's done but it poses a question (which in fact the questioner above also asked me), "I'm a little bit confused with the features overlapping with Biztalk and SSIS."
Well clearly there is an overlap. There is definately a point where the lines between a BizTalk solution and a SSIS solution start to blur. I don't know much about BizTalk I must confess but if you want to make a decision about which technology to utilise then you need to answer some questions about your requirements and use those answers to decide which technology to plump for:
- Do you require real-time or batch processing of data?
- Are you likely to receive many small packets of data or a few large data chunks?
Any more???
If your requirement is characteristically real-time with many smaller data packets then you're probably going to plump for BizTalk. If its batched and you're going to be handling much bigger datasets then its probably going to be SSIS.
-Jamie