一、简介
BPM(Java Business Process Management),是基于java的业务流程管理套件。
它允许你整个的生命周期中建模、执行和监控业务流程业务流程,允许你去建模一个流程表,这个流程表描述了要达到的目标,并按一定次序执行。
jBPM的核心是一个纯java语言编写的轻量级、可扩展的工作流引擎,它允许你去执行使用了最新的BPMN2.0规范的业务流程。
与项目相关的特性:
基于Java开发。
允许多种方式调用,包括REST, JMS(Java Message Service), Remote Java API。
与Java框架如Maven, Spring, OSGi等集成良好。
二、JBPM的架构
2.1 架构
JBPM的组件图如下:
其中,流程引擎Core Engine是项目的核心并且是必须的。
Eclipse插件是Eclipse集成开发环境的一种扩展,目标针对于开发人员,同时允许你通过拖拽的方式创建你的业务流程,提供高级的测试。
Guvnor知识库,它所针对的目标是业务用户和允许你从你的应用中分离处理,来管理你的流程。
历史日志(History Log)是可选的,它将会记录你所有的流程实例的当前和先前状态的有关信息。
人工任务服务(Human Task Service)是一项可选的核心服务,如果人工角色参与了流程,它将会管理人工任务的生命周期。
2.2 与流程引擎的交互
要与流程引擎进行交互,比如启动一个流程实例(Process instance)。需要创建一个session,如下图中的stateful knowledge session。这个session负责与流程引擎进行交互,同时需要引用 一个包含了流程的所有信息的知识库Knowledge Base。
也就是说,要去创建一个会话session,你首先需要去创建一个knowledge base,链接到所有的必需且已定义的流程,然后初始化一个会话session。一旦你建立了一个会话,你就可以用它来执行流程了。一个流程无论什么时候被启动,一个新的流程实例都将被创建,并维持各自的流程实例的状态。
分解下来,我们在开发中流程是:
创建一个包含流程定义的knowledge base
创建一个用来启动新的流程的会话session
执行会话,创建流程实例
运行流程实例
XX、参考&引用