在上个世纪90年代后期,Sun公司曾两次想把Java提交为国际标准,但两次又都收回了请求。与此同时,正寻找着另一种方式来扩展视窗技术的微软公司,预见到了Web服务的未来。它向万维网联盟(World Wide Web Consortium)推荐了一种轻型的XML消息协议,称为“简单对象访问协议”(Simple Object Access Protocol,下称“Soap”)。IBM公司也意识到Web技术的未来将是面向对象的,因此也参与其中成为共同的发起者。
Sun公司虽然也展开了反击,但是Soap最终成为了Web服务的一个基础部分。在Sun公司最终接受了Soap的两年后,IONA科技公司(Iona Technologies Plc)的CTO埃里克·纽克姆(Eric Newcomer)建议Java标准化组织(Java Community Process)重新考虑如何使用Java来处理Soap和XML消息。他主张说,微软公司在.NET技术中已经建立了对Soap的支持,J2EE也需要这么做。但是,Java标准化组织(Java Community Process,简称“JCP”)执行委员会投票否决了这一提议。
所有这些问题的产生,都是因为J2EE处理Soap和XML,都需要通过Java的XML应用程序接口(Java Application Programming Interface)或者JAX远端程序调用(JAX Remote Procedure Call)来完成。
这两种方法虽然有点复杂,但都经过实践证明是可行的,都可以用来处理Java对于外部技术的程序调用。扬基集团(Yankee Group)分析师达纳·加德纳(Dana Gardner)认为,这样的访问方式反映的是传统的编程方法,也就是“没有针对互联网应用进行开发设计”的理念。而Soap、Ajax和PHP则能够处理异构的系统,这些都符合互联网松散耦合的操作模式,也就是说互相操作的双方不需要互相了解,只需知道他们该如何去“握手”就可以了。“我感觉到,这些技术与Java相比,正处在一个更加快速的发展轨道上。”加德纳说道。
一些人认为Sun公司在Web服务上错失了千载难逢的机会。IONA科技公司的纽克姆分析说:“5年前,Java几乎是占据了互联网编程的统治地位。”
尽管采取了很多的补救措施,但依旧缺乏有效的办法让J2EE在处理Soap和XML消息方面做得很好。“没法再修了。它已经彻底坏了。”安妮·V·梅恩斯(Anne Thomas Manes)认为。梅恩斯是咨询公司伯顿集团(Burton Group)的Web服务分析师,Sun公司市场部的前商业策略主管。
Sun公司的詹姆士·高斯令(James Gosling)反驳了这种说法:“使用Java和JAX-RPC来建立的Web服务数量要更多一些。”
2005年7月,在佛罗里达州奥兰多举办的IEEE大会,再次讨论了使用Java来访问Web服务的主题。“我们认为,JAX-RPC在本质上就存在缺陷。”美国惠普公司(HP)布里斯托尔实验室的工程师史蒂文·劳兰( Steve Loughran)和埃德蒙·史密斯(Edmund Smith)在大会召开前所提交的论文—《重新思考Java的Soap堆栈》(Rethinking The Java Soap Stack)中这样分析说道。高斯令没有理会这些论调:“人人都可以各抒己见。”
目前事情还在进一步发展。Sun公司前任CTO彼得·雅雷德(Peter Yared)离开公司后,成立了ActiveGrid公司,并且开发了用来进行网格计算(Grid Computing)的应用服务器。他认为,开发海量事务处理应用程序(High Volume Transaction Processing Applicatiion),可能仍然要依赖Java。不过,他的新公司更关注于Lamp堆栈,包括Linux、Apache、MySQL等,和一些 “P”字母开头的程序语言(Perl、Python和PHP),用他们来创建网格程序(Grid Software)。
看上去,Sun公司和Java正离Web服务的融合格局越来越远。不管Sun公司喜欢与否,现在的世界已经是Web服务的世界了。
不论是由Java构建的还是由其他的描述语言构建,越来越多的组件都将变得不再像以前那么特殊。德国汉莎航空公司(Lufthansa)使用PHP建立了部分电子票务(E-ticket)系统;大型在线自动销售网站AutoMart.com以及雅虎公司(Yahoo)都使用了PHP;还有思科系统公司(Cisco)也在自己的网站上使用了大量的Perl。甲骨文公司(Oracle)也逐渐减弱了对Java的过度依赖,开始鼓励开发者们使用 PHP来开发,它即将通过Oracle公司信息技术网络(Oracle Technology Network)向用户提供针对Oracle产品的ZendCore和针对一般开发者的PHP代码。不过,不管这些公司使用的是哪种语言,Sun公司仍然需要向这些公司销售自己的硬件和服务。
“Web服务正在不断创新,而Java环境却没有。”扬基集团的加德纳认为,“某种意义上来说,Java已经变成了一种遗产。”Sun公司则表示,计划中的变革将在Java 5.0版中得到实现,它将使描述语言和XML的工作变得更加简单。
为了纪念Java发布10周年,Sun公司的管理者们将会再次站到舞台的中央,将所有的掌声引向他们所创造的语言,尽管实际情况将被证明是喜忧参半。Java自发明以来获得了许多荣誉,现在应该是一个Sun公司可以尽情享受的时间。但是之后,Sun公司还必须回到其Java企业系统,回到其 Java标准化组织,回到其自身的盈利情况上来。这些,将决定Sun公司究竟还能走多远。
(信息周刊)