
用于与 BPEL 流程和人员任务交互的编程接口的比较
Enterprise JavaBean (EJB)、Web Service、Java 消息服务 (JMS) 和具象状态传输服务 (REST) 通用编程接口可用于构建与 BPEL 流程和人员任务交互的客户机应用程序。 这些接口中的每一种都具有不同的特征。
您选择的编程接口取决于若干因素,包括客户机应用程序必须提供的功能,您是否拥有现有最终用户客户机基础结构,或者您是否要处理人员工作流程。 为了帮助您决定要使用的接口,下表对 EJB、Web Service、JMS 和 REST 编程接口的特征进行了比较。
注意: 不推荐使用 Business Process Choreographer JMS API。 要开发基于 JMS 的客户机应用程序,请将 Business Process Choreographer Web Service API 与 SOAP/JMS 传输协议一起使用。
| EJB 接口 | Web Service 接口 | JMS 消息接口 (不推荐) |
REST 接口 | |
|---|---|---|---|---|
| 功能 | 此接口对于 BPEL 流程和人员任务都可用。 使用此接口来构建通常处理流程和任务的客户机。 | 此接口对于 BPEL 流程和人员任务都可用。 使用此接口可为一组已知流程和任务构建客户机。 对于 JMS 传输层,此接口仅可用于 BPEL 流程。 |
此接口仅可用于 BPEL 流程。 | 此接口对于 BPEL 流程和人员任务都可用。 使用此接口可为一组已知流程和任务构建 Web 2.0 样式的客户机。 |
| 数据处理 | 支持使用远程工件来装入模式以访问业务对象元数据。 如果 EJB 客户机应用程序正在与其连接到的 Process Server 相同的单元中运行,那么流程和任务的业务对象所需的模式不必在客户机上可用,可以使用远程工件装入器 (RAL) 从服务器装入这些模式。 如果客户机应用程序在完整的 Process Server 服务器安装版中运行,那么还可以跨单元使用 RAL。 但是,如果客户机应用程序在 Process Server 客户机安装版中运行,那么 RAL 不能在跨单元设置中使用。 |
客户机必须提供适当格式的用于输入数据、输出数据和变量的模式工件。 | 客户机必须提供适当格式的用于输入数据、输出数据和变量的模式工件。 | 客户机必须提供适当格式的用于输入数据、输出数据和变量的模式工件。 |
| 安全性 | Java™ Platform Enterprise Edition (Java EE) 安全性。 | Web Service 安全性。 | 用于 Process Server 安装版的 Java Platform Enterprise Edition (Java EE) 安全性。 您还可以保护(例如,使用 WebSphere® MQ 安全性机制)JMS 客户机应用程序将 API 消息放置到的队列。 | 调用 REST 方法的客户机应用程序必须使用适当的 HTTP 认证机制。 |
操作可以由多个协议显示。 如果以不同协议来使用同一操作,请遵守以下一般注意事项。
- 在 Web Service 和 REST 接口中,所有对象标识(例如 PIID、AIID 和 TKIID)都由字符串类型表示。 仅 EJB API 接口预期一个类型安全的对象标识。
- 操作重载仅用于 EJB 方法而不用于 WSDL 操作。 在某些情况下,存在多个 WSDL 操作,在其他情况下,仅存在一个 WSDL 操作,该操作通过省略 (minOccurs="0") 或空值 (nillable="true") 允许使用所有参数变体。
- 在某些 EJB 方法中,XML 名称空间和本地名称作为单独的参数进行传递。 大多数 WSDL 操作都使用 QName XML 模式类型来传递这些参数。
- EJB 接口返回一组 API 对象,这些对象显示所包含字段的 getter 和 setter 方法。 Web service 和 REST 接口向客户机返回复杂类型(XML 或 JSON)文档。
- 某些针对人员任务运行的人员任务管理器服务还作为针对调用人员任务的活动运行的业务流程管理器服务提供。