在面向服务的解决方案中,业务处理与发送和接收消息的具体信息之间通常存在明确的界限。 这样,便可以单独更改解决方案的业务流程或消息传送部分。
面向服务的解决方案在一个位置违反了此设计原则。 本部分介绍情况、可能的替代项和所选结构。
关联和 MQSeries 适配器
若要使用 MQSeries 适配器,不能使用标准 BizTalk Server 关联标识符。 这是因为相关标识符将转到具有其自己的关联标识符系统的 IBM 后端系统。 相反,必须使用 MQSeries.MQMD_CorrelId 和 MQSeries.MQMD_MsgID 属性。 使用这些属性可能会将特定于传输的信息放入编排中,从而纳入业务流程中。
处理此依赖项的一种方法是使用 BizTalk Server 相关标识符并使用自定义管道组件来转换 MQSeries 的相关标识符。 这增加了方案的复杂性。 此外,如果传输更改,则必须更改两个管道组件。 最终,它会重新定位依赖项(在管道组件中),而不是解析它。
另一种选择是将特定于 MQSeries 的相关处理隔离到单独的业务流程并调用该业务流程。 这将保持业务流程的独立性。 但是,这引入了业务流程之间的编译时依赖关系。 修改传输机制需要重新编译这两个编排流程(例如,将解决方案从存根版本转换为适配器版本)。 该调用还会延长解决方案的响应时间。
鉴于复杂性增加和性能可能降低,直接在编排中使用 MQSeries 相关性似乎是最简单的选择。
有关业务流程中的适配器和相关性的详细信息,请参阅 MQSCorrelationSetOrchestration(BizTalk Server 示例)。
另请参阅
面向服务的解决方案的实现亮点
MQSCorrelationSetOrchestration (BizTalk Server 示例)