基于XML报文的数据通信模型设计与应用

时间:2024-02-20 点赞:47195 浏览:94152 作者原创标记本站原创

关于文件及数据及服务中心方面的免费优秀学术论文范文,文件相关本科生毕业论文格式,关于基于XML报文的数据通信模型设计与应用相关论文范文例文,对写作文件论文范文课题研究的大学硕士、本科毕业论文开题报告范文和文献综述及职称论文参考文献资料下载有帮助。

【摘 要 】在分布式监控系统中信息传输时,遇到了诸多的困难,其主要的原因是系统数据通信中的数据类型多,信息交互复杂,控制起来也比较繁琐.而引入XML 报文后使得问题变得简单化.

【关 键 词 】信息传输,数据通信,XML报文

1.数据通信

数据通信是通信技术和计算机技术相结合而产生的一种新的通信方式.要在两地间传输信息必须有传输信道,根据传输媒体的不同,有有线数据通信与无线数据通信之分.但它们都是通过传输信道将数据终端与计算机联结起来,而使不同地点的数据终端实现软、硬件和信息资源的共享.在分布式监控系统中,最基本的问题是数据通信问题.下面 我们列举一个比较典型的应用式监控系统服务模型.

图1 应用式监控服务模型

在这该服务模型中,应用与应用之间,应用与服务中心之间会发送数据,大致分以下三种情况:

(1)应用→服务中心

应用采集到的文字信息、图片信息等,应用收到服务中心发出来的数据之后回发,并确认应答信息.

(2)服务中心→应用

服务中心发给应用的基础数据与相应的系统参数、服务中心收到应用发来的数据之后回发,并确认应答信息、服务中心给应用的控制指令等.

(3)应用→应用

有些作业需要两个应用共同完成(如应用A解析文件,应用B替换内容,两个应用要相互交换数据才能生成新的文件),因此应用之间也会发送相关的数据,而这些数据服务中心是不会关心的.

由此可见,在该应用式系统监控模型中会存在多种数据交互,数据发送也是动态的、杂乱的、随机的,种类多,内容不同,格式不同.另外,服务中心通过局域网连网,有固定的IP地址,而应用根据部署的不同,其IP地址可以是不固定的,我们通用Socket通信机制作为系统的数据通道时,把服务中心作为Socket Server,启动,应用作为Socket Client,主动连接Server.应用之间若要相互传送数据,则通过服务中心来转发,增加了服务中心和应用之间收发数据的复杂性.

2.模型的建立

根据XML的特点以及应用式系统监控服务模型的功能要求,将系统的数据通信问题转化为如何实现网络文件传输和如何使用XML文件表示数据这两个子问题.同时,为了便于实现,提高系统的可靠性、稳定性及可维护性,采用相应层次结构,将模型的功能再划分为七层,如图2所示:

(1)物理链路层

是指网络通讯的线路,本系统采用电信的ADSL有线方式,其它也可以是局域网(双绞线、同轴电缆、光纤等)或者无线通讯方式(GPRS、G、CDMA等),物理链路层是系统数据通信的基础,但与上层的实现方式基本无关.


(2)标准网络协议层

是指TCP/IP(Tranission Control Protocol/Inter Protocol)协议族,网络中TCP/IP协议叫做传输控制/网际协议,又叫网络通讯协议,是Inter国际互联网络的基础,其中的TCP协议和UDP(User Datagram Protocol)协议是两种最常用的数据通信协议.

(3)文件传输层

使用Socket(套接字)技术实现文件的传输.Socket是Windows与网络的接口.Windows通过Socket把数据格式转换成网络传输格式,也把网络数据格式转换成Windows格式.Socket可以使用面向连接的协议(如TCP),也可以使用无连接的协议(如UDP).Socket一般用来描述IP地址和端口,是一个通信链接的句柄.应用程序通常通过Socket向网络发出请求或者应答网络请求,可以通过Socket传送数据,进一h封装成传送任何文件(字节流)的功能.

(4)XML文件控制层

在XML中的数据可能是接收到的数据,也可能是要发送的数据,服务中心和应用必须准确控制XML文件的接收和发送.特别是对于服务中心,可能同时接收到多个应用发送来的XML文件,发送XML文件时也要准确控制发送的目标应用.

(5)XML文件封装/解析层

这是两个相逆的过程,也是两种相对应的操作.XML文件封装是指将要发送的数据按照一定的协议打包组装成一个特定格式的XML文件,解析是指对一个XML文件按照特定的协议进行分析解读,还原出其中所描述的数据.

(6)数据表示层

将采集到的数据、处理中的数据或者在数据库中存储的数据等各种数据格式转换为能够用XML文件描述的格式.这一层在本地操作的数据和远程传输的数据之间建立了一个通道,使两者之间互不影响,从而不会降低系统的执行效率.

(7)业务逻辑层

实际上就是整个系统的用户接口,或者说是系统功能的实现层,包括打印单据、防、报警处理、用户管理、查询统计、费用计算、实时监控、基础数据录入、系统管理等.

3.模型的实现

3.1 网络文件传输

(1)动态链接库

本模型系统使用.NET开发专门用于网络文件传输的动态链接库(DLL),基于对字节流的处理可以传输任何文件,因此对于XML文件的传输来说是透明的.该动态链接库的主要接口及其功能如下:

1)初始化.服务器端要先启动监听,客户端主动联接.

DWORD DT_Net_InitServer(BOOL bIsServer 等于 TRUE),

参数:bIsServer表示是否将此Socket端用作服务

返回:0或者错误代码

2)设置回调函数接口

DWORD DT_Net_SetCallBack(LPVOID pParam,LPNET_ ACCEPT_CALLBACK pAccept,LPNET_RECV_CALLBACK pRevc,LPNET_DISCONN_CALLBACK pDisConnect,LPNET_ LOG_CALLBACK pLogInfo), 包括请求连接、接收到数据、断开连接和日志回调.

3)设置文件操作的回调函数接口

DWORD DT_Net_SetFileCallBack(LPCTSTR pSePath, LPNET_SENDFILE_CALLBACK pSendFile,LPNET_ RECV FILE_CALLBACK pRecvFile,LPNET_ABORTFILE_ CALL BACK pAbortFile),

包括文件发送完毕、接收到文件、文件发送中断的回调.

4)服务器启动监听

DWORD DT_Net_StartListen(LPCTSTR pszLocalIP, unsigned long nSvrPort),

参数:pszLocalIP-服务器IP地址

nSvrPort-服务器端口号

返回:0或者错误代码

5)服务器停止监听

DWORD DT_Net_StopListen(),

6)发送文件

DWORD DT_Net_SendFile(unsigned int nIDSocket, LPCTSTR pstrFileName, LPCTSTR pszReName等于NULL),

参数:nIDSocket-Client端套接字句柄

pstrFileName-文件名称(全部路径)

pszReName-文件重命名

7)中止文件发送

DWORD DT_Net_AbortFile(unsigned int nIDSocket),

参数:nIDSocket-Client端套接字句柄

8)断开连接

DWORD DT_Net_DisConnect(unsigned int nIDSocket),

参数:nIDSocket-套接字句柄

9)连接服务器

DWORD DT_Net_ConnectRemote(LPCTSTR pstrRemoteIP, unsigned long nRemotePort),

参数:pstrRemoteIp-服务器IP地址,

nRemotePort-服务器端口号

(2)实现文件传输

将服务中心作为Socket Server,启动监听:

DT_Net_InitServer(TRUE),

DT_Net_StartListen(ServerIP,ServerPort),

然后设置回调函数:

DT_Net_SetCallBack(self,LPNET_ACCEPT_CALLBACK, LPNET_RECV_CALLBACK,LPNET_DISCONN_CALLBACK, LPNET_LOG_CALLBACK),

DT_Net_SetFileCallBack(PChar(‘d:\temps’),LPNET_ SEN DFILE_CALLBACK,LPNET_RECVFILE_CALLBACK,LPNET_ABORTFILE_CALLBACK),

各应用作为Socket Client,也设置回调函数,并主动去连接Server:

DT_Net_InitServer(FALSE),

DT_Net_SetCallBack(self,LPNET_ACCEPT_CALLBACK, LPNET_RECV_CALLBACK,LPNET_DISCONN_CALLBACK, LPNET_LOG_CALLBACK),

DT_Net_SetFileCallBack(PChar(‘c:\tempc’), LPNET_ SEN DFILE_CALLBACK,LPNET_RECVFILE_CALLBACK,LPNET_ABORTFILE_CALLBACK),

DT_Net_ConnectRemote(ServerIP,ServerPort),

每个应用和服务中心之间建立唯一的独立通道,当连接建立成功后,就可以利用该套接字在该应用与服务中心之间收发文件:

DT_Net_SendFile(theSocket,FileName),

3.2 XML文件封装协议

不同的数据最终封装成的XML文件是不同的,但是为了便于处理,把每一个XML文件分成两个主要的部分(Head和Data),如图3所示:

图3 XML结构示意图

1)Head部分

系统中的任何一个XML数据文件都有相同的Head(数据包头),表明该XML文件的优先级(priority)、数据种类(FrameType)、来自何处(FromStationNo,应用编号,如果是服务器则为“0”)以及封装时间(DateTime).

2)Data部分

这一部分是XML文件所要封装的数据内容,基本按字段格式排列即可.要注意数据类型转换的问题,任何数据都必须想方设法转换成字符串类型的表示形式.

3.3 XML文件控制

在实现了文件传输的基础上,对XML文件的封装、解析、接收和发送等操作使用多线程方式并行处理,并且引入队列(Queue)的机制.服务中心的基本处理机制与流程如图4所示:

图4 监控中心处理线程与流程

文件接收线程接收到XML文件后,先不管文件的具体内容,只负责将文件入队.然后由专门负责从队列中提取文件的线程将文件取出,由处理线程进行解析、处理,并将数据保存至数据库,同时还要生成确认应答的XML文件放入发送队列中.另外有专门负责发送文件的线程将文件发送出去.服务中心要往各应用发送的数据有一个独立的线程负责从数据库中读取相应数据封装成XML文件放入发送队列,等待发送.数据处理线程负责对数据库中的数据做进一步的业务处理,而系统监管线程主要的任务就是监视其它各个线程的状态,及时进行调整、修复或者发出报警,以保证系统正常运行.

应用的处理与服务中心的处理比较相似,但更为简单,因为服务中心面对多个应用,而应用只面对一个服务中心.

要保证监控中西文件处理的速度和系统运行的效率还要考虑以下几个问题:

1)优先级

2)区分文件是哪个应用发送来的或者要发送给哪个应用

3)文件队列的管理

虽然XML文件的<,Head>,部分有优先级和应用编号信息,但是需要解析XML文件才能得到,为此要把文件名定为“优先级_应用编号_流水号.xml”的格式,可在一定程度上方便处理的过程.另外,文件队列可能存在积压现象,即入队快而出队慢,并且会造成恶性循环使系统性能持续降低,针对这种情况制定一个限度,当队列中的文件数达到此限度,则停止入队,即把新生成的XML文件丢弃.

4.总结

利用上述方法解决了一个应用式系统监控服务模型的数据传输问题,使原本错综复杂地、多种格式数据相互收发控制变得逻辑简单、层次分明、实现方便、安全可靠、稳定高效.经实际应用和测试,该方法是完全可行的,并且效果很好.

相关论文

基于XML的高校异构数据交换平台设计

此文是一篇数据库论文范文,数据库相关论文范文素材,与基于XML的高校异构数据交换平台设计相关在职毕业论文开题报告。适合不知如何写数据库。

学生成绩OLAP数据仓库的设计与实现

本论文为管理系统类学年论文小结,关于学生成绩OLAP数据仓库的设计与实现相关本科毕业论文,可用于管理系统论文写作研究的大学硕士与本科毕。

计算模型设计疫苗引进方案等

该文为互联网类毕业论文提纲范文,与计算模型设计疫苗引进方案等相关医学论文结论,可作为畜牧兽医专业互联网论文写作研究的大学硕士与本科。

基于Hadoop的数据共享模型

这篇数据库论文范文属于论文格式免费优秀学术论文范文,数据库类有关毕业论文格式范文,与基于Hadoop的数据共享模型相关小论文格式。适合数据。

工程数据与机械设计问题

这是一篇关于机械设计相关学年毕业论文范文,与工程数据与机械设计问题相关函授毕业论文。是论文格式专业与机械设计及数据库及产品设计方面。

数据结构课程设计

这篇数据结构论文范文属于论文总结免费优秀学术论文范文,关于数据结构自考毕业论文开题报告,与数据结构课程设计相关论文总结范文样本。适合。