2002-09-17 09:30
顶级IT企业的世界大战:Web Services 惊世未了缘
“我们应该离开,这样能活下来!”面对英格兰铁甲骑兵,一个怯懦的苏格兰士兵用尽全力向威廉华莱士(苏格兰民族英雄)说到。
“是的!作战,你可能会丧命;逃跑,可苟存性命,起码有一段安宁。” 威廉华莱士望着那些由各怀鬼胎的苏格兰贵族所率领的散兵游勇,喊道“苏格兰的子孙们,将来在你们寿终正寝的时候,你们是否愿意……,用这苟且偷生的日子,来换取一个机会……,仅仅是这么一次机会,就是回到这里……,告诉敌人……,他们也许能夺走我们的生命,但永远也不能夺走……,我们的自由!”
—《勇敢的心》场景 Scott McNealy,Sun公司CEO,面对Bill Gates和他的公司——微软,多么希望也能够象威廉华莱士一样,向站在Java阵营的IBM、Oracle、BEA等“伙伴 ”以及那些心存疑虑的IT厂商们,大声疾呼“今天!互联网给我们这样一个机会,你可以跟从于微软,皈依.NET,去安享一生。但你是否愿意用这苟且偷生的日子,来换取一个机会,仅仅是这么一次机会,告诉微软你们可以赢得过去,但永远也夺走不了,我们对自由的渴望!”
能够让Scott McNealy给予如此厚重希望的机遇到底是什么?是什么能够让IBM、BEA等公司感觉到自己能够有机会,去撼动微软这样一个“伟大”的公司。它就是——Web Services(Web服务)。
Web Services微软的蓝图
当微软在2000年6月22日, Tech·Ed 2000论坛上正式宣布了名为Microsoft .NET的新一代平台时,很少有人能够理解微软所诠释给人们的.NET是何物。不过有一些“精明”的人发现了一个有意思的现象。正是在这个论坛上,只不过是将时间回转到6月5日,Bill Gates在他担任首席软件设计师(CSA)半年之后,向与会的开发者描绘了Web Services的前景,同时承诺微软将在这个领域动用20亿美金。
在微软的眼中.NET是一个战略,是一个对未来的憧憬,在现实中,他们要打的仗只有一个就是Web Services。此后微软在人们的观望和不解中发展。而当时的Scott McNealy曾嘲笑微软的.NET只不过是.NOT,对于Bill Gates所推崇备至的Web Services,他却认为那是对Sun公司所提出“网络就是计算机”口号的移花接木。“他们(微软)给一个我们(Sun)已经谈论多年的事情,起了一个名字。好像这件事情,是他们提出的。我想如果你每年有2亿美元的市场预算,你一样可以改写历史。”Scott McNealy用这样话来形容微软的.NET策略。
在Scott McNealy的冷笑中,微软经历了有史以来最痛苦的一段时间。连续20个财年收入保持36%的增长,停步于2000年,此时微软的年收入增长为8%。由于受到垄断案件的纠缠,公司市值缩水2500亿美元。公司亟需振奋低迷的士气,微软CEO Steven A. Ballmer在一年一度的员工大会上,用一段阿里拳赛的录像,将萦绕在微软头上的乌云,挥之而去。1974年,Muhammad Ali(阿里)同George Foreman(富尔曼)进行了一场拳王争霸赛。年轻阿里7岁的富尔曼,赛前极被看好。但是阿里的6万名支持者在赛场上大声地叫喊“阿里杀死他!阿里杀死他!”最后,阿里以一个强有力的直拳,将富尔曼打入了地狱。在影片即将结束的时候,整个会场的扩音器里突然传出“微软,杀死他们!微软,杀死他们!”瞬间微软的员工沸腾了。
是什么能够给Steven Ballmer如此的勇气,在公司身处有史以来最大困境的时候,还能杀气腾腾。答案只有一个.NET,Steve Ballmer和Bill Gates已经不止一次的在各种场合讲到,.NET战略是他们下的一个最大赌注。Web Services,正是.NET战略中一个举足轻重的棋子。
面对这样的杀气,Scott McNealy也不得不意识到,Sun在互联网新的一轮竞争中已经不是领跑者了。时隔.NET发布8个月,2001年2月5日Sun宣布,公司推出SunONE软件框架,这是一个开放性网络环境,是为开放的Web Services所推出的新一代软件框架。“有些人认为我们只不过是为了回应微软的.NET。”Scott McNealy面对记者们指出“而我认为这个产品---SunONE,是我们多年事业的一个顶点。”
Web Services将改变软件产业
Scott McNealy认为Web Services是Sun公司事业发展的一个顶峰,Bill Gates认为Web Services是微软.NET的一个核心。为什么他们对Web Services如此看重,因为它很有可能会改变现有的软件产业。Web Services作为新兴的,一种依赖于Internet,为用户或其他Web Services提供单一服务功能的组件,将成为软件未来的存在形态。而谁能够在这个领域胜出,谁就有可能成为未来软件业的主导。回想软件产业的发展,从最初,根据需求定制的软件产品,到今天已经发展到了商用的、模块化的软件产品。软件产业逐渐向单一化、规模化方向发展。而当Internet出现之后,起初并没有给软件产业带来多大的冲击,仅仅是催生出一批新型的软件产品。
但是当ASP出现之后,一些专家开始大声呼叫到,“软件就是服务”这个真理终于被人们肯定了。但现实就是这么惨酷,曾经被认为是继电子邮件出现之后,对企业用户影响最大的应用--ASP,今天却面临风雨飘摇的窘境。究其原因,主要是因为ASP仍然是一个以集中式计算模型的产物,只不过是披着一层互联网的外衣。但Web Services却是一个迥然不同的精灵,它秉承“软件就是服务”的真言,同时顺应分布式计算模式大兴其道的潮流。而它的存在形式又与以往软件不同。这种组件模式,小巧、单一,对于开发人员来讲,开发成本较低。
Web Services在某种意识上就是结合了ASP和组件产品两方面的特性,通过标准协议,在互联网上,提供单一特定的服务。区别在于Web Services面对的用户群更广,而且更加通用,更加松散。而不象ASP服务的对象,需要签订一定的合作协约。Web Services的出现,给软件产业又一次带来新的商业模式。Web Services的供应商,既可以将Web Services一次卖断给软件开发商,也可以通过租赁的方式,按月收取服务费用。试想一下,如果你开发的Web Services被微软选中应用在Windows XP平台里,那你很有可能将一夜成为百万富翁的美梦变为现实。
微软感觉Web Services有点儿甜
Web Services的魔力就在于,微软深信其可以将自己在PC上的统治地位延续到互联网上。没有人怀疑微软在PC上的成功,但是当面对互联网,这个靠后端高性能计算所支撑的体系,微软的发展前景受到了人们的质疑。而Web Services恰巧能够成为微软手中一个制胜法宝。想要探究其中的原因,首先一点就是要弄清Web Services到底是什么。
人们为Web Services下的定义是通过标准的Web协议可编程访问的Web组建。如果不加进任何解释,没有多少人能够明白它讲的是什么东西。你是否有过这样的经历,就是在使用MS Word编写报告的时候,当需要调用一个MS EXCEL制作好的报表时,你可以使用对象嵌入功能。你在执行这个操作的时候,实际上是在使用MS Word的过程中,去调用另外一个应用程序。而Web Services的功能也与此十分相近。只不过它不是发生在一个单一的PC上,而是发生在客户端(Client)与服务器(Server)之间,或是服务器(Server)之间。
例如用户在浏览一个英文网页,随着鼠标指针的移动,屏幕上显示出相应的中文解释,不要以为这个用户正在使用金山词霸,他没有。这个用户只不过是通过网络去调用一个提供即时翻译的Web Services。此时的即时翻译程序,变成了一个远在异地的应用组件。这些基于后端的Web Services被微软认为将会成为未来互联网的主导。而抢占了这个阵地也就赢得了互联网的明天。由此引发出很多新的标准、协议,以便让这些Web Services组件能够顺利地被调用。
到底是谁的胜利
其实Web Services是一场分布式计算体系的跃进,真正的胜利是分布式计算模式对集中式计算模式的胜利。它强调的是不同组件协同工作,来为用户提供服务。分布式对象结构,是将标准化的组件对象放在远端的电脑上。客户端在调用对象时,使用分布式对象结构的调用标准来获取对象。在这里人们要清楚一点,此时的客户端,其内涵已经被扩大,不是我们平时眼里的PC,而是任何一个对调用对象提出服务请求的组件。面对互联网这个广义的分布式计算体系,Web Services实际上更像是一种远程访问的标准。
还记得那个令人晦涩难懂的词汇CORBA,它是最热门的分布式对象结构。它的优势就在于可以跨平台,跨开发语言,来调运服务器端某个对象模块提供的服务。Web Services和CORBA这些分布式应用技术的目的都是要解决远程目标之间的通讯问题。和其它的解决方案不同,Web Services提供基于开放式标准上的完全终端对终端的解决方案。对于Web Services解决方案的用户来说,没有任何特殊的要求。
面对Web Services这样的发展前景,微软坚信打赢Web Services这场战斗,将确立起在整个互联网中的霸主地位,而那时再来回味公司在PC领域的辉煌,微软的感觉也只不过像是品味饭后的一道甜点。
为了能够实现这个梦想,微软做出了很多的努力,首先是力推XML。因为Web Services所要涉及到的信息,已经不仅是简单的文本,而是数据。此外Web Services需要跨平台,而原有的HTML都是无法满足需要的。通过XML可以使得程序之间更容易进行沟通。微软对XML的支持力度表现在,Internet Explorer 5.0是最早支持XML的浏览器,早在XML标准尚未确定之前,微软就推出了XML Notepad编辑器。
接下来,微软对Web Services的核心SOAP也大费心计。SOAP是对象间信息交换的通信协议。可以把SOAP看成是用户端与服务器端之间进行沟通的特殊语言。在按照SOAP协议封装的信息里,包含了用户端申请Web Services所必要的内容,例如该Web Service所涉及到的名称、参数等。当然服务器端也会按照SOAP通信协议返回相应的结果。
但新的一个问题又出现了,就是用户端的程序要如何才能知道Web Services提供了什么可以进行调用的服务呢?这时WSDL(Web Services Description Language,Web Services描述语言)出现了,它是用来描述Web Services的相关信息。现在一切就绪,可那些Web Services开发商需要一个方法将自己开发的Web Services进行发布,广而告之。于是UDDI(Universal Description,Discovery and Integration)应运而生。UDDI是一个跨产业、跨平台的开放性架构。其可以帮助Web Services开发商在Internet上公布自己推出的Web Services。
微软在Web Services标准的确定上已经抢占了先机,但这说不清谁能赢得Web Services战役的胜利。Sun告诉人们,什么XML、SOAP、WSDL、UDDI等标准,SunONE全部支持。Sun坚信的只有一条,就是能够真正跨平台的技术只有一个,它就是Java。用户只有选择了拥有开放性的开发平台,才能够让其开发出的Web Services应用遍布整个互联网。
Web Services是否镜中花
无论是微软、Sun还是IBM、BEA都对Web Services看好,但它最终能否生存下来,还是要看用户是否愿从腰包里掏钱给它。今天的IT环境同.COM火爆年代相比,已不可同日而语。萎靡不振的全球经济,让Web Services的鼓吹者,不能够单靠一张嘴去打动用户的心。更加残酷的是,Web Services在近一段时间的发展下,已经不是可望不可及的东西,到了要用事实说话的时候了。
Web Services面临残酷的挑战,这里指的不是它的标准是否完善、也不是它的设想是否合理,而是Web Services能否让那些第一个吃“螃蟹”的用户,立即看到投资回报。还好现在已经有象Imperial Sugar、Nordstrom.com、Hewitt&Associates这样的公司,开始尝到Web Services给他们带来的甜头。
这些公司大多是在应用集成这个领域采用Web Services。Imperial Sugar公司,利用Web Services将五个重要的原材料供应商集成到一个订单管理系统之中。公司在2000年已经申请破产保护,因此每一笔在信息建设的投入,都要受到审查。公司最终选取了Web Services这种方式,在有限的资金条件下,建立了一条高效的供应链。利用Web Services模式,公司关键的原材料供应商们,可以围绕Imperial Sugar公司的生产流程,来访问他们与Imperial Sugar公司组成的供应链管理系统。通过SOAP通信协议,来查询和输入原材料数据。
“现在给一项新的项目进行投资,对于公司来说是十分困难的。”Imperial Sugar公司CIO Muller先生讲到“但当看到有关投资回报的调查之后,我们就做出了决定。”
此外诸如Bidders Edge或My Simon等的网上拍卖店,利用Web Services通过在网上搜索所有的相关拍卖行情,为便宜货搜索者提供方便、快捷的购物服务,并为用户提供最为廉价的货物信息。通过应用Web Services,这些网站将能自动扩展出更多的功能,例如评价并选择原料供应商,或选拔合格可用的产品技术支持专员负责处理用户的电子邮件咨询。Web Services还可被用于对顾客所需服务的自动识别,并发出网站的应用工具以用于寻找解决办法。对顾客来说,这将比以往要更为有效率。
从投资回报上看,Web Services已经得到了部分用户的认可。但是从TCO(总体拥有成本)的角度来看,用户仍然处于茫然的状态。Web Services毕竟是一个全新的事物,它的使用方式是依靠远程调用,形式上更接近早先的ASP。但今天ASP的前景已经非常暗淡,至少在中国是这样的,而由此人们便会担心Web Services到底是否能够真正的降低企业的TCO。
此外来自厂商的声音更搅得用户不知所措,围绕哪种开放平台可以让企业的TCO降到最小的争论,更是以微软和Sun为代表。针对开发Web Services应用,微软推出了Visual Studio .NET(简写VS.NET),而Sun推出了J2EE。来自Merrill Lynch对100位美国和欧洲CIO的调查显示,他们已经分成两大派别,分别支持VS.NET和J2EE。
微软告诉人们在VS.NET平台下,用户可以利用VB、VC++、VC#等多种开发工具共同开发各样符合Web Services标准的应用,并且这些应用可以保持相互兼容,条件只有一个就是要统一在微软的平台之上。而Sun则宣布,利用SunONE平台开发的Web Services应用可以跨越所有的平台,你不会只拴在微软这一棵稻草上,但条件也只有一个,就是使用Java。
编辑寄语(eWeek执行总编 李学凌)
本期,我们花了极大的精力,重新剖析Web Service,真可谓呕心沥血。说实话,在微软和SUN之间做比较的时候,我们也非常头痛。为了仔细比较MS.NET和SunONE之间的异同,我们请教了许多行业内的专家。在底层XML和SOAP等,两者是一样的;在顶层,Web Service两者又走到一起。决战之地在中间层,C#与JAVA,.NET构架对JDK等。我们在选题讨论会上,SUN公司的一位员工也谈到,SUN在移动设备领域和诸如摩托罗拉等公司的合作已经取得的实际进展;而我也在微软总部看到了原型的微软手机软件。这场战争会从服务器一直打到周边设备,成为名副其实的信息战争。
我个人认为,在过去两年当中出现的技术变革,能够影响今后10年的网络技术有两项,一项是端对端(P2P)的结构性革命,另一个就是Web Service。P2P的出现,击碎了网络物理稳定的思维模式,只要有相当概率的电脑在线,P2P就可以自主、自足组建成为牢固的网络,如果只是把P2P和盗版MP3链接起来,就太小觑了P2P对网络架构的颠覆。P2P出现后,网络中“上帝已经死了”。Web Service从某些层面上理解,包含了P2P的理念。1992年计算机图灵奖授予Butler Wright Lampson,表彰他在分布式计算方面的杰出贡献,Lapmpson本身就长期担任微软软件首席架构师。分布式存储和分布式计算一直以来都是计算机结构大师的梦想。Web Services从某个角度来说,正式要解决分布式计算的问题。“数据在服务器之间游走,计算力在网络之间分享”,正是Web Service要实现的梦想。可以这样说,Windows是操纵一台计算机的灵魂,MS.NET也好SunONE也罢,就是在争夺网络操作系统的控制权。
计算机发展的前20年,一直在打一场操作系统的战争;经过几年互联网基础发展之后,网络级操作系统的战争终于在两大利益集团之间爆发。IBM再也不会像当年那样,拱手把PC操作系统市场送给微软,百年不遇的机会面前,没有人会退缩。表面上看,这是微软和SUN公司之间的纠纷,其实质却是包括了IBM、ORICAL、SUN、HP和微软等等所有顶级计算机公司参与的计算机世界大战。