引:Open CSA组织促进了服务组件架构(SCA)和服务数据对象(SDO)规范系列的创建和采用。
Open CSA组织促进了服务组件架构(SCA)和服务数据对象(SDO)规范系列的创建和采用。
服务组件架构(SCA)
服务组件架构(SCA)是一组规范,它描述了利用面向服务架构(SOA)来构建应用程序和系统的模型。SCA是基于开放标准(例如Web服务)构建的,它扩展和补充了先前的服务实现方法。
SCA的基本思想是将业务功能作为一系列服务来提供,这些服务组合到一起,以创建满足特定业务需
要的解决方案。这些复合应用程序既可以包含专门为该应用程序创建的新服务,也可以包含来自现有系统和应用程序的业务功能(作为复合应用程序的一部分来重
用)。SCA为服务组合和服务组件的创建(包括SCA复合应用程序内部现有应用程序功能的重用)提供了模型。
SCA这一模型旨在包含广泛的服务组件技术以及用于连接这些组件的访问方法。对于组件,它不仅包
括各种编程语言,还包括通常与这些语言一起使用的框架和环境。对于访问方法,SCA复合应用程序允许使用各种常用的通信和服务访问技术,例如,Web服
务、消息传递系统和远程过程调用(RPC)。
SCA包含以下规范:
SCA EJB组件模型
SCA Java EJB客户及实现(SCA Java EJB Client and Implementation)规范描述了如何在SCA复合应用程序中使用EJB和EJB模块。它在两个层次上定义了EJB的使用:
- 可以将完整的EJB模块像SCA复合体一样使用,不需要做任何内部细节上的改动,借助SCA连接到EJB模块提供的服务上,并将EJB模块的服务需求连接到EJB模块的外部组件所提供的服务上。
- 可以使用单个EJB,由SCA提供所有的连接。
SCA装配模型
SCA装配模型(SCA Assembly Model)定义了构成一个SCA系统的各种构件和他们之间的关系。包括:SCA复合体,SCA构件,服务,服务实现,服务需要,连线等等。
SCA策略框架(SCA Policy Framework)
非功能性需求(例如安全性)的捕获和表示是服务定义的一个重要方面,在组件和复合应用程序的整个生命周期中都会对SCA产生影响。SCA提供了策略框架以支持约束、能力和服务质量(QoS)预期的规范,从组件设计直到具体部署。此规范描述了框架及其使用。
SCA Java注释、API和组件实现
SCA Java公共注释和API(SCA Java Common Annotations
and API)规范定义了Java
API和注释,以支持使用Java编程语言来构建服务组件和服务客户。有一些紧密相关的模型,它们描述了如何在SOA上下文中使用其他基于Java的框架
和模型,例如Spring和EJB,这些模型也使用此规范定义的公共注释和API。此外,Java组件实现规范还定义了用于创建服务组件的简单Java
POJO模型。
SCA客户及实现:C++
SCA C++客户及实现(C++ C&I)规范定义了API和注释,以支持使用C++来编写适合SCA组装模型的服务组件和服务客户。
SCA客户及实现:BPEL
SCA WS-BPEL客户及实现(BPEL C&I)模型指定了如何将WS-BPEL进程用作SCA组件。
SCA客户及实现:PHP
针对PHP的SCA客户及实现模型定义了如何在“SCA装配”中使用PHP脚本和对象。
SCA客户机及实现:Spring
针对Spring的SCA Java客户及实现模型指定了Spring框架如何与SCA一起使用,以实现以下目的:
进行粗粒度的集成:与Spring的集成将在SCA复合体层次进行,其中Spring应用程序上下文提供了完整的SCA复合体,并通过SCA暴露的服务和服务需求。这意味着Spring应用程序上下文定义了SCA复合体的具体实现的内部结构。
从SCA组件类型开始:利用Spring,可以实现任何SCA复合应用程序,这些应用程序使用WSDL或Java接口来定义可能具有某些特定于SCA扩展的服务。
从Spring上下文开始:可以将任何有效的Spring应用程序上下文用作SOA中的组件实现。特别地,应该可以从任何Spring上下文生成SCA复合应用程序,并在“SCA装配”中使用这些复合应用程序。
SCA绑定规范
SCA绑定(SCA Binding)规范适用于服务和服务需求。绑定允许通过特定的访问方法或传输来提供服务并满足服务需求。
Web服务绑定允许利用Web服务技术来访问外部需求或公开SCA服务。SCA提供了服务组件之
间的互连的复合视图,而Web服务提供了用于访问服务组件的互操作方式。Web服务绑定还提供了SCA系统与其他服务之间的互操作衔接,这里的其他服务是
指SCA系统的外部服务,但它们供SCA复合体使用。
JMS绑定允许SCA组件使用JMS API来通信。它提供了连接到所需的JMS资源的JMS特有的连接细节。它支持使用Queue和Topic类型的目标。
EJB Session Bean绑定可以将先前部署的Session Bean集成到SCA装配中,并允许向使用EJB编程模型的客户公开SCA服务。EJB绑定既支持无状态的Session Bean模型也支持有状态的Session Bean模型。
服务数据对象(SDO)
服务数据对象(SDO)的设计是为了简化和统一应用程序处理数据的方式。利用SDO,应用程序编程人员可以一致地访问和操纵来自异构数据源的数据,包括关系数据库、XML数据源、Web服务和企业信息系统。
为支持各种可能的应用,标准中包括了对各种常用语言的支持,包括:SDO for Java and C++,SDO for PHP,SDO for C,SDO for COBOL。详细内容可以从相关的白皮书和规范正文中获得。