BizTalk runtime architecture primarily has four major components:
- Receive Handler;
- Message Box;
- Send Handler.
Receive handler held responsible for receiving messages from the channel contains one or more receive locations.
Receive location is a combination of receive adapter and receive pipeline.
Receive pipeline has four stages:
- Decode: is used for components that decode or decrypt the message like verifying message signatures to ensure integrity, or decoding the S/MIME messages.
- Disassemble: This stage is used for components that parse or disassemble the message. The message gets converted entirely into the XML format so that the messaging engine can understand it.
- Validate: check to see if the message is in the correct format or not.
- Resolve Party: like the decode stage, deals with message security using encryption and digital signature with the help of certificates. (map the sender certificate or the sender security identifier (SID) to the corresponding configured BizTalk Server part)
MessageBox is the publishing area. The messages read from the channel are published into the MessageBox.
Orchestrations execute business logic. They play subscriber as well as publisher role. They acquire subscribed message instance from the MessageBox and carry out business processing.
Send handler plays the subscriber role. It fetches a message from the MessageBox and pushes them through a channel. Send handler is a combination of send pipeline and adapter.
Send pipeline contains three stages:
- Preassemble: pre-processing of the message before it needs to be assembled.
- Assemble: responsible for assembling or serializing the message and converting it to or from XML, in other words, convert the message to a format that can be understood by the external system.
- Encode: is used for components that encode or encrypt the message.