工作流引擎

正好我也在学习工作流引擎。

工作流是业务流程的全部或部分自动化,在此过程中,文档、信息或任务按照一定的过程规则流转,实现组织成员间的协同工作,以达到业务的整体目标。
工作流管理系统是支持企业经营过程高效执行并监控其执行过程的计算机软件系统。
典型的WFMS至少由如下几个模块组成:业务流程建模定义工具、过程定义、工作流执行环境(引擎)、任务管理。当然还会包括应用和IT工具。

常用的工作流引擎有osworkflow,jbpm,shark。刚学习了一点osworkflow,现在转向jbpm,公司要求,没办法。

osworkflow,最大特点就是灵活,这个网上都说遍了。也就是说它提供了一个引挚,在此基础上你可以进行扩展,可以自已写一些条件、动作类,只是继承它的接口就行,不需要修改它的源代码。他只提供一个工作流控制框架给你,他也只专注于管理工作流自身的东西,对其他的东西不管,其他的功能对他来说都只是一个插件组件。所以你可以自己扩展里面的功能,例如用户管理模式,工作流本身不带用户模式,他公司的另外一个项目osuser,可以结合使用来管理用户权限,当然你可以不用osuer,自己建立自己的用户模式,其实就是建立自己的运行判断条件;支持多种插件式的持久化机制;他的数据表也很少,就三个……



下面是引用其他网页的话:

Shark的流程定义语言是XPDL,我们知道,XPDL的两个最重要的概念是Process和Activity。XPDL中的Activity是基于UML1.x中的活动图的概念。活动图天生的适于工作流程建模,它相对于状态图的一个最大的优点是容易做并发线程的分叉控制,这些并发线程可以同时执行也可以顺序执行;它还有一个优点是有泳道的概念,可以控制工作流引擎中的任务的产生。Shark的如来神掌是活动图。

Osworkflow的如来神掌又是什么呢?我们知道,它有个重要概念是State……呵呵,我们知道了,它的如来神掌是FSM。不知道FSM是什么东西??那你读大学时肯定不是好学生;当然了,不知道也不打紧,你把他类似理解为状态图就可以了。Osworkflow中的State是由step和status联合表达的,一个State就是一个step中的某个status;而state的转换由action来驱动,类似状态图中的event,因为一个event对应一个action嘛。

Jbpm的如来神掌就没有上面的简单了,它结合应用了状态图+活动图+PetriNet的知识,而且,这里的活动图还是UML2.0版的。UML2.0的活动图中,节点不叫活动(Activity)而叫动作(action),活动成了一个高层次的概念,它包含一个动作序列。一个活动图展现一系列的动作,这些动作组成了活动。Jbpm把action也改名了,称为state。Jbpm使用的状态图的概念有transition/event等,这个自己去看吧。Jbpm来内部实现中还采用了PetriNet的概念,如token,signal等。什么?又不知道PetriNet什么东东?那你大学是学计算机的吗?不是?那你可能是学文科的,学机械/电气/土木工程/交通运输等专业都有接触PetriNet的课程,如果没有学过,还是看看jbpm吧,反正我们也不搞理论,知道大致概念就行。

你可能感兴趣的:(工作流引擎)