Wednesday 29 April 2015

BizTalk Artefacts - Receive Ports and Receive Locations

A receive port is a LOGICAL collection of one or more receive locations that define specific entry points into BizTalk Server. Receive port also specifies Maps which automatically gets executed when receive locations publishes message which matches the input type of Maps. A receive location is the configuration of a single endpoint (URL) to receive messages. The location contains configuration information for both a receive adapter and a receive pipeline. The adapter is responsible for the transport and communications part of receiving a message. For examples File adapter knows how to read a file from a folder/shared drive. The receive pipeline is responsible for converting this message into BizTalk's message so that it can be published into the MessageBox. This receive pipeline is a series of components that are executed in sequence, each providing specific processing to a message such as decoding, disassembling, parsing or validation and party resolution.

Receive Port, Receive Pipeline and its components
Their are four stages of a receive pipeline. They are executed in a defined sequence as shown in above figure. Each of the components in each stage process the message and hand-overs its output to the other component.
  1. Decode:  This is the first stage which takes the incoming message from receive adapter and decodes or decrypts it. The MIME/SMIME Decoder Pipeline component or custom decoding component should be placed in this stage if the incoming message is to be decoded from one format to another. After decoding the message is handed over to Disassemble stage.
  2. Disassemble: The components of this stage checks the message to see if the format is recognised. The first component in this stage whose format matches the message format is executed. If none of the components are able to recognise the format, message processing fails. The components disassembles the message into individual messages if the message is a batch (or envelop). XmlDisassembler component can be used to debatch and promote MessageType into the message context.
  3. Validate: This stage is executed for each message the disassemble stage produces. It validates the message produced by disassemble stage against a schema. Only schema compliant message are processed.
  4. Resolve Party: This stage does the job of party resolution, where the Party Resolution pipeline component maps the sender certificate to the corresponding configured in BizTalk Server party. Party Resolution component takes the WindowsUser (populated by adaper or custom pipeline component) and SignatureCertificate (populated by adapter or decoder component) from message context. By using these promote properties the component tries to get the party to which the message belong. So that the message sender can be validated. For more information on Party Resolution please check this article.

Each of the pipeline stages can have 0-255 components with or without custom code as per need.

No comments:

Post a Comment