RIA平台:主流的解决方案(重点翻译)

来源:互联网 发布:php分割中文字符串 编辑:程序博客网 时间:2024/05/21 04:43

 

原始文献

Rich Internet Applications with Adobe Flex & Java

页码号

4-6

翻译者

刘锦行(whizen)

翻译时间

2008-5-1

修订记录

 

 

 

RIA平台:主流的解决方案(重点翻译)

构建RIA的方案不会只有一种,我们早先也提到过,RIA也可以运行到不同内核的浏览器上.

 

如下所说,这里有一些流行的产品和技术:

 

使用FLEX技术来构建一个ACTIONSCRIPT程序,这样的程序能够运行在普及率极高的FLASH PLAYER,这是一种性能很高的虚拟机,它的作用是解释SWF格式的字节码文件(相当的快速).这个播放器使用即时编译器将SWF字节码以很快的速度解释成本地代码.这个编译器是2006年发布的FLEX2的特性,所以在2004年发布的FLEX的早先版本里面并不支持JIT编译模式.

 

一个JAVA程序员能够编写JAVA APPLETS程序.曾经说过,这种解决方案出现在1995.

WPF2006年公布的.NET 3.0的一部分也可以用来编写既是互联网程序又是桌面程序的系统.

 

最后,还有AJAXaka DHTML,大约发布在1998.这个解决方案促进了主流浏览器对XMLHTTPRequest的支持.AJAX被用户社区和开发者社区大量使用.这通常是将老旧的页面转向RIA的第一步,虽然通常都伴随着浏览器的兼容问题和糟糕的软件架构之类严重的问题.

 

ADOBE FLEX 2

FLEX 2应用程序通过一个被大量普及的叫做flash player的轻量级虚拟机在不同的平台上运行,这些平台是:

一个基于XML语言的一种叫做MXML的语言,这个用来设计师们描述系统的GUI组件.

一种标准的面向对象语言,基于最新的ECMAScriptActionScript 3.0

服务器端集成的FDS给予了客户端程序访问J2EE的透明性.

大量的图形组件,用来进行多媒体的控制

一个基于ECLIPSE的全功能的IDE,可以进行自动的部署,调试和测试.

 

Flex 2平台是一个容易扩展的,而且能够很好的跟服务器端的java coldfusion php ruby asp等结合的很好.而其即将发布的adobe apollo将运行构造基于flash player flex PDF HTML的桌面应用程序.

 

SWF文件格式是开源的,所有有些第三方软件也能构造能够通过flash player运行的RIA,比如Laszlo SystemsOpen Laszlo.

 

与完全版本不同的是,flex 2也能够通过一个不用付任何许可费用就可以构造RIA程序,你能够免费使你的享受到一下功能:

MXML:一个基于XML的声明式编程语言,用来构造GUI

ActionScript 3.0:一个类似JAVA的面向对象语言

Flash player 9:一个系统资源消耗很小的虚拟机,浏览器可以调用他来运行你的预编译字节码.

编译器和调试器的命令行工具

Flex框架:包含一个重新设计优化过的GUI组件库:按钮,buttons,tab folders,data grids.tree controls,一些动画特效等等

Flex数据服务的快捷方式:一个使用J2EE服务器和ActionScript客户端程序通讯的应用程序模板.这个FDS模板只能用于一个CPU,而且也不是一个能够支持高稳定性的配置.

 

下面的Flex工具需要获得许可证:

Flex Builder 基于EclipseIDE

图表组件

能够支持24*7FDS组件,支持100个用户并发

FDS企业版,无限制并发数量

 

下面来看如何来创建一个简单的Flex 2应用程序:

1,使用MXML组件来设计应用程序界面,例如添加一个按钮.

<mx:Button label = “Place Order” click = “processOrder(event)”>

如果你使用的是Flex Builder IDE,那么可以直接拖出这个控件.当然,你也可以手动的写代码.

 

2为每个功能编写ActionScript代码,如下:

Private function processOrder (event:Event:void{

业务逻辑代码

}

 

3编译这段代码.Flex complier会自动的将MXML转换为ActionScript并且输出能能够在Flash Player 9或其以上版本上运行的字节码SWF文件.

 

4,发布这个SWF文件,或者将其嵌入服务器上的HTML页面里面.使用Flex Builder IDE的话这些过程都会被无缝的透明的完成,你不用操心.

 

下面这个网站是一个在线的Flex编译器,他能让你在线上写Flex代码而不用安装任何软件.这个网站上也包含一些小的代码段供修改和使用.网址如下:

http://try.flex.org

 

更加复杂的Flex应用程序能够和服务器端通过FDS进行互动.FDS能够对服务器端的Java对象和Java EE组件进行远端访问.和更广泛的消息机制(集成JMS),同步的持久数据或者和其他的持久技术进行整合

 

图像 1.1 Flash PlayerFlex数据服务

 

Java

虽然JAVA是因为他的applets和其著名的”dancing duke”程序而流行起来的,但是编写applets已经不是JAVA的主要用途了.主要的原因是:其虚拟机所需资源过多(需要16MB内存)并且还有诸多不好的地方.比如:Java Swing是一个与平台无关的外观绘制机制,虽然比较漂亮当是与当前平台格格不入的GUI界面难以符合公众的要求.值得庆幸的是FlashFlex的编写者们在更加赏心悦目的组件上下了足够的功夫,这些组件甚至包括音频和视频的控制组件.如今人们已经开始大规模的使用这些音频和视频组件用来控制在WEB页面上的流媒体了.相对来说JAVA的多媒体API却显得简陋的多.

 

人们在减小JVM的体积以便让其能够运行在WEB浏览器上做了很多努力,并且得到的成果是一个能够运行基本的HELLO WORLD applet的大小仅3MBJava浏览器版本.但是这仍然不能和包含2套虚拟机大小只有1.2MBFlash player比较,况且这种Flash Player能够运行各种复杂程度的RIA程序.

 

同时,诸多事实告诉我们applet不能为不同版本的applet无缝透明的下载对于版本的JVM,Flash Player却能够完美的完成任务.

 

我们不得不说,必须感谢JAVA Swing在构建应用程序GUI方面是一个成熟而健壮的技术,不论是在网页上传递还是安装到桌面上面.他能满足你的所有需要.虽然你不需要为许可证付任何费用,但是你的开发周期通常会很长并且需要雇佣相当有经验的程序员,同时企业应用级别的Swing工程无论是构造还是维护的成本都比较高.

原创粉丝点击