业务流程管理解决方案显示了在 BizTalk 应用程序中构造流程管理器的一种方法。 解决方案使用组件来选择和控制顺序处理的阶段序列。 解决方案接收一个订单(无论是针对新服务、更改还是取消服务),记录下来,并在传递给处理之前确认订单。 处理由处理订单的一个或多个阶段组成。 最后,解决方案返回对原始订单请求的最终响应。
设计良好的进程管理解决方案使你无需重新构造应用程序的其余部分即可从流程中添加或删除阶段。 此解决方案中采用的方法完全允许这样做。 顺序过程分为离散的独立阶段。 各个阶段都从同一端口读取,并使用筛选器来确定哪些消息是它们需要处理的。 下面一节“模式”对此进行了进一步介绍。
此解决方案还接受通过 Web 服务的输入,不过还可以通过 FTP 连接使用此解决方案的非服务接口。 此设施模拟应用程序如何在批处理系统中使用。
模式
下图显示了业务流程管理解决方案中模式的简化版本,如前一部分所述。
该解决方案包含以下部分:服务接口、FTP 通道、各种翻译器、进程管理器和两个处理阶段。 预处理部分中的四个翻译器创建一条确认消息,该消息返回到服务接口,在历史记录或跟踪数据库中生成一个条目,并在服务系统中创建一个条目。 第四个翻译器创建进程管理器所需的消息。 进程管理器反过来控制处理阶段。
在许多进程管理器实现中,管理器跟踪处理状态。 如图所示,此实现将对此进行修改。 在此解决方案中,进程管理器在消息中设置一个标志,以指示下一个处理消息的处理阶段。 然后,每个阶段都会使用筛选器来确定它是否应处理特定消息。
使用此方法时,进程管理器无需维护任何路由信息。 管理器和各个阶段之间的所有消息都使用相同的端口。 若要添加阶段,只需添加在正确的端口和筛选器上发送和接收正确的阶段号的组件。 无需更改进程管理器本身中的任何内容。
请注意,图中遗漏了很多内容。 处理阶段实际上可能与后端进程通信。 解决方案还可以在过程中的多个点收集历史信息。 或许,更重要的是,进程管理器的逻辑没有被明确说明。 此外,未指定同步连接或异步连接的使用。 以下部分将考虑这些内容。