Microsoft Southridge video scenario recently draw my attention, it is fairly complex project, covers a lot aspects & new features in BizTalk 2006. It is also as said ‘real solution’ by Microsoft. I’ve spent some time this week, trying to dig some information From this scenario.
Where is it
Southridge Video scenario is with BizTalk 2006 release SDK, default location is C:/Program Files/Microsoft BizTalk Server 2006/SDK/Scenarios/BPM. Microsoft has also includes its documentation in BizTalk help file. I recommend download their CHM version which is much easier to navigate.
An order broker
1. Accept order messages From web
2. Do housekeeping tasks
3. Distribute order to order managers via Message box Direct Bound
An order manager
1. Handles order to order processing stage via inverse party bound port
2. Process order update with interrupt pattern
An order process stage
1. Handles concrete order processing
Direct binding technique is heavily used through the entire solution. Refer to Kevin Lam’s blog if you are not familiar with this technique.
The solution defines messages by:
· XSD schema
· Serializable .NET classes
· Multipart message type
This is defined in orchestrations. Multipart message contains routing information and message business data. This routing information is then promoted and used as subscription filter in the processing stages.
The solution uses SSO as configuration source. It uses a timer to keep update of any configuration changes. The helper is using singleton design pattern to assure single instance across BizTalk service instances.
A component is designed to dynamically load the assembly and invoke objects.
The solution uses Application derived classes to differentiate application exceptions (i.e. interrupt) with system exceptions (i.e. delivery notification)
Processing stages are recipient lists of order manager. Note that OrderManager uses a request-response port while communicating with order process. The request port is using inverse party bound direct bound with processing stages. The response port is using a dynamic direct bound technique which essentially correlates with OrderManager without use of correlation.
(To be continued)