论坛首页 Java企业应用论坛

国内开源工作流 Fire Workflow 出炉了

浏览 100700 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-02-11  
jn_betterfly 写道
1、流程定义文件的本质,流程定义文件的存储与版本控制
2、业务数据vs工作流数据
3、流程数据存取设计与事务一致性
4、与用户管理系统的接口
5、与业务表单的接口
6、自由流
7、退回与取回
8、委派
9、工单签收与业务实际中的材料移交
10、工作流系统的性能问题

相对于工作流引擎,我更关心怎么使用其来解决业务上的问题,这几个题目都很好,期待你能给大家提供一些好的经验



在我的blog中已经有了初稿,关于工作流的性能问题还没有写完,其他的都写了。欢迎交流。下面是关于流程数据保存于事务一致性的设计方案。

3、流程数据存取设计与事务一致性

    Fire Workflow的流程数据的存取都是通过org.fireflow.engine.persistence. IPersistenceSerivce的实现类完成的,假设这个实现类的名字是MyPersistenceService。那么MyPersistenceService其实就是一个存取多张工作流表的DAO而已,和你的业务系统的DAO处于相同的地位,没有任何区别。示意图如下。

    如果你的系统采用的是申明式事务,将事务申明添加到MyPersistanceService上即可以实现业务操作和流程操作在同一个事务中。
    如果你的系统采用的是编码实现的事务,只要将调用流程引擎的代码和和业务逻辑代码放在同一个事务中即可。在Fire Workflow Example中,采用的是编码实现的事务,可以参考。
    Fire Workflow已经提供了org.fireflow.engine.persistence. IPersistenceSerivce一个缺省实现类org.fireflow.engine.persistence. hibernate.PersistenceServiceHibernateImpl,该类基于hibernate的,你当然也可以自行编写基于iBATIS,Toplink,甚至JDBC的实现类。
  • 大小: 22.9 KB
0 请登录后投票
   发表时间:2009-02-11   最后修改:2009-02-11
huaandylau 写道
楼主, 我在使用eclipse插件时, 图形界面出现的乱码,  GEF的版本是3.2.2


是环节和任务的名字出现乱码吗?

这是20090202版本的设计器的bug,输出文件的编码格式有点问题。你创建一个新的流程看看有无乱码。

或者贴图上来看看。
0 请登录后投票
   发表时间:2009-02-11  
呵呵 谢谢楼主了 正好我还没用过工作流呢
0 请登录后投票
   发表时间:2009-02-12  
nychen2000 写道
jn_betterfly 写道
1、流程定义文件的本质,流程定义文件的存储与版本控制
2、业务数据vs工作流数据
3、流程数据存取设计与事务一致性
4、与用户管理系统的接口
5、与业务表单的接口
6、自由流
7、退回与取回
8、委派
9、工单签收与业务实际中的材料移交
10、工作流系统的性能问题

相对于工作流引擎,我更关心怎么使用其来解决业务上的问题,这几个题目都很好,期待你能给大家提供一些好的经验



在我的blog中已经有了初稿,关于工作流的性能问题还没有写完,其他的都写了。欢迎交流。下面是关于流程数据保存于事务一致性的设计方案。

3、流程数据存取设计与事务一致性

    Fire Workflow的流程数据的存取都是通过org.fireflow.engine.persistence. IPersistenceSerivce的实现类完成的,假设这个实现类的名字是MyPersistenceService。那么MyPersistenceService其实就是一个存取多张工作流表的DAO而已,和你的业务系统的DAO处于相同的地位,没有任何区别。示意图如下。

    如果你的系统采用的是申明式事务,将事务申明添加到MyPersistanceService上即可以实现业务操作和流程操作在同一个事务中。
    如果你的系统采用的是编码实现的事务,只要将调用流程引擎的代码和和业务逻辑代码放在同一个事务中即可。在Fire Workflow Example中,采用的是编码实现的事务,可以参考。
    Fire Workflow已经提供了org.fireflow.engine.persistence. IPersistenceSerivce一个缺省实现类org.fireflow.engine.persistence. hibernate.PersistenceServiceHibernateImpl,该类基于hibernate的,你当然也可以自行编写基于iBATIS,Toplink,甚至JDBC的实现类。


从你的描述看,flow与application采用了嵌入式方式进行整合。
我有个问题,如果flow支持独立部署,application和flow的事务怎样来保证,你是怎么考虑的?
0 请登录后投票
   发表时间:2009-02-12  
fboy_bupt 写道
nychen2000 写道



在我的blog中已经有了初稿,关于工作流的性能问题还没有写完,其他的都写了。欢迎交流。下面是关于流程数据保存于事务一致性的设计方案。

3、流程数据存取设计与事务一致性

    Fire Workflow的流程数据的存取都是通过org.fireflow.engine.persistence. IPersistenceSerivce的实现类完成的,假设这个实现类的名字是MyPersistenceService。那么MyPersistenceService其实就是一个存取多张工作流表的DAO而已,和你的业务系统的DAO处于相同的地位,没有任何区别。示意图如下。

    如果你的系统采用的是申明式事务,将事务申明添加到MyPersistanceService上即可以实现业务操作和流程操作在同一个事务中。
    如果你的系统采用的是编码实现的事务,只要将调用流程引擎的代码和和业务逻辑代码放在同一个事务中即可。在Fire Workflow Example中,采用的是编码实现的事务,可以参考。
    Fire Workflow已经提供了org.fireflow.engine.persistence. IPersistenceSerivce一个缺省实现类org.fireflow.engine.persistence. hibernate.PersistenceServiceHibernateImpl,该类基于hibernate的,你当然也可以自行编写基于iBATIS,Toplink,甚至JDBC的实现类。


从你的描述看,flow与application采用了嵌入式方式进行整合。
我有个问题,如果flow支持独立部署,application和flow的事务怎样来保证,你是怎么考虑的?


你是基于何种考虑要把Workflow 独立部署呢?在我看来目前暂时不存在Workflow独立部署的业务场景。
0 请登录后投票
   发表时间:2009-02-12  
nychen2000 写道
fboy_bupt 写道
nychen2000 写道



在我的blog中已经有了初稿,关于工作流的性能问题还没有写完,其他的都写了。欢迎交流。下面是关于流程数据保存于事务一致性的设计方案。

3、流程数据存取设计与事务一致性

    Fire Workflow的流程数据的存取都是通过org.fireflow.engine.persistence. IPersistenceSerivce的实现类完成的,假设这个实现类的名字是MyPersistenceService。那么MyPersistenceService其实就是一个存取多张工作流表的DAO而已,和你的业务系统的DAO处于相同的地位,没有任何区别。示意图如下。

    如果你的系统采用的是申明式事务,将事务申明添加到MyPersistanceService上即可以实现业务操作和流程操作在同一个事务中。
    如果你的系统采用的是编码实现的事务,只要将调用流程引擎的代码和和业务逻辑代码放在同一个事务中即可。在Fire Workflow Example中,采用的是编码实现的事务,可以参考。
    Fire Workflow已经提供了org.fireflow.engine.persistence. IPersistenceSerivce一个缺省实现类org.fireflow.engine.persistence. hibernate.PersistenceServiceHibernateImpl,该类基于hibernate的,你当然也可以自行编写基于iBATIS,Toplink,甚至JDBC的实现类。


从你的描述看,flow与application采用了嵌入式方式进行整合。
我有个问题,如果flow支持独立部署,application和flow的事务怎样来保证,你是怎么考虑的?


你是基于何种考虑要把Workflow 独立部署呢?在我看来目前暂时不存在Workflow独立部署的业务场景。


对于一个把应用进行了集群配置的业务系统,使用了一个需要许可的Workflow产品,如果Workflow与app全部嵌入整合,那么需要购买多个Workflow许可,而使用独立部署的Workflow,则购买一份许可就可以了。
当然,这个是个采用Workflow产品产生的问题,我看到你的帖子后联想到的。
0 请登录后投票
   发表时间:2009-02-12  
lffsonic 写道
以前用JBMP工作流感觉太复杂了,不过图形化蛮好,不知道这个开源项目能在走多远。。。


有赖大家支持啊,哈哈。

Fire workflow站在JBPM的肩膀上,某些地方借鉴了。但是和JBPM实现方法的区别还是很大。相较于jbpm应该更简洁,性能更好些。Engine算法应该更加严谨。
0 请登录后投票
   发表时间:2009-02-12   最后修改:2009-02-12
对应工作流最近1年有一个心酸的体验,工作流往往会成为系统中最不稳定的一个环节。
希望楼主解决好以下几个方面。
  • 持久层至少要支持spring jdbc,hibernate两种方式。
  • 和业务代码必须保证在同一个事务里面,否则后果很严重。最好能够自动加入jdbc,hibernate两种事务管理器的事务范围
  • 设计通用工作流节点的人员过滤接口
  • 工作流表结构不要太复杂
  • 定义好的URL形式与业务表单关联上
0 请登录后投票
   发表时间:2009-02-12  
rain2005 写道
对应工作流最近1年有一个心酸的体验,工作流往往会成为系统中最不稳定的一个环节。
希望楼主解决好以下几个方面。
  • 持久层至少要支持spring jdbc,hibernate两种方式。
  • 和业务代码必须保证在同一个事务里面,否则后果很严重。最好能够自动加入jdbc,hibernate两种事务管理器的事务范围
  • 设计通用工作流节点的人员过滤接口
  • 工作流表结构不要太复杂
  • 定义好的URL形式与业务表单关联上


到http://code.google.com/p/fireflow下在文档吧,文档里回答了你所有的问题。
0 请登录后投票
   发表时间:2009-02-12  
fansofjava 写道
不过这种东西在没成熟之前不敢用啊,因为没团队支持,出了问题就不好办了。万一LZ哪天放弃了,那公司应用的项目怎么办呢?所以最好得先建立一个团队。国内大多数开源产品都是在一个人搞,所以企业根本就不敢用。



说的太好了,强烈赞同,没有团队就没有企业敢用,没人用就没有继续的动力,最后就不了了之了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics