你用过哪些工作流产品?

最初接触工作流是从jBPM开始的,从对工作流没有什么概念,到将其应用到一个小项目中,研究了两三个月。

开源的工作流缺乏文档,更重要的是缺乏结合业务的示例。试用jBPM的日子可谓痛并快乐着,配置成功花费了好几天的时间。因网上给出的配置范例都是使用Hibernate,而我用的是ibatis,jBPM与ibatis使用不同的数据源。结果一个jBPM与Spring的结合,再加上ibatis和事务控制,把我弄得焦头烂额,但终究大功告功,可谓大大松了一口气,可以进行实战了。

jBPM源码中给出的例子虽然在教你怎么用它的API,但都是些玩具,没有一个结合业务逻辑的例子。网上流转的那个请假的例子,算是唯一可以学习的榜样。但还是过于简单,离实际应用有很大的差距。最后我做了一个在线订单系统把jBPM用上了,没用去实现那些有中国特色的工作流功能(回退,会签,自由流等)功能。

 

当时我很想知道商用的工作流产品是个什么样子,到底实现了哪些功能。恰巧现在的项目用到了西安协同的工作流,这也算是国内工作流软件的一个老牌子了。使用jBPM的经验,让我自然的将两者进行对比。说功能,当然是商用产品功能产品强。对回退/自由流/会签/取回/同步工作组/异步工作组这些较复杂功能的支持,加上与组织架构的结合,使商用工作流产品显得强悍很多。

而做为开源Java工作流的老大jBPM,在工作流设计上显得要优雅很多,从api的设计,总体架构来看,jBPM是大师的作品,而西安协同的工作流就像是软件作坊出来的。从工作流引擎的原理上看,jBPM更加灵活。

 

jBPM的设计与一般工作流产品最大的不同在于,jBPM没有服务端,它与你的其他代码一样,运行在你的web服务器里。而一般工作流产品都有服务端,引擎运行在服务端,你必须架设工作流服务器,客户端通过RMI的方式与服务端连接。RMI方式有短暂的延时,所以你完成一个工作项后,并不能马上返回下一个工作项的实例。

 

移植性来说,jBPM工作流更方便。因为他的移植只需移植他的流程定义文档,而不用管数据库。流程定义文档就是用源码的一部分,受版本控制, 流程定义要更新到数据库时,只需调用jBPM的一个API,你可以用ant实现自动发布。而西安协同的工作流在流程定义时,就将一些数据写入了数据库,移植时需要用其专用工具导成jar文档,再导入。

 

有人认为,有服务器端可以承受更大的负载,性能更好,必要时还可以使用集群。当有多个客户端时,都由服务器端统一控制,所以不用担心数据竞争访问的问题。而jBPM这种,若为了统一管理使用同一工作流数据库,但客户端各自管理工作流引擎,会有数据竞争访问的问题?

 

你使用过哪些工作流产品,觉得哪种更好呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值