日期:2023-01-24 阅读量:0次 所属栏目:应用电子技术
摘 要:介绍了RIA 的前因后果,阐述了Flex的工作流程,给出了利用LCDS集成Flex和Java EE的RIA应用系统设计方案,实践证明,方案是可行的,高效的,最后展望了基于Flex的RIA应用系统的光明前景。
关键词:RIA;Flex;LCDS;Java EE
1 RIA前因后果
RIA(Rich Internet Application,富因特网应用程序)技术是对目前B/S(Browser/Server,浏览器/服务器)架构的反思和对C/S(Client/Server,客户端/服务器)架构回归要求的背景下产生的。它既有B/S架构的“零部署”、跨平台的好处,又有C/S架构中功能强大、表现力丰富的优势。
原Macromedia公司(已于2005年4月被Adobe公司并购)在2002年率先提出RIA的概念。其实大致说来,企业系统架构经历了基于主机模式→C/S模式→B/S模式→RIA模式的几次重要转变,如图1所示。
RIA阵营中如今已经包含了多种解决方案,呈现出“百花齐放”的局面。目前比较流行的RIA技术有:JavaScript/Ajax、Flash/Flex、Microsoft Silverlight、SUN JavaFX等。
2 Flex技术介绍
Flex由原Macromedia公司于2004年3月发布,基于Flash技术,涵盖了支持RIA的开发和部署的一系列技术的组合。Flex历经1.0、1.5、2.0以及3.0的版本的升级过程,目前已成为当前众多RIA技术中最具竞争力的完整的解决方案。
一个Flex应用程序通常包含以下几种元素。
① Flex Framework:包含负责布局规划的容器;负责与用户进行交互的控件;数据的交互与绑定;事件驱动的开发模式等。Flex Framework被包含在公用组件库(SWC)文件中。
② MXML:用来定义用户界面,是基于XML的一种实现。每个Flex应用程序至少包含有一个MXML文件,它被作为该程序的主文件。
③ ActionScript:一般简称AS,用来定义客户逻辑和程序控制,是基于 ECMAScript的一种实现。可以将AS作为一个脚本块,在MXML文件中直接进行添加,或者创建一个单独的AS文件,然后将它们导入到MXML文件中。
④外部资源:如数据、图形资源、CSS样式表等。外部资源可以在编译时嵌入到SWF文件中,也可以在运行时动态地加载。
通常情况下,MXML文件首先被编译为AS文件,然后Flex需要将编译出的AS文件和其他的AS类共同生成为一个完整的SWF文件。接下来,如果生成了外包装的文件,就需要在HTML中运行此SWF文件;如果不生成外包装文件,可以直接在Flash Player上读入此文件。这个过程如图2所示。
3 实施方案设计
Flex的目标是让开发者能更快更简单的开发RIA应用,它在多层开发模型中属于表现层技术。通常情况下,Flex可以通过使用LiveCycle Data Service(生命周期数据服务企业套件,简称LCDS)等中间件来提高现有应用系统的效率,可以将基于Flex的用户界面与现有的业务逻辑组件或Web服务器进行连接,而不需要做其它如何改动。如图3所示。
图3 传统的Web应用与基于Flex的Web应用
从Java程序员的角度来看,Flex也可以看成是为Java EE应用程序提供的一个展现服务器,主要用来和Java EE环境下进行整合的一个开发包。其实Flex连接Java EE的技术有很多种,比如:HTTPService、WebService、BlazeDS/LCDS、Graniteds、Flamingo、Fiji、Fxstruts等,但以LCDS堪称经典。
LCDS是Adobe官方提供的一个Java EE应用程序组件,准确地说是一个代理网关,早期叫做FDS(Flex Data Service)。LCDS功能非常丰富,主要表现在Flex与Java的直接交互。
LCDS不是Flex SDK提供的,需要单独下载安装。它有2种版本,一种是收费版本(需要输入序列号),可以用于多CPU;另一种是免费版本(不需要输入序列号),只能使用于单CPU。而BlazeDS是LCDS的简化版本,是免费的、开源的,所以可以根据需要来选择。
图4给出了一个集成了Flex与Java EE的Web应用系统的典型实施方案。应用系统通过Java EE与数据库交互读取数据,然后Flex和Java EE通过LCDS进行交互,把Java EE读取的数据在Flex前端显示出来。
图4 集成Flex与Java EE的Web应用系统
其中AMF是Action Message Format的简称,是Adobe独家开发出来的通信协议,类似与Flash Remoting的二进制协议,使用HTTP方式传输。AMF为Flash Player与网关LCDS提供了一种轻量级的、高效能的通信方式。
4 总结与展望
RIA是将桌面应用程序的交互用户体验与Web 应用部署的灵活性结合起来的网络应用程序,实际上是一种基于Web的C/S架构,可称之为C/S/B架构。RIA 具有反应快、交互性强、传播范围广和易于传播等优点,是网络应用程序的发展方向,显示出广泛的应用前景。
Flex是一种强大而流行的RIA技术,是满足开发RIA的企业级程序员的需求而推出的表示服务器和应用程序框架,可以运行于现有的Java EE或.NET平台上,从表现层来解决用户体验和数据集成的问题。
使用Flex开发后的程序最终编译成swf 文件,目前几乎所有的浏览器上都装有Flash Player,所以不会给用户造成更多的安装和维护成本。Flex利用直观的编程模型,与所选的IDE环境协作,无需改动现有的Web 开发工作流程来开发RIA,以构建出无限可能的RIA应用系统。
参考文献:
.中山:中山大学,2007