业务流程管理解决方案中的一些设计原则

本主题将首先介绍有关将业务流程划分为若干阶段的一般准则。 然后将对与这些准则和业务需求有关的该解决方案的某些业务流程、程序集和应用程序的结构进行说明。 有关业务要求的详细信息,请参阅 了解业务流程管理解决方案中的“业务要求”。

划分业务流程

通常,在考虑业务流程时,首先会将业务流程视为单个整体流程。 这并非总是最佳设计。 对于 Southridge Video,订单是长时间运行的业务流程,即可能需要花费一年时间才能完成的流程。 同时,业务流程本身也可能发生更改。 为允许在不中断正在处理的订单的情况下对业务流程进行更新,可以将 Southridge Video 订单处理划分为若干个阶段。

在何处划分该流程,这对于可以确定版本的流程部分和允许对未完成的订单进行中断的类型十分重要。 Southridge Video 解决方案使用四个常规条件来确定各个阶段:

  • 业务流程中步骤的逻辑分组。

  • 业务流程中操作的作用域。

  • 在给定业务流程的情况下,可用于确定版本的流程元素。

  • 完成长期操作后,应该结束业务流程。

    在以上四个条件中,第一个和第三个是最关键的条件,因为这两个条件适用的操作作用域通常比逻辑分组或要确定版本的明显元素更为广泛。 但是,请注意,不需要在作用域中结束业务流程。

    如果查看第一阶段 的业务流程 CableOrder1.odx,你将看到它实际上以设施系统的请求-响应序列结束。 这是结束该阶段的适当位置,因为它是涉及完成此订单的实际物理工作的流程的一部分。 将较长的处理步骤放置到接近业务流程末尾处,则可以保证在解除对这些步骤的冻结后将快速结束该业务流程。 这样可以加速将该解决方案整体移至业务流程的更高版本。

注意

尽管该解决方案将流程拆分为若干个不连续的阶段,但利用解决方案监视功能,您可以使用 BAM 将其作为连续的视图进行查看。

订单操作、OrderBroker 和 OrderManager 业务流程

除了将订单处理划分为若干阶段,您还会注意到,每个订单操作(例如分析订单、订单验证和订单取消)都位于单独的业务流程中。 将每个操作放置在单独的业务流程中可以将这些操作与阶段的结构相分离。 因此,这样为设计订单处理阶段并确定其版本提供了更大的灵活性。

出于类似原因,OrderBroker 和 OrderManager 也位于单独的业务流程中。 该解决方案的设计允许使用多个 OrderManager 来处理其他类型的订单。 通过将 Broker 与 Manager 相分离,它们也可以位于不同的位置。 有关订单代理设计的其他详细信息,请参阅 OrderBroker 业务流程中的处理中的“为什么和 Order Broker?” 有关订单管理器的详细信息,请参阅 进程管理器逻辑

程序集

对该解决方案中的程序集进行组织以支持确定组件的版本以及将组件移至其他服务器。 例如,各架构位于单独的程序集中。 具体而言,订单代理的架构位于其自己的程序集中。 这样就可以确定这些架构的版本,而无需更改该解决方案的其他元素。 同时,还可以更便捷地将 OrderBroker 移至单独的组或服务器。 有关对应用程序和架构程序集进行版本控制的详细信息,请参阅 对业务流程管理解决方案进行版本控制

应用程序

如果查看 BizTalk 管理控制台,可以看到生成的解决方案由三个单独的应用程序组成:

  • BTSScn.BPM.OrderBrokerApp,包含订单代理的应用程序

  • BTSScn.BPM.CableOrderApp,包含订单处理组件的应用程序

  • BTSScn.BPM.MessagingApp,一个收集由其他两个应用程序共享的项目的应用程序

    该解决方案的结构可以由三部分组成,因为 BizTalk 应用程序能够使用同一 BizTalk 组内其他应用程序中的项目。 若要使用其他应用程序的项目,请添加从引用应用程序指向其他应用程序的引用。 有关引用其他应用程序的信息,请参阅 如何添加对另一应用程序的引用

    通过将常见项目放置在单独的应用程序中,您可能只需在一个位置中更新组件。 共享组件可以是包括端口在内的任何组件。 例如,该解决方案中的业务流程可以将错误发送到错误报告端口。 该端口位于消息传送应用程序 BTSScn.BPM.MessagingApp 中,在该应用程序中,整个解决方案都可使用该端口。

    将解决方案的结构设置为由三个应用程序组成,这样也可以更便捷地将解决方案的各个部分移至其他服务器上。 可以将每个应用程序及其引用的应用程序转换为 MSI 文件。 然后可以将该 MSI 文件安装在其他计算机上。 有关将应用程序转换为 MSI 文件的信息,请参阅 如何导出 BizTalk 应用程序

测试解决方案

还将在 BizTalk 管理控制台中测试三个应用程序: BTSScn.BPM.OrderBrokerApp.TestBTSScn.BPM.CableOrderApp.TestBTSScn.BPM.MessagingApp.Test。 这三个应用程序只包含用于测试应用程序的端口,主应用程序将引用这些测试应用程序。 使用这种结构,主应用程序使用的测试端口可以构造测试解决方案,同时允许将这些测试端口与该解决方案相分离。

另请参阅

业务流程管理解决方案的实施重点
业务流程管理解决方案中的模式