客观地说jBPM还是不错的,虽然我没有在项目中用过IBM,oracle等产品,但是我感觉jbpm比这两个大公司的产品好用,大公司的bpm产品纯粹徒有虚名。
这里,我不得不说,当前Fire workflow比jBPM还是要强一点点,
。我碰到很多人,非常迷信jBPM的流程虚拟机。对此我相当不以为然,本来计划写一系列的文章比较一下这两款产品,但是由于时间的问题,这个计划又要延迟了,甚至有点无限延迟的意思了。
今天我终于抽出时间,向大家再次吹一个牛皮,就是告诉大家如何在Fire workflow上面做一点简单的定制就能实现BPEL语言。在Fire 微内核上实现BPEL要比jBPM PVM漂亮N倍.
我没有时间实现完整的BPEL,只是实现了BPEL中的Sequnce, IF,While等语法。在附件中是一个完整的Eclipse项目,已经写好了测试用例,大家可以试验。
实现BPEL语法基本上只要在Fire 上增加3个类即可
BpelTranslator:实现Bpel语法到Fire 流程模型的转换
ActivityInstanceExtension,SynchronizerInstanceExtension:响应微内核事件驱动BPEL语言。
下面是一个复杂的BPEL语法的流程以及他的执行效果
当x=1,a=2,b=2时,执行结果如下:
- Sequence1 begin!
- Activity1.1 executed!
- If1.2 begin!
- IF_1.2.2 begin!
- Activity1.2.2.2 executed!
- IF_1.2.2 end!
- If1.2 end!
- While1.3 begin!
- XYZActivity executed!(1)
- While1.3 end!
- While1.3 begin!
- XYZActivity executed!(2)
- While1.3 end!
- Activity1.4 executed!
- Sequence1 end!
复制代码 那么BPEL的语言结构在Fire 工作流网中表现为什么样子呢?下面这个图是While在Fire工作流网中的结构,在附件中的project中,可以打开测试类中的注释,将转换后的流程图输出来。
阅读(954) | 评论(1) | 转发(0) |