服务组件架构(SCA)语言无关的编程模型,它提供了一种统一的面向服务构件的调用方式,使得客户可以把不同的软件模块通过服务构件的标准化而统一地封装起来和被调用访问。SCA描述了利用面向服务架构(SOA)来构建应用程序和系统的模型。SCA是基于开放标准(例如Web服务)构建的,它扩展和补充了先前的服务实现方法。
SCA的基本思想是将业务功能作为一系列服务来提供,这些服务组合到一起,以创建满足特定业务需要的解决方案。这些复合应用程序既可以包含专门为该应用程序创建的新服务,也可以包含来自现有系统和应用程序的业务功能(作为复合应用程序的一部分来重用)。SCA为服务组合和服务组件的创建(包括SCA复合应用程序内部现有应用程序功能的重用)提供了模型。
注:UML也是一种建模语言,而可以看到SCA组件模型是对应的不是UML中的类,而可能是一个粗粒度的组件包,对于粗粒度的组件包,特别是一个服务组件,我们关注的就是它暴露了哪些服务,有哪些属性,引用了哪些其它子组件等。这些描述清楚了一个服务基本就描述清楚了。特别是在构建组合服务的时候,我们看到服务和应用描述方式很容易将多个子组件串联在一起,而不需要通过BPEL服务编排方式实现。
SCA这一模型旨在包含广泛的服务组件技术以及用于连接这些组件的访问方法。对于组件,它不仅包括各种编程语言,还包括通常与这些语言一起使用的框架和环境。对于访问方法,SCA复合应用程序允许使用各种常用的通信和服务访问技术,例如,Web服务、消息传递系统和远程过程调用(RPC)。
SCA包括如下规范
- SCA Java EJB客户及实现(SCA Java EJB Client and Implementation)
- SCA装配模型(SCA Assembly Model)定义了构成一个SCA系统的各种构件和他们之间的关系
- SCA策略框架(SCA Policy Framework)
- SCA Java注释、API和组件实现
- SCA绑定(SCA Binding)规范适用于服务和服务需求
服务组件提供给别的服务调用的入口叫Interface(接口)。而服务组件本身可能也需要调用别的服务,这个调用出口叫Reference(引用)。无论是接口还是引用,其调用规范都是WSDL或Java接口SCA服务组件与传统组件的主要区别在于:
- 服务组件往往是粗粒度的,而传统组件以细粒度居多。
- 服务组件的接口是标准的,主要是WSDL接口,而传统组件常以具体API形式出现。
- 服务组件的实现与语言是无关的,而传统组件常绑定某种特定的语言
服务数据对象(SDO)
统一访问不同数据源的数据编程模型,让开发人员可以从不同的数据源以统一的方式访问和操纵数据。服务数据对象(SDO)的设计是为了简化和统一应用程序处理数据的方式。利用SDO,应用程序编程人员可以一致地访问和操纵来自异构数据源的数据,包括关系数据库、XML数据源、Web服务和企业信息系统。
在SDO中有两个要素,一个是数据视图,一个是数据视图中的数据对象。数据视图是描述数据对象的分层结构,包括数据对象树和更改摘要;而数据对象是保存数据的组件,有键/值对组成,每个值可以是原始的数据类型,也可以是一个数据对象,并支持序列化。
为何要采用SCA和SDO?因为通过SCA和SDO获得了更高的灵活性和更高的开发效率。可以在不改变应用程序情况下,使用不同的技术来作为组件的实现,或者改变通信协议等等,同时模块也可以根据容易的被重用和组装,易于修改和变更。
Author: orangelizq
email: orangelizq@163.com
posted on 2010-11-30 09:57
桔子汁 阅读(457)
评论(0) 编辑 收藏 所属分类:
SOA