第1章 谈谈RIA | |
RIA(Rich Internet Applications)的概念近几年逐步深入人心。可以说,RIA已经是软件发展的大势所趋。RIA并不专指某项技术,它是建立在对用户友好程度(即用户体验)认知基础上的对软件的一种期望。理解这个概念并不难,我们只要把握“丰富”、“Web”、“可交互性”这几个关键词,就能透过表象洞察RIA的精髓。 RIA阵营中如今已经包含了多个解决方案,呈现出“百花齐放”的局面,多个厂商(比如微软、Sun)都相继推出针对RIA的产品。然而不得不说的是Adobe,这个传统印刷领域中有着Photoshop等强势产品的巨人在接收Macromedia之后,依托Flash Player这个平台,迅速地在RIA领域取得先机。Flash和Flex的知名度已经很高了,而本书将为大家着重介绍的乃是它的另外一个平台级的产品——AIR。AIR是一个允许使用现有的Web技术来完成桌面应用的RIA平台。本章将从RIA谈起,介绍其概要并详细地阐述AIR的产生背景。 本章也将简单地介绍一下“用户体验”的概念,这个概念并不复杂,但读者是否已经将它贯穿到了自己的产品中呢?通过阅读本章,希望可以从理念上给予读者一些启迪。 | 关键词 ⏹RIA体验 ⏹RIA的优势 ⏹RIA中的AIR |
1.1 了解RIA
在书的开始部分,我们有必要先介绍一下RIA的概念。或许你已经是RIA开发领域的老手,对RIA概念耳熟能详了,那么,温习一下也未必是件坏事。
RIA,即Rich Internet Applications,可译为“富互联网应用程序”(在Adobe的一些宣传文件中,也称之为Rich Interactive Applications,即“富交互式应用程序”),简而言之,RIA并不专指某项技术,也不像Java、C#是一门语言,它是一种软件开发的趋势(见图1.1),是建立在对用户友好程度(用户体验)认知基础上的对软件的一种期望。
图1.1 RIA的发展历程
理解这个概念并不难,只要把握“丰富”、“Web”、“可交互性”这几个关键词,就能透过表象,洞察RIA的精髓。
如前所述,RIA本身只是一个概念,这个概念的提出,也是基于更深层面的一个词——体验。何谓体验?简单地说,就是用户使用软件的直观感受。Adobe官方这样诠释RIA在体验方面的定义——“富互联网应用程序(RIA)提供丰富的、引人入胜的体验, 该体验可提高用户满意度并提高用户的生产效率。使用互联网的广泛触及力,可以在各种浏览器、桌面和设备上部署RIA”。就是说,“好的体验”是目的,“符合RIA”是核心概念,开发RIA则需要选择最适合的技术。当你可以做到脱离技术层面去看RIA时,也就看清楚了RIA的实质。
说到这里,可能性急的读者已经按捺不住了。既然RIA这么好,那么RIA可以为我们带来哪些优势呢?具体说来有下列优势:
⏹RIA将指导我们开发更丰富、互动、友好的用户界面,提高客户满意度和粘滞度。
⏹RIA可以继续使用现有的应用程序模型(包括J2EE和.NET),因而无需大规模替换现有的Web应用程序。通过Rich Client技术,可以轻松地构建更为直观、易用、反应迅速并可以脱机使用的应用程序。
⏹RIA可以帮助企业提供多元化的重要业务效益,包括提高产销量、提高品牌忠诚度、延长网站逗留时间、获得较频繁的重复访问、减少带宽成本、减少支持求助以及增强客户关系等。
⏹RIA技术的出现,允许我们在因特网上像使用Web一样以简单的方式来部署富客户端程序。无论将来RIA是否能够如人们所猜测的那样完全代替HTML应用系统,对于那些采用C/S架构的胖客户端技术运行复杂应用系统的机构和采用基于B/S架构的瘦客户端技术部署Web应用的机构来说,RIA确实提供了一种廉价的选择。
怎样才算符合RIA?一般说来,一个典型的RIA(见图1.2)应该包含以下技术特性:
⏹在消息确认和格式编排方面提供互动用户界面。
flex软件⏹在无刷新页面的情况下提供快捷的界面响应时间。
⏹提供通用的用户界面特性,如拖放(Drag and Drop)以及在线和离线操作能力。
⏹立即部署、跨平台、采用逐步下载来检索内容和数据以及可以充分地利用被广泛采纳的互联网标准。
⏹RIA的通信特点包括实时互动的声音和图像。
图1.2 一个典型的RIA应用
1.2 RIA的主流技术
刚才已经说过,RIA是一种必然的趋势,在这种趋势下,各大软件开发厂商或开发阵营都推出了针对RIA的解决方案(见图1.3)。其中,在这方面最有实力和发言权的,当属Adobe公司。在并购Macromedia之后,可以说Adobe已经成为RIA领域的领头羊。当然其他厂商或组织的解决方案也不容小觑。
图1.3 RIA的主流技术
归结起来,现在用得比较多的技术可以列举如下。
1. Adobe Flash/Flex
Flash从6.0开始,就逐步具备建立窗体风格的应用程序的功能。根据Adobe的统计,如今已经有98%以上的桌面系统的浏览器都安装了Adobe Flash Player。这使得以Adobe Flash Player为客户端的RIA可以支持种类广泛的平台和设备。
Flex是为满足希望开发RIA的企业级程序员的需求而推出的应用程序框架,它可以运行于J2EE和.NET平台。Flex提供基于标准的、声明性的编程方法和流程,并提供运行时服务,用于开发和部署富客户端应用程序的表示层。Flex开发者使用直观的基于XML的MXML来定义丰富的用户界面。Flex编译为SWF格式的客户端应用程序,在Flash Player中运行。
2. Adobe AIR
Adobe AIR运行时使开发人员能够使用已经过验证的Web技术来构建可部署到桌面并跨操
作系统运行的富互联网应用程序。AIR是Adobe推出的具有创新性的应用,它的出现将弥补Web与桌面的鸿沟。AIR能使开发者在熟悉的环境下工作,利用开发者感觉最舒适的工具,通过支持Flash、Flex、HTML、JavaScript和Ajax,去建立接近需要的尽可能好的体验。
关于AIR,我们会在后面的章节中做详细的阐述,这里读者可以先有一个概念。
3. OpenLaszlo
OpenLaszlo是一个开源的RIA开发环境。使用Laszlo平台时,开发者只需编写名为LZX的描述语言(其中整合了XML和JavaScript),运行在J2EE 应用服务器上的Laszlo平台会将其编译成SWF格式的文件并传输给客户端展示。从这点上来说,Laszlo的本质和Flex是一样的。Flash是任何浏览器都支持的展示形式,从而一举解决了浏览器之间的移植问题。而且,在未来的计划中,Laszlo还可以将LZX编译成Java或.NET本地代码,从而大大提高运行效率。
4. Silverlight
微软Silverlight是一个跨浏览器、跨客户平台的技术,能够设计、开发和发布有多媒体体验
与富交互(Rich Interface Application,RIA)的网络交互程序。因为Silverlight提供了一个强大的平台,能够开发出具有专业图形、音频和视频的Web应用程序,增强了用户体验,所以Silverlight吸引了设计人员和开发人员的眼球。同时,Silverlight还提供了强大的工具来提高他们的工作效率。Silverlight能创建一种具有很高艺术性的应用程序,可以使用已经具有的技能和熟悉的工具来创建基于Silverlight的应用程序,在Web页面中,既可以使用HTML,也可以使用Silverlight的WPF元素。和HTML一样,在Web应用程序中XAML同样可以使用声明的标记来创建用户界面,不同的是,XAML提供了更强大的元素。
Silverlight的核心是浏览器增强模块,其作用是呈现XAML并在浏览器界面上绘制生成的图形。它的下载体积较小(不到2MB),可以在用户点击包含Silverlight内容的站点时进行安装。该模块向JavaScript开发人员公开XAML页面的底层框架,以便实现页面级的内容交互,这样,开发人员就可以进行自己的工作,例如编写事件处理程序或使用JavaScript代码来处理XAML页面的内容。
Silverlight将会更加灵活和具有交互性,并且具有高超的矢量方式,可以对图像进行无限制的伸缩,这些都对Flash的地位发起了挑战。
5. Java SWT
Java已经出现若干年了,并且完全支持创建基于窗体的用户界面。除了Java基础类(JFC/Swing)中的用户界面组件之外,开发人员还可以使用来自于Eclipse Project的SWT工具箱和许多第三方工具箱进行开发。对于图形来说,可以采用Java 2D API,这是一个非常完整且非常复杂的图形API。你可以通过一个Web浏览器使用Java插件,或使用Java运行时环境中较新的Java Web Start技术来部署应用程序。
使用Java建立Rich Client的主要缺陷是它的复杂性(即使对简单的窗体和图形也要求编写非常繁琐的代码),以及Java浏览器插件的低市场占有率。
6. XUL
XUL (读作“zool”)是一种基于XML的用户界面语言,它来自于Mozilla的开放源码项目,可用于建立窗体应用程序,这些应用程序不但可以在Mozilla浏览器上运行,而且也可以运行在其他描述引擎上,如Zulu(一个Flash MX组件)和Thinleys(一个Java实现)。XUL描述引擎都非常小(100KB以下),它既可以使用XML数据也可以生成XML数据。XUL的一个主要缺点
在于它目前还没有获得一个主要商业实体的支持。XUL最大的优点在于它与Gecko引擎的集成(打开了通向大量Web标准的大门),以及与大多数其他XML用户界面描述语言相比,它是一种非常具有表达力的、简洁的语言。
7. Bindows
Bindows是用JavaScript和DHTML开发的Web窗体框架。JavaScript用于客户端界面的显示和处理,XMLHTTP用于客户端与服务器的信息传输。
JavaScript在客户端的表现力不容置疑,利用JavaScript几乎可以实现Windows应用程序所能干的大部分事情,XMLHTTP一直以来常被用于实现“无刷新”的Web页面,它与JavaScript配合,可以完成数据从服务器和客户端的传输。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论