流程引擎对象,ProcessEngine是jbpm4所有Service API之源

         在jbpm中各种服务相互依存,但所有的service API都从ProcessEngine中获得,它是由Configuration类构建的,即工作流引擎根据配置产生。
        ProcessEngine是线程安全的,因此它可以保存在静态变量中,甚至JNDI命名服务中或者其他重要位置。在应用中,所有线程和请求都可以使用同一个ProcessEngine对象,以下代码告诉您如何获得ProcessEngine:   
Java代码
ProcessEngine  processEngine=Configuration.getProcessEngine();     
ProcessEngine processEngine=Configuration.getProcessEngine();


 直接可以用processEngine.getXXX()得到的7个service

在jbpm4中对客户端的接口统一为7个服务接口:ProcessService、ExecutionService、CommandService 、TaskService 、ManagementService、HistoryServiceIdentityService,这7个接口可以从ProcessEngine接口中获得,jbpm4在启动的过程中由JbpmConfiguration负责构建引擎。

下面把这7个service描述一下:

    RepositoryService—流程之源服务的接口。提供对流程定义的部署,查询,删除等操作。
    ExecutionService—流程执行服务的接口。提供启动流程实例,“执行”推进,设置流程变量等操作
    ManagementService—流程管理控制服务的接口,提供异步工作(Job)相关的执行和查询操作。
 CommandService-Command模式的服务接口,实际上就是将客户端的请求全部封装在一个调用接口中, 然后由这个接口去调用Command接口的众多实现(StartExecutionCmd、SignalCmd、SetVariablesCmd、GetTimersCmd、DeployCmd、NewTaskCmd、SubmitTask、ExecuteJobCmd等等,具体可参加pvm/internal/cmd,task/internal/cmd包及其它包下实现Command接口的类), 这是典型的Command模式的应用,感兴趣的读者可以去了解设计模式中的Command模式;

    TaskService—人工任务服务的接口。提供对任务(Task)的创建,提交,查询,保存,删除等操作。
    HistoryService—流程历史服务的接口。提供对流程历史库(即已完成的流程实例归档)中历史流程实例,历史活动实例等记录的查询操作。
  还提供诸如某个流程定义中所有活动的平均持续时间,某个流程定义中某转移的经过次数等数据分析服务。
    IdentityService—身份认证服务的接口。提供对流程用户,用户组以及组成员关系的相关服务