`

什么是RIA技术,RIA技术概览

阅读更多

互联网已经日益成为应用程序开发的默认平台,传统的Web应用程序(Web Application)是基于HTML页面、服务器端数据传递的模式。而HTML是适合于文本的,随着Web应用程序复杂性越来越高,传统的Web应用 程序已经渐渐不能满足Web浏览者更高的、全方位的体验要求了,这就是被Macromedia公司称之为的"体验问题"("Experience Matters")。此时一种被称为Rich Internet Application(简称RIA,中文翻译作"丰富互联网应用程序")的具高度互动性和丰富用户体验的网络应用程序出现了。Macromedia公司 也借此机会开发了相关的技术和开发工具,促进RIA的开发和普及。

1. RIA的产生背景
企业级应用程序经历了几次系统架构方面的重要转变,在此过程中,客户端的表现能力有起有落。图1显示了Rich Internet Application的发展过程:

图1.Rich Internet Application的发展(摘自Macromedia Flex:创建企业Rich Internet
Application 的表示层解决方案)

  • 基于主机的应用程序:应用程序提供基于文本的非图形化用户界面,只有内部人员才能进行访问。
  • 客 户机/服务器(Client/Server,简称C/S)应用程序:二十世纪九十年代随着Windows的出现和客户端处理能力的增强,出现了客户机/服 务器应用程序,它们采用图形用户界面,客户端的数据处理能力比较强。但由于客户端应用程序需要进行不断的更新,因此部署成本比较高,只能为少数人所使用。
  • 浏 览器/服务器(Browser/Server,简称B/S)应用程序:九十年代中期,互联网飞速发展,出现了浏览器/服务器应用程序,Web的广泛使用解 决了C/S应用程序部署、和更新的困难。但由于采用了HTML页面形式的用户界面,客户端的数据处理能力较C/S应用程序有所回落。


C/S架构的缺点主要是部署、更新的问题。B/S架构的缺点主要是受制于HTML的限制,无法像C/S那样使用丰富的效果来展示数据,用户体验比较糟糕。 另外,稳定的客户端/服务器连接,也是必要条件,网络中断将使B/S程序无法运行。从C/S到B/S,这两者受限于技术本身分别发展成了重客户端和重服务 器端的模式,而RIA的出现给我们带来重新在客户端和服务器端进行更好的平衡的机会。

2. 什么是RIA
RIA 是集桌面应用程序的最佳用户界面功能与Web应用程序的普遍采用和快速、低成本布署以及互动多媒体通信的实时快捷于一体的新一代网络应用程序。RIA中的 Rich Client(丰富客户端)提供可承载已编译客户端应用程序(以文件形式,用HTTP传递)的运行环境,客户端应用程序使用异步客户/服务器架构连接现有 的后端应用服务器,这是一种安全、可升级、具有良好适应性的新的面向服务模型,这种模型由采用的Web服务所驱动。结合了声音、视频和实时对话的综合通信 技术使RIA具有前所未有的网上用户体验。
下图就是RIA的应用程序模型:

图2.RIA的应用程序模型

3. RIA的优势
RIA 具有的桌面应用程序的特点包括:在消息确认和格式编排方面提供互动用户界面;在无刷新页面之下提供快捷的界面响应时间;提供通用的用户界面特性如拖放式 (drag and drop)以及在线和离线操作能力。RIA具有的Web应用程序的特点包括如:立即布署、跨平台、采用逐步下载来检索内容和数据以及可以充分利用被广泛采 纳的互联网标准。RIA具有通信的特点则包括实时互动的声音和图像。

客户机在RIA中的作用不仅是展示页面,它可以在幕后与用户请求异步地进行计算、传送和检索数据、显示集成的用户界面和综合使用声音和图像,这一切都可以在不依靠客户机连接的服务器或后端的情况下进行。

对于企业来说,部署RIA的好处在于:
1)RIA可以继续使用现有的应用程序模型(包括J2EE和.NET),因而无需大规模替换现有的Web应用程序。通过Rich Client技术,可以轻松构建更为直观、易于使用、反应更迅速并且可以脱机使用的应用程序。

2)RIA可以帮助企业提供多元化的重要业务效益,包括产提高销量、提高品牌忠诚度、延长网站逗留时间、较频繁的重复访问、减少带宽成本、减少支持求助以及增强客户关系等。

4. RIA目前的发展态势
在过去的两到三年中,Web开发人员一直是想构建一种比传统HTML更丰富的客户端:这是一个用户接口,它比用HTML能实现的接口更加健壮、反应更加灵 敏和更具有令人感兴趣的可视化特性。RIA技术的出现允许我们在因特网上以一种像使用Web一样简单的方式来部署富客户端程序。无论将来RIA是否能够如 人们所猜测的那样完全代替HTML应用系统,对于那些采用C/S架构的胖客户端技术运行复杂应用系统的机构和采用基于B/S架构的瘦客户端技术部署Web 应用系统地机构来说,RIA确实提供了一种廉价的选择。下面介绍一下目前出现的几种比较有实力或者有特点的RIA客户端开发技术:

1) ADOBE Flash/Flex/AIR
Flash 从6.0开始Flash就逐步具备建立窗体风格的应用程序的功能。据Macromedia称已经有98%以上的桌面系统的浏览器都安装了 Macromedia Flash Player。这使得以Macromedia Flash Player为客户端的RIA可以支持种类广泛的平台和设备。
Flex是为满足希望开发 RIA的企业级程序员的需求而推出的表示服务器和应用程序框架,它可以运行于J2EE和.NET平台。Flex表示服务器提供基于标准的、声明性的编程方 法和流程,并提供运行时服务,用于开发和部署丰富客户端应用程序的表示层。Flex开发者使用直观的基于XML的MXML来定义丰富的用户界面。该语言由 Flex服务器翻译成SWF格式的客户端应用程序,在Flash Player中运行。

2) Laszlo
Laszlo 是一个开源的RIA开发环境。使用Laszlo平台时,开发者只需编写名为LZX的描述语言(其中整合了XML和Javascript),运行在J2EE 应用服务器上的Laszlo平台会将其编译成SWF格式的文件并传输给客户端展示。从这点上来说,Laszlo的本质和Flex是一样的。Flash是任 何浏览器都支持的展示形式,从而一举解决了浏览器之间的移植问题。而且,在未来的计划中,Laszlo还可以将LZX编译成Java或.NET本地代码, 从而大大提高运行效率。

3) Avalon
Microsoft的Avalon是下一版本的 Windows(代号"Longhorn")的一部分,是一个图形和展示引擎,主要由新加到.NET框架中的一组类集合而成。Avalon定义了一个在 Longhorn中使用的新标记语言,其代号为"XAML"(可扩展应用程序标记语言)。可以使用XAML来定义文本、图像和控件的布局,程序代码可以直 接嵌入到XAML中,也可以将它保留在一个单独的文件内。这与Flex中的MXML或者Laszlo中的LZX非常相似。不同的是:基于 Avalon的应用程序必须运行在Longhorn环境中,而Flex和Laszlo是不依赖于平台的,仅仅需要装有Flash播放器的浏览器即可。

4) Java SWT
Java 已经出现几年了,并且完全支持创建基于窗体的用户界面。除了Java基础类(JFC/Swing)中的用户界面组件之外,开发人员还可以使用来自于 Eclipse Project的SWT工具箱和许多第三方工具箱进行开发。对于图形来说,可以采用Java 2D API:一个非常完整且非常复杂的图形API。你可以通过一个Web浏览器使用Java插件软件,或使用Java运行时环境中较新的Java Web Start技术来部署应用程序。使用Java建立Rich Client的主要缺陷是它的复杂性(即使对简单的窗体和图形也要求编写非常烦琐的代码)和Java浏览器插件的低市场占有率。

5) XUL
XUL (念作"zool")是一种基于XML的用户界面语言,它来自于Mozilla的开放源码项目。它可用于建立窗体应用程序,这些应用程序不但可以在 Mozilla浏览器上运行,而且也可以运行在其他描述引擎上,如Zulu(一个Flash MX组件)和Thinleys(一个Java实现)。XUL描述引擎都非常小(100K以下),它可以使用XML数据也可以生成XML数据。XUL的一个 主要缺点在于它目前还没有获得一个主要商业实体的支持。XUL最大的优点在于它与Gecko引擎的集成(打开了通向大量Web标准的大门),以及与大多数 其它XML用户界面描述语言相比它是一种非常具有表达力和简洁的语言。

6) Bindows
Bindow 是用Javascript和DHTML开发的Web窗体框架。Javascript用于客户端界面的显示和处理,XMLHTTP用于客户端与服务器的信息 传输。Javascript在客户端的表现力不容置疑,利用Javascript几乎可以实现Windows应用程序所能干的大部分事情,XMLHTTP 一直以来常被用于实现"无刷新"的Web页面,它和 Javascript配合,可以完成数据从服务器和客户端的传输。Bindows的一个主要的缺点是它采用一次全部载入的方式来实现脚本库,在窗口的加载 期,需要一个漫长的等待过程,甚至浏览器的进程会产生无响应的情况。这点Bindows根本没有遵循"用多少去多少"的准则。另外,内部大量利用了IE6 的技术,没有考虑到非IE的浏览器,限制了Bindows的流行。

5. RIA未来的发展预测
就目前RIA的使用情况来说,离"RIA时代"还有很远的一段距离。今后几年时间内传统的Web应用程序和RIA将会共存。笔者认为真正具有实力担当起普 及丰富客户端应用重任的只有基于Flash Player的Flash/Flex应用程序和Microsoft的基于Avalon的应用程序。短期时间内(估计2-3年时间)可能是 Flash/Flex应用程序在新兴的网络应用程序市场上占有主导地位。随着时间的推移,Flash/Flex应用程序的市场占有率可能会慢慢被基于 Avalon的应用程序所蚕食。当然,Flash Player和Flex以后也会不断推出新版本,相对于升级操作系统或安装Avalon运行环境,人们肯定更愿意升级Flash Player。Flash/Flex应用程序也有其本身固有的软肋,Flash Player的执行效率和对本地资源的操作限制是无法和Avalon相比的,相对于浏览器中的插件而言,Avalon的应用程序拥有更加广阔的可操作空间 和更高的执行效率。

目前Microsoft还在推广一种叫做Smart Client(智能客户端)的客户端程序技术,Microsoft称Smart Client是比Rich Client更优秀的客户端,因而采用Smart Client的应用程序算不算RIA目前我个人还无法作答。这里我们之所以提及Smart Client,是因为Smart Client的特性跟我们谈的Rich Client有太多的相似之处。Smart Client拥有自动更新、离线状态下的数据处理和可以使用本地资源等特征,其中的可使用本地资源这一项无疑是一大卖点,因为浏览器中的 Flash/Flex应用程序目前还无法操作本地的一些资源,比如Flash/Flex应用程序无法将网上的文件保存到本地或者修改本地文件。虽然 Macromedia的Central1.5已经可以对本地文件进行简单的操作,并且flex1.5开发的RIA也能够运行于Central上,但是如何 使Central能够得到大范围推广还是个问题。相对于轻量级的Rich Client,Smart Client更接近C/S架构中的客户端程序。Rich Client和Smart Client的定位还是有所区别的:Rich Client更适合作为轻量级的基于浏览器的网络应用程序客户端;Smart Client更适合作为Windows桌面应用程序的智能客户端。

分享到:
评论

相关推荐

    QCon 2009 beijing全球企业开发大会ppt:5.邵荣-RIA的技术趋势和应用趋势

    #### RIA技术概览 **RIA(Rich Internet Application)**是一种结合了桌面应用和传统Web应用优点的新一代网络应用程序。它通过提供丰富的用户体验、实时数据交互和高性能表现,使得用户能够像操作本地应用程序一样...

    RIA Architecture Pocket Guide

    RIA,即Rich Internet Application,是一种能够提供类似于桌面应用程序用户体验的网络应用程序,它通过利用诸如Ajax、Flash、Silverlight等技术,使得网页应用具有更强大的功能和更丰富的交互性。 **二、RIA架构...

    ArcGIS RIA开发实践【Flex篇】

    #### 背景篇:RIA 技术概览 ##### RIA 技术简介 RIA(Rich Internet Applications,富互联网应用程序)是一种结合了桌面应用程序和传统 Web 应用程序优点的技术。它通过在客户端使用丰富的用户界面来提供更强大的...

    Flex 3 RIA开发详解与精深实践一

    #### RIA及Flex技术概览 **Flex**,作为**RIA(Rich Internet Application)**的一种代表性的开发技术,自诞生以来便以其卓越的网络交互能力和生动的表现效果,引领着企业级应用的发展趋势。与传统Web应用相比,RIA...

    Silverlight3 ria services文档

    RIA 是指利用现代 Web 技术构建的交互式应用程序,它能够提供类似于桌面应用程序的用户体验。Silverlight 作为微软推出的一款跨浏览器、跨平台的框架,旨在为 Web 应用程序带来丰富的多媒体体验和强大的用户界面设计...

    RIA_Architecture_Pocket_Guide.pdf

    这份文档属于**应用程序架构袖珍系列**的一部分,它提供了构建RIA应用的关键概念和技术指导。 #### 二、文档内容与结构 文档主要包含了以下几部分: - **封面与版权页**:包括文档的版权声明以及Microsoft公司的...

    Microsoft .NET RIA Services Overview

    **知识点详解:Microsoft .NET RIA Services 概览** 标题:"Microsoft .NET RIA Services Overview" **描述**:"创建Silverlight的数据服务程序,非常适合初学者" Microsoft .NET RIA(Rich Internet ...

    Web测试技术大全

    #### Web技术概览 Web测试是确保Web应用程序质量和用户体验的重要环节,涵盖了从功能验证到性能、安全性的全面评估。本篇文章将深度解析Web测试技术,包括自动化测试、性能测试、安全性测试等关键领域。 #### HTTP...

    微软Teched2008_ WEB201.pdf

    - **Silverlight内容SEO展望:**随着技术的进步,Silverlight等RIA技术在搜索引擎优化领域的应用将更加广泛,有助于提高网站的可见性和用户体验。 #### 三、国双科技公司在RIA广告SEO领域的实践 **1. 国双科技简介...

    SD大会精品讲座:Creating Rich Internet Applications with Adobe Flex and AIR

    #### 一、Adobe Rich Internet Applications (RIA) 技术概览 ##### 1.1 RIA技术的意义 - **定义**:Rich Internet Application(RIA),即富互联网应用,是一种结合了传统桌面应用程序的互动性和响应性以及Web应用...

    北大Java高级技术课程pdf(1)

    《北大Java高级技术课程pdf(1)》是北京大学信息科学技术学院软件研究所提供的专业课程资料,由李戈教授领衔,旨在为新手提供深入学习Java高级技术的机会。本课程不仅覆盖了Java语言的基础,还深入探讨了Java相关的...

    arcgis_api_for_flex入门教程

    ##### RIA技术概览及其优势 **RIA(Rich Internet Application,富互联网应用)**是一种旨在提供类似桌面应用程序用户体验的网络技术。与传统Web应用相比,RIA具有以下显著优势: 1. **表现力丰富**:RIA应用提供...

    FLEX和JAVA,英文原版

    - **Java的角色**:在RIA架构中,Java通常被用作服务器端的技术栈,为RIA提供数据处理、业务逻辑等功能支持。 ### 五、书籍章节概览 尽管未给出具体章节内容,但根据书籍名称及描述可以推测其可能涵盖以下几个方面...

    Flash_ActionScript3殿堂之路 绝对完整清晰版

    - **RIA的第二次革命**: Adobe AIR的出现被视为RIA技术的第二次革命,为开发者提供了更广阔的应用场景和技术可能性。 4. **本书特色与目标** - **面向对象思想**: 本书着重于面向对象思想在ActionScript3中的应用...

Global site tag (gtag.js) - Google Analytics