国内外主流工作流引擎及规则引擎分析2013年2月创新研发部目录一.背景目前中心建成的“一大核心系统,七大共享平台”以及OA系统,对工作流应用程度高,但各系统实现工作流程管理没有建立在统一的工作流平台上,导致流程割裂、重复开发、不易于管理等问题。
备付金管控项目涉及多个岗位之间工作的审核步骤,同时还要与多个系统进行交互,因此,为了提高管理效率,降低业务流转时间,同时还要结合农信银中心的总体IT战略规划,备付金管控项目技术组决定选择一款先进的工作流引擎和一款规则引擎,作为备付金管控项目的核心技术架构。
二.原则备付金管控项目组通过梳理各信息系统流程现状和未来需求,形成农信银中心工作流平台的发展规划,从而更全面的满足农信银各项关键业务、更好的支撑现有和未来的信息系统建设。
项目组充分研究国内外领先的工作流产品和案例,同厂商交流。
从用户界面生成、流程建模、流程引擎、规则引擎、组织模型、模拟仿真、后端集成/SOA、变更及版本管理、移动设备解决方案、监控分析能力等多方面考察工作流产品,进行工作流产品选型。
目前国内外的工作流引擎层出不穷,行业标准多种多样,通过对比不同工作流公司产品,本次工作流技术选型决定分析商业工作流引擎4款,开源工作流引擎2款。
其中国际知名厂商的商业工作流引擎2款,本土厂商的商业工作流引擎2款。
由于本次技术选型是以工作流引擎为主,选型工作将不再单独分析规则引擎,而是直接使用与所选工作流引擎搭配最好的或者是同一厂商的规则引擎。
根据国内外知名度、厂商的规模和与符合农信银中心的SOA体系架构等原则,将选取以下6种工作流引擎与规则引擎进行研究与分析:三.工作流功能分析点3.1.标准类为了具有可替代性和适应性,所选工作流产品应当遵循目前最主流的工作流标准。
3.1.1BPMN2.0标准支持目前国内外的工作流引擎层出不穷,行业标准多种多样,在进行流程梳理得过程中,不同的实施阶段所使用的流程描述语言或遵循的标准会有所不同,有的使用WfMC的XPDL,还有些使用BPML、BPEL和WSCI等这就造成了流程管理,业务集成上存在着很大的差异性和局限性。
,导致同一个流程在不同的流程引擎上无法进行重用。
遵循BPMN2.0规范的工作流产品能够很大程度上解决此类问题,BPMN 2.0将业务流程的可视化和底层的XML表示进行了标准化,这极大地改进了建模工具(比如说基于Web和Eclipse的设计器)之间的交互性。
BPMN 2标准是非常可靠且可扩展的,这样在必要的时候就可以引入新的元素和属性了,这样可以保证相同的流程在不同的流程引擎得到的执行结果是一致的,只需要学习掌握BPMN2.0规范,就可以掌握所有支持BPMN2.0的工作流引擎产品。
BPMN2.0将流程执行语义定义了以下七类对象,分别是:活动、事件、网关、连接对象、数据对象、泳道对象和描述对象。
任何支持BPMN2.0的产品都必须要对上述对象进行明确的定义。
3.2.开发类使用工作流引擎进行开发的难易程度,取决于一个好的业务模型建模工具、工作流建模工具、人工页面生成工具和完整的仿真工具。
业务模型建模工具可以将业务流程与业务数据进行整合;工作流建模工具可以使用拖拽方式对流程进行直观的编排,并且可以对已有的流程进行流程的复制与复用,实现方便灵活的导入导出流程模型;人工页面生成工具则可以迅速的根据需求生成出需要填写的表单,只需要简单修改后便可以使用,可以降低开发的周期;仿真工具是为了检查所创建流程的正确性而开发出来的,使用仿真工具可以更好的发现流程中的逻辑问题。
3.2.1业务模型建模工具主要研究业务数据与工作流引擎的协同工作的能力,是否具有以下功能以及功能的完善程度。
●提供模型对象与业务对象的一一映射●支持一对一,一对多,多对一和多对多的业务模型3.2.2工作流建模工具主要研究考查工作流产品建模工具的方便性与易用性,是否具有以下功能以及功能的完善程度。
●图形化拖拽方式,用户体验程度●提供过程元素符合BPMN2.0规范的对象控件●实现过程元素的剪贴、复制、粘贴、删除、操作的撤消、对象控件的全选、图形元素自动排列等功能。
●采用统一的XML格式储存工作流模型文件导入导出●流程编制是和业务角色结合的,用户可以进行基于业务规则的工作分配/调整/平衡。
基于规则的服务选择。
实现基于规则的路由●使用客户端方式进行建模工作,或者使用WEB页面富客户端的方式进行建模3.2.3人工页面生成工具人工节点的核心是表单,理论上每一个人工节点都应该有一个表单相对应,可供相应的人员填写,因此如何迅速完整的开发完成一个表单,是工作流产品开发周期长短的一个重要的衡量标准。
人工页面生成工具就是表单的生成工具,应具有以下功能:●在BPM建模工具中提供中直接浏览任务表单。
业务用户可以利用流程工作区感知新发生的工作任务,进行工作任务的完成,比如流程提交,流程审批,业务分析等等。
●直接在建模工具提供生成表单功能,可以简单的通过向导单击就生成工作流表单。
●表单可以根据客户的应用实现扩展应用, 扩展应用非常丰富,可以添加图表等丰富内容。
●表单可以被新的表单复用●表单具有导入、导出的功能3.2.4仿真工具仿真是流程开发完成以后,流程正式上线之前进行的模拟测试,流程进行仿真后将可以发现流程的逻辑问题以及配置问题,一个完整的仿真工具应具有以下功能:●全套的图形仿真和“假设”分析能力,一边模拟运行一边定义仿真参数。
●模拟可以采取角色,升级,代表,事件,日历,工作任务分发。
3.3.功能类一个完正的工作流产品,应该具有流程引擎,规则引擎,组织模型与日期,对外提供AP,后端集成SOA,流程版本控制功能。
3.3.1流程引擎流程引擎是工作流引擎的核心,是关系到流程如何正常运转的核心组件,一个流程运行的效率、功能以及正确性均由工作流引擎实现,流程引擎应具有以下功能:●bpmn2.0所涉及的网关功能的支持,如多路分支,单路分支,汇聚,判断等功能●多种任务分配策略●代办、委托●流程版本控制,包括2个版本同时运行的情况●修改后的流程,不会影响到正在修改的流程●支持回退,撤回功能●支持人工干预●超时控制系统●冲正、存储转发流程●补偿、异常流程3.3.2规则引擎规则引擎在工作流产品中主要体现为,网关节点的规则实现与人工节点的任务分配规则的实现。
规则引擎应具有以下功能:●在建模器中可以完全集成业务规则功能,直接适用到用户功能的定义,比如用户可以基于业务规则实现工作的分配/调动/平衡,基于规则的服务选择,基于规则的任务路由,基于规则的告警。
直接在图形化的向导中就可以直接使用规则功能。
●基于Web的规则编辑,或者是基于客户端的规则编辑。
●无缝和SOA 应用进行集成●规则信息具有一个资源库,版本控制, 抽象的API 。
资源库的使用可以直接和SOA 特制的应用,比如BPM应用相结合●规则包括了面向业务用户的Interfaces,比如自然语言的Interface,因此可以由业务用户直接进行创建和调整。
3.3.3组织模型与日期工作流产品应支持多种机构与组织的模型,可以灵活自由的进行配置;同时还应当支持万年历,可以自主设施节假日。
组织模型可以用图形化方式定义组织单元,角色,组,参与者,并且这些可以和日历功能相结合。
组织模型与日期可以业务模型建模、工作流程建模,人工页面生产工具以及其他功能相结合。
3.3.4对外API的提供在实际应用中,工作流产品通常会与一些外部的系统进行交互,或者是直接嵌入到外部系统中,因此需要提供流程控制的接口供外部系统使用,如:流程产生、获取任务、提交任务、流程人工干预等API接口。
3.3.5后端集成/SOA工作流产品在工作中会调用到外部系统,并且会等待系统的同步与异步的返回信息。
因此,工作流产品必须提供一系列SOA / 集成技术相集成,比如转换功能,后端适配器集成能力,事件,规则,消息,标准的ESB功能,按照农信银中心目前的需求,产品应具有以下协议的通讯功能:●http/https●soap●jms●file●MQ●Tuxedo●Socket●DB●包括了很多工具,包括应用适配器,数据库和文件适配器等技术适配器等●支持事务能力. 事务还能以图形化的方3.3.6监控功能监控功能特指在流程运行中,对未完成和已完成的流程进行监控与统计的功能,主要具有以下功能:●自定义协同空间,并且链接到流程实例●进行流程实例的监控●进行流程实例的统计分析四.中心已有系统工作流功能点分析4.1.备付金系统工作流分析4.1.1联社备付金调出流程分析:分析:4.1.4备付金运用账户开立流程分析:4.1.5备付金沉淀资金运用流程分析:4.1.6备付金沉淀资金支取流程分析:4.2.多介质项目工作流分析4.2.1开卡审批流程分析4.3.新一代农信银资金清算系统工作流分析无使用工作流的需求4.4.电子商票系统工作流分析农信银商票系统中没有固定不变的流程,系统要求适应不同地区不同业务品种的审批流程,当业务规则发生变更时,成员行的管理人员可以通过简单的参数配置,灵活适应业务的多样性需求。
工作流生命周期的支持:商票系统要求工作流产品支持工作流的开发,运行,维护,监控,能够满足业务人员,开发人员,运维人员,操作人员不同的要求。
工作流特性要求,在工作流内部实现上要求工作流产品支持如下特性:4.5.OA系统工作流分析合同请假五.工作流产品分析六.分析结论6.1.对比开源工作流:开放源代码,产品免费,功能强大,符合BPMN2.0规范,易于学习,拥有众多的开发人群。
但对于人工流程支持不够,没有商业引擎强大。
国内案例不够丰富,如果使用需要大量的二次开发工作。
本土厂商的商业工作流引擎:拥有源代码,成本较低,容易学习,不符合BPMN2.0规范,但案例相对成熟,对于人工审批流程支持较好,对于自动流程支持较弱。
市场占有率低,没有商业引擎强大,外包人员相对充足,适用于小型快速研发的项目。
IBM BPM,ORACLE BPM:无源代码,功能强大,产品健壮,稳定性好,符合BPMN2.0规范,市场占有率高,学习曲线较长,但成本较高,占用资源相对较多。
适用于大型项目。
6.2.建议目前,农信银中心已有流程,需求相对比较简单,除商票系统需要进行会签功能外,其它流程仅需要支持顺序流。
因此上述6款工作流引擎均能够满足农信银中心对于工作流引擎的需求。
从最节约成本的角度考虑建议在开源工作流引擎中选择,采用由中心人员主导研发,公司外包人员进行配合的开发模式。
从开发最快的角度考虑建议在本土厂商的商业工作流引擎中选择,采用由本土厂商的外包人员主导研发,中心人员进行配合的开发模式。
从中心工作流平台的发展规划角度考虑建议IBM BPM,ORACLE BPM中选择,采用由中心人员主导研发,IBM或ORACLE的合作公司的外包人员进行配合的开发模式。