随着2005年ajax这个名词的流行,关于ajax技术本身的争论就一直喋喋不休。有些人为这种技术而激动,兴奋得投入到ajax的大潮中。有些人对ajax大为诟病,认为其不过是一种炒作,其类似技术早已实现,毫无新意。也有些人还持一种观望的状态,等到大势所趋时,才进行投入。
随着2005年ajax这个名词的流行,关于ajax技术本身的争论就一直喋喋不休。有些人为这种技术而激动,兴奋得投入到ajax的大潮中。有些人对ajax大为诟病,认为其不过是一种炒作,其类似技术早已实现,毫无新意。也有些人还持一种观望的状态,等到大势所趋时,才进行投入。
总之,一个新兴事物的诞生之初,有不同的观点进行争论是很正常的现象。作者作为支持ajax的一派,对这个新生事物,可以说是倾注了很多精力。从最初的不懂,到略知一二,再到深刻认识,发现ajax背后隐藏的趋势,多少有些亢奋。凭此文,希望能够把自己的观点,表达一二。
ajax在2005年异军突起,伴随着web2.0,成为了本年度最为流行的名词之一。很多人看到这样一门技术,可能会很奇怪,感到很突兀。
- 为什么会突然产生这样一种技术?
- 类似的技术早就有,ajax有什么突破?
- 为什么这种技术如此盛行,并被某些人认为是一种趋势呢?
如果你仅仅试图从ajax本身去寻找这些问题的答案,你可能会一无所获。如果你仅能够看到ajax本身,那就如同瞎子摸象、管中窥豹,不能领略全局,当然也不能领会其意义。相反,如果你能够从一个更好的高度上去思考ajax所带来的好处,把ajax放到一个相关的语境中去体会,你就会有另一番发现。
与ajax相连的,还有这么两个名词―ria和web2.0。
什么是ria?
ria就是rich internet application的缩写。
“rich”代表功能强大,高交互性,高用户体验。
“internet”代表方便。应用程序部署方便,用户使用方便。跨系统,跨语言。
其实ria实际上一种基于web的c/s架构(我称之为c/s/b)。由于有一个客户端,所以ria应用可以提供强大的功能,让用户体验到高交互性,高用户体验。同时,ria又是基于internet浏览器的应用,所以,用户使用ria非常方便。理想来说,用户使用ria应当像现在使用普通网页一样方便。用户不需要安装任何的客户端软件,只要拥有浏览器。当用户通过浏览器发出指令,希望运行某种ria应用程序时,一切都会飞快的建立在客户端机器上,就像你在web上点击一个页面一样。
目前,典型的ria的代表有如下几种技术:
- ms clickonce
- sun java web start
- adobe flash
- ajax
应该说,各大厂商均看到了ria美好的未来,纷纷行动起来希望分一杯羹。只有ajax技术在这些技术中有些特立独行。
ajax并不属于任何厂商,相反,ajax代表的是一种开源的风格。由于ajax所采用的各种技术要么是基于标准的,要么也没有被各大厂商所垄断,所以ajax真正是一个平民化的技术,谁都可以用它。同时,由于ajax采用的各种技术基于现有的浏览器,所以兼容性最好。用ajax技术建立的网站,目前均可以直接运行,不需要任何客户端的改变。
其他的各种技术与ajax比较起来,目前或多或少的还有些兼容性的问题。虽然这些技术功能强大,但是目前它们应用起来还并不是很方便。不过可以看到,随着时间的推进,相信,未来还是属于功能更强大的一方。除非ajax本身的功能有所加强。这样,就看javascript的功力了。
ria实际上代表的是一种回归。
最开始流行的c/s结构,因为功能强大,而且范围有限,不需要害怕部署问题。之后随着用户的增加,部署问题越来越大,导致b/s模式的产生。
b/s模式虽然功能有限,但是却使用非常方便。从长期来看,方便的作用还是非常巨大的。功能可以不断增强,但是如果不方便,将吓走所有的客户。实际上观察一下web的发展,就会发现,如今百花齐放的web开发技术,其目的都是为了提高b/s架构的交互性,让他更能适应需要而已。
不过,随着目前越来越多的应用需要一直到web上,人们终于发现b/s模式的缺点。各种技术上的硬性问题均限制着b/s模式的发展。从最基本的请求/相应模型,http协议,到所有负载均运行在服务器上的事实,让我们迫切需要一种方式来提高web的交互能力,但同时又不能丧失它的使用方便性。
于是,ria诞生了。ria就是基于浏览器的c/s结构。它将部分的服务器负载转移到客户端,同时又不会丧失使用和部署上的方便性。所以说,ria就是一次回归,只不过这次回归我们没有原地不动,相反,我们找到了最佳结合点。如图1所示:

图1、ria就是一种回归
但是,我们知道了ria是一种回归。可是,为什么ria会盛行呢?这就需要我们把ria放到web2.0的环境中去思考。
什么是web2.0?
目前,对于web2.0并没有明确的定义。在《what is web 2.0》这篇文章里,对web2.0应用所需要具备的各种特点进行了总结,并且提了出来。
- services, not packaged software, with cost-effective scalability
- control over unique, hard-to-recreate data sources that get richer as more people use them
- trusting users as co-developers
- harnessing collective intelligence
- leveraging the long tail through customer self-service
- software above the level of a single device
- lightweight user interfaces, development models, and business models
虽然有这么多特性,但是web2.0背后最本质的东西就只有两点:
- 软件向服务化发展,向平台化发展
- web由原来“publisher”的观点,发展成“participation”的观点。
正是基于这两点,web2.0时代迫切需要一种使用方便,高交互性的应用程序,而此重任,就落在了ria身上。
通过图2,你可以看到由web1.0到web2.0的变化。

图2、web1.0向web2.0的演变
还是在《what is web 2.0》那篇文章里,勾勒出了一幅web2.0的meme map。这张图的中心代表的是web2.0的核心概念,而旁边是web2.0概念的延伸。在这张图里,我试图勾勒出一些迫切需要ria的特征点。实际上,你可以看到,在web2.0的meme map里,到处充满了ria的倩影。如图3所示:

图3、web2.0中的ria倩影
看看大象本身
介绍了这么多,让我们总结一下。
随着软件和互联网的发展,需求导致一种新的计算模型出现。这种计算模型的特色就是,软件逐渐的有前台推向后台,以平台的方式提供服务,让用户在前台表演。
计算模型的变化,导致web2.0的出现。尽管仅仅是开始,但是,从web2.0的身上你依然可以依稀看到这种变化的趋势。不过web2.0要想有如此变化,要想让用户参与进来,就必须提供一个用户功能强大的,使用方便的用户接口(ui)。
于是,需求导致了ria的出现。ria提供了一个满足需求的用户接口,使得大家可以参与到web2.0中来。但是,ria要想应用起来,可能还需要一个过程。
于是,几种ria技术中,目前使用起来最合适的ajax凸现出来。正是由于ajax出色的兼容性,让他走到了历史的前台。有了它,我们开始了一场新的革命。
图4显示了这些名词之间的关系。把它们放在一起看,也许你会发现不一样的东西。

图4、ajax、ria与web2.0
未来的样子
当我走在北京的街头,我在想,如果我有一台智能手机,可以访问百度的map服务,也许我就不会像现在这样担心迷路了。实际上,类似的例子还有很多。如果web2.0的明天已经到来,我们的生活会发生很多改变。
我不知道,尽管我很想知道。如果我真的能够看到未来的样子,再具备一些必要的执行力的话,也许我就是下一个比尔。不过,看到目前的这一点,已经令我非常兴奋。不管怎么样,我们都有权利想象。也有权利,用我们的手去改变世界。
怎么样?开始吧?let’s do it!
作者bolg:http://blog.csdn.net/coofucoo/archive/2006/03/17/626909.aspx
闽公网安备 35060202000074号