Programming4us
         
 
 
Applications Server

BizTalk Server 2009: What is MessageBox direct binding?

12/29/2010 7:51:05 PM
The easiest way to link orchestration with messaging endpoints is to create logical ports in orchestrations and bind them to physical ports at runtime. A developer using this technique will know for sure that an orchestration will exchange messages with the appropriate ports. However, this mechanism of orchestration communication is more point-to-point oriented than event driven. What if relevant messages for an orchestration could arrive via multiple receive ports? Or how about trying to anticipate all the possible parties interested in a message that your orchestration is sending out?

The tight coupling produced by binding orchestration ports to physical ports is not the most service-oriented way to design orchestration communication. Instead, MessageBox direct binding is the cleanest way to sever the one-to-one relationship between the messaging and orchestration architectural layers. The way it works is that the "activating" receive shape that instantiates the orchestration maintains a subscription based on the message type in combination with any "filter" applied to the receive shape. ANY message that hits the MessageBox and meets this subscription criterion will get delivered to this orchestration. For any "non-activating" receive shape (such as receive shapes present elsewhere in the orchestration), the subscription is based on the message type and a correlation set made up of additional subscription attributes.

The greatest benefit of this technique is that orchestrations can absorb messages that match specific data criteria instead of focusing on the data publisher. When sending messages on MessageBox direct bound ports, we get the benefit of broadcasting messages without identifying an individual target. There are cases where you want to use MessageBox direct binding but still need to target a specific consumer and this is entirely possible.

How do you apply MessageBox direct binding? When creating a new orchestration receive port, you get the option of choosing a target binding. In the book so far, we've typically used a Specify later binding, which allows us to hook up logical and physical ports at deployment time. However, notice that we also have the option to choose Direct binding from this orchestration port creation wizard.

When creating orchestration send ports, we get a similar experience when choosing direct binding.

For orchestrations that use direct bound ports, you will see a much different "binding" view in the BizTalk Administration Console. Specifically, you'll notice that there are no ports to bind! The only activity required is the binding of the orchestration to a specific host.

Throughout this article, we'll make heavy use of MessageBox direct bound ports in order to demonstrate this technique in a variety of scenarios.

Pitfall

What's the downside of MessageBox direct bound ports? For one, careless usage can lead to unanticipated messages reaching your orchestration or worse, infinite loops. Consider an "activating" receive which is direct bound solely on the message type (i.e., no additional filter applied). If you decide to send this same message out of your orchestration later on (via ANY type of port binding), you will unexpectedly find that this original orchestration starts up all over again! The proper application of direct binding requires forethought of subscription criteria and situational modelling of instantiation scenarios.

Other -----------------
- Designing and Optimizing Storage in an Exchange Server 2010 Environment : When Is the Right Time to Implement NAS and SAN Devices?
- Designing and Optimizing Storage in an Exchange Server 2010 Environment : Defining the Technologies
- Active Directory Domain Services 2008: Create Shadow Groups
- Active Directory Domain Services 2008: View the Resultant Password Settings Objects for a User or Group
- Exchange Server 2010 : Upgrading from and Coexisting with Exchange Server 2007 (part 3)
- Exchange Server 2010 : Upgrading from and Coexisting with Exchange Server 2007 (part 2) - Upgrading Message Connectivity From Exchange Server 2007
- Exchange Server 2010 : Upgrading from and Coexisting with Exchange Server 2007 (part 1)
- BizTalk Server 2009 : Using queues within asynchronous scenarios (part 3)
- BizTalk Server 2009 : Using queues within asynchronous scenarios (part 2)
- BizTalk Server 2009 : Using queues within asynchronous scenarios (part 1)
- Exchange Server 2010 : Upgrading from and Coexisting with Exchange Server 2003 (part 13) - Removing Legacy Exchange Servers
- Exchange Server 2010 : Upgrading from and Coexisting with Exchange Server 2003 (part 12) - Planning Public Folder Access and Migration
- Exchange Server 2010 : Upgrading from and Coexisting with Exchange Server 2003 (part 11)
- Exchange Server 2010 : Upgrading from and Coexisting with Exchange Server 2003 (part 10) - Recipient Update Service Migration
- Exchange Server 2010 : Upgrading from and Coexisting with Exchange Server 2003 (part 9) - Moving Offline Address Books
- Exchange Server 2010 : Upgrading from and Coexisting with Exchange Server 2003 (part 8)
- Exchange Server 2010 : Upgrading from and Coexisting with Exchange Server 2003 (part 7) - Coexistence for Management
- Exchange Server 2010 : Upgrading from and Coexisting with Exchange Server 2003 (part 6) - Upgrading Message Connectivity From Exchange Server 2003
- Exchange Server 2010 : Upgrading from and Coexisting with Exchange Server 2003 (part 5)
- Exchange Server 2010 : Upgrading from and Coexisting with Exchange Server 2003 (part 4)
 
 
Most View
- Windows Server 2008 : Install the TS Licensing Role Service
- Windows 7 : Configuring the Fax Service
- .NET Debugging : Managed Heap and Garbage Collection
- Windows 7 : Setting Up the Remote Computer as a Host (part 1) - Configuring Windows 7 or Vista to Act as a Remote Desktop Host
- Windows 7 : Working with Network Files Offline (part 2) - Changing the Amount of Disk Space Used by Offline Files
- The Art of SEO : The Theory Behind Keyword Research
- Windows Server 2008 : Configuring FTP (part 9) - Configuring FTP User Isolation Options
- SharePoint 2010 : Reuse a Web Part (Export/Import)
- Configuring Internet Information Services (part 1) - Working with IIS Management Tools
- Securing Exchange Server : Configure Message Hygiene Options (part 1) - Battle Unwanted Mail
Top 10
- Implementing Edge Services for an Exchange Server 2007 Environment : Utilizing the Basic Sender and Recipient Connection Filters (part 3) - Configuring Recipient Filtering
- Implementing Edge Services for an Exchange Server 2007 Environment : Utilizing the Basic Sender and Recipient Connection Filters (part 2)
- Implementing Edge Services for an Exchange Server 2007 Environment : Utilizing the Basic Sender and Recipient Connection Filters (part 1)
- Implementing Edge Services for an Exchange Server 2007 Environment : Installing and Configuring the Edge Transport Server Components
- What's New in SharePoint 2013 (part 7) - BCS
- What's New in SharePoint 2013 (part 6) - SEARCH
- What's New in SharePoint 2013 (part 6) - WEB CONTENT MANAGEMENT
- What's New in SharePoint 2013 (part 5) - ENTERPRISE CONTENT MANAGEMENT
- What's New in SharePoint 2013 (part 4) - WORKFLOWS
- What's New in SharePoint 2013 (part 3) - REMOTE EVENTS