基于Flex的RIA开发技术浅析
摘 要 随着网络技术的飞速发展,网络浏览器单调的功能导致B/S架构的缺点逐渐暴露,RIA开发技术融合了B/S和C/S开发架构的优点于一身,具有优秀的网络交互能力和优美的页面表现效果,其中Flex技术伴随着自身的发展成为RIA领域的排头兵。本文探讨了在MVC框架Struts中应用Flex技术的方法和特点,说明了Flex技术强大的富客户端能力以及将Flex技术与传统Struts框架集成的可行性。除此之外,简单论述了Flex技术当前面临的一些挑战
关键词 flex RIA Web程序开发
当前, 互联网已经成为应用程序开发的首选平台。但是, 用户对应用程序复杂性的要求与日俱增, 而现在的互联网应用程序在完成复杂应用方面却始终不能跟上步伐。结果导致许多公司必须面对营业额损失,极为不满的客户以及成本的增加。Web 模型是基于页面的模型, 缺少客户端智能功能的机制。而且, 它几乎没办法完成复杂的用户交互。这样的技术使得Web 应用程序使用起来非常困难, 支持成本也比较高, 并且在很多方面无法发挥Web程序的效应。为了解决以上这些问题, 出现了一种新类型的Internet 应用程序, 即富互联网应用程序(Rich Internet Applications,RIA)。这些应用程序从诞生开始就结合了桌面应用程序的反应快、交互性强的优点以及Web 应用程序方面传播范围比较广和容易传播的特性。RIA程序简化并改进了Web 应用程序的用户交互方面的特性。这样, 用户开发的应用程序可以提供更丰富、更具有交互性的效果和功能。
RIA的概念最初由Macromedia公司(后来被Adobe收购)提出,RIA是Rich Internet Application的简称,它将传统桌面应用程序在用户界面功能性方面的特长与Web应用程序的普遍采纳、低成本布署以及互动多媒体通信的长处集于一身,从而形成了一种可以提供更直观、更好用户体验的应用程序。
Macromedia Flex是目前最流行的开发RIA应用程序的技术之一。作为一种编程技术和语言,Flex可以在企业级应用中与J2EE技术实现完美的结合,从而使它在开发中可以完全取代JSP这种在MVC架构中用于维护视图的技术。Flex 技术包括两个主要功能领域,客户端应用程序框架以及服务器端运行时服务。客户端应用程序框架由三方面组成,分别是:拥有丰富的用户界面的各种组件,用于排布这些组件的基于XML的标记语言MXML,以及可以处理用户交互的面向对象编程语言ActionScript和Flex类库。程序开发人员可以利用MXML及ActionScript编写Flex应用程序,MXML用来定义应用程序用户界面元素,ActionScript用来定义客户逻辑与程序控制,Flex类库中包括Flex组件、管理器及行为等各种部分。利用基于Flex组件的许多开发模型,开发人员可以在程序中加入预建的组件,创建新组件或者是将预建的组件加入复合组件中。Macromedia Flash播放器可以把Flex内置的界面显示在客户端。Flex运行时服务是一个可以在J2EE应用服务器或者Servlet容器内安装的展现服务器,并最终作为标准的.WAR文件部署,提供用于Flex应用程序的数据管理和安全集成。
尽管Struts这样的MVC框架很大的方便了开发人员的工作,但是在改善用户体验这点上并没有达到革命性的突破:使用的仍旧是比较传统的“请求---响应”的处理机制,每当客户端发出一个请求,服务器端会根据客户端发出的请求进行计算并产生结果,重新生成HTML页面并且发回客户端。相比较而言,Flex中的文件会最终编译成为一个二进制的SWF文件,并且将其发送到客户端,当客户端发送请求到服务器的时候,服务器仅仅传送所需的数据回客户端,并不会重新编译SWF文件,也不会重新刷新页面。由此可见,将Struts技术和Flex技术结合成为必然而又自然的选择。
为了让Flex页面组件与服务器端更好的通信,我们需要借助一种技术:Flex Data Service(FDS)。FDS是Flex的数据服务,是用Java技术开发的服务器运行时,就是开发人员所谓的“容器”,它本身也是作为一个应用部署在诸如WebSphere,Tomcat等服务器上的。FDS本质是一个“中间件”,并不处理具体的业务逻辑,而是提供诸如安全性,跨域访问,数据格式交换等服务,所以FDS并不是Flex开发所必需的。经过很长时间的发展和改进,Adobe公司推出了两种FDS框架,一种是Blazeds,另外一种是LiveCycle。其中第一种是开源的,功能比较单一。第二种是一个商业项目,第二种的功能比第一种功能更强。但是第一种也在迅速的发展与完善之中。在项目开发中只需将LiveCycle安装之后的包含有Jar包和配置文件的文件夹复制到tomcat服务器上的特定位置即可使用。正确的配置完毕后Struts和FDS可以协同来完成服务器端的数据和事务处理任务。而处理之后的数据送给Flex的客户端组件显示。
在系统开发具体操作中后台可以采用了Struts这样的MVC框架,前台页面则可以使用Flex,如果将一个Flex项目直接部署到Tomcat服务器上,用URL访问MXML文件,你只能看到响应的源代码(XML格式),MXML并不会被编译成SWF格式的文件。因为Tomcat会把MXML格式的文件当作普通的XML文件,从而拒绝对其进行处理,此时我们需要一种映射机制,将访问MXML的请求交给专门的Servlet进行处理,这个专门的Servlet存在于之前提到的LiveCycle Data Service运行时中。
LiveCycle中主要包含了三种数据服务技术,分别是:数据管理服务、Flex消息服务、RPC(远程过程调用)服务。这三种数据服务技术各有利弊,在不同类型的数据交互中能够各显神通,结合他们自己的的特点,我们介绍一种常用的RPC服务技术。
RPC这种远程过程调用服务又可以划分三种远程服务类型,分别是:HTTP服务、Web服务和远程对象服务。其中HTTP服务主要依赖于HTTPService组件,Web服务依赖于WebServices组件,而远程对象服务借助于RemoteObject组件。而最为常用的还是借助于HTTPService组件实现前端Flex组件与后台服务器的通信。
HTTPService服务是一个HTTP URI,它可以接收HTTP请求和发送响应信息。比如可以使用HTTPService组件与jsp,servlet,asp这些对象进行交互。在具体系统应用中,HTTPService组件通常将其请求发送给后台Struts的Action,Action组件则负责处理业务逻辑并且将数据以XML的格式返回,当HTTP请求返回的时候将触发一个事件。此事件处理函数能够获取返回的XML数据,将这些数据作为前台Flex组件的数据源。LiveCycle和Struts在系统中充当了Flex应用和数据库之间的桥梁,Flex应用通过向应用服务器发送HTTP请求的方式调用该桥梁,而Struts则调用数据库中的存储过程,将获得的结果集以XML格式返回。
作为一项专注于交互技术和界面效果的RIA技术,Flex并没有忽视企业级应用开发的重要性。通过一些中间件技术可以使Flex直接与传统的MVC框架Struts完美结合。在很多系统开发的实践中,证明了Flex技术能让网络应用程序功能更加强大,界面更加友好,尤其是对于那些界面需要大量的报表来展示复杂数据的业务系统。但是, Flex 技术在某些方面也暴露出自身的不足。例如在调用远程对象时, Flex 客户端获取到数据后将其载入用户界面并将其显示出来这个过程所需时间略长于传统基于HTML 的网络应用程序。当然Flex 技术以及其他RIA技术都还在飞速发展中, 毫无疑问它们会对网络应用程序的开发起到越来越大的作用。
参考文献:
[1]李安琪.HTML5标准实施与未来发展[J].html5技术标准与产业专题.
[2]严琦,朱治国.Html5对移动应用的影响[J].研究与开发.
[3]易昌华.Html5发展趋势的研究和探索[J].价值工程.
[4]龚永明.浅议web开发的新标准html5[J].信息技术.
版权声明:
1.十号范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《基于Flex的RIA开发技术浅析》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。
本栏目阅读排行
栏目最新
- 1在农民收入调查工作动员培训会上讲话
- 22024年领导干部政治素质自评材料(完整)
- 3公司党委党建工作总结报告【完整版】
- 42024年主题教育党建调研开展情况总结
- 52024年度区妇联关于党建工作述职报告(完整)
- 6关于加强企业人才队伍建设调研与思考(完整文档)
- 72024县党员干部抓基层党建工作述职报告
- 8第二批主题教育研讨发言:时刻“以民为本”,听“实言实语”,办实事好事
- 92024关于党员干部法治信仰情况调研报告(2024年)
- 10局网络安全工作责任制落实自查报告(全文)
- 11XX国企分管领导关于党建设引领企业高质量发展研讨发言(范文推荐)
- 122024年第二批主题教育专题读书班研讨发言提纲(6)【完整版】