优胜从选择开始,我们是您省心的选择!—— 无忧期刊网
帮助中心
期刊发表
您的位置: 主页 > 论文范文 > 电子论文 > 正文

浅析GPRS通用通信系统的服务器端软件开发

作者: 来源: 日期:2014-09-25 22:31人气:

  O.引育

  GPRS通用通信系统由现场监控终端(也称数据终端单元。DTU),GPRS网络,数据库和服务器端软件(也称数据服务中心.DSQ四部分组成。服务器端软件接收DTU通过GPRS网络上传的数据.处理后存储到数据库;服务器端软件也可以反向传送各种指令到DTU。控制DTU的运行。为了用户方便使用数据监控等功能,服务器端软件采用Web页面方式。开发基于Java,使用了Struts,Hibemate等多项技术。

  1.技术关量

  Struts和Hibernate是WEB开发中提高开发效率。使程序结构清晰化的工具。本设计积极的运用了这两项技术。

  1.Sturts技术Struts框架实现MVC(Model—View—Comroller)设计模式。通过这个设计模式。实现功能模块,视图和控制的分离。将数据的监听和解析以及其他功能封装在不同的功能模块中。而将展现给用户的结果作为视图。这通常是一个JSP页面或纯HTML页面,视图也常作为接受用户输入或请求的用户接口。而控制则管理对功能模块的调用,以及选择正确合适的视图来响应用户的请求。

  1.2Hibemate技术Hibernate将Java对象映射到关系数据库表中,对数据库表的操作通过对Java对象的操作完成,这样就简化了数据持久化相关的编程任务。

  2.功能模块设计

  服务器端软件主要任务是完成对通信数据的接收。处理和存储。功能设置都是以数据为中心。本设计的主要功能模块如图1所示。

  在服务启停模块启动服务后,开始接收DTU数据。由于数据包的解析功能相对独立。实现也较为复杂,因此将解析过程作为一个线程。接收一个数据包.就启动一个独立的解析线程.对数据包进行解析。解析完后将提取出的数据存人设计好的数据库中。随后发出一个应答数据包,线程结束。解析、入库和应答三个步骤在同一线程中完成。服务启停模块完成了本设计的核心功能。

  服务设置模块主要完成服务启动与运行中的参数设置。

  数据监控模块是重要的一个功能模块,它向用户直观的展示任一DTU发出的数据变化图。数据随时问的变化显示在专门定制的图表上,而且实时刷新,做到实时性和准确性。

  在远程控制模块,用户可以查看每一个DTU所连接的数据采集终端的状态,通过向DTU发送指令数据包,远程控制与DTU相连的仪表。

  与多数管理系统类似。为了做到对使用用户进行管理.设置了系统管理模块,可以对用户的权限、登录、安全进行管理。以做到系统的完备和安全。

  3.数据处理流程

  本数据管理软件的核心是数据,所有的功能都是围绕数据进行。数据的处理主要有解析,存储和显示几个过程.另外,本系统也向远程数据终端单元发送数据。

  3.1数据的接收 服务启动后,服务器启动监听线程在服务端口监听线程,直到停止服务,监听线程才终止。监听线程中.建立了在服务端口上的数据报soeket:

  pfivate DatagramSoeket socket;

  socket=new DatagramSoeket(INPORT); soeke调用阻塞式函数receive(DatagramPacket dp)监听端口,接收到数据返回后即可在dp中获取数据开始处理,而监听线程检查服务停止标志started,若服务巳停止则终止线程。否则重新开始监听,如此循环。

  3.2数据的解析数据的解析是数据处理的主要过程.解析过程就是实现DSC与DTU应用层通信协议的过程。解析线程在监听线程中启动,服务器接收到数据后启动数据解析线程处理数据报。而监听线程继续监听,解析线程完成解析后结束自身。解析线程的启动代码如下:

  ProcessReceiveData pmcessReceiveData;new

  ProcessReceiveData(buf,

  lnetAddress.getByName(dp.getAddmss0.

  getHostAddress0),

  dp.getPort0,

  dp.getLength0,

  socket,BUF_MAX_ LEN)

  processReceiveData.start0;

  其中bur为存放完摊数据报的缓冲区,第二个参数为数据报的发送源IP地址,即发送此数据报的DTU的IP地址。第三个参数为发送源端口。第四个参数为数据报长度。第五个参数为监听套接字,第六个参数为缓冲区最大长度(单位为字节)。这些参数在监听线程中获得,都在数据处理线程中使用。

  协议中定义的数据报格式单位都以字节为单位,为便于解析,在ProcessReceiveData中定义了私有方法:

  private String byte.I’oslring(byte b)

  private int hexToDec(char[1 hexData,int len)

  byteToString方法将字节转化为十六进制字符串。而hexToDec将十六进制字符串转换为十进制数值。比如数据报中有两个字节表示数据报长度,可以先将这两个直接转化为十六进制字符串,再将十六进制字符串转化为十进制数值,这样就得到了数据报长度的数值。

  3.3数据的存储根据解析的结果。一般要更新数据库表或向数

  据库表中添加记录。

  3.4数据的发送解析完数据报后按照协议一般要对发送数据报的DTU发送应答数据报。首先接格式构造数据报,然后通过soeket向DTU的IP地址发送。

  4.结论

  软件实现了数据的接收、解析、存储和发送等管理功能.并且能够对用户信息进行管理,基本满足了数据管理系统的功能需求。比较合理的使用了Struts框架技术,使得处理逻辑较为清晰,前台页面与后台耦合度较低,结构清晰。功能组件JavaBean设置较为合理,能够完成独立的功能,JavaBean组件之间耦合度低。后台线程能正确的启动与停止。能完成设计的功能,线程之间没有出现互相影响的情况。该设计在实时性能上还有提升的空间。

  参考文献

  [1]宋波,马黎,孙连科.用JAVA实现一个多线程唧服务器[J].沈阳电力高等专科学校学报.2001.1.

  [2]冯冬芹,金建祥,褚健.Ethemet与工业控制网络[J].仪器仪表学报,2003(1):600-603.

  [3]何小荣,钱泉.GPRS在工业监控中的应用m.铁道工程学报.2004(19):42-45.

  [4]Douglas E.Comer.用TCP/IP进行州际互连[M].北京:电子工业出版社.1998.

  [5]孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社.2005.

  [6]王海峰,奠伟锋,李位星.Oracle9i初学者指南[M].北京:机械工业出版社.2003.

在线客服:

无忧期刊网 版权所有   

【免责声明】:所提供的信息资源如有侵权、违规,请及时告知。

专业发表机构