RIA(Rich Internet Application)—— 富 Internet 应用以其良好的客户体验得到越 来越广泛的应用,银行,电信等领域已有诸多成功案例。Adobe 的 Flex 是最具有代表性的 基于 Flash 的 RIA 技术。通过对 Flex 以及当前流行的 Spring、Hibernate 的 J2EE 开源 框架进行集成,使客户既能获得到一流的用户体验,又能获得 J2EE 应用的高稳定性,高可 扩展性和可移植性。从某种意义上来说,RIA 是未来 Web 应用的发展方向。作为本文的读者 ,您应该非常熟悉 J2EE 开发、Spring、Hibernate 框架,并且对 Flex、ActionScript 有 一定的了解。
引言
RIA(Rich Internet Application)—— 富 Internet 应用是一种融入了传统桌面应用 系统功能和特性的 Web 应用系统。RIA 结合了桌面应用反应快、交互性强的优点和传统 Web 应用程序易于部署和维护的特性,从而为用户提供了更加健壮,表现力更加丰富的 Web 应用 。Adobe Flex 是当前流行的基于 Flash 的 RIA 开源框架,您可以利用 Flex 的基于 XML 的 MXML、ActionScript 以及 SWC 文件(Flex 组件库)创建包含丰富图表、3D 特效、动画 、音频以及视频的用户界面,而所有的 Flex 组件将会由 Flex 编译器编译生成 SWF 二进制 文件在 Flash Player 中运行。
Spring 是一个轻量级的 J2EE 开源应用程序框架。Spring 的基于两大核心特性控制反转 (Inversion of Control,IOC)和面向方面编程(Aspect-Oriented Programming,AOP)的 插件式架构降低了应用组件之间的耦合性。借助于 XML 配置文件,Spring 容器可以轻松地 帮助您管理应用组件以及它们之间的依赖性,同时 Spring 还提供事务管理框架、DAO 支持 、支持主流 O/R Mapping 框架的集成、支持各种标准 J2EE 组件技术的集成 (JavaMail/EJB/JMS/Web Service 等)、支持各种视图技术(Web 视图和非 Web 视图)的 集成。
Hibernate 是 Java 平台上的一种成熟的、全功能的 O/R Mapping(对象 / 关系映射) 开源框架。Hibernate 在分层的 J2EE 架构中位于数据持久化层,它封装了所有数据访问细 节,使业务逻辑层可以专注于实现业务逻辑。Hibernate 使用 O/R Mapping 将对象模型中的 对象映射到基于 SQL 的关系数据模型中去,通过使用 HQL(Hiberante Query Language)实 现 Java 对象的持久化,使得您可以应用面向对象的思维方式操纵数据库。另外,Hibernate O/R Mapping 还提供延迟加载、分布式缓存等高级特性,这样有利于缩短开发周期和降低开 发成本。
关于示例程序
本文的样例程序是比较流行的在线宠物商店的应用场景,分为两个部分:
demo_client:Flex 项目,主要由 Flex 实现用户界面的生成和对用户动作的响应处理。
demo_central:Java Web 项目,主要由 Spring 实现业务逻辑、由 Hibernate 实现数据 库的读写访问控制,以及由 BlazeDS 提供 Flex 访问的远程对象接口。在本文中 Spring、 BlazeDS 和 Hibernate 所依赖的 Jar 包均拷贝到 demo_central 项目的 WebContent/WEB- INF/lib 目录下部署到 Tomcat 上。
开发环境
Eclipse 3.3.1.1
Web Tools Platform(WTP) for eclipse
Adobe Flex Builder 3
Tomcat v6.0
MySQL v5.1
集成 Flex 和 Spring
如何将 Flex 和 Spring 进行集成,使 Flex 前端能够与 Java EE 后端进行通信? Flex 通过远程方法调用和实时通信技术实现异步通信,Flex 的通信协议主要有三种: HttpService、WebService 和 RemoteObject。RomoteObject 协议作为 Flex 提供的最快的 通信方式,通过集成 BlazeDS,利用 AMF(Action Message Format)二进制协议使得 Flex 前端能轻松与 Java EE 后端进行数据交互,它是 Flex 集成 Spring 的首选通信协议。