主流工作流引擎对比
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主流工作流引擎对比
工作流引擎也就是标准中的工作流机,工作流执行服务器是使用一个或多个工作流机,为过程实例和活动提供运行环境,负责解释和激活过程定义,与过程所需的外部资源进行交互。在WfMc的标准中的定义为:“由一个或多个工作流机构成的软件服务器,用来创建、管理、执行工作流实例。应用程序可能会通过WAPI来与这个服务交互”。一个工作流机负责执行服务器中的部分(或者全部)运行控制环境。在标准中的定义为:“为工作流实例提供运行时期的执行环境的软件服务器或引擎。”。
工作流引擎的职能:
● 解释过程定义
● 控制过程实例—创建、激活、挂起、终止等
● 为过程的活动导航,可能要包含顺序或者平行的操作、最后时间期限、对工作流相关数据进行解释
● 参与者签名和退出
● 确定任务项目,实现用户意图;提供接口,支持用户交互
● 维护工作流控制数据和工作流相关数据,在应用程序间或者用户间传递工作流相关数据● 提供调用外部程序的接口,连接所有工作流相关数据
● 提供控制、管理和审查功能
工作流机可以控制过程集、子过程、或通过对象类型的范围、及其属性定义好运行范围的实例。在一个由多个工作流机构成的工作流执行服务器中,要把过程进行划分,分配给工作流机。可以按照过程类型来划分,某个工作流机负责控制相应类型过程;按照功能进行划分,某个工作流机负责控制过程的一些部分,这些部分所需要的用户或者资源,都在此工作流机的控制范围内。也可以按照其他的一些机制来划分。
主流工作流引擎:
1.Shark
Shark是一个完全基于WFMC和OMG规范的工作流引擎。Shark的流程定义语言是XPDL,XPDL的两个最重要的概念是Process和Activity。XPDL中的Activity是基于UML1.x中的活动图的概念。活动图天生的适于工作流程建模,它相对于状态图的一个最大的优点是容易做并发线程的分叉控制,这些并发线程可以同时执行也可以顺序执行;它还有一个优点是有泳道的概念,可以控制工作流引擎中的任务的产生。
1.使用了WFMC的XML过程定义语言(XPDL)作为自己的过程定义语言。
2.在标准核心实现中,Shark是一个不需要创建他自己的线程的库,并且他能够被使用到不同的环境中(在WEB应用中、在SWING应用中、作为 CORBA服务、在EJB容器中……)。
3.非常可配置的,所有的内在接口,包括核心部分都能够被其他实现所替换。
4.能够同时被使用到多种虚拟机上(在集群环境中)。
5.连同POJO接口一起,他提供了一个CORBA接口,通过这个接口,CORBA客户端应用程序能够和作为CORBA服务的shark进行通信。
6.能够配制成使用LDAP服务器上的组织结构定义
7.不使用任何XPDL扩展属性作为他的执行规则
8.接口允许使用外部处理(在一些应用中被使用),所以shark能够和他的客户端处理程序一起工作。
9.使用DODS(一种来自Enhydra的OR/M工具)它几乎能够使shark使用任何的数据库系统来存储信息,并且他的目标数据库能够被简单地以url的形式配置。
10.实现的工具代理的概念,这个WFMC的概念是来执行自动活动的工具(很多有用的工具代理在shark中被使用)。
11.shark能把客户自定义的java类作为流程变量来使用。
参考:
/p/shark/
/doc/1.1/index.html
2.Osworkflow
Osworkflow是完全用java语言编写的开放源代码的工作流引擎,具有显著的灵活性及完全面向有技术背景的用户的特点。用户可以根据自身的需求利用这款开源软件设计简单或是复杂的工作流。通过使用,用户就可以把工作中心放在业务和规则的定义上,而不需通过硬编码的方式实现一个Petri网或是一个有穷自动机。用户可以以最小的代价把osworkflow整合到自己的程序中来。(百度百科)
1. Osworkflow极其灵活性。
2.底层工作流实现
3.基于有限状态机
参考:
《Osworkflow开发手册》
3.Jbpm
JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,使用它要遵循ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)协议。jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM。
1.jBPM是一款基于LGPL开源协议的开源工作流产品,它没有采用BPEL或WFMC标准去实现流程引擎;jBPM采用的是一套自有标准,一种轻量级的XML结构的流程描述语言JPDL,JPDL是jBPM Process Definition Language的缩写,相比WFMC和BPEL两种标准而言,JPDL语言更加简单,也更容易读懂。
2.jBPM提供了基于Eclipse的流程设计器。
3.以WEB应用的形式提供了对流程的管理与控制。
4.因为jBPM采用Hibernate对流程数据进行持久化,所以jBPM可以运行于任意数据库之上。
5.jBPM的运行模式有两种:独立模式、嵌入式模式。
参考:
/jbpm/v6.3/userguide/
百度百科
4.Apache ODE
Apache ODE (Orchestration Director Engine) 支持W S-BPEL 2.0流程建模标准,支持BPEL、Xforms、WebService作为外部接口标准。框架比较灵活。ODE BPEL编译器、ODE BPEL 运行时、ODE数据访问对象(DAOs)、ODE集成层(ILs)和用户工具之间耦合度低。
1.同时支持WS-BPEL
2.0 OASIS 标准和传统的BPEL4WS 1.1供应商规范。
2.支持2个通信层:一个基于Axis2 (Web Services http transport),另一个基于JBI标准 (using ServiceMix)。
3.支持HTTP WSDL绑定,允许REST样式的webservice调用。
4.为外部流程变量映射到内部的数据表提供可能。
5.高层次的API可以将任何通信层集成到引擎核心。