MF5
流程定制 节点对象
说明:
hairui 2006-5-28 北京 QQ:562619261
一、总述
MF5 的设计宗旨是提供低调、简单、实用、可靠 的工作流程控制、定制、监控平台。
同业务密切结合,使用 Acegi 业务及安全况架的角色授权机智,使用Acegi 业务及安全况架的业务模型,实现业务数据的有状态及持久化。
MF5 本身只负责业务流程的流转控制,业务过程的业务规则及业务逻辑在Acegi 业务及安全况架下实现。
MF5 只提供界面模型中的流程定制、监控界面 及相关的辅助界面。同时提供基于 Windows 的窗口界面 和 基于 WEB 的图形界面。一般情况下,使用 Windows 窗口界面进行流程定制及修改维护,使用 WEB 图形界面进行流程监控、回退等。
MF5 没有实现子过程、过程块、以及并行节点等模型,因为这些功能在实际业务中很少用到,考虑到 MF5 的设计宗旨就舍弃掉了这些复杂的功能。MF5 承诺在遇到相关的上述需求的时候能使用本身的功能折中实现。
MF5 提供了流程版本,流程追回,MF5-MF5之间的同步、异步协作,SSO,等非常实用的功能,相比其它同类的工作流平台非常的实用。
MF5
同
Acegi
结合提供一流的安全控制功能,在业界遥遥领先。
MF5
是一个完全面向对象技术实现的平台,使用的是
MF7
的对象状态及持久技术。
在
MF7
里多个对象将组合成一个业务域,从而实现整个
MF7
的设计宗旨,面向过程域的业务操作系统。
二、节点对象
1、
开始节点
业务开始,创建业务对象,初始化业务对象。
由流程请求者发起,并将业务对象引用给转移对象。
2、
业务节点对象
有界面的业务节点,接受上级转移对象的引用。
完成对象的相关值修改,将对象应用给下级转移对象。
3、
程序过程对象
无界面的业务节点,接受上级转移对象的引用。
完成对象的相关值修改,将对象应用给下级转移对象。
4、
条件对象
接受上级转移对象的引用。根据本身设置的对象属性跟上级业务对象的属性的值进行比较,根据设置的条件进行选择转移给下级转移对象。
5、
转移对象
接受前置节点的对象,将对象转移给后置节点。
6、
结束对象
接受对象,完成最后的数据变更。销毁业务对象。流程结束。
三、示例流程
说明:
1、
一个业务流程对应设计一个业务对象,就是一个普通的 POJO,受Spring 的监管。
而且MF5 只支持一个流程对应一个业务对象。保证流程流转过程中的对象一致性。
2、
转移条件的判断根据业务对象的属性,因为流程前后使用一个业务对象,所以保证转移条件的一致性。
3、
在开始节点创建对象,在结束节点销毁对象。在运行时异常回退到最新状态,就是说这一步没成功等于没做。在运行时服务器关闭重起则自动恢复到最新状态,使用的是对象状态技术及持久化技术。初始化和销毁对象的相关逻辑需要编码。
4、
所有的节点对象的值对象引用的都是同一个业务对象,就是流程的业务对象。
四、后记
写这个说明就是给那些关心MF5 的朋友,通过这些文字能对 MF5 产生兴趣。
当然这只是写给那些行家的文字,虽然文字的篇幅很少,但基本体现了 MF5 的核心思想。
MF5 确实是一个很低调,实用,可靠的平台。