ESB Toolkit How To Video #4: Dynamic Itinerary Resolution
Update: After I posted this originally, I was notified that my video did not contain any audio! Therefore, it was probably difficult to understand what was going on :) I've recreated the video and replaced the old one so that the video and audio are both working. Cheers
Welcome to #4 in my series of ESB Toolkit How To Videos. Each of these videos has built up from the one before it, so if you have seen the previous videos, I encourage you to do so. In video #3 (found here), I showed you how to use the toolkits new "Itinerary Resolution" feature. In that video, I showed you how to use the Static Itinerary Resolver within a BizTalk receive port to load up an itinerary from the itinerary database and attach it to an incoming message. To do this, we added a resolver configuration string to the pipeline such as "ITINERARY:\\name=DemoService;" (where DemoService was the itinerary that we wanted to load) One shortcoming of that solution is that had multiple itineraries you would need a different receive port for each one. In a real world solution, you might want to assign an itinerary to a message based on the message's schema, or some piece of data found within the message or based on who sent it and you would want to do all of this with as few receive ports as possible. Therefore, the ESB really needs to be able to dynamically and intelligently figure out what itinerary an incoming message needed with us having to hard code the name.
Fortunately, the ESB Toolkit provides us a flexible and intelligent way to resolve itineraries and this is the Business Rules Engine resolver. This allows us to the use the BizTalk Rules Engine to make a decision about what itinerary should be used. We can create rules to look at Context properties associate with the message (such as the message type, the sender etc) or we can look at the content within the message to make our decision on which itinerary to use. In this video, I'll show you how to create an BRE policy to resolve itineraries and I'll show you how to setup your BizTalk receive ports to use this policy. I'll show you how to implement context and content based itinerary resolution.
Cheers and keep on BizTalking...