开放 SOA 合作组织刚刚发表了 Service Component Architecture(SCA) Java EE 集成规范草案 0.9 版,该草案定义了在 Java EE 应用环境中如何集成 SCA 和 Java EE。它使用 Java EE 组件作为服务组件实现,Java EE 程序包既可部署到 SCA 部署单元(Contribution)内部,也可部署为 SCA 部署单元。它定义了在一个 Java EE 运行时环境中使用 SCA 装配的模型,该模型所支持的和 Java EE 技术集成的级别包括细粒度组件级别,以及使用 Java EE 应用和模块的粗粒度大系统级别。
规范支持以下 Java EE 和 SCA 的集成场景:
- 从 Java EE 组件消费暴露的 SCA 服务。规范定义了一个 Web 组件(一个 servlet 或一个 JSP 页面)消费由 SCA 服务组件实现的服务的方式。
- 使用 Session Bean 作为服务组件实现。规范定义了如何使用 Session Bean 实现服务组件。使用 RMI、JMS 和 Web 服务通信。
- 将企业应用暴露进入 SCA 域(Domain)。规范定义了 SCA 和 Java EE 装配模型之间的关系,同时还为建构在 Java EE 层上、提供跨企业应用装配能力的 SCA 部署单元(Contribution)描述了一个部署模型。
- 在企业应用中使用递归 SCA 装配。规范描述了如何使用 SCA 装配为复杂企业应用定义复杂应用装配的方法。
- 将 SCA 组件部署为 Java EE 应用的一部分。规范为那些作为 Java EE 应用一部分、使用“异端”技术(如 BPEL)实现的组件定义了部署模型,其中利用了那些现有的部署和管理 Java EE 应用生命周期的工具和基础设施。
- 使用 Java EE 程序包作为服务组件实现。通过彼此串联 Java EE 程序包和连接使用其他技术实现的组件,规范定义了如何创建包含多个 Java EE 程序包的高级 SCA 应用。这个用例需要将 Java EE 应用的高层次视图视为一个单个 SCA 组件,将所提供的服务和消费的引用视为一个单个组件。
此外,规范还支持在 EJB 类或 Session Bean 接口使用 SCA 注解。
这个规范旨在进一步强化 Java EE 和 SCA 之间的关系,这有助于使 SCA 成为 Java EE 中实现 SOA 的普及技术。这样做的主要目的之一是,当前的 Java 社区仍然分裂成 SCA 和 JBI。 JSR 316:Java Platform, Enterprise Edition 6(Java EE 6)Specification 仍需考虑两者,但是还没有明确决定采用哪个技术路线。尽管大多数厂商的应用服务器都支持 SCA,但是开源实现仍然大都以 JBI 为基础。
评论