jbpm和shark工作流引擎对比

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

jbpm和shark工作流引擎对比

Xpdl:xml process definition language.

Bpel:Business Process execution language.

Jpdl:JBoss Jpbm Process definition language.

考察角度:稳固性,易用性,灵活性,可监管,扩展性,可爱护性,进展趋势。

附图1(shark类结构图):

流程图

附图2(jbpm 类结构图): 定义部分

to

from Node

Transition

ProcessDefinition

ProcessDefinition

Node

StartState EndState

ProcessState

SuperState

State

Fork

Join

TaskNode

Task

Transition

Event

Decision

Action

ExceptHandle

CancelTimerAction

CreateTimerAction

Script

VariableAccess

TaskController ProcessState Script

Swimlane

运行部分

ProcessInstance

Token

ModuleInstance

ContextInstance

TaskMgmtInstance TokenVariableMap

TaskIanstance

VariableInstance SwimlaneInstance

PooledActor

Timer

Action Token

ProcessInstance TaskInstance

VariableLog

TaskLog

ProcessLog

SignalLog TransitionLog ActionlLog

Token

Tansition Node

Action

Message signalCommand ExecuteActionCommand TaskNodeCommand

MessageLog

ProcessInstanceCreateLog

ProcessInstanceEndLog

RunTimeAction

NodeInstance

(StateNodeInstance)(DecisionNodeInstance)(SuperNodeInstance)(ProcessNodeInstance)(Fork/JoinNodeInstance)(TaskNodeInstance —>TaskInstance)

流程图

Fork 和join 范例(这也是和shark 区不较大的一个地点):

引擎数据表讲明(能够明白jbpm大致包括哪些内容):

JBPM_ACTION action记录表

JBPM_DECISIONCONDITIONS 结果条件表

JBPM_DELEGATION 托付表

JBPM_EVENT 事件表处理进入或者离开事件

JBPM_EXCEPTIONHANDLER 专门处理表

JBPM_ID_GROUP 用户组表

JBPM_ID_MEMBERSHIP 用户成员表表现用户和组之间的多对多关系JBPM_ID_PERMISSIONS 用户权限表

JBPM_ID_USER 用户表

JBPM_MODULEDEFINITION 模块定义表

JBPM_MODULEINSTANCE 模块实例表

JBPM_NODE 流程节点表

JBPM_POOLEDACTOR 聚拢参与着表

JBPM_PROCESSDEFINITION 流程定义表

JBPM_PROCESSFILE 流程文件表

JBPM_PROCESSFILEBLOCK 流程文件块表

JBPM_PROCESSINSTANCE 流程实例表

JBPM_RUNTIMEACTION 运行中行为表

JBPM_SCRIPTVARIABLES 脚本变量表

JBPM_SWIMLANE 泳道表

JBPM_SWIMLANEINSTANCE 泳道实例表

JBPM_TASK 任务表

JBPM_TASKACTORPOOL 用户行为汇总

JBPM_TASKINSTANCE 任务实例

JBPM_TIMER 计时表

JBPM_TOKEN 令牌表

JBPM_TOKENVARIABLEMAP 令牌变量影射表

JBPM_TRANSITION 转换表

JBPM_VARIABLEINSTANCE 变量实例表

JBPM_VARIABLEINSTANCEBLOCK 变量实例块表

JBPM_VARIABLEMAPPING 变量影射表

摘录《Xpdl和Bpel对比》:

WFMC认为BPEL才是“执行语言”,而认为XPDL要紧用来“建模”。

XPDL领域要紧依旧利用了活动图,状态图和FSM等元素;这些元素的结合专门容易用来表达一个流程的建模模型;然而,我们的平常的做法,确实是直截了当拿那个建模模型来作为了执行语言。

我们如此做有什么缺点呢?

第一,我们用XPDL表达了流程的建模模型,然而我们为了让它可执行,加入了太多的业务人员不能明白得的元素,导致业务人员不能直截了当使用它;其次,我们用XPDL表达了可执行的元素,为了容易“建模”,加入了专门多“活动”等“建模”元素,这些元素一样会需要去配置专门多的属性,而这些属性是干扰和阻碍“执行”的。

XPDL确实是一个建模和执行的混合体,是一个分析和实现的混合体。

实现模型依旧要靠BPEL。

摘录Petia whohed《Patterns-based Evaluation of Open Source BPM Systems:

The Cases of jBPM, OpenWFE, and Enhydra Shark》(分析角度操纵流、数据和资源)研究报告的总结:

总的来讲,能够概括为开源系统与开发人员(相关于业务分析师)结合得更加紧密。假如有人对Java专门熟悉,jBPM或许是一个好的选择,否则不建议使用jBPM;类似地,尽管从工作流模式的角度看,OpenWFE拥有一种针对工作流标准的强大语言,我们却能够推断出它关于非程序员来讲专门难明白;最后,Endydra Shark对工作流模式的简单支持可能要求专门复杂的解决方式才能满足重要的商业场景。

个人初步保留意见:

我们差不多有一个能够用的shark平台,公司对shark有比较多的积存,但其中可能还有一些如此那样的小咨询题,进展本身受到shark技术和多方面缘故的限制;假如部门将提高平台定位高,甚至以后要作成商业产品,依旧改用jbpm为好,我们对jbpm也有一些了解和研究,前期需要投入一些人力,如流程设计器的制作,对JBPM内核做更加深入的研究和改造,我们的下一版本平台采纳jbpm技术可行也会具有相当价值。

相关文档
最新文档