深蓝海域KMPRO

Web服务谁主沉浮?

2002-09-17 09:31

Web服务谁主沉浮?

现在已经是2002年第二季度,Gartner Group对Web服务发展的预测似乎被产品提供商稍稍延误了,最近微软的.NET Framework及其开发工具VS .NET刚刚正式发布。而作为Web服务世界中另一个重量级角色Sun,也为它的J2EE Framework增添了开发Web服务的强有力的工具包Java Web Services Developer Pack(WSDP)。从2002年起到2005年,Gartner Group所预测的B2C、B2B以及e-Government领域Web服务的开发和部署将会大量依赖J2EE和.NET这两个平台及其上的开发工具。

.NET与J2EE 对Web服务的支持

从.NET和J2EE这两个平台的发展历程来看, .NET从一开始就深深打上了Web服务技术的烙印,在它的市场推广活动中,无时无刻不凸显其作为Web服务的开发和部署平台的特征。可以说,.NET天生就是为Web服务准备的开发和部署平台。相对.NET而言,J2EE是一个比较“老”的东西,最初它是为了将Java平台拓展到企业级应用领域而制订的一个平台框架规范。随着Web服务的兴起和发展,J2EE平台作为一个企业级应用的开发和部署平台,无法回避业界的重大技术革命——Web服务。随着Web服务技术的发展,J2EE也不断地引入了对Web服务的支持。

从服务描述、服务实现和服务的发布、发现与绑定,以及服务的调用和执行这些不同的角度看,J2EE和.NET的支持基本不相上下,惟一的区别可能是.NET的开发工具更为方便一些,集成度更高一些。.NET是一个在J2EE之后出现的平台,所有的重量级技术产品无一例外地都会吸收先前成功者的优点,.NET就大量地吸收了J2EE平台的优点。其中,最重要的一点就是.NET不再完全沿袭微软先前的技术,从.NET开始,其应用不再以本地机器代码运行,而是编译成中间代码,由称为CLR的虚拟机来运行,这样,.NET也具备了跨平台的可能。不过.NET的跨平台特性主要体现在支持多种开发语言上,VB.NET、C#、C++、JScript等都可以被编译成相同的中间代码,使用相同的运行库执行。

第三方厂商的支持

J2EE作为一种开放的规范,从一开始就得到了众多厂商的支持,IBM、BEA、HP、Oracle等在J2EE的实施上都有较大的投入。目前市场上最好的J2EE应用服务器并不是Sun与Netscape合资的iPlanet,而是BEA的WebLogic和IBM的Webshpere。一年一度的JavaONE就有成千上万的开发商参加。由于J2EE是开放的规范框架,任意厂商只要有实力都可以按照规范来开发实现,不同厂商的组件也可以在一起协同使用,当然最关键的是这些参与J2EE的厂商都具有很强的实力。除了微软以外,基本上所有的软件业巨擎都钟情于J2EE。

然而,J2EE虽然是开放的规范,但是它的使用却不是那么开放,每家使用J2EE技术的公司都不得不为此向Sun支付一笔不小的费用。同时也正因为Sun对J2EE规范的独家控制,使得J2EE规范的开发进度缓慢,迄今为止,J2EE规范中并不包含对Web服务的支持,Sun推出的WSDP只是一种插件形式的扩展支持。有消息表明,在今年年底前,Sun和Java领域的其他支持商,包括IBM、Bea、Silverstream等会就J2EE如何支持Web服务达成一致,然而这一切均存在变数,其中的根结就在于Sun对Java技术的独家控制。

同时,由于J2EE对Web服务支持的步履维艰,各大厂商分别自行开发Java平台的Web服务支持,IBM在这个领域的步伐是飞快的,它的WSAD(Webshpere Studio Application Developer)集成了大量自行开发(部分来自于Apache.org,不过这个项目的前身是IBM发起,而后移交给Apache.org)的Web服务组件,业已成为Java领域开发Web服务的最佳开发工具,同时IBM的Websphere也慢慢向Web服务开发部署应用平台的角色转化。

而对于微软的.NET而言,虽然从一开始,微软就以独占、垄断、不开放的形象出现在平台市场上。然而,它的.NET却表现出了前所未有的开放姿态。

.NET的主力开发语言C# 已经提交给 ECMA,开始标准化,ECMA是一个致力于推动行业范围内采用信息和通信技术的非特定供应商的国际标准组织。C#的标准化使希望在任何平台上都可以实现 C# 编程工具的公司能够实现其愿望。微软 还向 ECMA 提交了微软.NET框架的一个子集,叫做CLR(公共语言架构,Common Language Infrastructure)。这将使其他供应商能够在各种平台上实现 CLI,以便用.NET框架提供的基本体系结构模型编写的软件可以在各种平台上用各种工具来创建。美国Ximian公司已于2001年7月启动了一个名为Mono 的开放源码版.NET开发项目,计划内容包括一个C#编译器、与微软的CLI兼容的类库和Linux版CLR编译器。虽然这只是起步,然而谁也不能肯定,它不会像当初的Java那样,从Sun的小玩具,变成了今天如此重要的开发平台。

Web服务规范的控制

由于Web服务的各种技术都是先以规范的形式制订,然后再交付各大开发商进行实施。所以,某个开发商如果从一开始就参与某种Web服务规范的开发,那么它的平台就能够以最快的速度支持这一Web服务规范。在这一点上,微软给人以非常积极进取的印象。在Web服务领域,微软与IBM共同主推了大量的Web服务规范,在一段时间内,两家公司Web服务技术的市场推广活动都是联合举行的,不难看出这两家公司在这个领域背后的战略合作关系。最初的Web服务核心技术SOAP、WSDL主要由这两家公司制订;后来的UDDI是由这两家为首的多家核心企业共同制订;再后来的一些不是核心的Web服务规范,如WS-Inspection、WSFL、WS-Security、WS-Routing、WS-License、WS-Referral等,则完全由这两家来制订,不难看出IBM和微软对于Web服务的贡献以及它们对Web服务规范的控制。

而Sun自从在XML规范的制订中发挥了重要的作用之后,在其后的Internet规范,尤其是Web服务规范的制订中,声音变得非常微弱,而且似乎并没有改善的趋势。最近在Web服务领域中的一件大事是WS-I.org的成立。WS-I.org是为保证Web服务所承诺的互操作性而成立的一个组织,主要工作就是开发保障Web服务互操作性的相关规范,并进行规范实施的测试。WS-I.org的核心成员包括Accenture、BEA、HP、Intel、IBM、Microsoft、Oracle、SAP等,Sun不在其中,甚至都不在非核心成员的列表中。是Sun的发展战略的问题,还是受盈利问题的困扰,我们不得而知,不过我们可以知道的是,Sun再一次在Web服务领域中落后了,由它控制的J2EE规范的状况也就可想而知。

潜在的市场

从技术的发展来看,大型的企业用户或有着成功实施经验的企业用户,并不会因为新技术的推出而盲目地否定旧技术,它们总是在保护投资的前提下,在不推翻现有架构的前提下,有选择地挑选适合的技术。

J2EE已经是一个成熟的、成功的企业级应用解决方案,拥有大量的客户,已经实施了J2EE的企业不太可能在Web服务的时代全面否定J2EE而去接受.NET。.NET是一个全新的架构,虽然它的开发语言中已经包含了诸如VB、C++等传统开发语言,刚刚接触.NET的开发人员会以为能将以前使用VB开发的代码平滑地转移到.NET平台上来。其实不然,VB.NET的语法与VB 6.0已经有了根本性的差别,与其说VB.NET是VB 6.0的升级,不如说VB.NET是C#的Basic版。由于采用了CLI的结构,VB.NET将很难兼容以前的VB 6.0的代码,大量的VB代码无法顺利地转移到.NET上,我们期待着微软能够提供转换程序以实现代码的升级。虽然在源代码级别上的升级变得不是那么容易,不过开发人员仍然可以在.NET平台下,将原有的COM组件进行重新包装,形成 .NET平台下的Web服务组件,而且.NET的整个平台、开发工具的高集成性和友好的开发环境还是会给开发人员留下深刻印象。在Java领域中,无论是Borland的JBuilder 6,还是Sun的Forte for Java,或是IBM的WebShpere Studio Application Developer、VisualAge for Java都无法达到VS .NET的生产效率。开发工具是.NET的一大优势,同时.NET平台对Web服务规范的支持力度也仅有IBM的J2EE平台能够与之相媲美。

因此,笔者认为在大型企业级应用场合,如果已经采用了J2EE架构,应该会在Web服务的时代继续使用J2EE架构。而原先就是采用微软架构的,出于技术延续性的考虑,大多数仍然会选用微软的.NET。那些采用其他技术的企业级应用则会在开发效率、安全性、可靠性、维护代价等不同指标上对两种架构进行考察,应该说机会是均等的,J2EE强在有大量的应用实例,而.NET强在整合集成的优秀开发部署环境。

在中小级别的应用领域,J2EE的占有率优势不再那么明显,一方面,长期以来微软专长于这个领域;另一方面,Java解决方案已经是如此地深入人心,即使是中小企业也会考虑J2EE架构,在这个领域,两者平分秋色。

而在桌面应用(Web服务客户端)领域,除了一些管理客户端会采用Java开发以外,绝大多数的应用毫无疑问地会在微软平台上开发和部署。

谁主沉浮

下面这张表格概括了对两者的比较:

比较项目 J2EE .NET
对Web服务的支持
服务描述 好 好
服务实现 好 很好
服务发布、发现与绑定 好 很好
服务调用和执行 好 好
第三方支持
平台提供商 很好 有待考察
软件开发商 很好 好
对Web服务规范的控制 情况复杂(注) 很好
市场前景
企业级大型应用 很好 一般
中小级别应用 好 好
桌面应用 差 很好

注:J2EE的控制者Sun对Web服务规范几乎没有什么控制能力,然而Sun在J2EE上的合作伙伴IBM等对Web服务规范却具备强大的控制力,所以表格中显示“情况复杂”。

从表格中,不难看出两者是旗鼓相当的对手,现在就断言谁主沉浮还为时过早。应该说,J2EE目前需要做的是尽快真正将Web服务规范融入到J2EE规范中去,从规范出发统一对Web服务的支持。而.NET迫切需要进行的则是加大平台的开放力度,争取改善微软在用户心目中独断、单方控制、不开放的形象。

在未来相当长时期内,J2EE和.NET都将是企业构建应用系统的重要选择,两个平台将相互共存,两者本身也在不断地相互借鉴和完善,并且有望通过Web服务实现互操作。真正的市场,正是需要强大的竞争者之间的较量,这样用户才能得到最好的技术和解决方案。

·小资料·

Gartner Group对未来Web服务发展状况的预测:

2001年,Web服务的架构平台、开发工具将基本被各大开发商开发完毕。开发人员能够购买到这些面向服务的开发工具,同时将开始构建实际使用的Web服务。

2002年,商业Web服务将大量出现,大量的面向消费者的B2C Web服务将投入使用。

2003年,UDDI注册中心随着Web服务的发展,将变得越来越重要,其中的商业数据也越来越丰富。私有的UDDI注册中心将被投入使用,以支持内部服务信息的交换。而政府的Web服务应用也将不断出现。

2004年,各类企业将会普遍接受基于Web服务的商务应用模式,而服务集中的计算模式将进入青年期。私有的UDDI注册中心仍然在各类应用中处于优势地位,新的赢利模式和商业渠道将到处可见。40%的金融财务服务事务将使用Web服务模式,而35%的在线政府服务将以Web服务的形式提供。

2005年,公共的UDDI注册中心作为公共商务信息的交换机制将大量应用。动态服务同样将大量投入使用。

相关推荐