本文审视XML、Web服务及SOA间的关系,并解释厂商和标准组织如何从那些持续浮现的Web服务规范中形成奇妙的竞争与协同竞技场。然后我们从应用架构简短历史的叙述着手来对过去的二十年作一个总结。
2. SOA的持续进化(标准组织与贡献厂商)
XML作为一种语言,被定义为一个规范,但实际上也被用作表达所有的XML及Web服务规范。这个普遍思路褒扬了这样的事实:不管规范的规模会有多大的增长,都分享了一个公共的根基。
无论你是否需要在这些扩展上直接工作,它们的存在与进化将对你所构建的面向服务解决方案有持续影响。有关规范与标准形成的过程及原因的知识,也因此关系到你对于SOA世界的理解。
2.1. 比较“标准”、“规范”与“扩展”
这些术语常可交替使用,但是许多---特别是与标准组织相关---还是有明显的区别。规范是标准的建议文档。直到规范被提交到一个公认的标准组织,并被接受、公布,它都不是正式的工业标准。
尽管如此,规范还可被厂商发布(特别是合作厂商),并随之被这些厂商平台实现,通常会进一步成为非正式的工业标准,只是由于它们变得非常普遍。
为避免混淆,本书将这些术语作如下定义:
﹡ 标准 公认的工业标准。所有的第一代Web服务规范可认作标准,许多XML规范同样如此。
﹡ 规范 被提议的或公认的标准,以规范来描述。XML标准,第一代Web服务标准,以及WS-*扩展都以规范的方式存在。
﹡ 扩展 扩展典型地代表WS-*规范以及WS-*规范所提供的特性。
2.2. 标准组织对SOA的贡献
众所周知,SOA由标准驱动。早先的平台在厂商特定的边界内实现;环境内的标准实际上是专有的。允诺厂商中立的通信框架常伴有不可谈判的需求,就是要定义此框架的标准是同样也厂商中立的。
可是,如何确切地制定这些标准,并非总是很清晰。互联网标准组织现在已经存在很长时间,但是它们各自的议程总不大清楚,有时甚至有所重叠。更复杂的问题是这些主要的厂商中立标准的贡献者是厂商自身。微软、IBM、Sun微系统以及众多其他公司已经扮演了日益重要的角色,不仅是制定Web服务规范,还促进了实现这些规范作为工业标准的实现。
厂商如何贡献并影响了标准的开发过程将在后续章节解释。让我们首先来熟悉三个最主要的标准组织。它们共同负责完成XML与Web服务架构的进化。
万维网联盟(W3C)
最初由提姆?伯尼尔斯?李于1994创立,W3C对于万维网作为全球信息分享的语义媒介负有极大责任。它开始于HTML的发布,这是IT行业所产生的最流行的一种语言。当互联网用于包括由电子商务开端的更广范围时,W3C开始制定关键基于XML的基础标准,象XML
Schema及XSLT。
四个独立工作组对W3C的Web服务活动工程作出了重要贡献,导致了重要的Web服务基本标准开发。首要的是SOAP与WSDL标准,现在已成为Web服务相关的标志性规范。更近一些,W3C已提出了Web服务编舞描述语言(WS-CDL),一个控制标准化的服务间交换模式的规范。值得关注的还有Web服务架构文档本身。尽管这个文档不断经历变化,它还是保留了一个参考点,且是少数可用的平台中立的Web服务架构文档之一。
W3C以正式和严格的标准开发方法而闻名。其过程需要规范受制于诸多的评审与修订阶段,每一个新的版本都会发布在其公开网站上。这样完全的过程要以时间为代价,完成一个标准要用两到三年。
结构化信息标准进步组织(OASIS)
原本于1993年作为SGML开放组织而成立,OASIS五年之后改变了其名称,代表其关注点从SGML转为XML相关的标准。OASIS拥有来自超过600家组织的数千个成员,是一个公认的互联网标准制定组织。
OASIS假定拥有著名的WS-BPEL规范的所有权,并且还以其ebXML的开发(一个旨在建立标准化的B2B数据交换方法的规范)和对于UDDI规范的贡献而闻名,后者是第一代Web服务平台的核心标准。
OASIS组已经有力地推进了XML与Web服务安全扩展的开发。安全声明标记语言(SAML)用扩展访问控制标记语言(XACML)提供了单点登录与授权领域的重要特性。然而,最重要的安全相关项目由Web服务安全(WSS)
技术委员会完成。这个小组被委托进一步开发并实现重要的WS-安全框架。
不同于W3C集中于建立核心的、工业未知标准,OASIS组的主要兴趣在于利用这些标准去制定附加规范以支持不同的垂直行业。而且,OASIS所用的标准开发过程要明显短一些。
Web服务协同组织(WS-I)
WS-I的主要目标不是创建新标准,而是确保最终实现开放的协同性目标。这个联盟建立于2002年,已经迅速成长并获得了近200家组织的支持,包括所有的SOA主流厂商。
WS-I最为人所知的是发布基本配置文件,用于建立可用标准的基础推荐文档,这些文档共同用于形成最想要的协同性架构。藉由正式地定位WSDL、SOAP、UDDI、XML与XML
Schema规范的版本,基本配置文件已成为IT社团内的重要文档。这些组织想要确保它们开发的SOA与其他系统充分协同,并能够保证对于遵从基本配置文件的高层次赞同。
最近,WS-I开发了基本安全配置文件。本质是与基本配置文件属于同一概念,这个文档建立了最重要的Web服务与XML安全技术集合。WS-I已宣布了持续发布针对每一Web服务主要方面的相关协同性配置文件计划,包括可靠通讯、Web服务管理与编曲。
除了建立基本的协同性架构之外,配置文件还补充了示例实现及最佳实践,以便指导如何与标准一起使用从而达到协同性品质。而且,WS-I还提供了一系列测试工具可用来确保符合配置文件。许多厂商还提供了这些工具的变种,例如:将基本配置文件作为一致的有效性标准的一部分进行有效性检查。
WS-I努力提供一个场所,能在同一水准上接受其成员的贡献。当其成员包括重要的SOA厂商之时,没有哪个公司可以比另一个更有权力,不管其规模和市场分额有多大。
尽管W3C近期拒绝了加入WS-I联合成员的邀请,但来自WS-I的工作组成员不断主动地直接参与W3C及OASIS的各个工作组工作。这些WS-I代表的角色持续对协同性相关问题进行反馈。
它们如何比较
表2.1在概要地提供了我们本节所讨论的三个组织间的相互比较。
表2.1. 标准组织的比较 2.3.
主流厂商对SOA的贡献
尽管标准组织关于标准应当如何开发有其自已的文化与哲学,它们都要受到来自商业市场的深深影响,因此也应当受到支持。即使这些组织作为独立实体存在,它们的成员也包括了相当多的所有主要的软件厂商。而且,这些厂商同样也是这些标准的主要贡献者和最终开发者。
一些已经参与标准开发过程的公司包括:微软、IBM、BEA系统、Sun微系统、Oracle、Tibco、惠普、佳能、Commerce
One、富士通,Software AG、北电、Verisign与WebMethods。这种由厂商间的交互、联盟,及与标准组织动态合作而产生现象相当有趣,值得进一步讨论。
为何要开发标准支持SOA
没有人或组织拥有或控制SOA。从专有平台发展而来的架构促进并支持开放的标准与厂商中立的协议,只要主流软件厂商选择支持,SOA将可能为此保留一个重要的架构。
那是因为,只要SOA能够在全球范围内象现在这样被继续接受,它的效益就能实现。如果只有一部分的解决方案技术跨应用通信所支持,那么构建协同应用的关键是什么呢?
不管如何,SOA今天在所有主流软件组织优先级列表上是首要的。与SOA的不兼容甚至不予考虑,因为这意味着你自己切断了通向正蓬勃成长的市场之路。对于现在和可预测的将来,SOA确实如此。
厂商影响
即使没人单独控制SOA,人人都有关于应当如何形成底层技术平台的观点。为了这一目的,厂商在标准开发过程中的影响已经将SOA的进化转变成一场战争议程。
每个厂商在关于计划如何提升自己产品线方面都有自己的愿景。IBM已经展示了一个技术路径支持在其WebSphere平台内逐渐增加对于SOA的支持。微软不仅在.NET技术框架内逐渐增加SOA特性,而且还构建直接将Web服务技术植入Windows操作系统。
尽管Web服务标准必须保持非专有化,能够帮助形成标准的厂商却有动机考虑使用专有技术。这不是必经的歧途或甚至有意的操纵。任何人可以主张这些标准由通用产品的有意支持来实现,他们应当通过代表更大市场份额的产品线厂商需求所影响。然而,挑战在于要争取所有厂商来决定应该如何设计一个标准。
厂商联盟
过去厂商间的争斗已经导致厂商间的很多不信任。现在,当想要与规范合作有意去鼓励厂商平台间的协同性时,这些猜疑会表面化并变成障碍。这个问题,与如何紧密联合厂商需求一起是一个特别的规范内容,这已经导致了一些公司形成松散联盟。
形成联盟使得厂商为了共同目标而通力合作。通常,联盟的寿命开发止于开发一个特定规范的过程。然而,多数著名的长期合作者(IBM、微软与BEA)已经保持其工作关系而推动了一系列的WS-*扩展。
一个更常谈论的示例是在创建了WS-可靠通讯规范的标准开发中,联盟所扮演的重要角色。本来,需要的可靠通讯机制由一个OASIS技术委员会所处理。其贡献者包括Sun微系统与Oracle,且规范被命名为WS-可靠性。然而,它发布之后只有数周的时间,微软、IBM及其他厂商宣布它们拥有自己的规范,称为WS-可靠通讯。
规范与处理相同的全部需求非常类似。然而,即使它被发布之后与还不能通过(或甚至提案)一个标准组织所开发,WS-可靠通讯扩展成为直接的竞争者。这只是由于这样的事实:厂商通过共同开发它而占据了一块巨大的Web服务技术平台市场份额。类似这样的事件,不仅反映了Web服务行业的不稳定状态,也揭示了缺乏权威标准组织的把控。
选择一个标准组织
可是,通常来说,通过标准组织而获得正式规范对厂商有益。正式建立规范的目标在于支持一个开放的标准,并受制于开放给公众的一般过程。
然而,在时标准组织的选择是有含意的。另一个在标准开发竞技场中的动力是与市场需求直接的。厂商具有市场驱动的目标,发布的产品必须满足客户的要求并匹配或胜过竞争对手所提供的(或计划提供的)。假定W3C仰赖一个冗长的标准开发过程,就会诱惑厂商将它们的标准提交到OASIS。
尽管组织已经开发了相似的规范似乎有所多余,就象是人往高处走。而且尽管事实上对立的动机似乎可能以反作用力来鼓励平台中立的技术标准,迄今为止已发布标准的品质已经足以促进SOA的进一步发展。
为什么你应当关心
在第3章采用SOA的常见缺陷一节中,我们讨论了伴随在产品与标准发布左右的开发的价值。让我们通过重申这一点来总结这一节,并列举一些你应当密切关注标准开发领域特殊理由。
﹡ 当计划迁移到SOA时,考虑一个成熟的关键扩展处理是有益的。这些规范将结束你对这个架构最后支持的功能性需求。
﹡ 观察标准开发的过程,会让你自己对于某个规范进步与否形成自己的观点。对你来说这很重要,可以让你把握现存面向服务解决方案的进化方向。
﹡ 与标准的开发保持接触,并且谁在主导它们能使你更好地理解开发平台的差异,你需要保持厂商中立的视角。这将增强你更好地比较可用产品平台的特性以及对SOA的支持。
要点总结
W3C对于万维网进步的贡献不容忽视。在SOA的舞台,它的职责主要在于标准,负责提供核心和通用的功能规范。
OASIS从一个SGML标准组织进化为专注于电子商务规范的组织。其全部目标在于创建特定行业的标准,并鼓励有电子商务能力的企业间的交易和商务。
作为一个组专注于不同平台的协同性关系,WS-I不产生技术标准。这个组织提供配置文件建立一个经过验证和测试的标准集。组织遵从这些配置文件,可保证它们的环境支持一个工业标准水平的协同性。
尽管标准组织作为独立实体存在,它们都接受来自代表厂商的支持和贡献。厂商的贡献由利己和公共利益的共同驱动。
保持标准开发的高度很重要,因为这让你做一个更专业的SOA迁移计划。
|