工作流系统相对一般的业务系统要复杂很多,所以把系统分解为多个有机组成部分:
外围工具
包括表单设计器,流程(规则)定义器,以及人工控制台和管理界面
底层支撑工具
工具类,通用业务组件(日志,数据库连接,定时器等)
引擎核心组件
包括xml解析、生成器,事件触发器,流程驱动模块,规则执行模块以及状态机;引擎底层部分还包括权限和参与者映射,数据服务以及代理工具服务。
[img]http://dl.iteye.com/upload/attachment/149434/1cdeecf8-23ff-3ba9-bb04-5d3714fa7be7.png[/img]
工作流系统的组成部分
接口2,3是对程序员和外部应用暴露的api,通过预先设定,启动不同的客户端程序,比如local,rmi等方式,客户端api调用“流程驱动引擎”的api。该模块的api,即是工作流引擎提供的api。
根据api的不同,有的只是查询流程模型定义,参与者类型等;
有的api是需要创建相应的流程实例,这个是引擎会相应的调用状态机内部api以及可能使用事件触发模块的api,
有的api是需要规则引擎来介入,从而作条件判断
大部分的实现代码采取接口/实现类的方式,并在属性文件中申明对应关系,工作流初始化的时候通过serviceManger类来实现装载匹配,从而打开后续开发中能动态切换相应代码的功能。
外围工具
包括表单设计器,流程(规则)定义器,以及人工控制台和管理界面
底层支撑工具
工具类,通用业务组件(日志,数据库连接,定时器等)
引擎核心组件
包括xml解析、生成器,事件触发器,流程驱动模块,规则执行模块以及状态机;引擎底层部分还包括权限和参与者映射,数据服务以及代理工具服务。
[img]http://dl.iteye.com/upload/attachment/149434/1cdeecf8-23ff-3ba9-bb04-5d3714fa7be7.png[/img]
工作流系统的组成部分
接口2,3是对程序员和外部应用暴露的api,通过预先设定,启动不同的客户端程序,比如local,rmi等方式,客户端api调用“流程驱动引擎”的api。该模块的api,即是工作流引擎提供的api。
根据api的不同,有的只是查询流程模型定义,参与者类型等;
有的api是需要创建相应的流程实例,这个是引擎会相应的调用状态机内部api以及可能使用事件触发模块的api,
有的api是需要规则引擎来介入,从而作条件判断
大部分的实现代码采取接口/实现类的方式,并在属性文件中申明对应关系,工作流初始化的时候通过serviceManger类来实现装载匹配,从而打开后续开发中能动态切换相应代码的功能。