SCA/SDO——助力企业应用全面转向SOA


 2006-08-17 00:00:00       753

早在2002年底,Gartner Group就预测到2008年,SOA(面向服务的架构)将成为占有绝对优势的软件工程技术。如今,越来越多的企业已经跨过了对SOA的价值及其重要性的认知阶段,“如何转向SOA”正成为他们目前所要重点考虑的问题。2005年11月,为了简化SOA应用,BEA、IBM、IONA、Oracle、SAP AG、Sybase、Xcalia和Zend等公司联合发布了新的行业规范--SCA(Service Component Architecture)。此后,又有包括Primeton Technologies(普元)、Cape Clear、Interface21、Sun Microsystems、Red Hat等多家公司加盟到这一阵营中,合力推动SCA和SDO技术的发展。

SCA是专门针对SOA设计的一种全新的编程模型。SCA的根本观点是将业务功能封装为构件(Component)并向外提供服务,通过不同服务的组装来搭建新的应用。

SCA最核心的概念是构件(Component)、服务(Service)、引用(Reference)以及构件实现(Implementation),如图1所示。构件是配置过的实现的实例,实现则是完成构件功能的基本物理单元。构件与其实现的具体开发技术无关,用户可以使用诸如Java、BPEL、C++等任何一种技术编写构件实现。构件使用服务描述其提供的功能,一个构件可以提供0个或多个服务。服务由接口(Interface)定义,而接口则包含一组操作。一个构件在实现其所提供的特定服务时,可能会需要使用其它构件所提供的服务,SCA将其称为引用。构件可以有0个或多个引用,引用指向特定的服务。构件还可以有0个或多个属性(Property),这些属性是可以在外部配置的数据值。将构件的引用通过连线(Wire)连接到它所依赖的服务的方式就是SCA最基本的“装配”方式。



图1 SCA构件

SCA中另一个重要的概念是复合(Composite),如图2所示。一个复合由多个构件组装而成,而复合本身又可以做为另一个构件的实现。通过这种机制,SCA实现了构件的递归组装。





图2 SCA复合(Composite)

由SCA构件组装而成的系统是一个程序集。程序集是服务级的应用程序,它是服务的集合,这些服务被连接在一起,并且进行了正确的配置。程序集已经在许多技术和框架中被广为应用,比如CORBA、J2EE、ATG Dynamo和Spring等。从这些技术中我们可以知道,程序集具有诸多优点,比如更轻松的迭代开发,以及避免使业务逻辑依赖于中间件容器。SCA使用程序集解决了许多SOA开发中的重要问题,包括:

业务逻辑与底层基础架构、服务质量和传输的分离。 “小规模编程”与“大规模编程”的联系。 为架构的设计、编码和部署在自底向上(bottom-up)和自顶向下(top-down)两种方法中来回切换提供了一种统一的方式。 SCA的一个关键推动因素是Service Data Object(服务数据对象,SDO)规范,其蓝图早在几年前就已经由IBM和BEA设计完成,并且已经在两家公司的部分软件产品中得到体现。

SDO可以帮助程序员访问和控制来自不同数据源的数据,包括关系数据库、XML数据源和企业应用等。SDO的关键概念是数据对象(Data Object)、数据图(Data Graph)和数据访问服务(Data Access Services,DAS)。数据对象是一个命名的属性集合,每一个属性或者包含一个简单数据类型的值,或者可以包含一个对其他数据对象的引用。数据图则提供了一个包装数据对象的信封,是构件之间传输的标准单元。具体使用 SDO 时,开发人员和设计师并不需要了解访问某个后端数据源的技术细节,因此,他们可以使用静态或动态编程方法,并获得已连接和未连接的访问。

在搭建面向SOA的应用过程中,SCA 和 SDO可以结合使用。在该模型中,业务构件表示为 SCA 构件,SDO则用于表示业务数据、参数以及服务调用的返回值。

总之,SCA和SDO是用于简化SOA编程的新标准,是未来用于构建大规模企业组合应用程序的新技术。这一领域的每一次革新,都会导致出现一个新的抽象层,从而产生一批新的应用程序。通过采用SCA和SDO,企业能够更轻松地创建新IT资产以及改造现有IT资产,并使IT资产成为能够快速组装的可重用服务,从而满足不断变化的业务需求。

相关阅读: