锁定老帖子 主题:请看JBPM是否满足这样的需求?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-11
1. 我们的对象Model有几种状态可以变化; 2. 用户可以任意的修改状态,增加和修改,也可以修改各个状态之间的transition; 3. 用户修改完状态之后,各个对象Model要按照新的状态流程图走; 4. 可以从外部导入处于各个状态的对象Model,并按照最新的状态流程图走. 根据我做JBPM大半年的经验,我认为JBPM不满足我们的需求,这是因为: 1. JBPM包括各种BPM都最适合在部署前的业务流程定制,对动态修改业务流程并且修改完后所有业务都按新流程执行不是很擅长; 2. 如果所有的domain Model 都按新的工作流执行,很难预料其中的很多副作用; 3. 从外部导入对象, 对象处于不同的工作流节点, 执行的都不是完整的工作流,很难在BPM中实现; 4. 动态定制流程 使得我们不得不把用户定制的状态动态生成JPDL xml 文档,失去了用graph designer的一大优点; 以上是我的分析,但是我们项目的架构师非要用这个,我也无能为力,拿出来这个需求大家做为例子讨论一下吧. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-12-11
好变态的需求啊,这个就是传说中的自由流吧,让架构师去搞定,架而Go不起来只有让他自己去死...
|
|
返回顶楼 | |
发表时间:2006-12-11
pioneer21th 写道 用户可以任意的修改状态,增加和修改,也可以修改各个状态之间的transition 这个准备怎么完成?修改流程定义? |
|
返回顶楼 | |
发表时间:2006-12-11
楼上的两位,确实是的!最新结果:架构师准备把用户定义的状态节点一一的映射为JBPM里的状态节点。这样做是没错,虽然很不符合JBPM状态节点的初衷。但是,众所周知的是,BPM的各个节点是要指定Action类来处理当前的业务逻辑的,但是因为我们是动态生成的节点,也不知道所处的节点是哪个节点,所无法指定这样的Java类。所以他说不指定任何类来处理业务逻辑!我倒了,那用这个JBPM还干吗呢?
很不幸的是,我因为以前做过JBPM,所以这个任务交给我了,我哭! 我的观点是建立自己的Model:Status和Transition.仅此而已,就能搞定这个需求,又简单又能控制一切! |
|
返回顶楼 | |
发表时间:2006-12-11
更BT的是关于修改和增加状态节点:我们的BT需求是,当修改了状态图后,所有已经启动的工作流实例必须转到最新的状态流程。大家都知道,JBPM为了避免这种修改业务流程定义后所产生的不可预料的负作用,就没有直接提供这个功能。而是绕过了这个缺陷:用version机制。即当工作流修改后名字还和以前的一样,只是version + 1。其实是形成了新的工作流。这样做也是合情合理的,但是已经启动的工作流实例会仍按旧的工作流执行下去。
这明显和我们的需求不一致,我们的需求是所有的都按照新的工作流执行!为了解决这个问题,架构师要求把旧的工作流实例所处的节点完全的转移到新定义的相应的节点上来!大家都知道,这里有很多很多的问题,我就不说了。 |
|
返回顶楼 | |
发表时间:2006-12-11
Readonly 写道 好变态的需求啊,这个就是传说中的自由流吧,让架构师去搞定,架而Go不起来只有让他自己去死...
拜一楼 哈哈 |
|
返回顶楼 | |
发表时间:2006-12-13
Readonly 写道 好变态的需求啊,这个就是传说中的自由流吧,让架构师去搞定,架而Go不起来只有让他自己去死...
的确是江湖中让人闻风丧胆的自由流! |
|
返回顶楼 | |
发表时间:2007-01-08
我觉得jbpm可以这个需求。
jbpm支持对ProcessDefinition进行修改,包括增加节点,转移,随后继续执行修改过的流程定义。只是动态的流程定义发生难以捉摸的情况概率比较大。 另外对于架构师的需求,可以考虑在jbpm基础之上进行二次开发,而不是寄希望于现成的工作流引擎! |
|
返回顶楼 | |
发表时间:2007-02-07
现在我手头上的项目也快要变成自由流啦,极度郁闷中
不知道楼主现在做成怎么样啦? |
|
返回顶楼 | |
发表时间:2007-02-08
强烈要求客户改变了需求,现在用户只是可以动态建立流程,但是建立后不能修改。呵呵,这只是不能使用了JBPM的GUI设计流程而已,其他的都还是一样。
我的看法是,如果只是简单的流程之间的变迁,如果没有多复杂的业务流程,不一定非要用JBPM,JBPM最不好的地方是文档不是足够的多,这是个风险。而且,还要涉及到和自己的hibernate集成问题。 |
|
返回顶楼 | |