分类:
2008-09-09 13:29:22
影响软件开发的因素
RIA的降临很大程度上导致了web应用开发的复杂化。传统的web应用使用标准HTML建立,通过相对简单的软件架构设计开发,管理也相对简单。而RIA在SLM(软件级别管理)方面的新问题,直到现在也没有完全解决。RIA的架构使以下方面的管理过程复杂化:
复杂度的增加导致开发难度加大。将代码搬到客户端上,让设计和开发人员能够充分发挥它们的创造力。但是,这样所导致的开发难度、bug的增加、复杂度的增加都是巨大的。
RIA架构打破了web应用的规律。传统的web应用是很多web页面,每个页面均由HTTP GET请求触发,这就是web应用的规律。RIA打破了这个模型,它引入了附加的异步通信来支持对UI的更多响应。
异步通信机制很难隔离出性能问题。有点搞笑,其实异步通信这种用来提高应用响应的机制,却很难用来衡量性能,并精确管理吞吐量和响应时间。也许在请求了第一个页面之后,RIA应用就再也不会发起HTTP GET请求了,因为他们可以通过异步请求的机制完成后续的内容任务。
也很难衡量客户端引擎的响应时间。传统的web应用可通过截取包的数据(包监听器)来衡量客户端与之间的交互过程,就可以计算出web应用的响应时间。但RIA应用由于异步的通信方式则不可能通过包监听器的方法来衡量web应用的响应时间。
RIA的现状
RIA尚处于用户采用的早期阶段。仍有一些限制和需要:
浏览器。RIA需要web浏览器的支持才能正常运行。Web浏览器必须支持复杂的Script引擎,因为RIA技术通常都使用了XMLHTTPRequest作为客户机服务器的通信技术,DOM Scripting和高级的技术来支持富UI。
Web标准。Web浏览器的不同增加了编写RIA应用的复杂度。
开发工具。Curl、Adobe Flex和Microsoft Silverlight都提供了集成开发RIA的环境。
用户接受度。用户可能会怀念诸如“后退”之类的传统web应用提供的功能。
目前提供的RIA平台/解决方案
Adobe:Adobe Flash、Adobe Flex和Adobe AIR。Adobe Flex框架提供了让开发人员通过编译MXML来构建UI的途径。Adobe Flex框架可编译生成SWF文件。
Backbase:基于AJAX的RIA框架。
Curl:Curl是麻省理工从90年代末开始的研究项目,现已由Crul公司商业化。目前的版本是6.0,支持, Linux和Mac OS平台。
Dojo Toolkit:Dojo Toolkit是旨在便利基于Script或Ajax的RIA应用开发。
Google GWT框架:Google Web Toolkit,大家应该挺知道的了吧。
Java Applet:。。。。。
JavaFX:现在也炒得挺火的了。
JavaScript/Ajax:这个更不用说了。
LeeBeLLuL:这是一个在浏览器中使用IronPython和在表单中使用InfoPath的RIA应用。
ActiveX控件:。。。。。
Microsoft Silverlight:这个被炒得更火。
Mozilla Prism:这是一个开发产品,它能将桌面与web应用集成,支持web应用从桌面启动,并可独立于缺省web浏览器进行配置。
OpenLaszlo:由Laszlo Systems公司开发的开源RIA应用框架。它使用LZX语言(一种XML标签和JavaScript的混合语言),然后编译成DHTML(Ajax)或Flash。
REBOL
reBOX:基于JavaScript的RIA。
Seam:基于Java的RIA开源开发平台