论坛首页 Java企业应用论坛

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

浏览 100698 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-02-10  
菜鸟飞过,看各位大牛的帖子是一种享受啊,公司在不久的将来就要用到工作流了。自己先了解一下,哈哈,javaeye上的牛人真多啊。。
0 请登录后投票
   发表时间:2009-02-10  
严重期待,楼主放出各种最新代码和文档!
0 请登录后投票
   发表时间:2009-02-10  
很好,持续关注 ......
0 请登录后投票
   发表时间:2009-02-10   最后修改:2009-02-10
yuzhu712 写道
个人写的引擎怎么能跟集团化的相比.....????


如果集团化的的产品很好,为什么现在还没有很好的工作流产品?

Fire Workflow的目的首先不是和大厂商的PK,而是将我对工作流的理解表达出来。无论如何,Fire Workflow都值得看一下,和目前的工作流产品有很大的不同。

有几个问题非常欢迎大家探讨:
1、我认为流行的WfMC的XPDL很对,但很不好

2、《21中工作流模式》总结的很全,但很不对

3、记得有一本书大概叫做《工作流引擎原理设计实现》,好像是荷兰学者写的,我看了之后深以为然。后来读了袁崇义教授的《Petri 网原理与应用》,发现这本书的根基还是不正确!

0 请登录后投票
   发表时间:2009-02-10   最后修改:2009-02-10
《5_工作流应用中经典问题的解决方案》之一
------流程定义文件的存储与版本控制

1)题外话
    我们常常人为地将系统划分成所谓的“源代码(如java文件)”和“配置文件(或配置数据)”;甚至认为开发“源代码”的工作才是编程工作,编写配置文件、调整配置数据的工作是“免编程”。
    对此,我非常不以为然!且不说二者本来就没实质区别,都需要开发人员去开发;如果把“配置文件(或配置数据)”发挥至极端,复杂的不行,开发人员需要花更多的精力和时间去学习的话,“免编程”就没有任何价值!
    但是,并不能说java文件和Xml配置文件(尤其是数据库中的配置数据)没有区别。Java文件需要编译才能运行,xml配置文件和数据库中的配置数据修改后立即发挥作用。一般情况,下修改Xml配置文件和配置数据下比修改java文件简单。
    因此,在我看来java文件也好,xml配置文件也好.,配置数据也好都是系统的代码。对他们的开发活动都是“编程”。这几种代码都需要某种形式的版本控制。

2)Fire Workflow流程定义文件的存储与版本控制
    Fire Workflow流程定义文件是整个业务系统代码的一部分,以xml的形式表现,开发时存放在/src目录下,运行时存放在classpath中(如/bin或者/WEB-INF/classes或者某个jar包中)。在运行时通过“流程定义服务”的实现类org.fireflow.engine.definition. DefinitionService4FileSystem从classpath中读取定义文件。
    这种流程文件的存储方案非常简单,但是没有照顾到如下需求:1)在系统上线运行后,流程常常需要调整;在流程定义更新后,系统中仍然有旧版本的流程实例在运行。2)最终用户有自行调整业务流程的需求,存储在classpath中的流程定义不能适应这种需求。
    因此上述流程文件存储方案适合于系统开发阶段,方便开发人员快速地结合业务数据进行系统测试。而且,Fire Workflow提供了和流行的IDE结合的很好的设计器,使得开发测试业务流程就像开发测试一个java类一样简单。

    Fire Workflow流程定义文件还可以存储在后台数据库表T_FF_DF_WORKFLOWDEF 中。该表可以记录同名流程的各个版本。Fire Workflow要求每个流程实例只能在自己的流程版本上运行,不能“迁移”到同名流程的其他版本。这种规定不是Fire Workflow想“偷懒”,而是由于Fire Workflow是基于比较严密的Petri Net流转算法,同名的流程不同版本间很可能改变了网络拓扑结构,这种情况下流程实例“迁移”到新的流程版本后无法正确运行。以我的经验看,Fire Workflow的这种规定适合绝大多数业务场合。
    至于用户自行调整流程,将来可以通过FireWorkflow的WEB工具完成。(该Web工具尚未实现20090210)。
对于存储在T_FF_DF_WORKFLOWDEF中的流程定义文件,需要用“流程定义服务”的另外一个实现类org.fireflow.engine.definition. DefinitionService4DBMS进行读取。该类最终调用IPersistenceService完成实际的数据库IO操作。(DefinitionService4DBMS尚未测试,将流程定义文件存储到数据库中的Web页面尚在开发中,20090210)

0 请登录后投票
   发表时间:2009-02-10  
强烈同意supercwg的意见,把LZ的fwf结合flex。
0 请登录后投票
   发表时间:2009-02-10  
LZ这个动机十分正确,现在国人都以为国外的东西就是好,其实啊JBOSS JBPM我用了一下,不怎么样,问题还比较多,国人也完全有能力做出好的开源产品来,非常敬佩LZ的这份精神!
0 请登录后投票
   发表时间:2009-02-10  
不过这种东西在没成熟之前不敢用啊,因为没团队支持,出了问题就不好办了。万一LZ哪天放弃了,那公司应用的项目怎么办呢?所以最好得先建立一个团队。国内大多数开源产品都是在一个人搞,所以企业根本就不敢用。
0 请登录后投票
   发表时间:2009-02-10  
哈`很关注国人发开的开源`,做为工作流`还要以发布大量的demo`doc才能更好的推广``
0 请登录后投票
   发表时间:2009-02-10  
支持楼主,国人开发的东西有非常多的东西是值得期待,

有朋友要是觉得"个人开发的怎么能给集团比",那就大错特错了.优秀的产品往往出自个人之手
0 请登录后投票
论坛首页 Java企业应用版

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