jbpm和shark工作流引擎对比
Xpdl:xml process definition language・
Bpel:Business Process execution language・
Jpdl:JBoss Jpbm Process definition language.
三亠
-出
1
(shark
'^
B f Q M )
“tpcrfwwr
一
WfPmcrw
寥w
^C C E
王亍s-
l t l l c -p
=8
fe.
n 2
Q
•
su
E wurhlt
1:
纟
-
ory
"&□.At
vnsMk
-
uriflg
jiubkd
ehbunKk
F
t h 4-
B c
pruccan
^y t l i w &s.g
n a l l
l
) ^d 」2=-l £.x n
・«=e
*§9
mzr
W
n^ecIH ©-
一
dcunptF:
nrinm
4
二-ring
priority
二-
3g
S u s -
=Hat
proc?
uatm:
FnxcfsFtl
=J4lllh_og
u
cum-
sutci)
r M ^J C I F
E J ,&d ・rcwinwO
umin ・Ej
»r i -
Mlm
一as-
M K C
d n i )
亍
m E p
whi
fpenu
=一一
—Jtiap
:Tun»»lu^::u~c
一
g JH*【
c.s-y
』。
.:乂 ring
bvi-yfuunc:
■王
£
l k .3
・"『ring
-2
l -x 2n :
s
z i n ? 2l -=^l -5-^ -]C 3.=V\3&dscBtAud r
卫
mmF.
二・
H 4U
»
^u d l ,u n -
^urw sWtc :
»3a w
daU “ NmeV
flocs d H n
:
A .
l _
»
I g 工
i •亍1 £ • • 2 ・・f& V j.i
I
s
v v p
g .gnugEvcfltAJidh
^evnerc-JJCy:
ctring
*l 3c c s l -
5 -il
r g
d
remircc ndmc :
K 3
_1*J *
立泮注捲妣佞务
irtra| firs 过程馆场址匹 立保馅讯密|用戶诧;溯第巾|虛存河|工切應tr 趣|
-D a-exemple
;p H 经定电•咅甸工鈕 口卡如空屋空翌—
运行部分
£站攻世心eeEple e^Ep
4]
2J
^7
open.iunnino
2C0509-09 15.H.59
::::::::: ::査者•处 連交*中
二」…』
⑧启动|辔显| “邨计 0综止]
X 畅
已乂恋史| ■翩
t| [§刃t| Q )帛瞬盘|
冬昭塔民
ix 世| gim 從|小 呦』叫
:» 却畑
附图2 (jbpm 类结构图): 立义部分
ProcessDefinition
State
ExceptHandle
JK 桂
伯
franzition
V
0 ♦ Z
Node Transition ProcessDefinition
w
Event
Task
借软发起
部门禎卑审批 按交申
« PJode»
埴写借藏申诫
• •
•••••••••••••■••・・・
・・、 申诸通过 w
申诸不通过
却件通紂
财务按鮫
Fork 和join 范例(这也是和shark 区不较大的一个地点):
Token
Modulelnztancc
TokenVariableMap
(StateNodelnstance) iDecisio nNodel nstang) [Sup erNodelnstance) (ProcessNodelnstance) (Fork'JoinNodelnstance) {TasWslodel nstance —>TasHnstance)
TasxMentInstance
♦ ------------ X
Variablelnstance
VariableLog
--- >
△
△
PooledActor
I
仝
ActionlLog
Toke n
Action
Tansition Node
Action
Toke n Processin stance
Tasklnstance
Swinlanelnstance
MessaseLoc
ProcezzInztanceCreateLos
ProcessInstanceEndLo’
流程图
引擎数据表讲明(能够明白jbpm大致包括哪些内容):JBPM.ACTION action 记录表
JBPM.DECISIONCONDITIONS 结果条件表
JBPM.DELEGATION 托付表
JBPM_EVENT事件表处理进入或者离开事件
JBPM.EXCEPTIONHANDLER 专门处理表
JBPM_ID_GROUP 用户组表
JBPM_IDJEMBERSHIP用户成员表表现用户和组之间的多对多关系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确实是一个建模和执行的混合体,是一个分析和实现的混合体。
实现模型依旧要靠BPELo
摘录Petia whohed《Patterns-based Evaluation of Open Source BPM Systems: The Cases of jBPM, OpenWFE, and Enhydra Shark》(分析角度操纵流、数据和资源)研究报告的总结:
总的来讲,能够概括为开源系统与开发人员(相关于业务分析师)结合得更加紧密。
假如有人对Java专门熟悉,jBPM或许是一个好的选择,否则不建议使ffljBPM:类似地,尽管从工作流模式的角度看,OpenWFE拥有一种针对工作流标准的强大语•言,我们却能够推断出它关于非程序员来讲专门难明白:最后,Endydra Shark对工作流模式的简单支持可能要求专门复杂的解决方式才能满足重要的商业场景。
个人初步保留意见:
我们差不多有一个能够用的shark平台,公司对shark有比较多的积存,但其中可能还有一些如此那样的小咨询题,进展本身受到shark技术和务方面缘故的限制:假如部门将提高平台定位高,甚至以后要作成商业产品,依旧改用jbpm为好,我们对jbpm也有一些了解和研究,前期需要投入一些人力,如流程设计器的制作,对JBPH内核做更加深入的研究和改造,我们的下一版本平台采纳jbpm技术可行也会具有相当价值。