位置:海鸟网 > IT > JavaScript >

JAVA程序员应当如何来选择RIA的开发环境

     随着互联网的快速发展,人们对网络应用的兴趣逐步在提高,迫切需要能够构造一个“富客户端”:能够用HTML能实现的接口更加健壮、反应更加灵敏和更具有令人感兴趣的可视化特性,而且能够在互联网上以一种象使用Web一样简单的方式来部署富客户端程序,而且能够随着系统的升级而享用更多便捷的高效的体验。


     而这,是一个趋势,不久的将来必定要成为主流。

      当前,基于HTML的应用程序之所以变得流行是由于应用系统的部署成本低、结构简单,且HTML易于学习和使用。很多用户和开发人员都乐于放弃由桌面计算机带来的用户界面改进,来实现对新数据和应用系统的快速访问。与丧失一些重要的UI功能相比,基于Web的方式所带来的好处要更大得多。


      但是,随着用户需求的提升,在某些互联网应用方面,复杂的应用可能需要多次提取网页来完成一个事务处理。这往往会导致交互响应速度慢,让人无法接受。甚至有可能需要多次操作才能得到用户最终结果。之所以如此,用户对交互体验的需求上升才导致AJAX(Asynchronous JavaScript And XML)的迅速流行。但JavaScript脚本引擎的脆弱性必将注定这只是RIA的一个中间过渡方式。


     在一个典型的RIA应用体系结构(如下图)中,XML通常被用作数据传输的格式,有时也被用来描述窗体的布局。客户端可以保持与数据源的连接,这样服务器能够实时地对客户端数据进行更新。


     用于富客户端(RIA)的常用技术有:

    1.JavaScript/Ajax

    2.JAVA(这里指的是Applet或者是Java的应用程序)

    3.Flash/Flex

    4.XUL,等等。


    而我们该如何选择RIA开发环境呢?


      而基于以上开发技术实现RIA的应用的解决方案有上百种之多,通常情况下我们很容易失去重点并判定错误。


    Marc Domenig 给出了他的答案(Rich Internet Applications and AJAX - Selecting the best product)。


      如下是他对选择RIA还是Ajax的判定图。


    首先需要对自己将要开发的项目回答几个问题,这样才能做出正确的选择。


     1)您将开发的项目是简单的用户界面需求?

    如果您回答是,那没有选择,HTML将是最快捷便利的手段。简单的HTML也能够完成绝大多数用户的交互需求。 


    但如果想提供用户UI体验,您需要考虑下如下RIA技术特性:

     局部屏幕更新;

    异步通讯;

    服务器端推送数据;

    支持直接操作的部件;

    多窗口应用;

     模式对话框;

    菜单;

    键盘导航,等等。

     RIA在Web应用体系结构中提供富客户端操作体验,其目标是整合桌面客户端和WEB应用程序的优势,而常用的开发技术就是如上提到的Java,JavaScript,Flash/Flex。该如何选择呢?这就需要您回答第二个问题了。


     2)全面应用性?工业级应用?还是漂亮人性化的用户操作体验?

     AJAX既不是一个产品也不是一项新技术,但它确实是RIA体系中的一个新的分支。它是基于JavaScript,XML和其他技术的一项整合操作。

    是否采用Ajax需要考虑如下几个问题:

    是否需要面对市场上繁乱复杂的浏览器和操作系统;

    AJAX所封装和支持的UI组件是否能够满足您的系统需求;

    对系统操作的健壮性需求;(如果是高要求,不建议使用)。


     如果您开发的系统需要的是工业级应用需求,Marc Domenig 的答案是采用Java。


    如果您开发的系统更需要漂亮人性化的用户操作体验,Marc Domenig 建议采用Flash。


    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的优点在于它可以很容易的用来创建复杂的动画式显示,以及可以使用第三方控件。 


    而对于JAVA程序员来说,可以把所有的有关企业级的应用,包括数据库操作,消息中间件,事务处理等都交给JavaEE去完成。RIA只是用于提高用户体验,提高可操作性的一种方式。我们可以根据开发系统的用户需求去做正确的选择。