看好Ajax+WebService

07-07-10 lgx522
         

最近“退步”了,在用PHP,看过“Ajax和PHP开发Web”之后,又接触了些Ajax库,尤其是YUI-Ext给我的印象很深。照此发展下去,本人预感Ajax将是C/S vs B/S这场战争的最终胜者。

Ajax虽然暂时用起来比较繁,但开放性好,对客户端要求低。当Ajax残酷的类库大战硝烟散尽之后,必有一王者成为客户端的统治者。即使从目前来看,Ajax中比较成熟的部分,也已经成为各网站的首选。而Ajax在企业内部的应用,也只待东风了(易用性和IDE)。

原先嫌Ajax繁,一直不理会。投了半年左右的精力在RCP上,作了一些Eclipse RCP、NetBeans Platform及WinForm SmartClient的实践。始终都不太满意,以致于怀念起VB、Delphi + COM。这才深刻体会到Ajax的两个最重要的优势,于是开始学习Ajax。

客户端技术发展到今天,功能大同小异,各有千秋。突破这种各自为政的混乱局面,是这些年技术大爆炸的根本原因之一。要想一统江湖,最终靠的是标准。

想当年Windows平台下应用程序开发无比繁荣,靠的正是Win32API。Win32API之所以成功,源于在Windows平台下的强制标准化,本身的高性能以及一定程度上的易用性。

而后的网络泡沫时代,亦高度繁荣,也正是源于HTML的标准化、高性能和易用性。

之后进入了Java和.NET的虚拟机时代,这一时代在服务层取得了重大突破,但表示层却始终尴尬。原因正是在于标准不统一、性能低下和易用性不高。由于不成熟的表示层技术不断引入,导致混乱局面不断升级。

而如今,Ajax日益流行和成熟,我们也许有机会结束这个混乱时代了。

之所以看好Ajax,正是因为它满足了两大要求:标准化和高性能。Ajax中涉及的JavaScript、XMLHttpRequest等技术,不论如何已经成为Web应用中不可或缺的角色,而各类型的浏览器都提供了支持,虽然有一些小的差异,但大方向上容易形成标准。Ajax对客户端的要求最低,既可以在高性能机器上提供大而全的支持,也可以在老掉牙机器上提供小而精的支持。以前Applet在JRE无预装之后即告退化,足可以说明其重要性。

与Flex和WPF不同的是,Ajax是完全开放的。也就是说大家都可以按照他的要求形成自己的体系和利益群。过去的Java和.NET已经足够大而全了,可惜人们还是要二选一,时至今日都难以抉择,令人惋惜。

至于易用性这一点,目前的Flex和WPF虽然暂时领先,但Ajax只要类库竞争尘埃落定之后,决非难事。过去的Struts即可为证。

顺便谈一下服务器端吧。WebService目前虽难用,但标准化是满足了,足以形成服务层的标准。现在的问题是:是采用官方版的标准WS,还是采用民间版的简化REST。这可能要依系统的规模和复杂度而定。不过这下我们身在服务端编程各个阵营的同道们大可放心了。不论是Java、.NET、PHP还是Ruby,只要采用WebService就可以实现互通互连,思路上总算是功德圆满了。实践中却还要解决性能和易用性的问题,虽然WebService达不到专用协议(如RMI)的效率,但为了异构系统集成和长远的扩展性,这点牺牲还是值得。我们要做的就是如何在自己的平台上把WebService用好,尽最大努力解决性能和易用性问题。

这几个月总见dlee等人宣扬REST+Ajax,先也不以为然。待笔者重走长征路后,才大体上得到了类似的结论。虽然晚了些,却是笔者的真实经验与感悟,在此与诸位共勉。

本人今日之愚见且认为:Ajax+WebService(或者说REST)最有可能成为表示层与服务层的最终标准。

         

2
oojdon
2008-05-03 12:31

长得这么帅的帖子怎么没人回呢?我来顶一下

jamesqiu
2009-12-05 19:51

Ajax好,支持一下。

160649888
2009-12-06 09:59

好文,看来我是落伍了,去学习下先

bohemia
2009-12-06 15:03

Web Service 和 REST 不是一回事吧? 是不是在一起等同不太合适?

2Go 1 2 下一页