jBPM 功能被分隔成模块. 每个模块有一个定义和执行(runtime)部分. 中央模块是图模块, 由ProcessDefinition 和 ProcessInstance组成 . 流程定义包含一个图并且流程实例表示一个图的执行.所有jBPM其他的功能被分组成了几个可选模块 .可选模块扩展图模块额外特性比如上下文(流程变量),任务管理,定时器, ... 在jBPM里可插入架构也是唯一机制为jBPM引擎添加定制能力.定制流程定义信息通过 ModuleDefinition . 当 ProcessInstance被建立,它将为每一个在 ProcessDefinition的 ModuleDefinition产生实例. ModuleDefinition 用做 ModuleInstances工厂. 最完整的扩展流程定义信息方式是通过给流程档案加入信息通过实现 ProcessArchiveParser . ProcessArchiveParser能解析加入到流程档案中的信息 , 建立你的定制 ModuleDefinition并且把它加入到 ProcessDefinition. public interface ProcessArchiveParser { void writeToArchive(ProcessDefinition processDefinition, ProcessArchive archive); ProcessDefinition readFromArchive(ProcessArchive archive, ProcessDefinition processDefinition); } 为了让它工作,定制 ModuleInstance必须在执行期间通知相关事件 .定制 ModuleDefinition 可增加 ActionHandler 实现在流程事件之上用做callback handlers . 另外的方法,定制模块可以用AOP来绑定定制实例到流程执行. JBoss AOP 非常适合做这个工作因为它的成熟,易学并且也是JBoss堆栈的一部分. |
|