ESB Toolkit How To Video #3: Itinerary Resolution in the Bus
Here's video #3 in my "ESB Toolkit How To" series. In the last video (found here) we built out a complex itinerary that implemented dynamic mapping and dynamic routing. We also saw how to use the resolver mechanism to retrieve service information from a UDDI version 3.0 server. At the end of that video we used the Itinerary Test Client (which ships with the toolkit) to test our itinerary. When I show this demo in person, I'm always asked the same question. "Does the client always have to submit the itinerary along with the message when they call the ESB?" In version 1.0 of the ESB Toolkit, the was "Yes". The ESB did require the client to provide the itinerary along with the message. This was of course an issue for many of the architects I spoke to. Most people wanted the ESB to be responsible for figuring out what itinerary was needed for an incoming message. Ideally, the client should just have to submit their message into the ESB and the bus would figure everything else out for them. Requiring the client to create, manage and submit an itinerary is just not a solid architectural pattern.
Fortunately, in the ESB Toolkit 2.0, this is no longer a problem. We now have a great new feature called Itinerary Resolution that allows the ESB to figure out what itinerary a message should have. Additionally, version 2.0 of the toolkit, gives us the new "ESB Itinerary Database". This DB gives us a central location to store our itineraries in and the Itinerary Resolution component is actually able to dynamically retrieve messages from this central database. These two new features allow us to implement a solution where a client no longer has to have any knowledge of itineraries. Now, they simply have to pass in their message to the ESB where it will dynamically figure out what itinerary is needed and it will load that itinerary from the database.
In this video, I'll show you how to implement this feature. To demo this feature, I use an InfoPath form which sends data to a generic OnRamp which uses the Itinerary Resolver. I'll walk you through the process of storing your itinerary into the database, creating the new generic OnRamp that will use the itinerary resolution feature and I'll show you how to configure the Itinerary resolver to retrieve the itinerary from the database.
As always, I try to show as much detail as possible in these videos. If you feel that I have skimmed over something too quickly, or if some element is unclear, please let me know and I'll post a follow up video.
Cheers and keep on BizTalking...