反转直接合作伙伴绑定
业务流程管理解决方案设计为在无需停止应用程序的情况下可以更改订单处理阶段。 为了将处理阶段 (CableOrder1、 CableOrder2) 与进程管理器 (OrderManager) 分离,该解决方案使用不同的技术在这些业务流程之间绑定端口。
在绑定(直接绑定)的常用形式中, OrderManager 业务流程将使用进程阶段业务流程作为合作伙伴业务流程端口属性的值。 在这样的直接绑定中, OrderManager 业务流程依赖于强名称 (其中包括进程阶段的版本) 。 这使得如果不重新部署 OrderManager 业务流程,就无法更改进程阶段。 有关直接绑定的详细信息,请参阅 端口绑定。 直接绑定可能如下所示:
图
在反转直接合作伙伴绑定中,接收业务流程(而不是源业务流程)将指定绑定。 OrderManager 上的端口仅绑定到自身。 也就是说, OrderManager 上的端口是为 PartnerOrchestrationPort 属性指定的。 但是,进程阶段业务流程使用相应的 OrderManager 端口作为 PartnerOrchestrationPort 属性的值。 这会将 OrderManager 与进程阶段业务流程的版本分离,并允许在不重新部署 OrderManager 的情况下更改它们。 而直接绑定不允许进行此类分离。 反转直接合作伙伴绑定可能如下所示:
图
注意
反转直接绑定也允许像这样与分发列表中的合作伙伴业务流程进行通信。 OrderManger 可以使用单个端口与所有阶段通信。 这样,您就可以添加和删除阶段,而无需重新设计业务流程。