锁定老帖子 主题:关于工作流引擎的问题!
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2004-02-02
谈谈自己在实际的项目中是否采用过工作流引擎,是如何使用的, 请推荐一个好的工作流引擎,最好是很容易和struts等mvc框架 结合起来使用。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-02-05
使用工作流是迟早的事,企业级应用已经不单纯是将手工劳动转换为计算机劳动的过程,系统也不是由单独的业务模块构成的,各业务模块之间必须要由业务主线相互关联,原来的数据级关联关系必将转换到应用级关联关系。
现在提及比较多的有JBpm、OSWorkflow等,以前的帖子好像有关于工作流引擎方面的内容。 |
|
返回顶楼 | |
发表时间:2004-02-05
ofbiz也又一个工作流引擎.可以参考一下
|
|
返回顶楼 | |
发表时间:2004-02-09
ofbiz的主要精力不在于他的workflow engine上,而且他的workflow engine很难和其entity engine以及service engine分离,use all or use none.
osworkflow是一个轻量级的workflow engine,较容易和其他架构做整合,jbpm相对osworkflow复杂一点,但是其开发团队比较active。 使用这些workflow engine都有一个缺点,必须要使用他们的User模型,如果有谁知道有更轻量的engine的话,请介绍一下。 |
|
返回顶楼 | |
发表时间:2004-02-18
如果一个纯粹的工作流引擎,那么按照工作流联盟的方式分析、设计处理,也并不难,去年我所在的公司也做了一个,我参与其中,当时我们绑定的应用是OA的公文流转。
为什么工作流出现了这么久,在国内并没有多少成功的案例呢?其实问题并不是出现在工作流引擎多么难,而是在于流程的定义。在国内,几乎每一家公司的业务流程都是一种活性的流程,人控制的因素太多,这个时候,就很难用工作流系统去处理其了。比如说,我后来参与了一个订单处理系统的分析,业务非常复杂,每个订单在确认后,还有unConfirm、Revise功能,其实从准确的意义上来讲,这个就不符合流程控制了(因为它是由人进行控制)。 所以说,工作流系统一般只适合于能用固定流程描述的应用。当然,也许因为我的才疏学浅,不知道而已。 至于Struts什么的,一个是Web控制层,一个是中间件,两者是没有任何关系的,当然可以绑定。 |
|
返回顶楼 | |
发表时间:2004-02-24
凤舞凰扬 写道 如果一个纯粹的工作流引擎,那么按照工作流联盟的方式分析、设计处理,也并不难,去年我所在的公司也做了一个,我参与其中,当时我们绑定的应用是OA的公文流转。
为什么工作流出现了这么久,在国内并没有多少成功的案例呢?其实问题并不是出现在工作流引擎多么难,而是在于流程的定义。在国内,几乎每一家公司的业务流程都是一种活性的流程,人控制的因素太多,这个时候,就很难用工作流系统去处理其了。比如说,我后来参与了一个订单处理系统的分析,业务非常复杂,每个订单在确认后,还有unConfirm、Revise功能,其实从准确的意义上来讲,这个就不符合流程控制了(因为它是由人进行控制)。 所以说,工作流系统一般只适合于能用固定流程描述的应用。当然,也许因为我的才疏学浅,不知道而已。 至于Struts什么的,一个是Web控制层,一个是中间件,两者是没有任何关系的,当然可以绑定。 呵呵,老黄我们的感受是一样的,光是一个引擎没用的。 |
|
返回顶楼 | |
发表时间:2004-02-28
感觉就是国内没有几个好的工作流引霆。
不过迟早都要用到的,因为做系统的,流程都会很多,少不了的,有一个工作流引庭(有友好的界面那只)会好很多。 当然不是有了就万能的. |
|
返回顶楼 | |
发表时间:2004-02-29
引用 在国内,几乎每一家公司的业务流程都是一种活性的流程,人控制的因素太多,这个时候,就很难用工作流系统去处理其了。比如说,我后来参与了一个订单处理系统的分析,业务非常复杂,每个订单在确认后,还有unConfirm、Revise功能,其实从准确的意义上来讲,这个就不符合流程控制了(因为它是由人进行控制)。
如果是上述这种情况的话,应该也是工作流能处理的情况,在一个流程上有很多节点,工作流在每个节点停留的时候,难道不是操作者来做一些事情后再流向新的节点的吗?这就是一个人为控制的过程,只不过是这个控制做完后,接下来的流向是否与控制的结果是对应匹配的关系,也就是操作者的操作结果是否与流向目的是固定对应的关系,即结果是A流向1,结果是B流向2...,如果是的话,那么就对工作流进行配置定义,如果相应的业务流程发生变化,只需要对工作流和节点功能进行改变。我想凤舞凰扬的意思是,操作结果与流向并非固定对应关系,有人为干预的情况,就是说一般结果是A流向1,在某些情况下(无法定义规则)结果是A却要流向3,比如一些领导特批,这种情况就是很难用系统来解决的问题了,除非系统像人一样聪明,可以灵活地领会领导的意思 。 |
|
返回顶楼 | |
发表时间:2004-03-01
楼上仁兄很有意思,不过的确也含有如此。另外,比如说一个流程,它的结点已经流向某个位置了,突然前面的结点的人要把它取消或者重新来过,呵呵,流程控制就不是一般般了。这个有名的功能英文名叫做Revise。
在一个规范话的企业,或者有规范化可以明确定义、描述出来的企业流程,那么是肯定可以用工作流系统的,但是对于一个根本不规范、并且无法明确定义、描述出来的企业流程,工作流系统是无法运用成功的。 国内有很好的工作流引擎,也有很好的工作流系统(包括流程定义),只是没有好的应用和实施罢了。因为好的应用不仅仅是软件的事情! |
|
返回顶楼 | |
发表时间:2004-03-01
我以前设计过一个工作流系统,包括引擎和流程定义。
引擎我们基本是参考wfmc的模型,无非是Process、Activity、 task、principal、transition等。 和流程定义之间通过一个 XML来交换数据,也就是说,流程定义生成一个描述流程的XML,引擎负责把它读进来,解释后放进内存或者数据库里面,这样做一个好处是流程定义工具可以用java写,也可以用delphi写,只要根据schema生成所需XML 即可。 流程的权限一般是动态的,和组织机构有一定关系,例如某个公文只能由某个人来签,请假流程中,必须先要请假人直属上司签字,再所属部门经理签字,诸如此类。这里可能需要一套规则(有些公司做了套规则引擎出来,例如金蝶 BOS)。 所以,我们做出引擎来后,发觉还有很多东西需要做。呵呵。 单单是引擎的话,对小流程来说并不能减轻开发量,而流程越复杂,引擎的作用才越大 |
|
返回顶楼 | |