SOA的发展历史与标准规范

来源:互联网 发布:知乎api接口 编辑:程序博客网 时间:2024/05/20 05:23

  新技术的兴起必然伴随着一系列技术标准和规范的诞生,SOA也是如此。短短几年之内,在厂商、研究人员和标准化组织的共同努力下,已经制定出一 大批SOA标准和规范,有力地推动了SOA的发展。面对众多的SOA标准和规范,很多人可能会感到迷茫和疑惑,进而愈发觉得SOA太复杂而高不可攀。其 实,只要了解SOA的发展历程和SOA架构的基本知识,同时对标准的制定、审核和发布机构及工作机制有一定认识和了解,就不难理解这些标准的意义和作用。

  1. SOA发展回顾

  SOA的概念最初由Gartner公司提出,由于当时的技术水平和市场环境尚不具备真正实施SOA的条件,因此当时SOA并未引起人们的广泛关 注,SOA在当时沉寂了一段时间。伴随着互联网的浪潮,越来越多的企业将业务转移到互联网领域,带动了电子商务的蓬勃发展。为了能够将公司的业务打包成独 立的、具有很强伸缩性的基于互联网的服务,人们提出了Web服务的概念,这可以说是SOA的发端。

  Web服务开始流行以后,互联网迅速出现了大量的基于不同平台和语言开发的Web服务组件。为了能够有效地对这些为数众多的组件进行管理,人们 迫切需要找到一种新的面向服务的分布式Web计算架构。该架构要能够使这些由不同组织开发的Web服务能够相互学习和交互,保障安全以及兼顾复用性和可管 理性。由此,人们重新找回面向服务的架构(Service-Oriented Architecture,SOA),并赋予其时代的特征。需求推动技术进步,正是这种强烈的市场需求,使得SOA再次成为人们关注的焦点。回顾SOA发 展历程,我们把其大致分为了三个阶段。下面将分别介绍每个阶段的重要标准和规范。

  1.1 孕育阶段

  这一阶段以XML技术为标志,时间大致从上世纪九十年代末到本世纪初。虽然这段时期很少提到SOA,但XML的出现无疑为SOA的兴起奠定了稳固的基石。

  可扩展标记语言(Extensibl Markup Language,XML)系W3C所创建,源自流行的标准通用标记语言(Standard Generalised Markup Language,SGML),它在上世纪60年代后期就已存在。这种广泛使用的元语言,允许组织定义文档的元数据,实现企业内部和企业之间的电子数据交 换。由于SGML比较复杂,实施成本很高,因此很长时间里只用于大公司之间,限制了它的推广和普及。

  通过XML,开发人员摆脱了HTML语言的限制,可以将任何文档转换成XML格式,然后跨越互联网协议传输。借助XML转换语言 (Extensible Stylesheet Language Transformation,XSLT),接受方可以很容易地解析和抽取XML的数据。这使得企业既能够将数据能够以一种统一的格式描述和交换,同时又 不必负担SGML那样高的成本。事实上,XML实施成本几乎和HTML一样。

  XML是SOA的基石。XML规定了服务之间以及服务内部数据交换的格式和结构。XSD Schemas 保障了消息数据的完整性和有效性,而XSLT使得不同的数据表达能沟通过Schema映射而互相通信。

  1.2 发轫之初

  2000年以后,人们普遍认识到基于公共——专有互联网之上的电子商务具有极大的发展潜力,因此需要创建一套全新的基于互联网的开放通信框架, 以满足企业对电子商务中各分立系统之间通信的要求。于是,人们提出了Web服务的概念,希望通过将企业对外服务封装为基于统一标准的Web服务,实现异构 系统之间的简单交互。这一时期,出现了三个著名的Web服务标准和规范:

  •   简单对象访问协议(Simple Object Access Protocal,SOAP)
  •   Web服务描述语言(Web Services Description Language,WSDL)
  •   通用服务发现和集成协议(Universal Discovery Description and Integration,UUDI)

  这三个标准可谓Web服务三剑客,极大地推动了Web服务的普及和发展。短短几年之间,互联网上出现了大量的Web服务,越来越多的网站和公司 将其对外服务或业务接口封装成Web服务,有力地推动了电子商务和互联网的发展。Web服务也是互联网Web 2.0时代的一项重要特征。

  1.3 成长阶段

  从2005年开始,SOA推广和普及工作开始加速。不仅专家学者,几乎所有关心软件

  行业发展的人士都开始把目光投向SOA。一时间,SOA频频出现在各种技术媒体、新产品发布会和技术交流会上。

  各大厂商也逐渐放弃成见,通过建立厂商间的协作组织共同努力制定中立的SOA标准。这一努力最重要的成果体现在3个重量级规范上: SCA/SDO/WS-Policy。SCA和SDO构成了SOA编程模型的基础,而WS-Policy建立了SOA组件之间安全交互的规范。这三个规范 的发布,标志着SOA进入了实施阶段。

  从整体架构角度看,人们已经把关注点从简单的Web服务拓展到面向服务体系架构的各个方面,包括安全、业务流程和事务处理等。

  2. 标准与规范

  2.1 标准与规范的区别

  大多数人习惯上把“标准”与“规范”这两个术语交替使用,这样做基本没有问题。但严格地讲,二者还是有一定差异的。规范是标准的建议文档。这就 意味着,标准一般是由业界公认的标准化组织制定和发布。而规范要灵活的多,多为厂商或非标准化组织发布。事实上,很多规范并不是标准,比如SDO和 SCA,而是由某些厂商或厂商联盟制定发布。但是凭借这些厂商强大的市场地位,这些规范往往会成为事实上的标准。

  我们大体上可以把SOA标准分为XML标准集、Web服务标准集和SOA参考模型,下面我将分别介绍,为叙述方便,不再严格区分标准和规范,统一称作标准。

  2.2 XML标准集

  2001年10月,W3C发布了XML信息集(XML Information Set,XML Infoset)。

  Infoset是一个抽象的数据模型,它兼容基于文本的XML 1.0,也是所有最新XML规范(XML Schema、XML Query和XSLT 2.0)的基础。由于Web服务架构是以XML Infoset为基础,而不是以某一特定的表现形式为基础,使得该架构及其核心协议组件可与各种编码技术兼容。

  除了基于纯文本的Infoset编码技术以外,Web服务架构还需要支持另外一种编码技术——即允许不透明的二进制数据与传统的基于文本的标记 交织在一起。由于XML Infoset仅支持基于文本的XML,W3C于2005年初发布了XML二进制优化封装协议(XML-binary Optimized Packaging,XOP)。XOP格式使用MIME将原始二进制数据引入到XML 1.0文档中,而不采用base64编码。通过其配套规范——SOAP 消息(Transmission Optimization Method,MTOM)实现将二进制XOP格式绑定到SOAP。XOP和MTOM是将原始二进制数据与基于文本的XML混合在一起的首选方法,它们取代 了目前普遍遭到反对的SOAP with Attachments(SwA)和WS-Attachments/DIME。

  2.3 Web服务标准集

  经过几年的努力,Web服务标准集已经初具规模,内容涵盖传输层、消息机制、编程模型、服务发现和描述、可靠性、事务处理、安全和管理等方面。尽管其中部分内容还处于规范级别,但由于受到广泛的关注和支持,成为正式标准只是时间上的问题。下面列出了标准的清单:

类型

标准(规范)名称

传输层

Blocks Extensible Exchange Protocol (BEEP)   HyperText Transfer Protocol

消息

SOAP 1.1   Web Services Addressing   Web Services Notification   Web Services Attachments Profile 1.0   MTOM Serialization Policy Assertion (WS-MTOMPolicy) Version 1.0

编程模型

Service Component Architecture   Service Data Object

发现和描述

UDDI   WSDL   Web Services Metadata Exchange   Web Services Policy Assertions Language   Web Services Policy Attachment   Web Services Policy Framework   Web Services Resource Framework

可靠性

Web Services Reliable Messaging   WS-RM Policy Assertion

事务处理

Web Services Atomic Transaction   Web Services Business Activity   Web Services Coordination

安全

Web Services Federation Language   WS-Federation: Active Requester Profile   WS-Federation: Passive Requester Profile   Web Services Provisioning   Web Services Secure Conversation Language   Web Services Security 1.0   Web Services Security Addendum   WS-Security Kerberos Binding   Web Services Security Policy   Web Services Trust   Security Assertion Markup Language (SAML)

业务流程

WS-BPEL Extension for People   Business Process Execution Language for Web Services V1.1

管理

Web Services Distributed Management   Web Services Manageability   Web Services Manageability -- Concepts   Web Services Manageability -- Representation   WS-Resource Transfer   Web Services Service Registry and Repository

  2.4 SOA参考模型

  SOA参考模型由结构化信息标准促进组织制定和发布。事实上,它并不是一个标准,而是SOA架构的一个抽象框架,统一了SOA相关术语用法并且 定义了这些术语的涵义,同时还明确定义了SOA各组件之间的关系。SOA架构师或系统设计人员可以根据这个模型指导自己的SOA实践,下图说明了SOA参 考模型与SOA实践之间的关系。

  从上图可以看出,参考模型位于抽象级别的顶部,也就是说参考模型提供了SOA实现的抽象基础。每个SOA架构设计者都要考虑参考架构、模式、模 型以及由参考架构派生出的概念架构,审慎思考实际环境(需求、动机和目标等)对实现架构的影响,同时利用已有的标准和协议,这样就形成了一个比较完整的 SOA设计方法论。总而言之,SOA参考模型使得我们能够系统地考虑SOA架构的实现,并给出最基本的概念和设计模式。

  3. 标准化组织对标准的贡献

  3.1结构化信息标准促进组织(Organization for the Advancement of Structured Information Standards,OASIS)

  OASIS是一个非赢利的国际协会,致力于电子商务相关标准的制定和推广,也是目前制定Web服务标准最多的一个组织。除了制定通用的电子商 务、Web服务和安全标准之外,OASIS还制定了很多针对行业的电子标准。OASIS理事会成员几乎全部来自微软、IBM、BEA system、Oracle、Sun、SAP AG、诺基亚等业界大公司。

  OASIS为SOA专门成立了六个技术委员会(Technical Committees),分别负责制定电子商务、Web Service开发和部署、服务质量以及面向服务架构等方面的标准。

  3.2 开放SOA合作组织(Open SOA Collaboration,OSOA)

  OSOA是一个非正式的厂商联盟,使得各厂商能够共同开发一个语言中立的编程模型。该编程模型帮助企业软件开发人员能够最大限度的发挥SOA架 构的特性和优势。目前加入OSOA的厂商包括IBM、BEA、SAP、Oracle等。尽管OSOA不是一个标准化组织,但由于有IBM、BEA等业界厂 商的支持,它制定的规范很可能会成为事实上的标准。因此,我们可以把它看作一个准标准化组织。OSOA成立了两个项目组,分别负责制定SCA和SDO规 范。

  3.3万维网联盟(World Wide Web Consortium,W3C)

  W3C成立于1994年,主要负责制定Web相关标准和规范,比如HTML、CSS等。W3C专门成立了Web服务专区,下辖六个工作组,负责制定Web服务相关的标准。W3C对Web服务的发展可谓功不可没,像非常著名的SOAP和WSDL皆出自于W3C。

  3.4 Web服务互操作组织(Web Services Interoperability Organization,WS-I)

  WS-I是一个开放的厂商联盟,鼓励任何对Web服务有兴趣的厂商加盟并贡献自己的力量。 它主要致力于提升Web服务基于平台、操作系统和编程语言中立的互操作能力,其成员几乎覆盖了所有重量级厂商,如IBM、微软、Sun、Oracle和BEA等。

  3.5 互联网工程任务组(Internet Engineering Task Force,IETF)

  The IETF(因特网工程工作小组)是定义标准因特网操作协议(像TCP/IP)的团体,IETF接受国际互联网协会Internet架构委员会 (Internet Architecture Board,IAB)的监督管理。IETF的成员分别来自于互联网协会的个人或者组织成员。

  4.厂商之间的博弈

  谁控制了标准,谁就控制了游戏规则,就能够在未来的软件行业立于不败之地。因此,几乎当前所有的主要工具供应商和平台提供商都参与了SOA标准 的制定,包括微软、IBM、BEA、Oracle、Sun、SAP AG、诺基亚、IONA、Xcalia、Zend 、Sonic Software。

  表面上,标准化组织都声称自己独立于任何厂商,强调其独立性和自主性。但如果观察这些组织理事会的成员构成,就会发现大部分成员都来自上面提到的业界寡头,来自欧美发达国家,可以说是“大国俱乐部”和“大厂俱乐部”。

  在参与制定标准的同时,各大厂还开始并购优秀的行业SOA解决方案提供商,积累针对特定行业标准的实施经验,以期获取竞争优势。2006年8 月,IBM宣布成功收购了一家专门提供面向行业的 SOA软件与服务的私有企业——Webify解决方案公司。Webify公司专注于提供帮助企业加速开发和部署应用的软件产品,以及数以百计的针对特定行 业的基于标准的预置加速器、工具和框架,用于解决特定行业的业务问题,如帮助医疗保健行业符合《健康保险便携性及责任性法案》(HIPAA)的要求、帮助 保险行业满足《国际保险业数据标准》(ACORD)等。此次收购将进一步增强IBM在SOA领域的领导地位。 Webify在语义方面的专业技术与IBM在开放标准开发利用丰富经验的结合,能够更好地解决特定垂直行业的常见业务问题。

  5.标准的发展趋势

  2007年将有三个重量级的标准问世,它们目前都属于规范级别。它们就是SCA、SDO、WS-Policy。SCA和SDO构成了SOA组件 开发的核心,而WS-Policy则成为SOA组件间安全通讯的标准,其作用类似于安全套接层在浏览器与服务器通讯中的重用。事实上,WS-Policy 的基本原理与SSL是一致的。

  今后标准开发将具有一个共同的特点,就是标准与SOA架构的协调性。也就是说,无论是已有的标准还是正在开发的标准,都必须符合SOA架构的要求,同时要考虑单个标准与其它SOA标准之间的协调一致。

  2007年将会有许多SOA的规范升级为标准。SCA和SDO计划于2007年由OASIS审核通过,而WS-Policy也将于2007年8月正式成为W3C标准。

  基于市场的强劲需求,各标准化组织将继续加大在制定SOA相关标准上的投入力度,标准的制定和发布周期将大大缩短。比如对WS-Policy, W3C制定了精密的时间表。目前WS-Policy的发布时间表是这样安排的,2007年3月发布候选推荐版本(Candidate Recommendation drafts),2007年7月发布提议推荐版本(Proposed Recommendation drafts),2007年8月发布W3C推荐版本(W3C Recommendations)。W3C历来以严谨和审慎著称,发布一个标准平均需要3至5年的时间。但就WS-Policy而言,从2006年4月 IBM和微软公司将WS-Policy规范提交给W3C算起,按照目前的时间表,整个标准发布周期仅为16个月。

原创粉丝点击