在业务流程中实现设计模式

本部分讨论 BizTalk Server 编程的通用模式以及企业集成模式。 您可以利用单一模式或组合多个模式来设计您的业务流程,然后使用 BizTalk 业务流程设计器中的形状实现该设计。

设计模式

以下条目对每个模式进行了简要说明,并提供了说明如何使用 BizTalk 业务流程设计器实现这些模式的相关主题或示例的链接。

聚合器

聚合器是接收来自多个源的信息并将其合并为单个消息的模式。 有关此模式的示例,请参阅聚合器中的 Aggregate.odx (BizTalk Server 示例)

从业务流程调用管道

您可以从业务流程中调用发送和接收管道。 通过这种办法可以重用管道,并且有助于保持业务流程与管道阶段的分离状态。 有关此模式的示例,请参阅聚合器中的 Aggregate.odx (BizTalk Server 示例) 。 另一个示例是组合消息处理器 (BizTalk Server 示例) 中的 CMP.odx。 另请参阅 如何使用表达式执行管道

组合消息处理器

组合消息处理器是处理来自聚合或批交换消息中的各个项的模式。 有关此模式的示例,请参阅组合消息处理器 (BizTalk Server 示例) 中的 CMP.odx。

基于内容的路由器

基于内容的路由器是根据消息内容的某个部分来确定该消息的收件人的模式。 有关此模式的示例,请参阅 CBRSample (BizTalk Server Sample)

动态路由器

动态路由器是基于消息处理结果来确定目标地址和传输协议的模式。 可以使用动态发送端口或 角色链接 形状来实现此模式。 有关此模式的示例,请参阅 SendMail 中的 ReceiveSend.odx。 另一个示例是 PartyResolution (BizTalk Server Sample) 中的 SupplierProcess.odx。

错误处理

BizTalk Server 允许您指定对消息传送失败进行自动处理,以此作为将失败消息放在挂起队列中的默认行为的替代方案。 您可以将失败的消息路由至订阅端口,以便进行报告或处理。 有关此模式的示例,请参阅错误处理 (BizTalk Server 示例文件夹中的 ResubmitLogic.odx) 。

异常处理和补偿

可以使用异常处理程序和 引发异常 形状或 表达式 形状来处理异常。 例如,可以将以下代码放在 表达式 形状中以引发异常:,

excp = new System.Exception();  
throw(excp);  

可以使用补偿块和 补偿 形状对已提交的事务执行补偿。 有关此模式的示例,请参阅补偿 (BizTalk Server 示例中的 UpdateContact.odx) 。 另一个示例是 自定义异常

消息代理

Message Broker 模式可确定消息的目标,同时仍维持对消息流的控制。 有关详细信息,请参阅 OrderBroker Orchestration 中的处理

消息筛选器

消息筛选器模式可以选择符合特定处理条件的消息。 可以通过将筛选器表达式添加到激活的 Receive 形状来实现此模式。 有关详细信息,请参阅 在接收消息形状中使用筛选器

消息转换器

消息转换器模式可以将消息从一种形式转换为另一种形式。 可以通过在业务流程中使用 BizTalk 映射和 转换 形状来实现此模式。 有关此模式的示例,请参阅 HelloWorld 中的 HelloOrchestration.odx (BizTalk Server 示例)

并行护航

并行保护模式可以使多个单一项连接在一起来得出所需的结果,而这一结果是无法通过单个项本身来完成的。 一组相关项可以按任意顺序到达,但 BizTalk Server 必须在收到所有项之后才能启动流程。

分散与收集

分散与收集模式可以将消息发送至多个收件人,然后接收来自每个收件人的消息。 您可以通过使用拆分器模式和聚合器模式来实现此模式。 使用聚合器模式来组合使用拆分器模式的结果,并将其置于 “并行操作” 形状下。

顺序保护

顺序保护模式可以使多个单一项连接在一起来得出所需的结果,而这一结果是无法通过单个项本身来完成的。 顺序保护是一组具有预定义顺序的相关项。 虽然这些项不必完全相同,但 BizTalk Server 必须按一定顺序接收它们。

Splitter

拆分器模式获取单个消息并将其拆分为多个消息。

挂起并重试

挂起并重试模式可以使业务流程在出现错误时将消息挂起。 挂起发生在循环中,这样,业务流程将挂起、请求干预,然后按固定的次数重试操作。

另请参阅

设计业务流程流