强化 Java EE 和 SCA 的同盟

  • Boris Lublinsky
  • 胡键

2008 年 4 月 7 日

话题:SOA架构

开放 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 为基础。

SCA 的标准化进程目前由OASISOSOA推动,仍然缺乏 Java 全面支持。

查看英文原文Strengthening the Alliance Between Java EE and SCA

SOA架构