目 录
1. RIA的概念
2. 什么推动软件技术革命?
3. RIA的历史和现状
4. RIA的技术实现
4.1 Adobe公司Flex 、AIR. 2
4.2 Microsoft公司Silverght、WPF/E. 3
4.3 Java阵营Applet、JavaFX和Java Web Start. 3
4.4 Ajax. 3
5. RIA技术所带来的挑战
6. 参考资料
RIA分析
RIA(Rich Internet Application,富互联网应用系统)。这里的Rich是与传统的Html页面相比。Rich主要体现在丰富的客户操作相应。RIA必须要具有一下几个特点:
■ 利用网络,具有服务器和客户端(浏览器其实也是客户端的一种)
■ 丰富的客户操作响应
■ 漂亮的界面
■ 0成本部署
■ 局部刷现界面
还有一些观点认为断网的情况下还可以继续使用程序,也使用应用程序,也应该是RIA的特性之一。我觉得那就没有必要使用RIA了。直接使用C/S结构多好。比如360安全卫士,每次启动都更新自己的库。也是一种很好的C/S结构。没有必要使用RIA技术了。
纵观计算机软件发展历史,硬件+网络+用户需求+开发成本4种关键因素推动软件技术革命。RIA技术所需的硬件和网络已经成熟。客户对RIA的需求已经被GoogleMap、雅虎、微软等验证。只要开发成本不是非常巨大,开发公司会通过技术革新适应客户需求的发展。所以,RIA必然要取代传统Web页面,RIA大潮即将来临。
Macromedia 在2002率先提出RIA的概念。Macromedia在2005年已经被Adobe收购。
目前,RIA的技术实现主要有4种:
■ Adobe公司Flex、AIR
■ Microsoft公司Silverght、WPF/E
■ Java阵营Applet、JavaFX和Java Web Start
■ Ajax
Google的系列产品使用了Ajax技术。比如Gmail,GMap等等。Flex的应用有YahooMap和一堆不太知名的小网站。Silverght和JavaFX的应用好像不太多。
目前Flex已经发展到2了。
Adobe公司RIA有关的主要技术名词有:
Flex:通过非Flash的方式(Linux或window可执行文件)根据.mxml文件定义的commponent(组件,可以理解为界面的输入框等)组织结构,生成对应的.swf文件。主要包含两个技术MXML和ActionScript 3。Mxml用于界面描述。是纯xml文件。ActionScript是对ECMAScript改进后的产物,进行流程控制和逻辑判断的脚本,由FlashPlayer 9的核心AVM2虚拟机解析执行。Mxml相当于传统web中的html。ActionScript相当于JavaScript。区别是Mxml和ActionScript都是强类型的语言,语法要求更加严格。
Flex与Flash的关系:Flex技术的.mxml文件编译成swf文件后,交给flash player或者shockwave player解释执行。Flash与Flex就相当于J2SE和J2EE。Flex针对RIA对Flash进行了封装。Flex直接调用Flash的api,使用Flash完全可以做到Flex的效果。之所以只用Flex,主要是为了适应软件开发者的习惯,去掉一些对软件工程师没有意义的概念。因为Flash的传统应用领域是适量动画设计。
AIR:以前叫Apollo。通过这个平台各种网络应用程序可以离线操作。并具有访问本地资源的权限。类似与JAVA START。个人认为这个东西不会有前途。因为Flex的主要优势是Flash插件在浏览器中普遍存在。AIR反而抹杀了这个优势。
Flex Builder 2:基于Eclispe技术的用于Flex2开发的IDE,支持界面控件拖拽和代码助手这两个非常重要的功能。
Flex的主要优点:
1.已经有绝大部分的浏览器安装了播放Flash的插件shockwave player。这是Flex能够决定其在RIA领域霸主地位的的优势。
2.任何浏览器对Flash的执行效果都是一样的。也就是说Flex是跨浏览器,跨操作系统的。
3.下载速度和执行效率都还可以(对比Applet和flex2以前的版本)
4.界面更漂亮。
5.对开发人员更友好代码量更少,调试更方便(比Ajax)。Mxml非常容易学习。Flex Builder也是很好的开发利器。
6.Flex的Component(组件)库与JavaSwing对界面组件的设计非常相似。Java程序员学习起来比较容易。
Silverght貌似WPF/E的一个子集。
与Flex比较相似,也有一套基于xml的界面描述语言。叫xaml。使用javascript作为脚本。
Silverght的最大优势是他是微软的。也许在微软推出下一款操作系统后,Silverght的优势会逐步展现出来。
Applet和JavaWebStart是约十年前的东西了。但与今天的RIA缺惊人的相似。难道这是技术的轮回?
Applet的失败的主要原因jre插件没有在浏览器中普及。并且先当时的硬件和网络环境并不成熟,不能支持Applet的流畅的下载和运行。并且对开发人员不够友好。在界面方面需要编写代码,没有象mxml一样方便的编写方式。更没有FlexBuilder2这样可拖拽的IDE(也许后来出现了)。东西是个好东西,但生不逢时,又能怪谁那。
JavaFX是新出来的东东,没有仔细研究过。但由于Flash在浏览器中的优势,估计JavaFX没戏。
Ajax是Html、Css、JavaScript几项技术的结合体。是个混血儿。有人说Ajax是一种过度技术。我并不同意这种说法。Ajax还是有其优势的。最大的优势是绝对的0成本部署,Flex还需要安装IE插件。
但由于Ajax所使用的技术并不是为RIA所设计的,所以Ajax有许多先天行的缺点。比如,调试麻烦。在界面显示方面html还是更加简捷方便。
在未来的几年中Ajax应该会在各种RIA技术的夹缝中生存并且与之完美的配合。也许,未来的Ajax和其他RIA技术的关系会象现在C和Java关系一样。
RIA所带来的最大挑战是对设计人员的。因为可用的界面组件更丰富了,如何设计出用户看起来非常舒适、使用起来非常方便的界面,是摆在设计人员面前的首要问题。其次,对中国开发者来说中文资料的匮乏也可能会阻碍Flex在中国的发展。
http://soft.zdnet.com.cn/software_zone/2007/1026/580854.shtml RIA说文解字
http://www.wujianrong.com/archives/2007/10/ajaxflashsilverlightjavafx.html、
http://www.tenlin.com/tag.php?tag=ria&mode=&mode=1
http://www.wallop.com
http://www.familk.com
http://lwz7512.javaeye.com/blog/51634
http://www.oracle.com/global/cn/oramag/oracle/04-jul/o44dev_trends.html 富互联网应用系统(RIA)一览
http://blog.csdn.net/hljlgj/archive/2006/11/15/1385603.aspx 提高客户体验的RIA开发技术
http://www.infoq.com/cn/news/2007/07/dhh-debates-ria-future 争论又起,RIA的未来在哪里?
http://wangcheng.javaeye.com/blog/81160 Flex 与 javascript 交互
http://www.awflasher.com/blog/tag/ria
http://sd.csdn.net/subject/ria.htm 谁将引领RIA的发展方向
http://soa.csdn.net/subject/RIA.htm 谁将引领RIA的发展方向
http://hi.baidu.com/minyuanyang
http://hi.baidu.com/minyuanyang/blog/item/faf6c61b4578e3d4ac6e7512.html Flex 如何能够转变 Web 上的用户体验
http://examples.adobe.com/flex2/inproduct/sdk/dashboard/dashboard.html*
http://www.doof.com/
……