jbpm和shark工作流引擎对比
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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技术可行也会具有相当价值。