首页 > 范文大全 > 正文

基于Flex 与BlazeDS 在企业开发中的应用

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Flex 与BlazeDS 在企业开发中的应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

中图分类号:TP文献标识码:A 文章编号:1008-925X(2010)12-0115-02

1、引言

Flex技术可以在企业内部或在Web上创建并交付丰富Internet应用程序(RIA),堪称最完整、最强大的RIA开发解决方案。它使企业能够创建个性化的丰富多媒体应用程序,极大地提高用户的体验,彻底革新人与Web的交互关系。目前,已经有多家著名企业使用Flex技术实施应用开发,例如SONY、ebay、SAP、CISCO等,其所构建的应用范围包括富媒体应用程序、电子商务、数据可视化、在线产品定制等。Flex 应用程序运行在客户端环境中, 若干个这样的应用程序连同服务器共同组成了一个完整的应用。这些程序需要服务器提供数据或其他服务,BlazeDS 为这种通信方式提供了稳定、高效的支持。本文主要探讨了,在企业应用中整合Flex 和BlazeDS 技术。

2、Flex 技术

Flex 是Adobe 公司在其著名的Flash 平台(Flash Player)上,用ActionScript 语言开发的一套RIA 软件开发套件(SDK)及其集成开发环境。Flex SDK 由Flex 框架类库、Flex 编译器、调试器、MXML 和ActionScript 编程语言以及其他工具组成。开发者可以通过拖拽的方式开发人机界面,用ActionScript 语言编写代码,ActionScript 负责部分业务和数据服务的交互功能,调用Flash 及Flex SDK 所提供的API 进行RIA 开发,然后用Flash Builder 编译器进行编译,编译后的产品可以运行在Flash 虚拟机中。标准的Flex 应用程序并不要求服务器端的Flex 服务,可以在本地编译它们并直接部署在Web 服务器的HMTL 页面上。Flex 应用程序还可以部署在应用服务器。

3、BlazeDS 框架技术

3.1 BlazeDS 简介

BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术,以LGPL(Lesser GNU Public License)公共许可证书。它能够使得后端的 Java 应用程序和运行在浏览器上的flex应用程序相互通信。blazeds 的远程访问技术使用调用-响应模型,并且提供在ActionScript 和Java 数据类型之间透明的数据转换与传输服务。BlazeDS的消息服务支持建立在HTTP 协议之上的消息(Publish)及订阅(Subscribe)。Flex 或Ajax 客户端通过订阅一个或多个主题(Topic)以接受服务器推送来的数据。使用此服务,开发者能够创建实时协作或数据推送应用程序。完整的BlazeDS 应用一般包含前端Flex 应用程序和后端服务器应用,而BlazeDS 则是连接这两者的纽带。

3.2 BlazeDS 主要功能

1.远程过程调用服务

远程过程调用(Remote Procedure Call,RPC)服务通过调用-返回的形式访问外部数据。它允许客户端异步请求远程程序,请求被处理后直接返回给客户端。Flex 应用程序使用RPC 组件访问BlazeDS 提供的RPC 服务。Flex 包含三种类型的RPC 组件:HTTPService、WebService 和RemoteObject。HTTPService 组件以标准的HTTP 请求(Get、Post) 访问位于服务器的URL。在服务器端BlazeDS 使用HTTPProxyService、HTTPProxyDestination 和HTTPProxyAdapter 协助完成前端HTTPService 组件的RPC 请求。WebService 组件支持访问的SOAP 兼容的WebService, 请求参数和返回结果都以SOAP 格式封装。在服务器端BlazeDS 使用HTTPProxyService、HTTPProxyDestination 和SOAPAdapter 协助完成前端WebService 组件的RPC 请求。RemoteObject 组件允许Flex 应用程序访问服务器端的Java 对象, 请求参数和返回结果会被BlazeDS 透明地转换成Java 对象和ActionScirpt 对象, 它是企业应用中效率最高、最常用的RPC 组件。在服务器端BlazeDS 使用RemoteService、RemotingDestination 和JavaAdapter 协助完成前端RemoteObject 组件的RPC 请求。其组件的调用如下图所示:

2.消息服务

消息(Messaging) 服务允许多个客户端通过它、订阅消息或进行点对点的消息通信。使用消息服务可以构建准实时通信或者多点数据同步的系统。Flex 应用程序使用客户端消息API 发送消息到定义在BlazeDS 服务器中的Destination,并从它接收消息。消息在Channel 中传输, 在Endpoint 中处理。BlazeDS 亦可以将消息推送到连接至它的客户端,此时BlazeDS 使用Destination 广播消息,所有订阅此Destination 的Flex 应用程序都可以收到消息。BlazeDS 的消息服务还可以借助一个JMSAdapter支持嵌入或外部的JMS服务, 使用JMS 服务的主题(Topic)和队列(Queue)。

3.3 BlazeDS 体系结构

一个BlazeDS 应用通常包括客户端Flex 应用程序和服务器端Java EE 应用。在客户端,由Flex RPC 或Message 组件发起会话请求,由Channel 将参数或命令使用指定的网络协议(HTTP 或HTTPS)与服务器端进行会话;在服务器端,由一个Servlet 统一接收所有Channel 的请求,然后根据Channel 请求的URL 将请求分发给相应的Endpoint, 最终将请求转换成适配器(Adapter)的源-客户组件能识别的命令,这些客户组件可能是Java Object Web 页面、Web Service 或JMS 组件等。通过自定义Adapter,可以支持更多的客户组件。

BlazeDS 应用在客户端架构在企业的开发中,将客户端和服务器端连接起来, 整个BlazeDS 应用的架构呈哑铃形。哑铃的一端是Flex 组件, 另一端是各种Adapter 及其连接的后端组件, 而中间的Channel 和Endpoint 则构成了BlazeDS 的核心。这种结构使BlazeDS 在保证核心稳定收敛的情况下,灵活发散,具有很强的适应性。

4、结束

用Flex 技术在客户端设计极具视觉体验和动态人机交互的图形用户界面,用J2EE 技术在服务器端实现复杂的事务逻辑,再通过BlazeDS 客户端丰富的数据服务组件与J2EE 服务器端应用进行数据交互和数据绑定,从而实现性能优越的RIA 应用系统,使Flex 在客户端的优势与J2EE 在服务器端的高效得到完美的结合。

参考文献:

[1]杨占坡,杨铭,翁颖. Flex 3 RIA 开发详解与精深实践. 北京:清华大学出版社,2009.

[2]姜天格,《Flex 3 企业级web 应用系统设计与实现》[M]. 机械工业出版社,2008

[3]Larry Ullman, 《Effortless Flex 4 Development》[M].Publisher: New Riders,2010

[4]兰天曲鹏东孙高飞姜建卫,《Flex 企业应用开发实战》[M]. 机械工业出版社,2010