RIA(二):B/S的优势与发展

网人说网   评论

前文说了那么多BS(browser/server)架构的不好 :) 事实上BS能有今天的发展和成就,还是有其相对于C/S(client/server)架构的优势。

从客户端来讲,BS架构减少了客户端的安装要求,任何应用,只要打开万能的浏览器,一切搞定。当你走到网吧,或者机场等公共场所,不需要安装任何mail client,或者写字板程序,你就可以用浏览器完成相应的功能。

系统维护的角度讲,BS架构减少了系统安装,升级的维护成本。当有新版程序出来的时候,只要在web服务器做集中改动,用户在下一次页面刷新时就能立即得到反馈,而对于那些在服务器端运行的逻辑, 改动对于用户来说则更加是透明的。

当然BS架构在理论上,就数据迁移,系统安全性等方面也应该更加有优势。本地数据几乎为零,应用逻辑也不是跑在本地的。之所以目前种种不如意的地方,也是与BS这棵强扭的瓜不那么香甜有关。

诚如C/S也走过瘦客户端(thin client)和胖客户端(fat client)的争论阶段,B/S迎来了呼求再”胖”一点的时代。 RIA(Rich Internet Application)的概念因此而产生。那么什么是RIA呢?先看一段网摘(原文不知出处了,恕无link)

RIA是Rich Internet Applications的缩写,翻译成中文为富因特网应用程序(Macromedia中文网站翻译为Rich Internet应用程序) 。

传统网络程序的开发是基于页面的、服务器端数据传递的模式,把网络程序的表示层建立于HTML页面之上,而HTML是适合于文本的,传统的基于页面的系 统已经渐渐不能满足网络浏览者的更高的、全方位的体验要求了,这就是被Macromedia公司称之为的“体验问题”(”Experience Matters”),而富因特网应用程序(Rich Internet Applications,缩写为RIA)的出现也就是为了解决这个问题。

富因特网应用程序是下一代的将桌面应用程序的交互的用户体验与传统的Web应用的部署灵活性和成本分析结合起来的网络应用程序。富因特网应用程序中的富 客户技术通过提供可承载已编译客户端应用程序(以文件形式,用HTTP传递)的运行环境,客户端应用程序使用异步客户/服务器架构连接现有的后端应用服务 器,这是一种安全、可升级、具有良好适应性的新的面向服务模型,这种模型由采用的Web服务所驱动。结合了声音、视频和实时对话的综合通信技术使富因特网 应用程序(RIA)具有前所未有的网上用户体验。

“富”的概念包含两方面,分别是数据模型的丰富和用户界面的丰富。数据中的 “富”意思是用户界面可以显示和操作更为复杂的嵌入在客户端的数据模型,它可以操作客户端的计算和非同步的发送接收数据。这种模式相对于传统的HTML页 面的优点是程序运行于客户端并且程序更多的是和用户进行交互同时更少的和服务器进行交互。平衡客户端和服务器端的复杂的数据模型可以让你有更大的空间去创 建更高效和更具有交互性的网络应用程序。“富”同样也描述了全面提升的用户界面,HTML只给用户提供了非常有限的界面控制元素,而富因特网应用程序 (RIA)的用户界面提供了灵活多样的界面控制元素,这些控制元素可以很好的与数据模型相结合。传统的因特网模型使用线性的设计,提供给用户一些选择然后 用户发送选择结果给服务器,这种单一的模式不符合应用程序的灵活交互的要求和用户的意愿。频繁的服务器请求和页面刷新有很多的缺点包括页面打开缓慢和降低 网络带宽。如果采用富客户界面,可以从以前的服务器响应影响整个界面,转移到只有收到请求的应用程序部分才会做出相应的变化。这本质上意味着界面被分解成 许多独立的模块,这些模块都会对收到的信息做出相应的反应,有些会和服务器端进行交互,有些是这些模块之间的通信

由此可以看到,”富裕”(rich)起来的这部分,很好的解决了前文所述BS的三大弊端

首先,RIA使用异步客户/服务器架构连接现有的后端应用服务器,这种方式有效的减少了页面刷新的需求,也提供了更好的用户体验。

其次,丰富和灵活的本地化界面控制元素,使用本地计算能力提供更加丰富界面的同时,又有效的减少了由刷新带来的界面数据传输冗余。

最后,程序本地模块间的通讯解放了服务器端额外的会话控制开销,事务性应用的次序性和完整性不需要通过和服务器的交互来完成。

那么,既然RIA有那么好的前景,为什么不能做成下一版的浏览器标准。IT界的老鸟就此会对你露出邪恶的笑容,并且在牙缝里蹦出两个字:”兼容”。如果要兼容已经存在的上亿亿亿亿的网页和应用,那么RIA版的浏览器最终只能堕落。反过来如果只做面对特定应用的标准,那和C/S又有什么两样?RIA其实是在这两者的缝隙中“胖”出来的。让我们看一下adobe官方所宣称的apollo特性:

Apollo is the code name for a cross-operating system runtime that allows you to leverage your existing web development skills (Flash, Flex, HTML, JavaScript, Ajax) to build and deploy Rich Internet Applications (RIAs) to the desktop.

apollooverview.jpg

Apollo让web程序员可以利用现有的web技术,如js,dhtml,css,ajax,同时还提供了更加丰富的本地化技术与本地操作系统(OS),Web服务(webservice)或者数据服务(Flex Data Service)交互。

基于这样的方式,RIA其实是现有web浏览方式的一个强力的本地化工具。可以设想这样一个场景,各个网站最初还是以web浏览的方式在互联网上争奇斗艳,浏览器还是老大,RIA也无力为如此多的应用做特制化。当某些网站获得用户普遍认同的时候,如ebay,google reader,网站就推出一个针对此应用的RIA,让用户获得更加丰富的应用体验。而小网站也没必要推RIA,因为较少的关注和流量,即使推了也没人用,因为没人希望自己的桌面被RIA icon淹没。这是从用户角度来讲。

从网站的角度,RIA并没有增加多少维护和升级成本,所用的技术还是web技术。同时网站也不可能放弃基于浏览器的门户,毕竟流量,广告,以及因此带来的收益还是第一位的。

30年轮流转,而web从第一个应用走来到如今不过15年的时间。是集中式还是分布式,是要瘦还是要胖,乃至计算和数据之间的恩怨是分久必合还是合久必分,如今终于在web上演了。 让我们拭目以待。

[全文完]

相关日志

发布评论

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS 登录
This blog is protected by Dave's Spam Karma 2: 6691 Spams eaten and counting...