----工作流引擎几种实现 -- Work Flow Application 4

1:从《功夫》说起
     从新新人类的角度看,我等已经算是老古董,但从 kong fu 看来,周星星加入斧头帮,有了一个好的靠山。看了一则新闻:Jbpm joins jboss and becomes jboss-jbpm,异曲同工,有了靠山,能稳定下来了,不用再流浪了。
    正题主要介绍一下目前三大工作流应用技术,有些过时,要带三个表、与时俱进一些。
    shark的靠山是Enhydra,Enhydra从j2ee应用服务器,到o/r mapping到工作流引擎,等等等等,shark的持久层用dods实现,因为他们是一家人。
    jbpm的靠山是jboss,jboss的靠山是redhat,搞得还挺复杂的。jbpm的持久层实现是hibernate(连hibernate这浓眉大眼的也背叛革命了),jbpm的图形化流程定义已决定嵌入到jboss eclipse IDE中,可以用一下jboss eclipse ide preview 1.5 version。
    osworkflow则是从了opensymphony,这个开源组织做出了很多好东西,比如:webwork2.
    此外,基本所有的j2ee应用服务器都实现了自己的工作流引擎,所以,good good study,day day want up。
2:大杀器
    说罢,各自登台亮相,粉墨登场。
    shark的流程定义语言是xpdl。两个最重要的概念是process和activity,activity是基于UML1.x中活动图的概念,活动图天生就适合工作流程建模,相比于状态图,它最大的优点就是容易做并发线程的分叉控制,这些线程可并行也可串行执行;还有一个优点是泳道的概念,可以控制工作流引擎中任务的产生。 大杀器:活动图。
    osworkflow的绝招是fsm(可理解为状态图)。一个重要概念是state,osworkflow中的state是由step和status联合表达的,一个state就是一个step中的某个status,而state的转换由action来驱动,类似状态图中一个event对应一个action
    jbpm结合应用了状态图 + 活动图 + perinet的知识,这里的活动图是uml 2.0版本的。uml 2.0中,节点不叫活动(activity)而叫动作(action),活动成了一个高层次的概念,它包含一个动作序列。一个活动展现一系列的动作,这些动作组成了活动。jbpm把action也改名了,叫state,jbpm使用的状态图的概念有transition/event等,内部实现还用了petrinet的概念,如:token、signal等。
    大局势是从封建社会向资本主义社会转型期,促进这一转型的正式jbpm,国内企业都看重xpdl,这意味着可以在产品说明书中吹嘘“我们支持wfmc。。。。“。
    听说还有个huihoo的引擎,可以继续关注一下。
    over了。

    几个概念的注解:
    fsm:有限状态机(finite state machine or finite state automata),指输出决定于过去输入部分和当前输入部分的时序逻辑电路。
    petrinet是离散并行系统的数学表示,适合于并发的、异步的数学模型。经典的pn是简单的过程模型,由两种节点(库所、变迁)及有向弧及令牌(token)组成。描述了完备的支撑过程调度算法,基于petrinet的工作流引擎,其引申了两种节点:一种是state,一种是activity,其中state演化自place,activity演化自transition。
   
   

你可能感兴趣的:(----工作流引擎几种实现 -- Work Flow Application 4)