第 65 章 Red Hat Process Automation Manager 中的处理引擎
流程引擎实施红帽流程自动化管理器中的业务流程管理(BPM)范式。BPM 是一个业务方法,可在企业内实现建模、测量和优化流程。
在 BPM 中,可重复的业务流程以工作流图表示。业务流程模型和符号(BPMN)规范定义此图表的可用元素。进程引擎实现 BPMN 2.0 规范的大子集。
借助流程引擎,业务分析员可以自行开发图。开发人员可实施代码中流的每个元素的业务逻辑,从而成为可执行的业务流程。用户可以执行 业务流程,并根据需要与之交互。分析师可以生成反映流程效率的指标。
工作流图由多个节点组成。BPMN 规格定义了多种节点,包括以下主体类型:
- 事件 :代表进程或进程外发生的某些节点。典型的事件是进程的开始和结尾。事件可以向其他进程丢弃消息并捕获这些消息。图上的圆形代表事件。
- 活动 :代表必须采取的操作的节点(无论是自动还是有用户参与)。典型的事件是任务,它代表进程中采取的操作,以及对子进程的调用。图中的轮轮形图代表活动。
- 网关 :分支或合并节点。典型的网关评估表达式,并根据结果继续其中一个执行路径。图中的诊断图代表网关。
当用户启动进程时,会创建一个进程实例。进程实例包含一组存储在进程变量中的数据或 上下文。进程 实例的状态 包括所有上下文数据,以及当前活动节点(或者在某些情形中,一些活动节点)。
当用户启动进程时,可以初始化其中的一些变量。活动可以从进程变量读取并写入进程变量。网关可以评估进程变量以确定执行路径。
例如,shop 中的购买流程可能是一个业务流程。用户 cart 可以是初始进程上下文。在执行结束时,进程上下文可以包含支付确认和发运跟踪详情。
另外,您可以使用 Business Central 中的 BPMN 数据模型程序为进程变量中数据设计模型。
工作流图由 XML 业务流程定义 以代码表示。事件、网关和子进程调用的逻辑在业务流程定义中定义。
在引擎中实施一些任务类型(例如脚本任务和标准决策引擎规则任务)。对于其他任务类型,包括所有自定义任务,当任务必须执行进程引擎时使用 Work Item Handler API 执行调用。引擎外部的代码可以实施此 API,为实施各种任务提供灵活的机制。
流程引擎包含许多预定义的任务类型。这些类型包括运行用户 Java 代码、调用 Java 方法或 Web 服务的服务任务、调用决策引擎服务的决策任务,以及调用决策引擎服务和其他自定义任务(如 REST 和数据库调用)的脚本任务。
另一种预定义 任务是用户任务,其中包括与用户的交互。进程中的用户任务可以分配给用户和组。
进程引擎使用 KIE API 与其他软件组件交互。您可以在 KIE 服务器上作为服务运行业务流程,并使用 KIE API 的 REST 实现与其交互。或者,您可以将业务流程嵌入到应用程序中,并使用 KIE API Java 调用与它们进行交互。在这种情况下,您可以在任何 Java 环境中运行流程引擎。
Business Central 包括一个用户界面,供用户执行人工任务,以及为人工任务创建 Web 表单的表单建模器。但是,您也可以实施一个自定义用户界面,该界面使用 KIE API 与进程引擎交互。
进程引擎支持以下附加功能:
- 支持使用 JPA 标准对进程信息的持久性。持久性保留每个进程实例的状态和上下文(进程变量中的数据),以便在某些时间重启或停机时它们不会丢失。您可以使用 SQL 数据库引擎来存储持久性信息。
- 用于使用 JTA 标准执行进程元素的可插拔支持。如果您使用 JTA 事务管理器,则业务流程的每个元素都作为事务启动。如果元素没有完成,进程实例的上下文将恢复到元素启动前的状态。
- 支持自定义扩展代码,包括新节点类型和其他进程语言。
- 支持有关各种事件通知的自定义监听程序类。
- 支持将正在运行的进程实例迁移到其进程定义的新版本
流程引擎还可与其他独立的核心服务集成:
- 人工任务服务 可在人工需要参与过程中时管理用户任务。它完全可插拔,默认实施基于 WS-HumanTask 规格。人工任务服务管理任务、任务列表、任务表单以及一些更高级的功能,如升级、委派和基于规则的分配。
- 历史记录日志 可以存储关于在进程引擎中执行所有进程的所有信息。虽然运行时持久性存储所有活动进程实例的当前状态,但需要历史记录日志来确保访问历史信息。历史记录日志包含所有当前和历史状态,了解所有活动和完成的进程实例。您可以使用日志来查询与执行进程实例相关的任何信息,以进行监控和分析。
其他资源