为了响应客户和独立软件供应商(Independent Software Vendor,ISV)合作伙伴的请求,BEA、IBM、IONA、Oracle、SAP、Siebel Systems 和 Sybase 正在合作制定用于构建面向服务的体系结构(Service-Oriented Architecture,SOA)的规范,旨在为开发人员提供构造基于 SOA 的应用程序的更简单更强大方法。这些规范是遵照免版税条款发布的。您可以了解有关这些规范如何一起工作的更多信息。
服务组件体系结构(Service Component Architecture,SCA)是一组规范,描述了用于使用面向服务的体系结构来构建应用程序和系统的模型。SCA 扩展了以前用于实现服务的方法,并对其形成补充,而且,SCA 构建于 Web 服务系列标准等开放标准之上。
SCA 鼓励采用基于实现业务逻辑的 SAO 业务应用程序代码组织方式,以便通过面向服务的接口公开其功能,以及通过面向服务的接口使用其他组件提供的功能(称为服务引用)。SCA 将用于构建面向服务的应用程序的步骤分为两大部分:
- 组件的实现,提供服务和使用其他服务
- 为了构建业务应用程序对组件集进行的组装,通过将服务引用连接到服务来完成。
SCA 强调将服务实现和服务组装从基础设施功能细节以及用于调用服务的访问方法细节分离开来。SCA 组件在业务级别进行操作,只使用非常少的中间件 API 进行工作。
图 1. 服务组件体系结构
SCA 支持使用众多编程语言中的任何一种语言编写的服务实现,这既包括常规的面向对象和过程的语言,如 Java™、PHP、C++、COBOL,也包括 BPEL和 XSLT 等以 XML 为中心的语言,还包括 SQL 和 XQuery 等面向问题的语言。SCA 还支持各种编程样式,除了同步调用-返回样式外,还包括异步样式和面向消息的样式。
SCA 支持到各种用于调用服务的访问机制的绑定。这包括 Web 服务、消息传递系统和 CORBA IIOP。绑定是以声明方式处理的,独立于实现代码。基础设施功能(如安全、事务和可靠消息传递的使用)都是采用声明方式处理的,已从实现代码分离。SCA 通过策略使用基础设施功能,而策略旨在简化控制功能如何应用到业务系统的机制。
SCA 还促进了使用服务数据对象来表示形成参数和服务返回值的业务数据,从而提供了对业务数据的统一访问方式,对 SCA 本身提供的业务服务统一访问方式形成了补充。
SCA 规范分为多个文档,每个文档分别处理 SCA 的不同方面。组装模型 (Assembly Model) 通过连接处理组件的链接关系。组装模型是独立于实现语言的。客户机和实现 (Client and Implementation) 规范处理服务和服务客户机的实现——每种语言都有自己的客户机和实现规范,用于描述该语言的 SCA 模型。
当前的 SCA 规范已发布了 0.9 版,这表明这些规范尚未最终完全定型。发布这些规范的目的是为了从社区获得反馈,从而确保规范的 1.0 最终版能更为全面地满足开发人员和业务的需求。
| 说明 | 日期 | 访问方法 |
|---|---|---|
| SCA 0.9 Assembly Model specification (PDF) | 2005 年 11 月 | HTTP 下载 |
| SCA 0.9 Client and Implementation Model for Java 规范 (PDF) | 2005 年 11 月 | HTTP 下载 |
| SCA 0.9 Client and Implementation Model for C++ 规范 (PDF) | 2005 年 11 月 | HTTP 下载 |
| SCA 0.9 XSD 模式文件 (ZIP) | 2005 年 11 月 | HTTP 下载 |
| SCA 0.9 Javadoc 文件 (ZIP) | 2005 年 11 月 | HTTP 下载 |
| SCA 0.9 Java API 源文件 (ZIP) | 2005 年 11 月 | HTTP 下载 |
| SCA 0.9 CPP API 源文件 (ZIP) | 2005 年 11 月 | HTTP 下载 |
请阅读以下白皮书和示例应用程序,以了解有关服务组件体系结构规范的其他信息:
| 说明 | 日期 | 访问方法 |
|---|---|---|
| The Business Value of SCA and SDO(白皮书,PDF) | 2005 年 11 月 | HTTP 下载 |
| SCA: Building Systems using a Service-Oriented Architecture(白皮书,PDF) | 2005 年 11 月 | HTTP 下载 |
| Building your first application: Simplified BigBank(示例应用程序,PDF) | 2005 年 11 月 | HTTP 下载 |
如果您要提交有关此规范的技术建议,请通过我们的反馈页面提交。
注意:此规范是在免版税基础上提供的(详见规范的版权说明);因此,IBM 不要求使用实现许可证。不过,如果您愿意,可以申请许可证。
有一个开放源代码项目提供服务组件体系结构的运行时实现,可用于运行 SCA 应用程序。此项目称为 Tuscany,目前在 Apache 正处于孵化期。
请访问 Apache 的 Tuscany 网站。
另外还有一个相关的 Eclipse 开放源代码项目,该项目的目标是提供相关工具来支持开发人员使用面向服务的体系结构构建解决方案,而面向服务的体系结构则使用服务组件体系结构作为其核心模型。这个项目就是 Eclipse SOA Tools Platform 项目。
请访问 SOA Tools Platform (STP) 项目网站。
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
- 请参阅相关的 Service Data Objects 规范。
- 访问 SOA and Web services 专区,获得相关主题的数百文章、教程和交互式工具。
-
标准发展路线——了解标准和规范对于 SOA 和 Web 服务开发工作的影响和重要性。
-
Architecture: Build for the future——访问 developerWorks 的体系结构专区,以获取提高您的体系结构方面的技能的各种资源。