|
原帖由 jieforest 于 2009-11-16 16:21 发表 ![]()
在Shelll环境下命令行来命令行去的时代已经过去了,即便是Unix,现在也有了图形界面。早期的应用开发采用基于“瘦”客户端的C/S模式,在这样的系统中,所有处理操作均在服务器端执行,客户端仅仅是用于显示静态的信息内容(如HTML)。这种系统最大的缺陷是所有的交互操作都必须经由服务器端进行,服务器负担过重。在互联网时代则逐步过渡到B/S模式。面向互联网的应用呼唤着RIA的到来,于是RIA(Rich Internet Applications)富互联网应用就应运而生。
RIA一词源于Macromedia公司在2002年3月发表的一份白皮书。
RIA的优点:
1)C/S、B/S结构的负担平衡。
像Flex或Silverlight都是既支持桌面应用,又支持Web应用,因此可以说同时支持C/S、B/S模式。
RIA可以使客户端和服务器端对资源的需求更加平衡,从而使服务器不必再像传统网页应用中那样一直高负荷的运转。由此服务器端的资源得到了解放,从而提升了同一服务器端硬件设施所能并行服务的客户端会话数量。
像JavaFX的客户端引擎就是JVM,而Flex的客户端引擎则是Flash Player。
2)异步通信。
无须等待用户执行诸如在按钮或链接上点击的交互操作,客户端引擎便可与服务器端进行交互。如此,用户便可在客户端引擎跟服务器端通信的同时,异步地进行页面浏览或交互。从而,RIA设计者便可在无需用户等待的情况下,在客户端与服务器端之间传输数据。程序会预先从服务器端预取数据,即程序预见到未来可能需要某些数据的时候,会预先于用户请求将其下载,藉此来提升响应后续请求的速度。
3)网络效率高。
RIA应用的网络通信量也会明显减少。这是由于在决定需要与服务器端交换什么数据时,为应用程序专门设计的客户端引擎会比标准的网页浏览器更为智能。由于每次交互所需传输的数据量变少了,从而总负载也减轻了,所以每个请求和响应的速度也就提升。但是,滥用异步请求和预取技术有可能会抵消这种优势带来的好处,有时甚至还会起到反作用。因为程序无法准确地预期每个用户下一步操作所需的数据,所以采用这种技术时,时常会下载多余的数据,而对大多数客户端而言,这些数据其实并不是用户真实需要的。
RIA的缺点:
1)受限于安全沙箱。
由于RIA应用运行在安全沙箱中,所以其对系统资源的访问会受到一定的限制。
2)依赖于脚本支持。
RIA应用常常需要JavaScript或其它脚本语言的支持。如用户浏览器对这些脚本进行屏蔽,RIA应用将无法正常运作。
3)对互联网依赖较大。RIA应用大多基于互联网,因此对联网的依赖比较大。
我想强调一点,RIA决不仅限于“三大RIA”—— Flash、Silverlight和JavaFX,类似的像Widgets、Gadgets、GWT、ExtJS、Laszlo甚至是SWT等都具备RIA的特性,如此多的RIA技术给了我们太多的选择。
学习了,不错的介绍。
个人比较喜欢Flash 作为RIA. |
|