BizTalk: Publisher-Subscriber model and Binding
Publisher-Subscriber model
Receive ports are publishers. They pick up data from somewhere based on the adapter and the URI, and then pass it through a pipeline and maybe a map and then eventually give it to the messageagent and say “Publish this for me, please.” (our engines are very polite and always say please). To clear up confusion, data is persisted to the messagebox after the pipeline and after the map, not before.
接收端口接收消息,然后处理消息并发布到 MessageBox。BizTalk Server 将这些消息路由到订阅业务流程或发送端口,订阅业务流程或发送端口进一步处理这些文档,并将它们重新发布到 MessageBox 或发送到外部系统。
The Binding = the Implicit Subscription
This Subscription for Binding is created under scene, when the Publishers ID is used as the Filter expression in the most cases. The link via binding is not required; it can be created by an explicit filter expression.
“Binding” the term is used for describing the direct link between an Orchestration and a Port. As I understand this term was created for simplifying the model by hiding the additional work with creating the most frequently used operation, transferring the messages from one point exactly to the second one. Binding creates the One-to-One link when the messages from one Publisher must come to the one Subscriber and only to this Subscriber. Binding make a step from “pure” Publisher-Subscriber model where the Publishers and the Subscribers do know nothing about each other and have not to know.
References:
1. BizTalk messaging model, http://geekswithblogs.net/leonidganeline/archive/2006/12/18/101541.aspx
2. Is there a pub/sub system underneath BizTalk?, http://blogs.msdn.com/Biztalk_Core_Engine/archive/2004/07/22/191888.aspx