摘要:
新技术的兴起必然伴随着一系列技术标准和规范的诞生,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。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。
-
如何避免云计算与SOA冲突