APP下载

基于Flex和Java技术的公共通信服务基础平台设计与实现

2014-12-25李浩松颜巧玲刘溪土林心宇

科技视界 2014年26期
关键词:调用浏览器应用程序

李浩松 颜巧玲 刘溪土 林心宇

(国网信通亿力科技有限责任公司,福建 福州350003)

0 引言

随着电力光纤网络的建设和发展,能源和信息逐渐成为社会公共服务的重要内容,为实现电网与用户之间实时交互响应,增强电网综合服务能力,满足互动营销需求,加快构建开放、高效、优质、便捷的公共网络服务平台显得至关重要。

本文论述的基于Flex和Java框架技术的公共通信服务基础平台,主要实现对电力光纤到户网络、设备设施、客户及业务资源的统一管理及调度,重点阐述如何运用BlazeDS集成Flex和Java技术构建一个公共通信服务基础平台,以达到减少重复投入、提高资源效率、加强信息共享的目的的建设目标。接口来供其远程调用。

一个BlazeDS应用包括两个部分:一个客户端应用程序和一个服务端的J2EE程序,架构如下图:

1 基于Flex和Java的RIA技术探索

1.1 RIA技术分析

传统的基于页面的系统已经逐渐不能满足网络浏览者的更高的、全方位的体验要求了,RIA的出现也就是为了解决这个问题,RIA(Rich Internet Applications)意为丰富的因特网应用程序,是集桌面应用程序的最佳用户界面功能与Web应用程序的普遍采用和快速、低成本部署以及互动多媒体通信的实时快捷于一体的新一代网络应用程序。其通过网络发布,有非常丰富的用户交互。得益于Ajax的出现,一个无需刷新就可以发送服务器请求的网络应用的方法,新技术出现,加速了RIA的发展。基于这些技术出现了一些框架,帮助开发人员构建和部署富网络应用程序,如JavaScript库,ICEfaces,Adobe Flash 4(Flex 3前身),微软Silverlight,以及HTML5。其中Adobe Flash Builder 4最令人兴奋的是它的跨平台和跨浏览器特性。允许程序在所有的操作系统和所有的浏览器上以同样的方式运行。相比于JavaScript,浏览器有不同的JavaScript引擎管理和处理的代码,而Adobe的Flash只有一个引擎,用户通过Adobe Flash浏览器插件来安装。它是一个提供开发设计和运行支持的架构,可以使开发人员创建利用Adobe FlashPlayer作为前台的RIA(Rich InternetApplication,即富互联网应用),以满足用户更为直观和极具交互性的在线体验。

1.2 Flex前端界面技术

Flex采用GUI界面开发,使用基于XML的MXML语言。Flex具有多种组件,可实现Web Services、远程对象、列排序,图表统计等功能;FLEX内建动画效果和其它简单互动界面等。相对于基于HTML的应用(如PHP、ASP、JSP、ColdFusion及CFMX等)在每个请求时都需要执行服务器端的模板,由于客户端只需要载入一次,FLEX应用程序的工作流被大大改善。FLEX的语言和文件结构也试图把应用程序的逻辑从设计中分离出来。

1.3 BlazeDS集成Flex和Java

BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,包含了AMF通道 的Java实现,可以用来与服务器端的Java对象远程交互,也可以用来在客户端之间传递消息,BlazeDS的远程技术简单地调用POJO、Spring服务或EJB方法,其作用相当于Java的RMI。通过进行相应的配置,可为Flex提供一个Java

图1 BlazeDS架构图

在J2EE web应用项目中集成BlazeDS,需要执行以下步骤:

(1)把BlazeDS及其依赖的jar包拷贝到WEB-INF/lib下。

(2)修改WEB-INF/flex目录下有关BlazeDS的配置文件。

(3)在WEB-INF/web.xml文件中定义MessageBrokerServlet和一个session listener。

2 系统需求分析

2.1 业务需求分析

为支撑电力光纤到户商业化运营,需和综合网管系统、95598互动服务网站、电动汽车智能充换电服务网络运营管理系统、社区主站等系统进行对接,为用户提供电力光纤到户、能效管理服务、电动汽车充电、新型能源发电、智能用电服务等智能电网服务,以及智能家居服务、社区服务、商家信息服务等社会公共服务。

2.2 系统运行环境

开 发 平 台:JDK1.5、Adobe Flex Builder 4、MyEclipse 6.5、Tomcat 6.0、Oracle数据库

发 布 平 台:JDK1.5、Windows 2008 Server、JBOSS4.2、Oracle10.2.0数据库

客户端:装有Flash Player插件(10.0版本及以上)的IE6(及以上)、Chrome、FireFox等主流浏览器

2.3 总体要求

(1)按照业务、应用、数据和技术四个层面展开设计,并对其中的关键点逐一进行论证。

(2)遵从先进性、可扩展性和灵活性的设计原则,保证总体架构设计能够适应未来的公共通信服务基础平台的扩展与深化。

(3)基于电力光纤到户,充分承载网络管理服务、设施管理服务、监控服务及运营支撑服务等业务,实现对智能小区、智能楼宇、智能园区等进行有效支撑,对用户供用电设备、分布式电源、公用用电设施等进行监测、分析、控制,提高能源的终端利用效率,为用户提供优质便捷的双向互动服务。

(4)采用“一级部署,多级应用”的B/S架构模式,用户通过浏览器访问系统,所有的升级操作只在服务器上进行。

2.4 系统功能划分

BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递通过需求调研分析,将平台划分为平台管理系统和平台门户网站,两大子系统的功能层级图如下所示:

图2 平台管理系统功能层级图

图3 平台门户网站功能层级图

3 系统设计

图4 公共通信服务基础平台总体架构图

3.1 系统总体架构

公共通信基础服务平台基于电力光纤到户,主要由平台管理系统及平台门户网站组成,充分承载网络管理服务、设施管理服务、监控服务及运营支撑服务等业务,实现对智能小区、智能楼宇、智能园区等进行有效支撑,对用户供用电设备、分布式电源、公用用电设施等进行监测、分析、控制,提高能源的终端利用效率,为用户提供优质便捷的双向互动服务。其总体架构如图4所示。

3.2 系统架构设计

为实现“高内聚,低耦合”的设计目标,系统架构主要划分为3层:表示层、业务逻辑层和持久层,有利于系统的开发、部署、维护和扩展。

(1)表示层:用于展示业务数据和前端用户的输入和请求,采用Flex技术开发,使用基于标签语言的MXML创建用户界面,以面向对象的ActionScript脚本语言实现客户端业务逻辑,同时通过引入第三方组件包(SWC)极大提高开发效率,满足Web浏览者更高的、全方位的体验要求。

(2)业务逻辑层:位于表示层和持久层之间,分为控制层、服务层,其中控制器负责处理前端请求,并根据用户请求类型调用实现业务逻辑的服务层,在得到处理结果后再将其返回给前端,起到数据交换中承上启下的作用,该系统采用Java主流框架技术Spring开发,利用依赖注入(IOC)将数据持久层(DAO)注入到业务服务层(Service)中以供控制层(Action)调用,通过面向切面编程(AOP)实现分离的业务层服务和系统及服务(如日志管理、事务支持、权限控制)进行内聚性的开发。

(3)数据持久层:是与数据库交互的逻辑层,采用Ibatis框架技术实现,通过SQL配置文件实现POJO和SQL之间的映射关系,具有较大的灵活性。该系统数据库主要分为平台系统数据库和门户网站数据库。

3.3 系统通信框架

该系统采用BlazeDS作为Flex与Java通信的基础框架,以本系统中的获取设备信息为例,Flex实现与Java通信通信主要有以下几个步骤:

(1)编写Java服务类,所有被调用的方法必须是public,如查询电网资源的设备DeviceBean,并定义一个根据主键获取设备信息的公共方法getDeviceById(int id);

(2)在services-config.xml中注册SpringFacotry,配置如下:<!--Spring Factory-->

(3)在remoting-config.xml中定义Destination,该属性必须和RemoteObject

组件的服务终端属性一致,其中通过factory和source把BlazeDS和Spring相结合起来了,如:

(4)实例化一个RemoteObject对象,并注册该对象的result和fault事件侦听器,实现侦听器方法以处理返回响应或者调用异常

(5)在ActionScript脚本中调用远程Java对象的方法,并传递参数,如deviceRO.getDeviceById(id);

这里getDeviceById对应DeviceBean类中的getDeviceById方法,采用的是异步调用方式,即前台不会阻塞线程来等待调用结果的返回,具有较好的用户体验效果。

4 结语

基于Flex和Java技术的公共通信基础服务平台除了具备传统Web应用框架所具备的优良的体系结构、开发成本低等优点外,还可以提供良好的用户体验,从而提高与用户的交互性,改善系统的性能。实践证明,RIA技术是网络应用程序的发展方向,显示出广泛的应用前景。目前该系统已在某市电力公司投入使用,运行结果表明,各项功能均已达到用户预期要求,能够快速便捷的为用电客户提供基于电力光纤的各项服务,使用效果良好。

[1]曲鹏,东孙,高飞,姜健卫.Flex企业应用开发实战[M].2010,4.

[2]赵中枢.基于Flex与BlazeDS在企业开发中的应用[J].福建电脑,2010,26(9).

[3]何媛.基于BlazeDS实现Flex和Java通讯[J].计算机光盘软件与应用,2012(11).

猜你喜欢

调用浏览器应用程序
核电项目物项调用管理的应用研究
删除Win10中自带的应用程序
反浏览器指纹追踪
LabWindows/CVI下基于ActiveX技术的Excel调用
基于系统调用的恶意软件检测技术研究
环球浏览器
利用RFC技术实现SAP系统接口通信
三星电子将开设应用程序下载商店
微软软件商店开始接受应用程序