原文引自:http://blog.csdn.net/rosen/archive/2004/06/05/9878.aspx
原作者:Rosen Jiang 以及出处:http://blog.csdn.net/rosen
前 言
看了几篇关于“回归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所赐。
RIA方案—基于Flash的Flex
Flex简介
Macromedia公司被公认为新兴的RIA市场的领导者。今天98%的浏览器上都使用Macromedia Flash客户端软件,因此几乎每个人都可以使用基于Flash的RIA。Macromedia Flex是Macromedia的新服务器产品,它使企业应用程序开发人员能够全面访问RIA的功能。Flex具有基于标准的架构,与当前企业开发人员的 工具、方法和设计模式互补。
Flex应用程序与传统的HTML应用程序的主要区别在于Flex应用程序处理最适合在客户端运行,如字段校验、数据格式、分类、过滤、工具提示、合成视 频、行为及效果等。Flex 可使开发人员更好地交付应用程序,这种应用程序使用户可以迅速反应、在不同状态与显示间流畅过渡,并提供毫无中断的连续的工作流。
Flex 应用程序框架
如 上图所示,Flex应用程序框架由MXML、ActionScript 2.0及Flex类库构成。开发人员利用 MXML及ActionScript 2.0编写Flex应用程序。利用MXML定义应用程序用户界面元素,利用ActionScript 2.0定义客户逻辑与程序控制。Flex类库中包括Flex组件、管理器及行为等。利用基于Flex 组件的开发模型,开发人员可在程序中加入预建的组件、创建新组件或是将预建的组件加入复合组件中。
这里重点介绍一下MXML。与HTML一样,都是标记语言,它描述了反映内容与功能的用户界面。与HTML不同的是,MXML 可对表示层逻辑与用户界面和服务器端数据绑定提供声明抽象。MXML可将表示与业务逻辑的问题彻底分开,以实现最大程度地提高开发人员的生产率及应用程序 的重复使用率。
Flex的不足
目前Macromedia最新推出了Flex 1.0 Updater,但它代号为“Brady”的IDE还没有正式推出,目前还在进行Beta 3测试。抛开IDE不说,笔者认为Flex目前还很不成熟,还不利于在实际项目中使用。
例 如,Flex自带的ZipCodeValidator,里面只提供了美国和加拿大的邮编规则,没有其他选择,也无法个性化它。看来只有自己来定义 Validator了,但这样一来,和在JS中写正则表达式有什么区别(代码量和JS差不多)?用户需要的是国际化的ZipCodeValidator, 这样才能提高工作效率。
一句话概括
现在的Flex才是1.0版本,很多地方都不完善,只好自定义才能完成特定的要求。期待着Brady以及Flex后续版本的推出!
RIA方案—基于JS的Bindows
Bindows简介
“Bindows把javascript发挥到了第九层!”——网友这样评价Bindows。
运行中的Bindows
的确如此,Erik等编写这个框架已经将javascript的OOP和基于IE6的DHTML发挥到极点!Bindows 0.93发布的时候已经将IE内置的功能开发得淋漓尽致了,包括Filter、XMLHTTP、Web Service、VML。javascript用于客户端界面的显示和处理,XMLHTTP用于客户端与服务器的信息传输。javascript在客户端 的表现力不容置疑,看看www.bindows.net所表示出来的能力,利用javascript几乎可以实现Windows应用程序所能干的大部分事 情,XMLHTTP一直以来常被用于实现“无刷新”的Web页面,它和javascript配合,可以完成数据从服务器和客户端的传输。
Bindows的不足
Erik喜欢那种一次全部载入的方式来实现脚本库,使用过Bindows会发现,在窗口的加载期,需要一个漫长的等待过程,甚至浏览器的进程会产生无响应 的情况。按照V0.93,脚本文件的大小是600多K,在一个普通的Web应用中,我们更多时候不会用到Bindows的全部功能,这点Bindows根 本没有遵循“用多少去多少”的准则。另外,过多的JS会使CPU占用率陡然增加,产生潜在问题。
内部大量利用了IE6的技术,没有考虑到非微软平台的浏览器,限制了Bindows的流行。在图表方面,大量采用了VML技术,在IE5,IE5.5这两 个版本,VML引擎不是那么的成熟,很多地方的显示不够流畅,会受到带宽和硬件的限制,过分绚丽的图形最终会给用户带来崩溃。“图形方面我是采用VML 的,当初太偏执,如果使用SVG来实现可能好许多的,也就是那段日子,我花了非常多的时间去折腾web方面开发。”——有网友这样说。
一句话概括
在技术的角度上,从Bindows是可以学到不少东西的,但好像它的学术价值大于它的商业价值。
后 记
兴奋归兴奋,冷静下来仔细想想,运用RIA改造现有B/S模式还为时尚早。制约我们的首先是网络环境和硬件环境的不完善性,我想没有哪个用户愿意花大量的 时间来等待想要看见的“花哨”页面,更不愿意等来的东西使自己的机器不堪重负,而换来的只是一些良好体验吧?市场决定一切,而不是任何的新技术!其次,目 前RIA的解决方案也不成熟,笔者看好Flex,可惜还需要长时间的等待才有结果。当然,还有很多RIA的方案,感觉MS的Smart Client + Web Service来头不小。
分享到:
相关推荐
ria服务,全称为Rich Internet Application Services,是一种技术框架,旨在为Web应用程序提供更丰富的用户体验和更高的交互性。RIA服务是微软.NET平台上的一个重要组成部分,它结合了Silverlight技术和WCF(Windows...
WCF RIA Services simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms. RIA Services provides a pattern to write application logic that runs ...
RIA,全称Rich Internet Application,中文可译为“富互联网应用程序”,是一种在互联网上提供高度交互性和丰富用户体验的应用程序模型。这种技术结合了桌面应用程序的交互性和网页应用程序的分布性,旨在提供比传统...
**ria服务介绍** RiaServices.msi 是一个与微软Silverlight技术相关的安装程序包,它在2009年11月18日发布。Silverlight是微软开发的一个跨浏览器、跨平台的插件,主要用于增强Web应用程序的交互性和媒体体验。Ria ...
Rich Internet Applications(RIA)是指一类提供类似桌面应用的用户体验的Web应用,具备丰富的交互性和动态性。常见的RIA框架有Flash、Flex、Silverlight和JavaScript库(如jQuery、AngularJS、React等)。 1. **富...
**RIA(Rich Internet Applications)应用开发课程** ria应用开发是现代Web开发中一个重要的领域,旨在提供更加丰富、交互性更强的用户体验。本课程专为对RIA技术感兴趣的开发者设计,通过12个精心策划的课时,将...
UniEAP RIA V3.4参考手册
ria,全称Rich Internet Application,即富互联网应用,是指那些具有丰富用户界面和交互功能的网络应用程序,它们能够提供类似桌面应用的体验,但运行在浏览器环境中。RIA应用结合了客户端和服务端的技术,旨在提高...
**RIA(Rich Internet Applications)**是指富互联网应用程序,它代表了一种互联网应用的新模式,旨在提供与桌面应用程序相媲美的用户体验。RIA 不依赖于特定的技术或编程语言,而是强调通过高度交互性和丰富的图形...
WCF(Windows Communication Foundation)RIAServices,全称为Relational Data Services,是微软推出的一种用于构建RIA(Rich Internet Applications)的框架,它简化了在Silverlight或WPF应用中与服务器端数据交互...
在IT领域,Silverlight是一种由微软开发的富互联网应用程序(RIA)平台,它允许开发者创建交互性强、用户体验丰富的网络应用。而WCF RIA Services(Windows Communication Foundation Rich Internet Application ...
《ActionScript 3 RIA 参考指南》深入解析 标题与描述中提及的“ActionScript 3 RIA 参考指南”旨在为开发者提供一个全面的资源库,涵盖Adobe Flash Player、Adobe Flex以及Adobe AIR平台上ActionScript 3语言的...
WCF RIA Services+Mef+MVVM实现CRUD示例源码 实现了雇员的增删改查,雇员表(Employee)和部门表(Department)、雇员类型表 (EmployeeType)有外键关联,并和字典表(DataDict)有字典关系 示例采用技术说明: 1、...
学习ria必备文档,虽是英文的不过也不错了
**WCF RIA Service Silverlight 商业应用**是利用微软技术构建高效、交互性强的Web应用程序的一个示例。本文将深入探讨WCF RIA Services与Silverlight结合在商业环境中的运用,以及它们如何帮助开发者创建丰富的...
ria技术,全称为Rich Internet Applications,是互联网应用领域的一个重要概念,旨在提供更丰富、更具交互性的用户体验。ria技术的核心目标是将桌面应用程序的高级功能和动态性与Web应用程序的便捷部署和跨平台特性...
自从VS2013从wcf Ria转向open RIA,就对ria服务支持不太好了,这个是让visual studio 2013增加open Ria services支持,增加Silverlight Business Application、domain service
**ria4Java与ExtJS可视化开发** ria4Java是一个基于Java技术栈的 Rich Internet Application(RIA)框架,它专门设计用于构建高度互动、图形化的用户界面。这种框架结合了Java的强大后端处理能力和ExtJS的前端可视...