基于XML报文的数据通信模型设计与应用
- 格式:doc
- 大小:26.00 KB
- 文档页数:3
基于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、GSM、CDMA 等);物理链路层是系统数据通信的基础,但与上层的实现方式基本无关。
(2)标准网络协议层
是指TCP/IP(Transmission Control Protocol/Internet Protocol)协议族,网络中TCP/IP协议叫做传输控制/网际协议,又叫网络通讯协议,是Internet国际互联网络的基础,其中的TCP协议和UDP(User Datagram Protocol)协议是两种最常用的数据通信协议。
(3)文件传输层
使用Socket(套接字)技术实现文件的传输。
Socket是Windows与网络的接口。
Windows通过Socket把数据格式转换成网络传输格式,也把网络数据格式转换成Windows格式。
Socket可以使用面向连接的协议(如TCP),也可以使用无连接的协议(如UDP)。
Socket一般用来描述IP地址和端口,是一个通信链接的句柄。
应用程序通常通过Socket向网络发出请求或者应答网络请求,可以通过Socket传送数据,进一歨封装成传送任何文件(字节流)的功能。
(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);。