`
snowfox2008
  • 浏览: 124865 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jbpm3与jbpm4实现对比

阅读更多

jBPM3 vs jBPM4

JBoss Goup 目前已经发布了 jBPM4 Alpha1 版本,在版本 4 中最大的变化就是引入 PVM (流程虚拟机)的概念,而引擎内部的调度算法中重要的 Token 机制,在新版中也去掉了,纵观整个代码,变化可以说非常的大,笔者接下来就试着来比较一下这种变化,让大家能有个直观的认识。当然 Jbpm4 JBoss 的官方网站上的 Road map 中,在今年的 7 1 号才会发布第一个正式版本,因此后续可能还会有变化。

1、   流程定义对象的变化:

Jbpm3 流程定义对象关系图:

图一 jbpm3流程定义对象关系图

 

从上图我们可以看出这 jbpm3 中, GraphElement 是流程图中所有流程元素的父对象,而整个流程是由 ProcessDefinition Node Transition 三个主要对象构成;

 

 图二 PVM 实体对象关系图      

 

 

从上图可以看出,由于 PVM 概念的引入,所以在 jbpm3 中的 Graph 包在 jbpm4 中被移除了。在 pvm 中,在设计期,所有节点元素的父类为 ProcessElementImpl ,流程的主要组成元素 Nodelmpl TransitionImpl ProcessDefinitionImpl EventImpl 则都直接或间接继承自 ProcessElementImpl 。在运行期: jbpm4 把流程的运行期行为定义为执行行为( ExecutionImpl )及原子操作行为( AtomicOperation ,其具体实现为 ExecuteNode ProceedToDestination TakeTranstion MoveToParentNode MoveToChildNode signal ),其中 ExecutionImpl 是流程实例、活动实例、事件监听器的所有执行期行为的实现类。

 

图三 jpdl 运行期活动实体对象关系图

  上图是 jbpm4 在运行期的活动实例对象关系图,从图中我们可以看出,在运行期, jbpm4 中定义了两个活动接口 Activity ExternalActivity ,其中 ExternalActivity 继承自 Activity Activity 是所有自动活动节点的父接口,其实现类为 JpdlActivity ,而 JpdlActivity 又衍生出了、 StartActivity JoinActivity ForkActivity EndActivity CreateTimerActivity JavaActivity EsbActivity 等实例活动对象。而 ExternalActivity 是具有等待状态的活动( StateActivity )父接口,像人工活动 TaskActivity 就是实现了此接口。

  2、   核心引擎的调度算法

Jbpm3 的核心调度算法是基于 Token 机制的,在运行期这个 Token Node Instance 之间流转,依靠 Token 的触发来推进流程。具体的调度机制,可参加胡长城的文章( http://blog.csdn.net/james999/archive/2007/09/02/1769592.aspx );其实这个 Token 来自于 Pertri-net ,感兴趣的读者可以去看 Pertri-net 中的 Token Place

 

图四 jbpm3引擎调度图  

Jbpm4 则去掉了 Token ,那么它的核心调度机制是怎样实现的呢?

 图五 jbpm4流程启动序列图

图六 jbpm4 流程推进序列图

图五是在 jbpm4 中启动一个流程实例的执行序列图,图六是节点推进的执行序列图,从上面两个图中我们可以看到核心的调度是依据 Execution 的转移来实现的( ExecutionImpl 可以是 ActivityExecution ClientProcessInstance EventListenerExecution 的实例), Execution 实际上就是取代了 Jbpm3 中的 Token Execution 的转移实际上就是根据状态机的变迁( ActivityExecution ClientProcessInstance EventListenerExecution 实例之间的切换)加上调用相应的原子操作: ExecuteNode MoveToChildNode MoveToParentNode ProceedToDesitination Signal TakeTransition (详见 pvm/internal/model/op 包下的相关类)来实现的。所以 Execution 实例的集合及有向图实际上就是运行期的路径。

 

3、   Event-Action 机制的变化

jbpm3 中是基于 Event-Action 机制来实现事件与动作的触发的,但是在 jbpm4 中则采用观察者模式来触发事件的。所有用户自己定义的动作,全部要实现 EventListener 接口,这些动作作为监听者(就是事件 Event 的观察者 Observer )注册到相应的流程定义对象上( ProcessElement 或者 Node ),而事件 Event 则作为被观察的对象(实际上就是 Observerable ),实际上在 jbpm4 中专门定义出了一个对象 ObservableElementImpl ,流程定义中的 NodeImpl TransitionImpl ProcessDefinitionImpl 均继承自此对象,因此这些元素本身就可以作为 Observerable 而被观察者来监控。

4、   客户端接口的变化

jbpm4中对客户端的接口统一为7个服务接口:ProcessServiceExecutionServiceCommandService TaskService ManagementServiceHistoryServiceIdentityService,这7个接口可以从ProcessEngine接口中获得,jbpm4在启动的过程中由JbpmConfiguration负责构建引擎。

Ø  ProcessService-流程定义的服务接口,包括对流程定义的部署、查询、删除操作;

Ø  ExecutionService-执行服务接口,包括启动流程、实例推进、设置变量等操作;

Ø  CommandService-Command模式的服务接口,实际上就是将客户端的请求全部封装在一个调用接口中,然后由这个接口去调用Command接口的众多实现(StartExecutionCmdSignalCmdSetVariablesCmdGetTimersCmdDeployCmdNewTaskCmdSubmitTaskExecuteJobCmd等等,具体可参加pvm/internal/cmdtask/internal/cmd包及其它包下实现Command接口的类),这是典型的Command模式的应用,感兴趣的读者可以去了解设计模式中的Command模式;

Ø  TaskService-人工活动的服务接口,包括对任务的创建、提交、查询、保存、删除等操作;

Ø  ManagementService-web管理控制台的服务接口,目前只有获得消息及计时器的接口实现;

Ø  HistoryService-目前有对历史库中的流程实例、活动实例进行查询、某个流程定义中的所有活动的平均持续时间、某个流程定义中的某个活动实例的转移的执行次数

Ø  IdentityService-用户、组、成员关系的相关操作方法

 

5、 历史库的加入

jBPM3中数据库设计一直是我比较诟病的地方,尤其是其实例数据库没有设计历史库的概念并按照办结状态将运行结束的实例数据归入历史库,在这种情况下它的实例数据库就会随着时间而无限膨胀,这就阻碍了它的真实应用,而在jBPM4的最新代码中(注意Alpha1还没有出现),历史库的相关功能代码竟然出现了!详见ExecutionImpl最新代码中的fireHistoryEvent方法及一系列的historyXXX方法。在ActivityBehaviourexecute方法中加入了historyTaskStart方法的调用、signal方法中加入了historyTaskEnd方法的调用,而以上2个方法在ExecutionImpl中都是以历史事件(HistoryEvent4个实现子类ProcessInstanceStartProcessInstanceEndActivityStartActivityEnd分别用作流程实例的创建结束期、活动实例的创建结束期的历史数据处理)的触发机制来实现的,也就是在整个流程实例执行的过程中,都加入了对将运行数据存入历史库的历史事件(HistoryEvent)的触发。这样实例列表的查询可以只查询历史库。不过这里很遗憾的是,这个事件没有同时清除运行库的数据,这样还是会造成运行库的无限膨胀问题。

 

  • 大小: 8.8 KB
  • 大小: 12.5 KB
  • 大小: 8.8 KB
  • 大小: 114.6 KB
  • 大小: 31.4 KB
  • 大小: 26.4 KB
分享到:
评论
33 楼 乐邪鬼 2009-11-20  
4.0的文档完全看不懂,连附带的exmaple都跑不起来。
32 楼 llfzy 2009-10-12  
<p>JBPM我用的还不怎么熟练!</p>
<p> </p>
<p> </p>
<p><a href="http://s.click.taobao.com/t_1?i=qz78fN%2Bpk8BTuQ%3D%3D&amp;p=mm_14292671_0_0&amp;n=11"><br>入门单反新王者 佳能高清500D套机(含18-55IS镜头)</a><br><a href="http://s.click.taobao.com/t_1?i=qX1fEUekOgm0qg%3D%3D&amp;p=mm_14292671_0_0&amp;n=11">【国庆特价】台湾微米1200万高清摄像机HDVH20 D80 HD-D10升级版</a><br><a href="http://s.click.taobao.com/t_1?i=qvYi2aN5Z3nzeA%3D%3D&amp;p=mm_14292671_0_0&amp;n=11">◥◣全国联保 大陆行货◢◤索尼T900 &lt;高清视频&gt; 国庆促销300台</a><br><a href="http://s.click.taobao.com/t_1?i=qvezK1P3Kbqvog%3D%3D&amp;p=mm_14292671_0_0&amp;n=11">09年新款DDV-6800HD数码相机摄像带遥控MP3/MP4 升级1600万像素</a><br><a href="http://s.click.taobao.com/t_1?i=qvQus%2F2p41Lujg%3D%3D&amp;p=mm_14292671_0_0&amp;n=11">国庆促销 [酷拍] 高清防抖数码摄像机,1200万像素</a><br><a href="http://s.click.taobao.com/t_1?i=qXn%2BA9WaqYRvCg%3D%3D&amp;p=mm_14292671_0_0&amp;n=11">K800/K600姊妹机■特价!尼柯K99■500万像素 4倍变焦 摄像 扩展</a><br><a href="http://s.click.taobao.com/t_1?i=qXssJ92egGbuAg%3D%3D&amp;p=mm_14292671_0_0&amp;n=11">松下LX3GK 正品大陆行货★ 千万像素+24mm超广角 ★钻石信誉</a><br><a href="http://s.click.taobao.com/t_1?i=qXMWriRrolnhAw%3D%3D&amp;p=mm_14292671_0_0&amp;n=11">五一特价 DV-592(DV592)升级版1600万像素超大3.0屏数码摄像机</a><br><a href="http://s.click.taobao.com/t_1?i=of9UcXaRZj6i&amp;p=mm_14292671_0_0&amp;n=11">1200万像素3.0屏带MP3/4多功能数码摄象机 DV-568(DDV-V8)<br></a><a href="http://s.click.taobao.com/t_1?i=qXpboEyxxOA%2BPQ%3D%3D&amp;p=mm_14292671_0_0&amp;n=11">1200万数码相机/摄像 美柯隆数码相机 536/1288 支持4G</a><br><a href="http://s.click.taobao.com/t_1?i=qveyF7B3BMxljg%3D%3D&amp;p=mm_14292671_0_0&amp;n=11">微米HDV-H20高清数码摄像机 5倍光变 1200万相素 防抖功能+套餐</a></p>
31 楼 vanlin 2009-10-12  
是哦, jbpm4 实现方式看起来复杂了,,给用户(程序员)的方面则简单了不少,,也更好处理咯。。
30 楼 Else 2009-06-15  
我现在用的CR1,问题也很多,有很多examples流程中的element在jpdl-4.0.xsd根本没有定义,现在在查原因。。
29 楼 lovit 2009-06-09  
melin 写道
我们系统现在每天要启动5万左右的流程单子,都是流程归档时移入历史表中。

是用jbpm吗??
28 楼 momo_1204 2009-06-09  
请问下,流程审批人撤回操作支持吗,也就是说他刚批完,流程转到了下一步,突然发现自己批错了,想撤回来重新批,这时的逻辑如何处理(可能他刚才的审批时执行了动作,比如金额加了100等),谢谢高手回答,呵呵
27 楼 melin 2009-04-25  
我们系统现在每天要启动5万左右的流程单子,都是流程归档时移入历史表中。
26 楼 yaoqiang_csdn 2009-03-18  
赞赞赞赞赞
25 楼 intelchen 2009-02-23  
147175882 写道
snowfox2008 写道
5、历史库的加入
jBPM3中数据库设计一直是我比较诟病的地方,尤其是其实例数据库没有设计历史库的概念并按照办结状态将运行结束的实例数据归入历史库,在这种情况下它的实例数据库就会随着时间而无限膨胀,这就阻碍了它的真实应用,而在jBPM4的最新代码中(注意Alpha1还没有出现),历史库的相关功能代码竟然出现了!详见ExecutionImpl最新代码中的fireHistoryEvent方法及一系列的historyXXX方法。在ActivityBehaviour的execute方法中加入了historyTaskStart方法的调用、signal方法中加入了historyTaskEnd方法的调用,而以上2个方法在ExecutionImpl中都是以历史事件(HistoryEvent有4个实现子类ProcessInstanceStart、ProcessInstanceEnd、ActivityStart、ActivityEnd分别用作流程实例的创建结束期、活动实例的创建结束期的历史数据处理)的触发机制来实现的,也就是在整个流程实例执行的过程中,都加入了对将运行数据存入历史库的历史事件(HistoryEvent)的触发。这样实例列表的查询可以只查询历史库。不过这里很遗憾的是,这个事件没有同时清除运行库的数据,这样还是会造成运行库的无限膨胀问题。

大家对此的意见呢?




个人觉得这是个比较鸡肋的功能,因为当一个流程结束后,如果把数据放进历史库那么会存在很多问题,因为一个实际的生产流程往往很复杂,当一个流程结束后,会在很多jbpm自带的表里面会生成很多数据,随随便便就可以上百条都是可能的.这时,如果要在流程结束时同步插入到历史表且删除现行表中的相关数据会是一个很复杂的功能,(比如说:表之间都是建了关联的,不管是插入还是删除都要注意顺序问题,而且表中如果建了索引的话,增删都相对慢).当然如果不出问题的话,这样也行.但如果删除数据过程中出现了异常,可能就是个很棘手的问题,1事务要不要回滚,事务的粒度怎么定位,换句话说,要不要把用户的操作也回滚掉.2回滚事务的话,数据是不会被删的(因为事务回滚),那么怎么通知系统下次删除这批数据.
当然问题可能更多,我觉得jbpm开发人员不做这些处理不是因为他们没想到,可能只是把jbpm定位在一个插件或挂件级别.不好做处理.
为了解决这个问题,以前我们项目组就采用了异步的方法.用quarz做了个定时任务,定时归档已经处理完的任务,也就是插入到历史表且删除现行表的相关数据.
个人感觉,即使jbpm4也很难从本质上解决楼主所说的这个问题.


我也那么认为,历史数据可以作为时候备份的机制来处理,如果jbpm4支持可以配置的备份机制,否则还是在实际应用中根据需求来进行选择备份。
24 楼 intelchen 2009-02-23  
ynstudio 写道
高手!
我也在研究jbpm4。我们的工作流就基于jbpm4来做的,不过现在才开始流程管理之类的功能的开发。

jbpm的alaph版本你们也敢用?
你们的基于jbpm4是做实际项目还是只是作为研究的项目?
23 楼 elvishehai 2009-02-19  
有没有简单的demo
22 楼 snowfox2008 2009-02-19  
147175882 写道
snowfox2008 写道
5、历史库的加入
jBPM3中数据库设计一直是我比较诟病的地方,尤其是其实例数据库没有设计历史库的概念并按照办结状态将运行结束的实例数据归入历史库,在这种情况下它的实例数据库就会随着时间而无限膨胀,这就阻碍了它的真实应用,而在jBPM4的最新代码中(注意Alpha1还没有出现),历史库的相关功能代码竟然出现了!详见ExecutionImpl最新代码中的fireHistoryEvent方法及一系列的historyXXX方法。在ActivityBehaviour的execute方法中加入了historyTaskStart方法的调用、signal方法中加入了historyTaskEnd方法的调用,而以上2个方法在ExecutionImpl中都是以历史事件(HistoryEvent有4个实现子类ProcessInstanceStart、ProcessInstanceEnd、ActivityStart、ActivityEnd分别用作流程实例的创建结束期、活动实例的创建结束期的历史数据处理)的触发机制来实现的,也就是在整个流程实例执行的过程中,都加入了对将运行数据存入历史库的历史事件(HistoryEvent)的触发。这样实例列表的查询可以只查询历史库。不过这里很遗憾的是,这个事件没有同时清除运行库的数据,这样还是会造成运行库的无限膨胀问题。

大家对此的意见呢?




个人觉得这是个比较鸡肋的功能,因为当一个流程结束后,如果把数据放进历史库那么会存在很多问题,因为一个实际的生产流程往往很复杂,当一个流程结束后,会在很多jbpm自带的表里面会生成很多数据,随随便便就可以上百条都是可能的.这时,如果要在流程结束时同步插入到历史表且删除现行表中的相关数据会是一个很复杂的功能,(比如说:表之间都是建了关联的,不管是插入还是删除都要注意顺序问题,而且表中如果建了索引的话,增删都相对慢).当然如果不出问题的话,这样也行.但如果删除数据过程中出现了异常,可能就是个很棘手的问题,1事务要不要回滚,事务的粒度怎么定位,换句话说,要不要把用户的操作也回滚掉.2回滚事务的话,数据是不会被删的(因为事务回滚),那么怎么通知系统下次删除这批数据.
当然问题可能更多,我觉得jbpm开发人员不做这些处理不是因为他们没想到,可能只是把jbpm定位在一个插件或挂件级别.不好做处理.
为了解决这个问题,以前我们项目组就采用了异步的方法.用quarz做了个定时任务,定时归档已经处理完的任务,也就是插入到历史表且删除现行表的相关数据.
个人感觉,即使jbpm4也很难从本质上解决楼主所说的这个问题.


呵呵,不错!不过如果jbpm4不解决这个问题,那么它还是一个中看不中用的引擎,那么就必须由项目的开发人员去做这件事,就像你们用quartz处理一样。其实复杂不复杂还是在于实例数据之间的关系,jbpm的数据库表个人一直认为太过于复杂,不过对于基于orm来实现持久层的产品来说,实现起来就要简单一些,因为po之间的关系已经由orm工具维护好了(例如流程实例就是所有其它实例的祖父,删除所有实例时,只对流程实例做操作就可以了,不会像您所说的要处理关系什么的),至于工作流实例本身的事务也不用担心,而对于业务数据也不需要处理,只要业务数据和工作流实例数据有一个唯一的关联关系就可以了,移到历史库关系不会做改变。
最后要说明的是,这个归入历史库,清除运行库的操作,在流程结束时去触发一个异步的事件,由这个异步的事件来干这件事,这样就不会影响流程的最后一个用户的体验了。而对于索引问题,这时运行库就会稳定一个数量级上基本上就不会变化,因此运行库就没有必要建索引了。而历史库肯定需要建索引(因为主要用来查询),但是对于历史库的查询,在真实的业务系统中,使用的频率本身就很低,所以影响也不会很大。
21 楼 dekko 2009-02-19  
好文,顶,楼主加油,持续关注!
20 楼 kjj 2009-02-18  
left405 写道
请问 jbpm3 还没有搞得非常明白,  就去看jbpm4 合适吗

应该没问题,两者差别比较大!
19 楼 147175882 2009-02-18  
snowfox2008 写道
5、历史库的加入
jBPM3中数据库设计一直是我比较诟病的地方,尤其是其实例数据库没有设计历史库的概念并按照办结状态将运行结束的实例数据归入历史库,在这种情况下它的实例数据库就会随着时间而无限膨胀,这就阻碍了它的真实应用,而在jBPM4的最新代码中(注意Alpha1还没有出现),历史库的相关功能代码竟然出现了!详见ExecutionImpl最新代码中的fireHistoryEvent方法及一系列的historyXXX方法。在ActivityBehaviour的execute方法中加入了historyTaskStart方法的调用、signal方法中加入了historyTaskEnd方法的调用,而以上2个方法在ExecutionImpl中都是以历史事件(HistoryEvent有4个实现子类ProcessInstanceStart、ProcessInstanceEnd、ActivityStart、ActivityEnd分别用作流程实例的创建结束期、活动实例的创建结束期的历史数据处理)的触发机制来实现的,也就是在整个流程实例执行的过程中,都加入了对将运行数据存入历史库的历史事件(HistoryEvent)的触发。这样实例列表的查询可以只查询历史库。不过这里很遗憾的是,这个事件没有同时清除运行库的数据,这样还是会造成运行库的无限膨胀问题。

大家对此的意见呢?




个人觉得这是个比较鸡肋的功能,因为当一个流程结束后,如果把数据放进历史库那么会存在很多问题,因为一个实际的生产流程往往很复杂,当一个流程结束后,会在很多jbpm自带的表里面会生成很多数据,随随便便就可以上百条都是可能的.这时,如果要在流程结束时同步插入到历史表且删除现行表中的相关数据会是一个很复杂的功能,(比如说:表之间都是建了关联的,不管是插入还是删除都要注意顺序问题,而且表中如果建了索引的话,增删都相对慢).当然如果不出问题的话,这样也行.但如果删除数据过程中出现了异常,可能就是个很棘手的问题,1事务要不要回滚,事务的粒度怎么定位,换句话说,要不要把用户的操作也回滚掉.2回滚事务的话,数据是不会被删的(因为事务回滚),那么怎么通知系统下次删除这批数据.
当然问题可能更多,我觉得jbpm开发人员不做这些处理不是因为他们没想到,可能只是把jbpm定位在一个插件或挂件级别.不好做处理.
为了解决这个问题,以前我们项目组就采用了异步的方法.用quarz做了个定时任务,定时归档已经处理完的任务,也就是插入到历史表且删除现行表的相关数据.
个人感觉,即使jbpm4也很难从本质上解决楼主所说的这个问题.

18 楼 left405 2009-02-18  
请问 jbpm3 还没有搞得非常明白,  就去看jbpm4 合适吗
17 楼 147175882 2009-02-18  
jbpm4的jpdl不是很好用啊,不能在画图的时候设置flow的属性,用XML的模式编辑完后,只要修改jdpl模型,XML的编辑全部被清空了.
楼主有没有这种感受啊?

相对而言用pvm开发还显得快点
16 楼 pior 2009-02-18  
正好要学习工作流```那是不是可以直接从JBPM4入手了??
15 楼 piaoling 2009-02-18  
呵呵,写得非常好,JBPM看样子源码得重看了
14 楼 snowfox2008 2009-02-17  
supercwg 写道
jbpm 4 是不是不支持 Spring 啊??? 好像都没有看到关于jbpm的技术架构文档介绍的

当然支持了,在jbpm4中有:SpringCommandService、SpringEnvironmentContext、SpringEnvironment、SpringConfiguration。其实说白了,根本就不存在支持不支持这种说法,因为即使这里面完全没有Spring的代码,你也可以自己去集成。

相关推荐

    JBPM与Activity分析.doc

    JBPM与Activity实现原理与性能分析.doc

    javaeye热点阅读

    1.2 jbpm3与jbpm4实现对比 1.3 Java、PHPRPC、Hessian、Burlap、AMF3、XML 序列化的效率对比1.4 Effective Java Second Edition中文版已出版1.5 国内开源工作流 Fire Workflow 出炉了 1.6 Word/Excel/PDF文件转换成...

    应用jBPM4解决中国特色的流程需求

    除此之外还有很多其它的特点:流程定义对象的变化在流程定义的对象上,节点类型划分更清晰,详细的对象解析,可参见我曾经写过的文章:《jBPM3与jBPM4实现对比》。基于观察者模式的Event-Listener机制在jBPM4中活动...

    jbpm和shark工作流引擎对比.doc

    吐血分享 非常全面的jbpm和shark工作流引擎对比

    JBPM4.4与SSH2之整合(附可运行源码和jar包列表)(my_jbpm4.4_ssh2.rar)

    这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么差异(经过网上的收集对比,还真有些差异),整合起来,还真是有些步履艰难。收集了不少别人的整合资料和源码,但是最终...

    Java四大主流开源工作流引擎分析Shark,osworkflow,jbpm,jflow

    Jbpm3的持久层采用hibernate3来实现,也是因为这个原因吧。Jbpm3的图形化流程定义已经决定嵌入到jboss eclipse IDE中,大家看看jboss eclipse IDE preview 1.5版,我们已经可以用插件方式编辑一个jbpm3流程定义文件...

    JBPM4.4与SSH2之整合详细描述

    这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么差异(经过网上的收集对比,还真有些差异),整合起来,还真是有些步履艰难。收集了不少别人的整合资料和源码,但是最终...

    JBPM开发手册和用户手册

    JBPM4.3 开发手册和用户手册 包含JBPM多个版本的对比

    两款java工作流引擎BPM领域的流行的20种模式jbpm与ccbpm的对比

    NULL 博文链接:https://ccflow.iteye.com/blog/2430276

    工作流引擎的选择

    在jBPM3中,节点的运行期行为与jPDL里定义的节点类型是一一绑定的,这造成了流程引擎与特定流程语言的绑定,要支持其他的流程语言变得困难。由于这些缺点所以不在选择范围之内,故没有在下表中列出对比。 BPMS旨在...

    Activiti实战(咖啡兔)-含目录

    Activiti实战(咖啡兔)-高清含目录,工作流在每一个需要流程处理的系统中不可或缺,符合BPMN2.0规范且开源的流程引擎(或平台)才是每个公司需要的,结合长期以来(从jBPM4停止更新)开源流程引擎的使用上可以分为...

    工作流技术可行性分析

    工作流技术可行性分析 包含 jbpm activiti 的对比分析。

    OA管理系统MyOA

    工作流的起源以及发展作了简单的介绍,其中主要介绍了在工作流领域...Activiti 目前所拥有的优势,并且与“成熟”的 jBPM 进行对比,在经过对工作流领域以及 Activiti 的简单介绍后,本书将带领读者开始 Activiti 之旅

    drools:Drools是Java的规则引擎,DMN引擎和复杂事件处理(CEP)引擎

    开发Drools和jBPM 如果要构建或参与kiegroup项目,请。 正确设置开发环境将为您和我们节省大量时间。 它解决了可能会破坏您的开发的所有已知陷阱。 它还描述了所有准则,技巧和窍门。 如果您希望将拉取请求(或补丁...

Global site tag (gtag.js) - Google Analytics