服务服务-组件架构:一个组件架构:一个SOA的编程模型的编程模型
引言:引言:
服务-组件架构(SCA)提供了实现面向服务的架构(SOA)的一个编程模型。
面向服务的架构已经在软件开发领域存在很多年了。但是当一些组织试图去定义最佳的实现和管理技能的时候,为一个特定组
织开发一个SOA的细节却是难以捉摸的。在这篇文章里,我将介绍SOA的一种实现方式——服务-组件架构。
SOA在概念上来说是关于松耦合的行为。业务和系统功能作为大的独立服务被展现,使得它们以不同的方式在业务流的组合
中被使用。这是一个简单的描述,但实现起来就相当的复杂了。任何使用EAI和分布式技术的人都能回忆起在一个企业里兜售
业务功能的困难。
SOA原理是抽象的,独立于实现技术。从开发角度来看,定义SOA构成是有帮助的,它使得工程师可以无须求助于技术规范
来用具体术语讨论开发实现。为了这个目标,开放面向服务的架构(OSOA)组织发布了服务组件架构(SCA)规范
1.1(www.osoa.com)。
SCA已经被IBM,BEA,Sun,Software AG,IONA,SAP,和Oracle以及其他一些公司开发很多年了。可以在IBM,Rogue
Wave,Oracle,Tibco,Apache Software Foundation(Tuscany)和Eclipse Foundation(SOA Tools Platform)获取实现。
SCA编程模型编程模型
SCA编程模型主要通过提供一个服务的开发,集合,部署的方法,来关注SOA的工程细节。为了和SOA原理一致,SCA通过
元数据驱动,语言独立和容器独立来支持异构的实现。只要一个从SCA规范到技术的映射可以被定义,SCA就能被实现。于
是,SCA被和多种语言和容器绑定;最近的一个C语言规范以及形成草案。图1是一个以和其他技术以及服务质量需求相关的
SCA的高层概念视图。
图1 和实现细节相关的SCA模型
目前,SCA映射已经存在于Java,C++,Ruby,Spring,和BPEL及其他语言中。另外,SCA绑定也在web服务,JMS,JCA
和其他通信机制中存在。SCA的目标是减少SOA的概念原理到可以在一个具体上下文中讨论的具体元素集合。
SCA的好处有:
使用组件和组合简化SOA实现
使用松耦合的组件和参考来支持敏捷特性
通过一个综合的调用模型支持事件驱动的行为
将开发和集合分开,允许技术不可知的组合
建立服务:程序集建立服务:程序集(Assembly)模型模型
程序集模型描述了服务是如何被定义和配置的。
组件是SCA模型的核心,可以用支持SCA的任何语言来实现。一经定义,组件可以使用属性来声明配置,这将在接下来的实
现中映射到accessor和mutator。图2是一个组件的图。例1(a)是一个XML声明的组件。