I had many web services to implement with BizTalk ESB Toolkit. All these web service would take input message, perform some mapping/enrichment on the input message call a web service on a LOB system. The LOB web service result would then be mapped to the result of the web service and returned to the caller.
Figure 1: Web service implemented as an Itinerary
If you look at and web service implemented as an itinerary if would look as in figure 1. The itinerary consists of:
- A two way on ramp that receives the message
- A call to a map to prepare the LOB web service message request
- A rout to the LOB web service send port
- Call the LOB web service through the send port
- Map the response from the LOB web service to the web service schema response
- Route the response to the two way receive location through the on ramp
Now I need to implement more than 50 web services that would be performing the same logic except for a different maps to transform to different LOB web service and a different send port for each LOB web service. I can create an itinerary for each web service but that would lead a numerous number of itineraries with the same structure. So I wanted to create a Kind of an itinerary template for all these services. Let us first examine in more detail how an Itinerary implements a web service.
Implementing a Web Service with and ESB Itinerary
For simplicity assume I want to implement a simple web service with BizTalk ESB toolkit that would take as input two number, call a web service that would perform addition or other mathematical operation on them and then return the result to the caller.
The first step is to define the schemas for the request, response in a BizTalk Project. Use the BizTalk WCF Service Publishing wizard to publish a two way web service with request that takes the request schema and a response with the defined schema.
Second step is to start a new blank itinerary and add an onramp service, and configure it to be the receive port defined step 1. You will also need to change the receive location pipelines to be the ESB Toolkit pipelines Itinerary select Receive XML for the receive pipeline and Itinerary Send Pass through for the send pipeline