• 当前位置:首页>>Web Service>>Web Service>>RIA延续HTML神话
  • RIA延续HTML神话
  • 新一代Web站点的高速崛起,让HTML的脚步略显笨拙。让原有HTML技术在应用的新阶段重新焕发光彩,是RIA(Rich Internet Application,丰富Internet应用)的历史使命。

    除Web站点外,Internet技术已经被广泛应用于建设内部企业应用。然而,与其他桌面应用提供的功能与性能相比,HTML已经变得有些落后。要克服HTML自身的诸多限制,最好的解决途径就是运用RIA技术。

    HTML采用的是典型的文档驱动式架构,虽然它极为成功,但也有明显的弱点。首先,在所有的HTML模型中,大多数用户的活动都会导致页面刷新(即Web服务器的往返操作)。这就必然会产生一个线性的多步骤互动过程,并且会对互动能力造成诸多限制;而从体验和性能的角度看,这比典型桌面应用所提供的体验和应用要差得多,更不可能提供高端图形应用所具备的丰富表现力和创造性。

    RIA技术可以很好地化解这两方面的问题。它可以提供一种更具创造性的平台,支持更富有吸引力的用户体验。它还可以提供类似桌面应用风格的互动模型和性能,同时保留Internet“一次部署、随处使用”式的软件安装模型。

    RIA的选择

    对很多人来说,所谓“丰富的Internet”就是Flash的同义词。不错,Flash的确扮演着重要的角色,但用户选择的余地也很大。附表1所归纳的便是这些主要的选择。

    DHTML

    DHTML,即动态HTML。它是一种由HTML/XHTML、CSS表(层叠样式表单)和JavaScript简单组合后的产物。所有的浏览器都支持DHTML,因此,它可以算是HTML的一种自然扩展,受到了普遍的欢迎。然而,DHTML只能部分解决HTML的问题,它仍然以文档为中心,其最大的弱点在于它在不同的浏览器上是不连贯的。它需要针对浏览器进行专门的编码,因此会提高复杂性,并增加开发和维护成本。

    Macromedia Flash

    Flash在最初设计时只是一种动画工具。但随着时间的推移,它的能力已经得到扩展。今天,Flash的最新版本Version 8已经可以支持非常复杂的动画、视频、音频和通过基于ECMA的ActionScript语言实现的编程能力。

    Flash主要用来提供如下功能:

    ● 在图形方面具有吸引力的产品信息。

    ● 无需刷新页面即可实现实时的信息更新。

    ● 高级工具和向导。

    我们可以利用很多方法来实现Flash对象与其他技术的集成,例如JSP、XML、Java对象、.Net对象或Web服务。

    Java Applet

    Applet是人们提供丰富功能的最早尝试之一。开发人员可以利用Java编写Applet代码,而且能够提供几乎所有编程语言所具备的完整灵活性。不过,在实际应用中,Applet的下载和执行性能较差,在不同操作系统上的执行也很不连贯。因此,虽然Java是最受欢迎的服务器端代码开发平台之一,但它的Applet在实际应用中并不是非常普及。

    ActiveX

    ActiveX是由微软公司推出的,其目标也是为Web页面提供功能丰富的组件。ActiveX组件都是一些很容易安装的微型程序,可以通过Web下载,并且能够运行在浏览器窗口中。然而,出于安全考虑,越来越多的用户都不再愿意将来历不明的程序安装到自己的系统中,这也严重地影响了ActiveX组件的普及程度。



    微软目前正在开发一种全新的用户界面技术,代码为Avalon。这种技术中包含了XAML,这是一种用于编写用户界面的新型描述性编程语言。该技术将文档、媒体和用户界面的处理工具统一在一起,可以提供更为强大的性能和安全保障。

    表示服务器

            

    表示服务器(Presentation Server)是专门为解决HTML的弱点而创造出来的,它提供一种全新的平台,用于创建新一代的互动型网站和应用,而且其应用的复杂性可与桌面应用媲美。同时,它也保留了Web应用部署简便的特性(附表2为市场上表示服务器重要产品列表)。

    表示服务器的特性包括:

    ● 将业务层与表示层明确区分开,只将注意力集中于表示层。

    ● 全面的部署工具,包括集成的开发环境,具备丰富的预构组件集,支持拖放隐喻、WYSIWYG编辑和预览。

    ● 便于与基于标准的J2EE或.Net的Web基础设施集成。

    ● 通过降低网络带宽需求实现较高的性能。

    ● 零安装,应用可以部署在任何一种浏览器中,无须安装任何额外软件。

    ● 支持SSL(加密套接字协议层)模型。

    AJAX

    AJAX是异步JavaScript及XML的缩写,它是DHTML概念的重要扩展。

    它集合了基于XHTML和CSS的表示、基于XML和XSLT的数据处理、使用XMLHttpRequest 的异步数据检索和JavaScript编程。当用户请求某个AJAX页面时,基于JavaScript的AJAX引擎便会首先加载。然后由它来负责页面渲染和与Web服务器的通信,这些操作可以独立完成,因此,页面的加载速度非常快(无需等待所有数据到达后才显示页面),而用户可以立即与页面产生互动。同时,与服务器的异步通信还可以在不刷新页面的情况下实现互动。

    确切地说,AJAX并不是一种产品,而是一种设计模式。不过,基于AJAX的产品已经开始出现。例如,Tibco Software公司已经推出了一种基于AJAX的丰富客户端。而Google Map则称得上是AJAX最成功的实施范例之一。

    RIA的缺陷

    任何技术都可能被错误地使用,RIA也不例外。Flash就是一个典型的例子,虽然Flash的支持群体十分强大,但它也招来了大量的批评。用户的抱怨主要包括:

    ● Flash内容太多,下载缓慢,内容浮夸且非常烦人,因此用户体验很差。虽然在许多网站上情况确实如此,但这并不是Flash技术的问题,而是因为创作时选择的设计方向不正确,并最终导致了这样的结果。

    ● Flash代码难以维护;它并没有遵循开放高质量软件的最佳惯例。这在许多Flash对象身上确实是不争的事实。然而,无论采用哪种语言编写的代码,总会有人报以这样的看法。必须承认,Flash中并不存在致命问题,开发人员仍可以非常方便地编写结构良好、模块化、可复用的代码。

    ● 无法对Flash对象进行搜索或运行Web分析。要想将那些专门为HTML网站设计的工具集成到Flash中,过程将是相当困难的。但大多数工具厂商都在逐步增加和改善对Flash的支持,因此前景依然是光明的。

    其实,Flash面临的最大挑战还是在人才基础方面。完美的Flash开发人员应当具备卓越的创造灵感和严格的编程纪律,但要找到同时具备这两种特质的人非常困难。

    但无论如何,对于那些在数据和功能方面都比较丰富的应用和图像密集型应用而言,RIA是非常有价值的技术。这些技术成功地将桌面和Web精华集于一身,因此,在设计Web站点和应用时,我们应当认真地考虑各类RIA技术的优势和潜力。在很多情况下,这些技术将会为您提供最合适的用户界面。

    附表一 不同种类RIA技术对比
    技术名称  优点  弱点
    DHTML  基于开放标准,且无需插件。 在不同的浏览器、浏览器版本和操作系统上的表现不够连贯;需要专门针对浏览器编写代码;以文档为中心。
    Flash  集成动画、流媒体和数据 ;适用各种浏览器的连贯体验;开发工具的表达方式符合图像设计师的习惯。 需要插件;增加了下载时间;开发工具更适合动画对象的开发,不太适合应用的开发。
    Java Applets 功能丰富;基于开放标准; 安全模型。 性能较差;开发成本较高。
    ActiveX 成熟的技术;高性能;掌握ActiveX技能的人员数量众多; 独立的编程语言。 对平台有依赖性,且以Windows为主;对浏览器有依赖性;组件尺寸较大;安全模式不被认可。
    Flash渲染表示服务器:Macromedia Flex OpenLaszlo 将表示层与业务层分离开来;开发工具的表述方式符合软件工程师的习惯;丰富的组件框架;Flash用户体验。 需要Flash插件;需要将MXML或LZX编译为SWF;需要一种支持的应用服务器。
    Applet渲染表示服务器: Integra AltioLive Nexaweb 将表示层与业务层分离开来;基于Applet的渲染引擎较小;高性能

    内部应用的理想工具。
    需要JVM;基于Applet;厂商市场份额较小。
    AJAX 基于开放标准;异步体验;无需插件;市场的认知程度正在逐步提高。 在不同的浏览器、浏览器版本和操作系统上表现不够连贯;支持程度有限;仍然处于应用
  • 上一篇:采用AJAX提高网站程序的带宽性能
    下一篇:Ajax设计模式之Lightbox