富互联网应用系统(RIA)
富互联网应用系统(RIA)
什么是RIA?RIA是Rich Internet Applications的缩写,翻译成中文为富因特网应用程序(Macromedia中文网站翻译为Rich Internet应用程序)
? “富”的概念包含两方面,分别是数据模型的丰富和用户界面的丰富。数据中的“富”意思是用户界面可以显示和操作更为复杂的嵌入在客户端的数据模型,它可以操作客户端的计算和非同步的发送接收数据。这种模式相对于传统的HTML页面的优点是程序运行于客户端并且程序更多的是和用户进行交互同时更少的和服务器进行交互。平衡客户端和服务器端的复杂的数据模型可以让你有更大的空间去创建更高效和更具有交互性的网络应用程序。“富”同样也描述了全面提升的用户界面,HTML只给用户提供了非常有限的界面控制元素,而富因特网应用程序(RIA)的用户界面提供了灵活多样的界面控制元素,这些控制元素可以很好的与数据模型相结合。传统的因特网模型使用线性的设计,提供给用户一些选择然后用户发送选择结果给服务器,这种单一的模式不符合应用程序的灵活交互的要求和用户的意愿。频繁的服务器请求和页面刷新有很多的缺点包括页面打开缓慢和降低网络带宽。如果采用富客户界面,可以从以前的服务器响应影响整个界面,转移到只有收到请求的应用程序部分才会做出相应的变化。这本质上意味着界面被分解成许多独立的模块,这些模块都会对收到的信息做出相应的反应,有些会和服务器端进行交互,有些是这些模块之间的通信。 ? 请关注那些超越正在失去生命力的HTML标准的技术 图1给出了一个典型的RIA体系结构。XML通常被用作数据传输的格式,有时也被用来描述窗体的布局。在很多的实例中,客户端可以保持与数据源的连接,这样服务器能够实时地对客户端数据进行更新。对一个Oracle数据的访问可以通过Web服务调用来完成。 用于富客户端的技术 下面是一些可用的RIA技术: Java:一些相当复杂的客户端应用程序(Oracle的JDeveloper,Eclipse)都是用Java编写的,这说明可以用Java来建立几乎任何一个能够想象得到的富客户端应用程序。到目前为止,Java已经出现几年了,并且完全支持创建基于窗体的用户界面。除了Java基础类(JFCng)中的用户界面组件之外,开发人员还可以使用来自于Eclipse Project的SWT工具箱和许多第三方工具箱进行开发。对于图形来说,可以采用Java 2D API--一个非常完整且非常复杂的图形API。Java还具有对XML和Web服务无人匹敌的支持能力。你可以通过一个Web浏览器使用Java插件软件,或使用Java运行时环境中较新的Java Web Start技术来部署应用程序。使用Java建立富客户端程序的主要缺陷是它的复杂性(即使对简单的窗体和图形也要求编写非常烦琐的代码)。它的优点在于Java对Web标准的全面支持,及该语言和类库的深刻内涵。 XUL:XUL(念作"zool")是一个基于XML的用户界面语言,它来自于Mozilla的开放源码项目。它可用于建立窗体应用程序,这些应用程序不但可以在Mozilla浏览器上运行,而且也可以运行在其他描述引擎上,如Zulu(一个Flash MX组件)和Thinleys(一个Java实现)。XUL描述引擎都非常小(100K以下),它可以使用XML数据也可以生成XML数据。同Java的情况一样,XUL也有一个非常大的用户团体,这个团体有大量的开放源工具,如Theodore ThinletEditor(见“下一步”)——一个使你能够以图形化方式布局用户界面,且可以生成相应XUL的Java应用程序。XUL的一个主要缺点在于它目前还没有获得一个主要商业实体的支持。XUL最大的优点在于它与Gecko引擎的集成(打开了通向大量Web标准的大门),以及与大多数其他XML用户界面描述语言相比它是一种非常具有表达力和简洁的语言。 Macromedia Flash和Flex:Flash是一个已经成熟的商业产品,它可以在Web网页中引入交互式的图形界面。最近经过升级后,新版本包含了建立窗体风格的应用程序的功能。尽管Flash作为一个在Web上最广泛部署的前端技术还有争议(取决于所选用的Flash Player版本),但据称已经有98%以上的桌面系统都支持Falsh。由于用来创建动画式图形的Flash工具其功能十分强大和是可视化的(与之相反其它技术要求进行低级的图形编码),所以图形设计人员使用起来十分得心应手。Flah采用的脚本语言是ActionScript--ECMAScript 1.5的一个变种,该脚本语言又被称为JavaScript。Flex产品对Flash增加了一个XML描述语言,使得可以编译用户界面,并且能够用Flash Player来随时进行描述。Flex使得传统的开发机构能更好地了解和使用Flash。Flex和Flash的最大缺点在于对XML和Web服务等标准的支持很有限,而且作为应用开发工具的环境还不大成熟。Flex和Flash的优点在于它可以很容易的用来创建复杂的动画式显示,以及可以使用第三方附件。 Oracle Forms:Oracle Forms是用来构建以数据库为中心的互联网应用系统的一个成熟的商品化产品。通过Oracle Forms,你可以使用一个输出窗体模块文件的可视化设计器创建窗体。为了便于在该设计工具外部进一步进行处理,模块文件要么采用私有的FMT格式,要么采用XML格式。这些模块文件驱动一个描述窗体的Java运行时环境。除了所有窗体的标准窗口小部件之外,还可以通过集成附加的可插入的Java组件和一些定制的JavaBean来实现更多的功能性。Oracle Forms采用的脚本语言为PL/SQL,Oracle数据库也采用同样的脚本语言。Oracle Forms的一个非常有趣的特点就是,用来建立、编辑和编译窗体模块文件的Java API--开发人员可以通过创建脚本来生成众多的窗体应用程序,或者进行全局性的改动。Oracle Forms的主要缺点是,进行Web部署需要获得Oracle应用服务器的使用许可。它的优点是,它可以与Oracle数据库和Oracle平台的其他部分(如Single Sign-On(单一登录)和Enterprise Manager(企业管理器))紧密集成,对国际化的广泛支持,以及创建以数据为中心应用程序的极高效率。 开始选择和使用RIA技术 这里只讨论了可用于创建RIA的技术中的一些有代表性的例子,还有很多其他的技术。当选择一项RIA技术的时候,你需要权衡以下几个因素: 开放源产品与商品化产品进行对比; 成熟的功能与最新的特性进行对比; 轻量级的功能特性范围与UI的丰富性进行对比; 以媒体为中心的应用程序与以数据为中心的应用程序进行对比; 无论你选用哪种技术,我都可以提供最好的创建RIA应用程序的实践经验: 在后台线程获取数据。对于一个富客户应用程序所期望的性能是很高的,如果该应用程序在从一个Web服务收集数据的时候出现暂停,则将被看作是无反应的。 保持客户端与远程数据的同步。由于不再经常刷新页面,所以如果有可能,将数据的变化以异步的方式推送到客户端是非常重要的。 雇佣一个图形艺术家,或者至少一个好的UI设计人员。当然,伴随着创建具有可视化的有趣功能的UI的能力,它也带来了将事情搞混乱的机会。 请给我发邮件,让我了解在你们的组织内部是如何计划使用RIA的,并且一定要经常查看devtrends.oracle.com 站点以获取补充的资源。 论传统B/S之不足 过程复杂性 规模复杂性 反馈复杂性 真正的RIA 为了解决如今的问题,理想中的Web应用程序应该能够: 客户机在RIA内的作用不仅是展示页面,它可以在幕后与用户请求异步地进行计算、递送和检索数据、重新画出屏幕的一部分和密切综合使用声音和图像,这一切都可以在不依靠客户机连接的服务器或后端的情况下进行。 RIA提供一个强劲的技术平台,使客户机的能力复原到差不多与桌面型计算机软件应用或传统的C/S系统中的客户机能力相似。它适合传统的N层开发过程,同时也能够和遗旧的环境集成以延展现有的应用程序而无需进行修改。它也可以作为基础网络服务的互动表现层,允许用户在线和离线工作。RIA有能力解决各种复杂性,使需要复杂性的应用得以开发并且减少开发成本,同时在很多时候这类应用之所以能够成形主要是拜RIA所赐。 RIA方案—基于Flash的Flex Flex简介 Flex应用程序与传统的HTML应用程序的主要区别在于Flex应用程序处理最适合在客户端运行,如字段校验、数据格式、分类、过滤、工具提示、合成视频、行为及效果等。Flex 可使开发人员更好地交付应用程序,这种应用程序使用户可以迅速反应、在不同状态与显示间流畅过渡,并提供毫无中断的连续的工作流。 这里重点介绍一下MXML。与HTML一样,都是标记语言,它描述了反映内容与功能的用户界面。与HTML不同的是,MXML 可对表示层逻辑与用户界面和服务器端数据绑定提供声明抽象。MXML可将表示与业务逻辑的问题彻底分开,以实现最大程度地提高开发人员的生产率及应用程序的重复使用率。 Flex的不足 例如,Flex自带的ZipCodeValidator,里面只提供了美国和加拿大的邮编规则,没有其他选择,也无法个性化它。看来只有自己来定义Validator了,但这样一来,和在JS中写正则表达式有什么区别(代码量和JS差不多)?用户需要的是国际化的ZipCodeValidator,这样才能提高工作效率。 一句话概括 RIA方案—基于JS的Bindows Bindows简介
内部大量利用了IE6的技术,没有考虑到非微软平台的浏览器,限制了Bindows的流行。在图表方面,大量采用了VML技术,在IE5,IE5.5这两个版本,VML引擎不是那么的成熟,很多地方的显示不够流畅,会受到带宽和硬件的限制,过分绚丽的图形最终会给用户带来崩溃。“图形方面我是采用VML的,当初太偏执,如果使用SVG来实现可能好许多的,也就是那段日子,我花了非常多的时间去折腾web方面开发。”——有网友这样说。 一句话概括 ? 转载自:http://www.cnblogs.com/ksuifeng/archive/2009/06/03/1495131.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |