门派与武功——Web服务新战略 - 柴晓路

[ 2005-06-28 00:12:45 | 作者: Admin ] 字号: | |
从全球技术领域来看,Web服务(Web Services)已经早就不再仅仅是概念了。经过过去一年的迅速发展,Web服务的标准家族不断扩展,目前已经成为包括十数个标准规范的标准体系: Web Services Stack。其中,核心规范在不停地升级完善中,辅助的扩展规范又在不断地被开发出来。可以说Web服务技术的核心就是Web服务的系列标准。正是以标准为基础的Web服务技术才能对互操作能力作出承诺:各个使用Web服务技术的系统由于都遵循相同的标准,因此它们才能彼此互相理解。

  多个门派两大武功

  为了标准化Web服务技术,W3C和OASIS这两个在Web和XML技术领域中举足轻重的标准化组织都成立了相应的工作组,从事Web服务的标准化工作。不过,与其说Web服务技术是由标准化组织推动的,还不如说Web服务技术是由各大技术厂商开创并发扬光大的。IBM、微软、HP、 BEA、Sun、Oracle等业界巨头都在Web服务领域里投入了大量的研发力量,尤其是IBM和微软。Web服务的大多数技术标准都是由这两家公司主导开发并制定了最初的版本,等应用了一段时间之后,才由标准化组织接纳进行完善和扩展。由于有着广大的技术厂商支持,每一个Web服务技术标准从诞生日,其技术实现工作就同步开始了。尽管Web服务技术标准非常丰富和博大,不过Web服务技术标准的实施的步骤却丝毫不见滞后。IBM的 WebSphere/WSTK、微软的.NET、Sun的Sun One、HP的E-Speak等都是在不断完善中的Web服务的开发及部署平台。

  不过,由于不同厂商有着不同的市场宣传策略,为了推动自身平台和产品的销售,厂商总是将或多或少地把自身的产品和平台与新兴的技术热点绑定在一起作市场推广。对于厂商而言,其产品的形象与新兴的技术热点紧密结合,无形中增加了产品宣传力度。使用这种方式的典型就是微软的.NET和Sun的 Sun ONE。微软 .NET是一个庞大的产品家族,其中最为核心的是.NET Framework。通过使用.NET Framework为基础架构,开发人员可以开发各种各样的应用,当然其中包括Web服务应用。不过使用.NET Framework同样可以部署其它的应用,诸如Win Form、Web Form、Remoting、COM控件等。而Sun ONE也是如此,可以使用Sun ONE开发各种Java应用,可以包含Web服务支持(功能),当然也可不包含。

  除了厂商之外,各种基于Web服务的源代码项目也在蓬勃开展,有的项目名字与相应的规范标准非常相近,其中最有名的要数Apache SOAP。Apache SOAP的版本目前已经发展到3.0(也称Axis)。它常常被人误以为是SOAP规范3.0的实现,事实上其实现的是SOAP 1.1规范。

  厂商的平台产品、开放源代码的项目和Web服务的规范标准编织了一张错综复杂的网,使初涉Web服务领域的技术人员往往感到无所适从。如此多的概念,铺天盖地而来:XML、XML Schema、SOAP、WSDL、UDDI、.NET、WSTK、E-Speak、WS-Security、WS-Transation、 UDDI4J、BPEL4WS、BPWS4J……不少技术人员往往混淆了这些概念,使得在理解Web服务技术架构、Web服务解决方案的时候误入歧途。本文的主要目的就是帮助大家梳理这些概念,使大家对Web服务技术架构有一个从整体到局部,从技术架构到解决方案的整体理解和剖析。

  Web服务概念秘籍

  首先,我们需要区分两个外形相似的概念:Web Services和Web Service。刚刚接触Web服务的读者往往对这两个概念毫无感觉,认为是一个东西。初看,似乎一个是复数形式,一个是单数形式。然而,Web服务通常是指用于架构Web Service的整体技术框架。一般提到Web服务,就是指Web服务技术,而Web Service则是使用Web服务技术而创建的应用实例。当然有时候Web服务的含义也是指具体的应用实例,只不过此时是泛指(即复数)。

  从根本上讲,Web Service是包装了一些操作(服务/过程/方法)的接口,通过标准化的XML消息传递机制SOAP来访问这些操作。Web服务是用标准的、规范的基于 XML的WSDL语言描述,也称为Web Service的服务描述。这一描述囊括了与服务交互需要的全部细节,包括消息格式(详细描述操作的输入输出消息格式)、传输协议和位置。这使得基于 Web服务应用程序具备松散耦合、面向组件和跨技术实现的特点。Web Service总是被设计来履行一项特定的任务或一组任务。Web Service可以单独或同其它Web Service一起用于实现复杂的聚集或商业交易。而诸如SOAP、WSDL之类的就是Web服务技术。

  Web服务技术里面又可以分为Web服务技术标准和Web服务标准实现两个层次。前者是纸面的技术规范文本,定义了各种Web服务技术需要遵循的原则、格式、语义等。Web服务标准实现则是各大厂商和开放源代码项目组在各自的平台上,使用各自擅长的技术,按照各种Web服务标准开发实现的与 Web服务标准一一对应的Web服务支持软件包。各大厂商在各自的主流开发平台中加入各种Web服务支持软件包,以形成Web服务开发/部署平台,或简称 Web服务平台。

  Web服务技术的核心是各种Web服务技术标准。各大计算机技术厂商与标准化组织在制订和推动这些技术标准规范中起了主要的作用,致力于使其变成行业标准。下面我们就来看看各大技术厂商和标准化组织在Web服务领域的战略及其贡献。

  六大门派

  IBM: 动态电子商务

  自从郭士纳在20世纪90年代接掌IBM之后,IBM就慢慢向面向服务(Service Oriented)全面转型,并首创了电子商务的概念。而现任CEO帕尔米萨诺则进一步发挥和延伸前任CEO的面向服务的理念:电子商务随取即用。电子商务随取即用对应于IBM的技术概念,那就是IBM一直在全力推动的动态电子商务技术及解决方案。

  动态电子商务指电子商务过程和相关系统可以动态地适应和支持不断变化的商业战略和行为。企业和客户、合作伙伴一起动态地扩展和协作经营过程,实现更先进、灵活的集成,并通过网上电子市场以更标准和开放的形式响应市场需求、寻找合作伙伴、形成动态联盟,以及进行经营过程。抛开商务模式不谈,动态电子商务的技术基础架构就是Web服务。IBM的策略是,改造所有的软件产品(WebShpere、DB2、Lotus、Tivoli以及 Rational)以支持Web服务,大力发展和整合WebSphere,使之成为Web服务的开发平台和部署平台,同时通过IBM的Global Service向最终用户交付动态电子商务解决方案。

  为了实现开放的动态电子商务技术基础架构,IBM在Web服务规范方面不遗余力。前述的Web服务协议栈中,XML Schema、SOAP、WS-Attachment、WS-Security、WSDL、WS-Inpsection、UDDI、WS- Coordination、WS-Transaction、BPEL4WS都是IBM与微软一起主导制订的Web服务标准。可以说IBM和微软是大多数 Web服务标准的制订者。同时IBM进行Web服务标准实现的速度也非常快。IBM的WSTK(Web Services ToolKit)可以说是目前更新最快的Web服务软件包。在开发自己的Web服务工具的同时,IBM投入了大量的资金支持开放源代码项目Apache XML Project,甚至将自己的Web服务实现(例如WS-Inpsection的Java实现WSIL4J)贡献给Apache XML Project。可以说IBM在推广Web服务技术以支撑它的动态电子商务架构上,有着全面、强力度的实施步骤。以IBM管理层的话来说,就是与微软合作制订标准,然后在基于标准的产品和解决方案上与微软竞争。

  微软: 软件即服务

  从市场宣传的角度来看,微软可以说是最为旗帜鲜明的力推Web服务。为了与以往Web服务器概念区别,微软在Web服务之前加上XML,更为清晰地凸现了Web服务的特征——XML Web服务。这非常明确地告诉大家Web服务是基于XML技术的。

  微软在市场宣传策略上,将其最新的技术架构、产品线的总称.NET与Web服务绑定,给人以Web服务即.NET、.NET即Web服务。从 Web服务标准领域来看,微软应当是最早从事这方面工作的公司之一。Web服务标准栈中最重要技术SOAP的1.0版,就是由微软为解决跨越防火墙进行 COM整合而制订的技术规范。之后,微软又和IBM大力协作,主导了大多数Web服务技术标准的制订。在前面介绍的Web服务标准协议栈之外,微软还制订了一些SOAP的扩展规范,包括WS-Referal、WS-License。这两个标准与WS-Security和WS-Routing、WS- Inspection一起构成了微软的Global Architecture。

  从技术角度来看,微软 .NET是一个异常完整的技术平台,可以说是未来所有微软技术框架和软件(Great Plain Solution行业软件除外)的总称。同时与IBM不同的是,微软不仅仅提供技术平台及解决方案,同时还提供面向最终用户的Web Service,例如用于用户统一认证的Passport.NET、用于获取地理信息的MapPoint.NET等。从微软Windows产品线的变迁来看,也许微软是想让它的Windows慢慢演变成为一个Web服务客户端。通过这个客户端,可以使用微软提供的各种软件产品,方便用户整合各种应用、提升效率,同时增强微软在桌面的统治地位。

  Sun: 在理想与现实间徘徊

Sun是微软最直接的对手。针对微软的.NET,Sun推出了Sun ONE(Sun Open Net Environment)。Sun ONE的整体架构,简单的说就是J2EE加上对Web服务系列技术的支持。Sun ONE从功能实现方面主要是解决一件事:任何信息接入端都可以在任何时间、地点对网络进行访问,享受网络针对用户本人提供的智能化Web Service。为此,Sun ONE需要做的就是:能够为所有接入设备提供访问平台、可以让众多的网络设备以及Web Servoce供应商之间进行通信。尽管Sun ONE的理念非常具备前瞻性,但目前Sun ONE的发展速度并不尽如人意。

在Web服务标准领域,自从Sun在XML规范的制订中发挥了重要作用之后,它在其后的Web服务标准规范的制订中,声音变得非常地微弱。在近期的Web服务标准制订中,它仅仅和BEA、SAP以及Intalio共同开发了WSCI(Web服务 Choreography Interface)。WSCI是一个Web服务工作流方面的规范,与早先的IBM WSFL和微软 XLANG类似,不过很快。也许正是因为Sun在Web服务标准上力度不够,Sun在其的Web服务开发包中,把ebXML的相关技术架构整合进来,以在 SOAP、UDDI等之外提供了诸如ebXML Messaging、ebXML Registry & Repository之类的功能。不过这些只能是辅助的部分。

尽管Sun手中的筹码已经不多了,不过它仍然保有一件举足轻重的筹码,那就是J2EE。J2EE是当前部署Web服务的两大平台框架之一(还有一个就是微软 .NET)。最近关于J2EE平台的Web服务支持(JSR-109)刚刚获得通过。

总之,Sun的地位不可忽视。但如果Sun的经营状况不能在短期内改善,那么它在Web服务领域的前景堪忧。

  Oracle: 一步一台阶

  Oracle的Web服务架构与其它公司的稍有不同。在服务注册(发现)领域,它在支持UDDI之外,还支持一个传统的技术LDAP。 Oracle认为轻量级的LDAP更适合小型的Web服务环境的需求。诚然,LDAP更为方便使用也更为节省资源,不过用户在处理内部、外部的Web服务连接的时候,可能不得不涉及两个标准。这可能并不是一个好主意。  

  在Web服务标准领域,Oracle并没有投入大量的精力。这可能与Oracle的定位有关,即着重专项软件,而轻整体技术框架。 Oracle的策略是参与标准制订(例如通过参加W3C、OASIS等的相应工作组),然后使用标准来构建自己的软件,使自己的软件更有竞争力。

  HP: 潜行者

  从市场宣传上来看,HP似乎在Web服务领域后知后觉,没有多少露脸的机会。可实际上,早在1999年,HP就开发了业界第一个Web服务平台“E-Speak”。然而HP却没有作多少市场宣传,直到微软、IBM等公司纷纷推出相应的Web服务平台,HP才开始着手推动E-Speak的销售。在E-Speak的基础上,HP推出了一系列的软件。这些软件分为两组:一组称为NetAction,包括Bluestone等25个面向商用平台的产品;另一组则是基础架构方面的,包括E-Speak、Chai(HP的嵌入式Java平台)、HP Security等。

  HP的Web服务战略注重于应用之间的交互、通过各种应用进行商业流程整合以及商务事务处理。因此,无论是Web服务标准还是软件产品领域,它都围绕着这一方向。在Web服务标准领域中,HP制订了WSCL(Web服务会话语言)和BTP(商业事务协议),并围绕这两者推出了基于Web服务的事务会话中间件软件。

  尽管HP是Web服务领域最早的进入者和开发者,然而HP与Compaq的合并耗费了HP大量的精力,同时HP的软件策略不够明确,软件产品战线广阔而体系感不强,致使HP在Web服务上的影响力十分有限。在2002年9月,微软与HP宣布了一项合作计划:计划通过使用.NET和Web服务使得企业能够将它们的信息、雇员、系统以及设备运用各种方法进行连接,以帮助企业达到商业敏捷与竞争优势的新境界。这一计划是建立在两者长期的合作关系的基础上,将HP的IT基础架构技术和服务与微软 .NET软件的整合。这一合作计划使得HP自身的Web服务平台及其解决方案的前景更为模糊。

  BEA: 艰难地活跃

  比起IBM、微软、HP、Sun这些业界巨头,BEA相对要小一些,因此它的Web服务战略与这些企业不同。BEA将Web服务定位在应用集成技术,将Web服务技术和JCA(Java Connector Architecture)两者一起作为其平台的应用集成的标准架构,并将其平台逐步向一个应用整合平台的市场形象靠拢。

随着IBM WebSphere 5.0的发布,WebSphere应用服务器正在逐步蚕食WebLogic的市场。BEA不得不修改它的商业策略,为它的中间件产品赋予更具时代感的新理念。基于Web服务技术的应用集成平台就是这一新的理念。目前BEA正和HP联合做市场推广,力图通过BEA的中间件加上HP的硬件平台与IBM的解决方案进行竞争。

  在Web服务标准方面,BEA属于比较活跃的企业,参与了微软和IBM主导的大多数Web服务核心标准的开发,同时对于周边的WSCI、BTP等标准也投入了力量。

  W3C: 按部就班

  W3C是Web领域主要标准的制订者。当各大厂商纷纷制订Web服务相关标准并向W3C提交之后,W3C逐渐认可了Web服务的重要性。 2002年1月,W3C成立了Web Services Activity,由IBM和微软领导。下面包含三个工作组:Web Services Architecture WG(Working Group)、XML Protocol WG和Web Services Description WG。

  Web Services Architecture WG致力于整体的Web服务技术框架,例如前面提到的Web服务体系架构和Web服务标准协议栈都是这个工作组关注的问题。XML Protocol WG则是在早期的SOAP 1.1的基础上,进一步规范化和扩展SOAP的能力,目前的工作状态是制订SOAP 1.2标准。而Web Services Description WG则在先前的WSDL 1.1的基础上制订WSDL 1.2标准中。

  W3C的工作进展是基于各个厂商的早期工作的,主要是将已经纳入实用的技术规范标准化,因此它的工作是扎实,它的步骤是保守的。

  WS-I: 应用推广

  WS-I是由微软、IBM、Oracle、HP、BEA、SAP等为首的计算机业巨头们共同创建的,致力于推动Web Service解决方案全面应用的技术组织。WS-I中的I是Interoperability,互操作性。这意味着WS-I的主要任务是实现不同实现平台的互操作性。其途径是将各个Web服务规范中的二义性进行重新定义,在语义上确保交互的一致性,同时开发并提供多种测试工具,以测试具体的平台实现是否满足互操作性的要求。

  WS-I是一个国际性的组织,在Web服务应用领域有着非常重要的地位。中国的技术公司也应当积极地参与其中,以尽早进入Web服务无缝互操作的环境中,确保在以Web服务为基础技术支撑的动态电子商务和网格时代,能够缩短与国际应用水平的差距。目前,WS-I的中国会员仅有上海得易信息技术有限公司一个。

  作者简介

  柴晓路 上海得易信息技术有限公司CTO。专长于Web Service架构、Web Service系列技术以及基于XML的系统集成和数据交换技术。目前是WS-I工作组成员、WS-C成员,曾作为UDDI顾问组成员参与UDDI规范 2.0版和3.0版的开发。目前他还担任首届Web Services国际技术会议(ICWS'03)程序委员会委员、IBM developerWorks专栏作家、CSDN名家专栏作家等。
Share
评论Feed 评论Feed: http://www.85815.com/feed.asp?q=comment&id=422
UTF-8 Encoding 引用链接: http://www.85815.com/trackback.asp?id=422&key=
这篇日志没有评论.
发表
表情图标
[smile] [confused] [cool] [cry]
[eek] [angry] [wink] [sweat]
[lol] [stun] [razz] [redface]
[rolleyes] [sad] [yes] [no]
[heart] [star] [music] [idea]
UBB代码
转换链接
表情图标
悄悄话
用户名:   密码:   注册?
验证码 * 请输入验证码