`
zhouxing
  • 浏览: 208583 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SOA的发展历史与标准规范

阅读更多
作者:长风     来源:IT168


新技术的兴起必然伴随着一系列技术标准和规范的诞生,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服务标准集已经初具规模,内容涵盖传输层、消息机制、编程模型、服务发现和描述、可靠性、事务处理、安全和管理等方面。尽管其中部分内容还处于规范级别,但由于受到广泛的关注和支持,成为正式标准只是时间上的问题。

      2.4 SOA参考模型

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

image

从上图可以看出,参考模型位于抽象级别的顶部,也就是说参考模型提供了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个月。
分享到:
评论

相关推荐

    soa +web service1

    - **SOA的历史发展:** - 从20世纪80年代的对象导向编程(Object-Oriented Programming, OOP)到90年代的组件化(Component-Based),再到21世纪初的面向服务(Service-Oriented),技术发展呈现出逐渐抽象化和服务...

    大规模SOA.pdf

    而JTS则实现了JTA规范,并通过CORBA对象事务服务(Object Transaction Service,OTS)与其他系统进行交互,提供事务管理服务。 此外,还有一些专门用于解决分布式事务问题的技术设施,比如Apache的OpenTransaction...

    SOA回归理性,才有真实

    综上所述,SOA是一种以服务为中心的架构设计方法,它的发展历程体现了技术从概念到实践的演进,而标准化的推进则使得SOA更加成熟和实用。通过合理的IT基础设施和设计策略,SOA能够有效地解决企业应用集成的复杂性,...

    SOA和Web_Service的区别

    ### SOA与Web Service的历史背景 SOA和Web Service的概念是在分布式计算发展历程中逐渐形成的。早期的分布式计算主要依赖于直接在网络协议基础上的通信,这要求程序员深入理解网络底层细节,导致开发复杂且难以维护...

    11_基于SOA架构设计.pdf

    - **发展历史**:从早期的面向过程编程,到后来的面向对象编程,再到面向组件编程,最终演进到现在的面向服务编程。 - **趋势**:面向服务架构代表了软件开发领域的一个重要发展方向,其目标是实现更灵活、更高效的...

    基于SOA的南方电网数据中心建设研究.docx

    ### 基于SOA的南方电网数据中心建设研究 ...综上所述,基于SOA架构的数据中心建设不仅可行,而且能够极大提升南方电网公司在信息化建设方面的竞争力,实现数据中心的可持续发展、高可用性、实用性和先进性。

    如何设计服务以及服务化架构(SOA)?.docx

    服务契约明确了服务消费者与服务提供者之间的所有交互约定,包括服务接口、服务质量、服务可用性等方面的规范。 **服务与模块/组件的区别** 服务与传统的软件构件(如模块和组件)最大的不同在于,服务的质量和...

    面向服务体系架构(SOA)和业务组件(BC)的思考1

    服务组件架构(SCA)是一种具体的SOA规范,由BEA、IBM、Oracle等公司联合制定。SCA定义了一套用于构建面向服务应用程序的编程模型,包括服务及其实现。SCA由域、组合构件和构件三个层次构成,其中构件代表细粒度的...

    中国开源的发展

    - **开放标准的普及**:随着开放标准的普及,不同软件之间的兼容性得到增强,降低了用户的迁移成本,同时也促进了开源项目的标准化和规范化。 - **虚拟化技术的应用**:虚拟化技术的进步使得资源的高效利用成为可能...

    AUTOSAR_RS_SOMEIPProtocol.pdf

    - **免责声明**阐述了标准规范的使用目的、知识产权保护、第三方责任、许可需求以及对非汽车应用的限制。这是为了保护 AUTOSAR 组织和贡献公司的知识产权,并明确使用者的责任和规范的使用范围。 ### SOA在汽车行业...

    OPC规范3.0

    8. ** OPC UA客户端和服务器**:规范定义了客户端如何与服务器通信,包括连接建立、服务调用、异常处理等,使得开发者可以快速构建符合标准的应用程序。 9. **OPC UA工具和库**:为了简化开发过程,存在许多开源和...

    OPC技术规范(全).zip

    3. **OPC UA(Unified Architecture)**:随着技术发展,OPC基金会推出了OPC UA,它是一个更加现代、安全且平台无关的标准,支持面向服务的架构(SOA),并提供数据加密和身份验证功能,增强了网络安全。 4. **OPC ...

    企业数据接口管理规范V1.0.docx

    该规范尤其适用于那些需要与ESB进行对接的新建或已有应用系统,以促进企业数据的标准化管理和顺畅流动。 **1. SOA与ESB的角色** - SOA(面向服务的架构)是一种设计模式,它将功能分解为可重用的服务,通过明确的...

    SCA编程模型研究与分析.pdf

    ### SCA的历史与发展 SCA的发展起源于对SOA实现方式的探索。随着SOA理念的普及,业界需要一个统一的标准来构建服务组件,SCA应运而生。SCA旨在提供一个独立于具体技术的抽象层,允许开发人员使用不同的编程语言和...

    What is SDO

    ### SDO(服务数据对象)概述 #### 一、SDO简介 SDO(Service Data Objects),即服务数据对象,是一种旨在简化和服务导向架构(SOA...随着行业对这两种技术的支持不断增强,SDO和SCA有望成为未来SOA开发的标准之一。

    企业数据接口管理规范V1.0.pdf

    《企业数据接口管理规范V1.0》是针对企业间数据集成的重要指导文件,旨在确保ESB系统与其他应用系统间的接口开发和管理规范化。本文档适用于所有与ESB进行对接的应用系统,无论是在建、已完成还是未来规划的系统,都...

    医院信息化集成平台建设经验分享-最佳实践.docx

    - 在缺乏数据主索引的情况下,医院信息中心需要建立院内标准规范体系,规范不同厂商的接口开发,保证数据一致性。 - 在新系统上线前,信息中心需主导制定标准,以业务部门要求为依据,确保接口的规范化。 4. **...

Global site tag (gtag.js) - Google Analytics