BizTalk Architecture Level-2 DFD |
In continuation to my previous post which explains BizTalk Server from a very high altitude. This post gives a more drill down view of the BizTalk's core architecture. I have tried to use the same colours and shapes to make it easy to correlate with the previous article.
BizTalk as an integration platform provides flexibility and customizability at every level to make sure that the requirements are met easily. BizTalk provides a variety of artefacts to achieve this. I'll be explaining all the artefacts in the above image in more detail. However, First I would like you to go through the following brief description of the lifecycle of a message in BizTalk Server:
Everything in BizTalk starts with an incoming message from Receiving System (System "A"). This message can be anything ranging from an XmlDocument, Flat File (CSVs or Delimited) or even a SOAP request!
As soon as a message is sent to BizTalk it is taken up by Receive Port which is a group of Receive Locations each pointing to a particular path or URL. Receive location knows which particular Receive Adapter understands the message received. This receive adapter then handles the transport and communication with System "A" and changes the message into a format (most of the time into XMLs) that is understood by Receive Pipeline. The receive pipeline then takes the responsibility of converting this message into BizTalk's message. After Receive Pipeline, Maps if available are executed. They transform the message into a different format as per requirement and then the message is dropped into Message Box.
Orchestrations, Send Ports and Send Port Groups subscribe to message box and constantly checks if the message they are seeking is available in the message box or not. As soon as anyone of them gets the message they pick it up and process it. Orchestrations are optional (most of the time they are available and contains all the complex logic), if they are present they are then executed, if their subscription matches the message in message box. After their execution is complete, they publish their output to message box. Send Ports or Send Port Groups then picks up the message, executes any Map if available in the send port, it then transforms and transmits the message to the Send Pipeline. The pipeline then performs a set of operations and transforms the message into the format that Send Adapter understands. Finally, the send adapter sends the message to the System "B" by using the protocol which System "B" understands.
Orchestrations, Send Ports and Send Port Groups subscribe to message box and constantly checks if the message they are seeking is available in the message box or not. As soon as anyone of them gets the message they pick it up and process it. Orchestrations are optional (most of the time they are available and contains all the complex logic), if they are present they are then executed, if their subscription matches the message in message box. After their execution is complete, they publish their output to message box. Send Ports or Send Port Groups then picks up the message, executes any Map if available in the send port, it then transforms and transmits the message to the Send Pipeline. The pipeline then performs a set of operations and transforms the message into the format that Send Adapter understands. Finally, the send adapter sends the message to the System "B" by using the protocol which System "B" understands.
No comments:
Post a Comment