第 30 章 KIE 会话和任务服务的 EJB API

Red Hat Process Automation Manager 提供了一个 Enterprise 3.0.0 (EJB) API,可用于嵌入式用例从应用程序远程访问 KieSessionTaskService 对象。EJB API 启用 Red Hat Process Automation Manager 和远程客户应用程序中的进程引擎之间的关闭事务集成。

虽然 KIE 服务器不支持 EJB,但您可以使用 EJB 作为进程引擎的远程协议,类似于使用 KIE 服务器的远程 REST 或 JMS 操作。

EJB 接口的实施是单一独立于框架且与容器无关的 API,可用于特定于框架的代码。EJB 服务通过 Red Hat Process Automation Manager 中的 org.jbpm.services.apiorg.jbpm.services.ejb 软件包公开。该实施不支持 RuleService 类,但 ProcessService 类会公开一个 execute 方法,供您使用各种与规则相关的命令,如 InsertCommandFireAllRulesCommand

注意

Red Hat Process Automation Manager 中的 org.jbpm.services.cdi 软件包也支持上下文和依赖注入(CDI)。但是,为了避免 EJB 集成中的冲突,请不要将 EJB 和 CDI 一起使用。

30.1. 支持的 EJB 服务

如需 Red Hat Process Automation Manager 中的可用企业站(ejb)服务的完整列表,请从红帽客户门户网站下载 Red Hat Process Automation Manager 7.11.0 Maven 存储库,并进入 ~/jboss-rhba-7.11.0.GA-maven-repository/org/jbpm/jbpm-services-ejbhttps://access.redhat.com/jbossnetwork/restricted/listSoftware.html

为 venv 服务提供 EJB 接口的工件位于以下软件包中:

  • org.jbpm.services.ejb.api :包含 EJB 接口的 jBPM 服务 API 的扩展
  • org.jbpm.services.ejb.impl :在核心服务实施之上包含 EJB 打包程序
  • org.jbpm.services.ejb.client :包含 EJB 远程客户端实施,仅在 Red Hat JBoss EAP 上被支持

org.jbpm.services.ejb.api 软件包包含以下可与远程 EJB 客户端一起使用的服务接口:

  • DefinitionServiceejbRemote :使用此接口收集有关进程(ID、名称和版本)、进程变量(名称和类型)、定义的可重复使用的子进程、域特定服务、用户任务和用户任务输入和输出的信息。
  • DeploymentServiceejbRemote :使用此接口来启动部署和未部署。接口包括方法 deploy, undeploy, getRuntimeManager, getDeployedUnits, isDeployed, activate, deactivate, 和 getDeployedUnit。通过构建 RuntimeManager 实例,通过 DeploymentUnit 实例调用部署方法,将单元部署到运行时引擎中。成功部署后,会创建一个 DeployedUnit 实例并缓存给以后使用。(为了使用这些方法,您必须在 Maven 存储库中安装项目的工件。)
  • ProcessServiceejbRemote :使用此接口来控制一个或多个进程和工作项目的生命周期。
  • RuntimeDataServiceejbRemote :使用此接口检索与运行时间相关的数据,如进程实例、进程定义、节点实例信息和变量信息。这个界面包括几个方便的方法,用于根据所有者、状态和时间收集任务信息。
  • UserTaskServiceejbRemote :使用此接口来控制用户任务的生命周期。界面包括几个方便的方法,用于与用户任务交互,如 激活启动停止并执行
  • QueryServiceejbRemote :使用此接口进行高级查询。
  • ProcessInstanceMigrationServiceejbRemote :部署新版本的进程定义时,使用此接口来迁移进程实例。

如果您在同一 KIE 服务器实例上运行 EJB 应用程序和 Business Central,您可以通过设置 org.jbpm.deploy.sync.int 系统属性来同步 EJB 和 Business Central 之间的信息。在服务完成同步后,您可以使用 REST 操作访问更新的信息。

注意

Red Hat Process Automation Manager 中的 EJB 服务适用于嵌入式用例。如果在同一 KIE 服务器实例上运行 EJB 应用程序和 Business Central,还必须在 EJB 应用程序的类路径中添加 kie-services 软件包。