第 30 章 KIE 会话和任务服务的 EJB API
Red Hat Process Automation Manager 提供了一个 Enterprise 3.0.0 (EJB) API,可用于嵌入式用例从应用程序远程访问 KieSession 和 TaskService 对象。EJB API 允许在红帽流程自动化管理器和远程客户应用程序中关闭流程引擎之间的事务集成。
虽然 KIE 服务器不支持 EJB,但您可以使用 EJB 作为与远程 REST 或 JMS 操作与 KIE 服务器类似的进程引擎的远程协议。
EJB 接口的实现是单一框架独立且容器无关的 API,您可以和特定于框架的代码一起使用。EJB 服务通过 Red Hat Process Automation Manager 中的 org.jbpm.services.api 和 org.jbpm.services.ejb 软件包公开。该实施不支持 RuleService 类,但 ProcessService 类会公开一个 执行 方法,供您使用各种规则相关的命令,如 InsertCommand 和 FireAllRulesCommand。
Red Hat Process Automation Manager 中的 org.jbpm.services.cdi 软件包也支持上下文和依赖注入(CDI)。但是,为了避免 EJB 集成冲突,请不要一起使用 EJB 和 CDI。
30.1. 支持的 EJB 服务 复制链接链接已复制到粘贴板!
对于 Red Hat Process Automation Manager 中的可用 Enterprise paxos (EJB)服务的完整列表,请 从红帽客户门户网站下载 Red Hat Process Automation Manager 7.12.0 Maven Repository,再导航到 ~/jboss-rhba-7.12.0.GA-maven-repository/maven-repository/maven-repository/jbpm/jbpm-services-ejb-*。
为 jBPM 服务提供 EJB 接口的工件位于以下软件包中:
-
org.jbpm.services.ejb.api: 包含 EJB 接口的 jBPM 服务 API 扩展 -
org.jbpm.services.ejb.impl: 在核心服务实施之上包含 EJB 包装程序 -
org.jbpm.services.ejb.client:包含仅在 Red Hat JBoss EAP 上支持的 EJB 远程客户端实施。
org.jbpm.services.ejb.api 软件包包含以下可与远程 EJB 客户端一起使用的服务接口:
-
DefinitionServiceEJBRemote:使用这个界面收集有关进程(ID、名称和版本)、进程变量(名称和类型)、定义可重复使用的子进程、特定于域的服务、用户任务和用户任务输入和输出的信息。 -
DeploymentServiceEJBRemote:使用此接口启动部署和未部署。接口包括方法deploy,undeploy,getRuntimeManager,getDeployedUnits,isDeployed,activate,deactivate, 和getDeployedUnit。使用DeploymentUnit实例调用deploy方法,通过构建RuntimeManager实例将单元部署到运行时引擎中。部署成功后,会创建一个DeployedUnit实例并缓存来进一步使用。(要使用这些方法,您必须在 Maven 存储库中安装项目的工件。) -
ProcessServiceEJBRemote:使用此界面控制一个或多个进程和工作项目的生命周期。 -
RuntimeDataServiceEJBRemote:使用此接口检索与运行时相关的数据,如进程实例、进程定义、节点实例信息和变量信息。接口包括多个便捷的方法,用于根据所有者、状态和时间收集任务信息。 -
UserTaskServiceEJBRemote:使用此接口来控制用户任务的生命周期。这个界面包括多个与用户任务交互的方便方法,如激活、启动、停止,以及执行。 -
QueryServiceEJBRemote:使用此接口进行高级查询。 -
ProcessInstanceMigrationServiceEJBRemote:在部署进程定义的新版本时,使用此接口迁移进程实例。
如果您在相同的 KIE 服务器实例上运行 EJB 应用程序和 Business Central,则您可以通过设置 org.jbpm.deploy.sync.int 系统属性,按照特定间隔同步 EJB 和 Business Central 之间的信息。在服务完成同步后,您可以使用 REST 操作访问更新的信息。
红帽流程自动化管理器中的 EJB 服务适用于嵌入式用例。如果您在同一 KIE 服务器实例上运行 EJB 应用程序和 Business Central,还必须在 EJB 应用程序的类路径中添加 kie-services 软件包。