首先,这个评论是我从网上,书中,搜索和整理出来的,也许有技术点上的错误点,也许理解没那么深入。但是我是秉着学习的态度加以评论,学习,希望对大家有用,进入正题!三大主流工作流引擎:Shark,osworkflow,jbpm!Shark的靠山是E
hydra。E
hydra做过什么呢?多了!从j2ee应用服务器,到ormappi
g工具,到这个工作流引擎等等。为什么Shark的持久层采用DODS来实现?就是因为他们是一家人。
Jbpm的靠山是jboss。Jbpm3的持久层采用hiber
ate3来实现,也是因为这个原因吧。Jbpm3的图形化流程定义已经决定嵌入到jbosseclipseIDE中,大家看看jbosseclipseIDEpreview15版,我们已经可以用插件方式编辑一个jbpm3流程定义文件了。
Osworkflow的靠山是ope
sympho
y。我是非常喜欢这个组织的,它做出了很多的好东西。在开发工作流管理系统时,我就推荐用它的另外一个东西:webwork2。笔者主持的开源工作流引擎AgileFlow就是基于ww2spri
ghiber
ate架构实现的。写到这里我想是不是它可以和struts2进行完美整合?!
完成本段时说句题外话:现在基本上所有的J2EE应用程序服务器都有自己的工作流引擎,如上面提到的E
hydrajboss和没有提到的websphere和weblogic等,可见,学习工作流引擎技术的确是非常重要的。
fShark的流程定义语言是XPDL,我们知道,XPDL的两个最重要的概念是Process和Activity。XPDL中的Activity是基于UML1x中的活动图的概念。活动图天生的适于工作流程建模,它相对于状态图的一个最大的优点是容易做并发线程的分叉控制,这些并发线程可以同时执行也可以顺序执行;它还有一个优点是有泳道的概念,可以控制工作流引擎中的任务的产生。Shark的如来神掌是活动图。
Osworkflow的如来神掌又是什么呢?我们知道,它有个重要概念是State……呵呵,我们知道了,它的如来神掌是FSM。不知道FSM是什么东西??那你读大学时肯定不是好学生;当然了,不知道也不打紧,你把他类似理解为状态图就可以了。Osworkflow中的State是由step和status联合表达的,一个State就是一个step中的某个status;而state的转换由actio
来驱动,类似状态图中的eve
t因为一个eve
t对应一个actio
嘛。
Jbpm的如来神掌就没有上面的简单了,它结合应用了状态图活动图PetriNet的知识,而且,这里的活动图还是UML20版的。UML20的活动图中,节点不叫活动(Activity)而叫动作actio
,活动成了一个高层次的概念,它包含一个动作序列。一个活动图展现一系列的动作,这些动作组成了活动。Jbpm把actio
也改名了,称为state。Jbpm使用的状态r