基于WAP的分布式汛情查询系统的研究与实现
2012-11-13李为华谷平华
李为华,李 贞,谷平华
(湖南水利水电职业技术学院 水利建筑工程系,湖南长沙 410131)
基于WAP的分布式汛情查询系统的研究与实现
李为华,李 贞,谷平华
(湖南水利水电职业技术学院 水利建筑工程系,湖南长沙 410131)
为满足人们随时随地掌握汛情的需求,以WAP无线通信协议作为移动通信终端与互联网联接的桥梁。通过对WAP、J2EE平台及水利汛情查询需求深入研究,采用J2EE平台的MVC设计模式,并同时支持互联网和无线网络协议,分四层架构设计系统。实践表明,基于WAP的分布式汛情查询系统不仅使得显示视图与业务逻辑完全分开,为代码重用、测试和修改带来便利,而且WAP协议的应用大幅度提高了防汛工作的效率。
水利汛情查询系统;WAP;J2EE;MVC
一、引言
随着无线通信技术的发展,基于互联网络的水利汛情信息查询系统越来越不能满足人们随时随地掌握汛情信息的需求。无线应用协议(WAP)架起了移动世界与互联网络的桥梁。随着移动通信终端的接入,显示终端日趋多元化,既保证显示视图与业务逻辑完全分开,又保证平台无关和分布式应用。
二、系统研究
(一)采用WAP与移动设备通信
通过 WAP(Wireless Application Protocal)无线应用协议可以实现对国际互联网和企业内部网各种资源的访问和获取。WAP网络框架由WAP移动终端、WAP网关和WAP内容服务器组成。当移动终端发出要访问内容服务器的请求后,信号经过无线网络,以协议方式发送请求到网关,然后通过网关进行解析、翻译,再以HTTP协议方式与WAP内容服务器之间进行交互,最后通过WAP网关将返回的内容进行解码和压缩,并把结果返回给移动终端。由于WAP终端具有显示屏小、键盘功能简单、CPU内存受限、网络连接带宽窄等特点,WAP终端不能够获取互联网上的任何资源。WAP请求的响应结果是以 WML(Wireless Markup Language) 来表现[1]。WML是与HTML相似的标记语言,它继承了WWW与 HTM和 HDML(Handled Device Markup Language)的特点,并针对移动终端特点进行了优化。运行在智能终端的嵌入式操作系统的WML浏览器会对该WML文件进行解释并显示运行结果。
(二)同时支持WAP和Web应用的J2EE平台
J2EE(Java2 Platform Enterprise Edition)平台提供了多层次结构的分布式应用程序模型,典型的四层结构为运行在客户端机器上的客户层组件、运行在J2EE服务器上的Web层组件、运行在J2EE服务器上的业务逻辑层组件和运行在EIS服务器上的企业信息系统层软件[2]。客户层既可以是基于PC的Web,也可以是基于移动终端的WAP。在基于WAP的J2EE应用程序中,客户层运行的WML程序、Applet程序或JAVA语言直接编写的客户端程序,在不经过Web层的情况下访问Enterprise Beans;也可像基于Web方式那样,使用JavaBeans类来管理输入,并将该输入送往业务层中运行的Enterprise Bean类来处理。Web层组件可以由JSP页面以及显示HTML或WML页面的Servlet组成。业务逻辑层组件由Enterprise Beans执行。数据层为系统内的基础数据或其他系统中运行的程序,最常见的是数据库系统。J2EE平台多层结构的应用,使数据与应用、表示与业务逻辑都相应分开;还支持软件重用和平台异构,可采用JDBC技术,很便捷地同各种数据库连接。
三、系统设计
(一)设计目标
本系统基于开放和共享的WAP协议标准,考虑用户使用手机上网,访问的系统内容具有信息量小,需求变化快的特点,设计目标如下:一是分层结构清晰,多层化的体系结构可以使业务逻辑和信息显示各司其职,同时轻松修改业务功能。二是跨平台部署,支持异构环境的框架、构件的互联和通信,实现跨平台获取数据。三是较好的运行性能,能够满足大量用户同时访问汛情数据,并对用户的合法性进行保护,确保系统安全等。
(二)设计模式
采用合理的开发方法和设计模式,有利于缩短项目开发周期,简化在线应用程序代码。当前在J2EE平台上开发业务系统归纳为两种模式:模式之一为JSP+JavaBean的结合,适合于中小型系统的开发;模式之二为JSP+JavaBean+Servlet的结合,适合于复杂的经常要改动的大型应用系统的开发。本项目采用模式二中的MVC(Model-View-Controller)设计模式[3]。
MVC模式是模式二的典型架构模式。一般分为三个部件,即模型——视图——控制。其中模型(Model)部件是整个模型的核心,封装了问题的核心数据、逻辑和功能的计算关系,它独立于具体的界面表达和I/O操作。视图(View)部件把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。控制(Controller)部件处理用户与软件的交互操作,其职责是控制提供模型中任何变化的传播,是使模型和视图协调工作的部件。MVC模式的实现通常有三种表现方式,分别是JSP+JavaBean+数据库、JSP+EJB+数据库、JSP+Java-Bean+EJB+数据库。
(三)系统架构设计
本系统采用四层架构设计,工作原理如图1所示。表示层由移动终端和WAP网关构成。表示层获取用户的请求后经过WAP网关的协议转换进入WAP服务器。Web层中Servlet根据用户访问机制,启动相应线程,解析请求并向业务层调用已封装的类,返回给表示层,JSP完成页面的生成和显示。业务层由汛情应用服务器和JavaBean构成。其主要功能是响应Web层的请求,通过JDBC与数据库连接进行数据读取,实现具体的业务逻辑[4]。数据层由汛情信息数据库和外部数据构成。汛情信息数据库存储和管理雨情信息、水情信息、天气预报、卫星云图、气象雷达、天气预报等汛情数据和其它数据,外部数据库存储和管理用户、公告、留言等数据信息。采用四层结构和MVC设计模式后,Web层可以由WML和JSP代码组合实现,业务层中由JavaBean将系统中的用户信息、公告信息、留言信息等封装成相应的类,让每个类都有自己对应的操作类,Servlet通过统一的接口对这些JavaBean封装的类进行调用,并接受JavaBean返回的对象,获取返回对象中的数据并显示给移动终端,这样数据库对表示层来说就完全透明了,组件代码的重用性也大大提高。
图1 四层架构的工作原理图
四层架构用户请求及其信息反馈如图2所示。WAP手机用户通过WAP网关,发送请求至Web服务器,Web服务器的Jsp/Servlet程序收到该请求,对其进行初步的验证和处理后,将此请求发往后方应用服务器,后方应用服务器根据请求类型调用容器内相应的Beans进行相应操作,如查询雨情信息、水情信息等。如果调用成功,Beans将结果返回Jsp/Servlet程序,并由它们将内容组织成符合手机微浏览器规范的WML文件,通过WAP网关送回WAP手机终端。
图2 WAP手机用户请求与信息反馈示意图
(四)系统角色功能划分
本系统若按角色不同可以划分为两个子系统,即前台用户访问信息子系统和后台信息管理子系统。用户访问子系统包括用户登录、信息查询、灾情上报、查看公告、在线留言等。后台信息管理子系统包括用户信息管理、汛情信息管理、灾情信息管理、留言信息管理等。根据相关功能划分若干模块。
四、系统实现
(一)开发平台选择
采用Eclipse3.2.1+myEclipse作为系统的集成开发环境。Eclipse是一种开源的Java程序开发工具,采用tomcat5.5作为服务器。数据库采用Oracle,开发时在服务器端要先安装运行环境并配置好相应的环境变量。
(二)业务逻辑实现
系统按照MVC模式开发,其中用Servlet作为Controller,用JSP+WML作为view,业务逻辑层用JavaBean实现。业务层包括的多个接口由业务组件构成,为了使组织结构清晰易懂,根据共同特点把这些组件整化成若干包,这些包实际上是一些类的集合。其中,基类存放各种实体的基本属性;Bean类存放各个业务模块,它接受Servlet的控制,同时也是连接数据库的接口渠道;Servlet包中的组件主要是对获取页面参数进行处理,调用bean类的各种函数,同时也实现系统的交互,是通用类的包,包括参数获取处理类ParaProcess()、访问数据库连接池类DataVisit(),用户密码加密处理类PossProcess()。在系统开发中,考虑到经常涉及与用户交互,要从request对象中提取Parameter和参数attribute,首先要对获取值判断是否为空,并转化为相应类型。ParaProcess()函数实现把涉及到此操作的方法全部封装在这个类中,减少代码的重用。
(三)汛情查询网页实现
视图View代表系统的界面显示,实际上它的功能相当于动态网页的生成。要实现这个功能只要在工程的WebRoot下建立*.JSP文件,这些文件结合了JSP标记和WML语言。当移动终端访问JSP网页的请求时,WAP服务器就会经过WAP网关进行译码,然后将执行结果以WML格式返回给用户。下面是实现查询页面的代码。
(四)数据库连接
数据库连接池建立。系统采用Tomcat自带的连接池来实现数据库连接。创建好连接池后,需要建立一个公用的连接Database类,用来初始化连接环境,有了这个类,对数据库进行增加、删除、修改、查看等操作只要调用该类就可以了,因为Database打了包,引用时前面加上包名。访问完毕后调用该类关闭连接。
连接池配置文件Web.xm l
4.5环境测试
以Openwave SDK 6.2.2作为开发调试工具,如图3所示。运行调式时需选择实际手机测试环境。
图3 Openwave SDK手机模拟器
五、结束语
本系统为省防汛部门有关人员提供防汛信息查询服务,并在有紧急情况时主动通知相关责任人,从而使防汛人员可以随时随地掌握最新防汛信息,提高了防汛工作效率。随着移动通信技术的发展,手机、PAD等小型设备与互联网接入,J2EE平台具有高分布式性能,支持无线应用协议,采用多层结构,适合大型复杂系统开发。
[1]陈静,龚健雅,朱欣焰,李清泉.基于J2EE的分布式Web GIS[J].测绘通报,2004,(2).
[2]吴敏,刘萍.基于J2ME和J2EE的手机银行设计与实现[J].微计算机信息,2006,(22):294-296.
[3]张璞,文登敏.基于J2ME和J2EE的移动电子商务系统研究[J].成都信息工程学院,2006(8):505-507.
[4]J.Puchinger and G.R.Raidl,“An Evolutionary Algorithm forColumn Generation in Integer Programm ing:an Effective Approach for 2D Bin Packing”.In X.Yao et al.,editor,Parallel Problem Solving from Nature-PPSN VIII,volume 3242 of LNCS,pages642–651.Springer,2004.
The Research and Im plementation of the Distributed Water Flood Query System Based on WAP
LIWei-hua,LIZhen,GU Ping-hua
(Water Resourcesand Architecture Engineering Department;Hunan TechnicalCollegeofWater ResourcesanfHydro Power,ChangshaHunan 410131)
Tomeet the needsofmastering the floodmessage for the people atanytime anywhere,thispaper conducted an experimentbased on in-depth study ofWAP the J2EE platform and water flood query requirements,taking theWireless Application Protocalasa bridge between themobile communication term inaland the Internet,adopted theMVC design pattern of the J2EE platform and supported both Internetand w irelessnetwork protocols,fram ing up sub-four-tier structure design system.It show s that the system is fully in line with the need for anytime,anywhere flood message.WAP-based distributed flood query system did not clearly separate the view from business logic for reusing,testing and modifying for the code,but the application of the Wireless Application Protocal substantially increased the efficiency of the flood prevention work.
water flood query system;WAP;J2EE;MVC
TP311.52
A
1674-831X(2012)04-0117-04
2012-03-12
李为华(1978-),女,湖南常德人,湖南水利水电职业技术学院讲师,主要从事水利工程研究;李贞(1973-),女,湖南邵阳人,湖南水利水电职业技术学院高级工程师;谷平华(1975—),男,湖南茶陵人,湖南省经济和信息化委员会综合研究室副主任。
在Tomcat中定义的数据库连接池资源,数据库生成后要与网页建立动态链接,还需在Web应用的部署描述符中进行配置,在建立的Web应用的WEB-INF下找到Web.xml,在Web.xml文件里增加下面代码:
[责任编辑:胡 伟]