前 言
看了几篇关于“回归C/S”的文章,作为一名多年开发B/S的程序员,不免热血沸腾,深受鼓舞!曾经,我是B/S结构的忠实拥护者,同时也为了所谓的“零部署”陷入过技术泥潭。正当为B/S烦愁的时候,RIA走进了我的视线… …
什么是RIA
Internet已经日益成为应用程序开发的默认平台。用户对应用程序复杂性要求日增,但现在的Web应用程序对完成复杂应用方面却始终跟不上步伐。用户与今天中等复杂程度的Web应用程序交互时,其体验并不能令人满意。Web模型是基于页面的模型,缺少客户端智能机制。而且,它几乎无法完成复杂的用户交互(如传统的C/S应用程序和桌面应用程序中的用户交互)。这样的技术使得Web应用程序难以使用,支持成本高,并且在很多方面无法发挥效应。
为了提高用户体验,出现了一种新类型的Internet应用程序。那就是Rich Internet Applications(RIA)。这些应用程序结合了桌面应用程序的反应快、交互性强的优点与Web应用程序的传播范围广及容易传播的特性。RIA简化并改进了Web应用程序的用户交互。这样,用户开发的应用程序可以提供更丰富、更具有交互性和响应性的用户体验。
基于主机模式→C/S模式→B/S模式→RIA模式
我们的行业经历了几次系统架构方面的重要转变,在此过程中,客户端的表现功能有起有落。上图介绍了每个阶段的计算功能所带来的应用程序体验方面的变化,这一过程从大型机开始,到RIA的出现为止。
随着各企业组织认识到RIA模型可产生显著的商业利润、提高生产率及降低成本的优势后,这种模型的发展势头越来越猛烈。这些应用程序结合了桌面应用程序的反应快、交互性强的优点与Web应用程序的传播范围广及容易传播的特性。系统架构发展的下一步是RIA,它最大程度地提高了广泛性和丰富性。
论传统B/S之不足
过程复杂性
过程复杂性是由于需要表达一个多步骤或多选项任务或互动作用所引起的。在HTML里,一个多步骤的任务可以在单页内表达出来。但是由于HTML的互动性有限,便可能产生一份很长的页面,使用户感到混乱、笨拙而难以使用。为了避免这种难以忍受的用户体验,便需将任务在表面上看来“自然”的部分处区分成多个步骤,甚至需多个网页共同完成。这种以网页为主的用户界面通常需要反复翻转网页,以解决在顺序步骤中有牵连性的改变。其结果是缓慢、不自然、混乱而且令人感到懊恼的用户体验。
配置复杂性
许多Web应用程序允许用户配置自己所要的定制产品——可以是皮包或是计算机,甚至是汽车等产品。但是配置产品是一项很困难的过程,因为在向用户展示所有有效的产品选项组合时,应用程序必须能够表达出有关的复杂性,尤其是当用户可以从数十、数百或数千选项中定制出一个产品时。表达这些复杂性包括指出所需条件、有效和无效组合、一些导致问题的元素以及它们的适当解决方法;为每一项个人选择提供费用信息以及费用总计(一旦有所更改);还有最重要的是容许用户观看最后结果。这些是传统Web应用程序相当难以表现的。
规模复杂性
今天,网站内的搜索工具大多是文本性质,间中夹着一些锦上添花的图像。当用户输入他或她的数码照相机准则,有可能是价格、以像素等,网站便接着回复数页符合准则的产品,而大部分都是说明文本。反之,另一种方法则是使用视觉化来简化搜索空间(也就是提供立即和动态的视觉反馈)。在一个视觉化选择照相机的网站,其搜索过程可能如下:网站从一个包含所有照相机种类图像的单屏幕开始。当用户通过复选框、游标或数据输入域来选择筛选准则时,所有不符合准则的照相机图像将被删除,只余下符合准则的照相机可在屏幕上看到。因此,在把选择聚焦至符合准则的数部照相机的过程中,用户可经历一个截然不同,而且和现实生活中的购物经验更相似的体验。
反馈复杂性
高度互动性的应用程序如游戏,能使反馈变得复杂,也即是指用户行动和快速移动或情节不断改变的屏幕元素之间的反馈环路。传统的HTML页面一向来都可以说是无法表达这类复杂性。它所需要的是拥有高度互动性和局部智能型的客户端应用程序,以便可以在无需刷新全页或干扰与服务器之间的通信的情况下,响应用户的输入和改变它们的状态或界面。放弃如今依赖服务器的客户机将使用户体验更吸引,同时也解决了反馈复杂性的问题。Web应用程序必须拥有表达复杂性的能力,以容许用户视看复杂的数据、配置多选项的产品、搜索大型数据集以及容许用户与数据之间的互动交换。
真正的RIA
为了解决如今的问题,理想中的Web应用程序应该能够:
1、 利用无处不在的客户机
2、 在多种硬件平台上毫无更改的操作互联网
3、 无论低或高带宽的连接都可毫无妨碍的执行
4、 将处理能力复原给客户(而不仅是提供能力而已)
5、 提供吸引人的高度互动的用户界面
6、 表达过程、数据配置、规模和反馈复杂性
7、 无缝的利用声音、视像、图像和文本
8、 容许用户在线和离线工作以支持移动工作流程
9、 容许客户自行决定要在何时存取何种内容和数据(异步内容检索)
10、 存取多种中间层服务(.NET或Java)和后端数据存储
11、 采用新崛起的标准如XML和SOAP,为演进中的Web Service为主的网络提供动态高效的前端应用
12、 与遗旧的应用程序和系统集成
13、 容许在现有Web应用程序和环境内逐步添加新功能以充分利用现有网络应用投资
结 构
RIA本身有能力提供这类Web应用解决方案。如上图,RIA将桌面型计算机软件应用的最佳用户界面功能性与Web应用程序的普遍采纳和低成本部署以及互动多媒体通信的长处集于一体,终于成就了一种可以提供更直观、响应性和有效的用户体验应用程序。它所具备的桌面型计算机长处包括了在确认和格式编排方面提供互动用户界面;在无刷新页面之下提供快捷的界面响应时间;提供通用的用户界面特性如拖放式(drag and drop)以及在线和离线操作能力。Web网的长处如立即部署、跨越平台可用性、采用逐步下载来检索内容和数据、拥有杂志式布局的网页以及充分利用被广泛采纳的互联网标准。通信的长处则包括双向互动声音和图像。
客户机在RIA内的作用不仅是展示页面,它可以在幕后与用户请求异步地进行计算、递送和检索数据、重新画出屏幕的一部分和密切综合使用声音和图像,这一切都可以在不依靠客户机连接的服务器或后端的情况下进行。
RIA提供一个强劲的技术平台,使客户机的能力复原到差不多与桌面型计算机软件应用或传统的C/S系统中的客户机能力相似。它适合传统的N层开发过程,同时也能够和遗旧的环境集成以延展现有的应用程序而无需进行修改。它也可以作为基础网络服务的互动表现层,允许用户在线和离线工作。RIA有能力解决各种复杂性,使需要复杂性的应用得以开发并且减少开发成本,同时在很多时候这类应用之所以能够成形主要是拜RIA所赐。