天天看点

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

作者:三胖有话讲

文丨三胖有话讲

编辑丨三胖有话讲

前言

企业过程是所有企业的基本组成部分,作为业务流程管理部署的组成部分,模型、语言和执行引擎的使用现在已经司空见惯。从定义上讲,这些过程以组织的知识、结构和活动来描述一个企业,并且通常对于实现组织的竞争优势至关重要。

因此,设计、执行以及对系统或环境中的变化做出响应都对于建立和维护高效的业务运营至关重要。

因此,部署高质量和有效的业务流程管理系统对于许多现代企业来说至关重要。然而,当前对灵活工作方法的趋势,及时的组织反应时间,分布式组织内和组织间的合作,以及不断变化的市场,正在创造新的和复杂的业务环境。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

这带来了增加的复杂性,进一步促使企业的业务流程需要实时动态变化;越来越动态的环境要求关键业务流程在设计和行为上都更加灵活和自动化。

然而,许多公司现在发现,对传统BPMS的投资往往导致投资回报率较低,因为常见的问题是无法创建对业务人员有意义,并且能够提供实时流程灵活性和快速适应变化的业务流程模型,以有效应对许多现代企业所特有的流动业务条件。

正如我们与制造领域的客户合作时发现的那样,通常需要实时地改变执行过程结构,而不干扰运行中的流程实例的完整性。如果BPMS没有内在地支持以这种方式进行变更,结果可能是可靠性和可见性的降低,特别是从管理的角度来看。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

研究人员的观察是,目前许多关于BPM的流程化方法太过僵化,对变更的响应不够灵活,尤其在自动化方面。

事实上,许多业务流程管理系统解决方案仅提供设计时建模,既不支持在运行时确定流程结构,也不支持直接执行业界标准的业务流程建模符号流程模型,而无需先将BPMN转换为中介格式,以便准备执行。

实际上,这些问题意味着流程模型可能在设计时因为必须编码所有可能的选项而变得过于复杂和脆弱,因为一旦进入执行阶段,无法动态更改。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

今天咱们讲的是替代方法是采用目标的概念,这在其他BPMS供应商和从业者中已被认可,是一种本质上强大且直观的业务流程建模方式。

因此,我们建议对标准BPMN进行扩展,以支持目标和计划的概念,并引入一个基于自主技术的经过行业验证的流程执行引擎,能够直接执行面向目标的BPMN模型,并最重要的是允许安全地实时修改模型和执行过程实例。

以目标为导向的方法的起点是对高层业务管理的观察,其特点是分配实现目标和决策点。这在运营层面也是如此,但随着通过预先建立或临时制定的流程引入实现目标和决策点的具体知识,抽象程度会降低。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

对于人类来说,设定目标、将目标分解为子目标,并定义或重用计划以实现这些目标是很自然的。这也适用于例行跟踪计划执行以及在问题出现或更好地在问题出现之前进行及时和适当的处理。

另一方面,计算机更容易通过提供固定的程序进行指示。这就是为什么许多BPM解决方案倾向于过程自动化,其中明确指定的流程规范描述了在所有设想情况下要采取的确切操作。这导致了执行高效但表现力和响应能力有限的流程。

为了在不牺牲敏捷性的前提下保持有效性,我们认为计划和目标的概念应在BPM解决方案中占据核心地位。因此,我们的方法使用了目标导向的业务流程规范,清晰地将要实现的目标与用于实现或维持这些目标的一组任务计划分开。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

这导致了创建能够处理更高复杂性和变化的BPM部署,使用直接可执行的面向目标的流程模型,其结构可以编码多个自由度,支持实时决策。

目标导向提供了一种强大、直观的建模和执行过程的方法,适用于业务经理和流程分析员。流程被描述为目标层次结构,每个叶子目标与一个或多个计划相关联,描述了实现目标所需执行的整个流程的一部分。

因为计划可以在运行时选择,所以流程结构内建灵活性,允许在不需要停止或重新启动整个过程的情况下安全地实时修改工作流程。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

“自主式流程执行”通过创建反馈回路,不仅在流程工程师和流程模型之间建立反馈,还在受到流程任务影响的底层系统之间建立反馈。

本章的目的是介绍我们的方法和“Living Systems Autonomic Business Process Management套件”。

为了说明我们的方法,我们描述了一个当前的大规模业务案例,其中戴姆勒公司正在使用这项技术来管理他们整个“Engineering Change Management”和采购流程目录。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

ECM方面涵盖了所有产品(的变更描述、分析、决策和执行的流程文档和执行。ECM对于戴姆勒来说是一项关键的业务操作。

如果能有效处理,将获得显著的成本降低和市场响应时间的好处,但它也受到动态和不可预测的环境影响,其中许多不在企业的直接和完全控制之下。

Goal-Oriented Business Process Modelling Notation (GO-BPMN)是由Whitestein Technologies创建的用于指定目标导向流程模型的可视化建模语言。

该语言是对标准BPMN的增强,支持显式建模目标、计划及其之间的关系,灵感来自Agent Modeling Language 中定义的心理建模方法。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

通过将业务目标的声明性建模与业务流程的过程化规范相结合,GO-BPMN提供了一种灵活的建模流程的方式,可直接应用于设计具有动态变化支持的敏捷业务流程。

在GO-BPMN中,一个流程模型由目标和计划组成,按照层次结构进行组织,计划包含由流程引擎执行的BPMN工作流程。对于可由人执行的活动,提供与组织模型的映射。

在特定流程模型实例的运行时,哪些目标将被激活,哪些计划将被选择并执行,取决于与流程目标和计划相关联的上下文条件的值。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

目标概念

在GO-BPMN中“目标”这个术语的常见理解是指努力的结果或达成的成就。GO-BPMN中的目标概念基本上与此相同,即目标定义了流程在执行过程中必须达到或保持的状态。

GO-BPMN定义了两种类型的目标,即“实现目标”和“保持目标”。实现目标代表流程在执行过程中必须达到的明确里程碑、目标、愿望等,而保持目标代表保持特定条件持续存在。

目标可以组成层次结构,只有当所有关联的子目标都成功时,才会认为目标达成。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

在GO-BPMN中建模的业务流程可以看作是一组必须实现或保持的目标层次结构。只有目标层次结构中的叶子目标与一个或多个计划相连,这些计划包含朝着实现或保持目标目标执行的活动。

目标具有业务条件或规则,用于控制它们的执行,从而控制整个流程的执行。例如,实现目标在预条件方面进行定义,即必须将其评估为true,然后实现目标才能变为活动状态。

当GO-BPMN模型被执行时,被建模的目标变得具有状态,并且LS/ABPM过程导航引擎会努力实现它们。实现目标的可能状态包括:未激活、准备就绪、停用、运行或失败。保持目标的可能状态包括:未激活、准备就绪、运行或停用。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

计划概念

GO-BPMN中的计划包含了实现或保持目标所需的功能活动的BPMN编码规范。在GO-BPMN中,功能活动称为任务,可以是人工执行或机器执行的。

LS/ABPM过程导航引擎会自动执行机器可执行的任务,并向流程参与者发布待办事项,以便处理人工可执行的任务。最终用户可以通过前端浏览他们的待办事项列表并执行所需的任务。

计划体使用BPMN进行编码,包括所有标准元素,例如流程、控制网关、子流程、任务、BPMN启动事件、结束事件、中间事件、事务等。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

GO-BPMN表达式语言

LS/ABPM使用表达式语言来编写控制GO-BPMN过程执行流的业务条件、触发器、任务参数、条件流等。GO-BPMN表达式语言是一种强类型语言,它提供两种数据类型:内置类型和用户定义类型。

内置类型包括Object、Null、Boolean、Decimal、Integer、Date、String、List、Set、Map、Reference和Closure。用户定义类型是记录类型,即通过笛卡尔积操作组合的类型,产生新的类型。

例如,业务对象,用于保存应用程序数据,可以表示为记录类型。记录类型还支持子类型化,作为在类型上的部分顺序,用于表示一个类型是否可替换另一个类型。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

该语言还支持变量的定义,即在编译时声明的具有类型的存储槽。在GO-BPMN中,变量可以具有不同的作用域,即不同的可见性。可能的作用域包括GO-BPMN模块、计划或BPMN子流程。

还可以定义特定于应用程序的函数。函数由声明和实现组成。函数体可以用Java、Groovy或表达式语言本身编写。

在LS/ABPM过程模型中,可以使用标识符引用其他命名元素。例如,进程模型名称、目标、计划、组织结构元素会自动反映为适当名称的标识符。其他命名元素包括模块名称、模块导入、模块参数、本地化实体等。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

类型化变量、函数和命名元素可以与语言运算符结合使用来构建表达式。在GO-BPMN中,所有表达式都有一个预期的类型。

例如,用于定义目标和计划条件的表达式预期是Boolean类型,Catch Signal Intermediate Event筛选器预期是Closure类型{Object:Boolean}等。

LS/ABPM过程导航引擎是一个应用程序,开发用于LS/TS中间件运行时,由一组以目标为导向的代理组成,作为过程实例控制器。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

每个代理控制器都分配给一个过程实例,负责在目标和计划的组合中协调过程代数和任务结构,并考虑目标和计划的前提条件。

当使用过程建模工具创建一个过程模型时,它直接加载到新的过程控制器代理中,其中过程目标被映射到目标导向执行引擎中的逻辑目标。

然后,控制器通过启动整个目标层次结构并等待在系统环境中感知到适当触发器来激活目标并推进过程执行。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

每个过程控制器都处于自己的自主反馈控制循环的核心,它利用对受过程实例影响的系统1的观察来影响与相应过程实例相关的决策,例如,应该激活哪些目标和选择哪些计划来满足目标要求。

这种自主控制使得过程实例能够自配置和自优化,实现过程的灵活性和弹性。

通过在运行时导航目标-计划层次结构,实现运行时执行灵活性,例如,在这个示例中,子目标B可以由三个可用的计划之一满足,而根据特定上下文参数的状态选择第三个计划。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

通过这种方式,每个目标被激活时,过程的执行路径被确定,并且在多个计划可用于满足任何给定目标时,上下文变量断言决策标准。

总结

在执行的过程实例之间的交互是通过负责这些实例的过程控制器之间的信号通信来管理的。如果实例由同一个控制器管理,则交互是局部的,如果不是,则是远程的。

交互可以是不同过程的目标和计划之间的简单绑定,也可以是更复杂的关系,协调多个控制器的活动。

自主技术流程执行引擎,能够直接执行BPMN模型,并允许安全的修改

当多个过程实例进行交互时,会仔细监控和控制自主反馈循环的影响,以确保所有效果都具有可追溯的因果关系,并且没有意外的副作用。

继续阅读