版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑XML解决站点式远程监控系统的数据传输问题-技术方案引言
在解决一个监控系统的信息传输问题时,遇到了一些困难,主要的原因是该系统中的数据类型多,发送的方向杂,控制起来比较繁琐。而引入XML文件后使得这个问题变得简单化。
1监控系统的数据通信
数据通信是依照一定的通信协议,利用数据传输技术在两个终端之间传递数据信息。它可实现计算机和计算机、计算机和终端以及终端与终端之间的数据信息传递。在分布式监控系统中,数据通信是基本的问题。如图1所示是一个比较典型的站点式远程监控系统的模型。
在这个系统中,监控中心和站点之间要相互发送数据,基本上有三种情况:
(1)站点→监控中心
如站点采集到的现场数据、抓拍的图片信息、报警信息、站点收到监控中心发来的数据后回发的确认应答信息等。
(2)监控中心→站点
如监控中心发往站点的基础数据与系统运行参数、监控中心收到站点发来的数据后回发的确认应答信息、监控中心给站点的远程控制指令等。
(3)站点→站点
有些事务可能需要两个站点共同完成(如在站点A称得皮重,在站点B称得毛重,两个站点要相互交换数据才能得到净重值),因此在站点之间也会发送数据,而这些数据监控中心是不关心地。
由此可见,在这个站点式监控系统中有多种数据要互相发送,并且数据的发送是随机的、杂乱的、动态的,内容相异,格式不同,种类繁多。另外,监控中心通过局域网连接Internet,可以有固定的IP地址,而站点使用ADSL连接,通常其IP地址是不固定的,用Socket通信机制作为系统的数据通道时,把监控中心做为SocketServer,启动侦听,站点只能做SocketClient,主动连接Server。站点之间若要相互传送数据,则只能通过监控中心来转发,更增加了监控中心和站点之间收发数据的复杂性。
2XML及其特点
XML(EXtensibleMarkupLanguage)是可扩展标记语言,类似于HTML,但和HTML不同的是XML的标记不是预先定义好的,用户可以且必须自己定义标记。XML是用来描述数据和保存数据的一种灵活而有效的方式,能够清楚地表示出:什么是数据,有什么数据及如何组织数据。XML是Web上表示结构化信息的一种标准文本格式,广泛用于网络数据交换,具有“易于生成数据”的优点。
XML支持世界上几乎所有的主要语言,并且不同语言的文本可以在同一文档中混合使用,应用XML的软件能处理这些语言的任何组合。所有这一切将使XML成为数据表示的一个开放标准,这种数据表示独立于机器平台、供应商以及编程语言。
XML被引入许多网络协议,以便于为二个软件提供相互通信的标准方法,如简单对象访问协议(SOAP)和XML-RPC规范。
XML数据是以纯文本格式存储的,提供了一种与软件和硬件无关的共享数据方法,所以XML数据文件可以被更多的用户、更多的设备所利用,而不仅仅是基于HTML标准的浏览器。
XML是不同系统之间的桥梁。
3系统模型的建立
根据监控系统的功能要求和XML的特点,将系统的数据通信问题转化为如何实现网络文件传输和如何使用XML文件表示数据这两个子问题。同时,为了便于实现,提高系统的可靠性、稳定性及可维护性,采用层次结构,将系统的功能划分为七层模型,如图2所示:
(1)物理链路层
是指网络通讯的线路,本系统采用电信的ADSL有线方式,其它也可以是局域网(双绞线、同轴电缆、光纤等)或者无线通讯方式(GPRS、GSM、CDMA等);物理链路层是系统数据通信的基础,但与上层的实现方式基本无关。
(2)标准网络协议层
是指TCP/IP(TransmissionControlProtocol/InternetProtocol)协议族,网络中TCP/IP协议叫做传输控制/网际协议,又叫网络通讯协议,是Internet国际互联网络的基础,其中的TCP协议和UDP(UserDatagramProtocol)协议是两种常用的数据通信协议。
(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)业务逻辑层
实际上就是整个系统的用户接口,或者说是系统功能的实现层,包括打印单据、防作弊、报警处理、用户管理、查询统计、费用计算、实时监控、基础数据录入、系统管理等。
4系统实现
4.1网络文件传输
4.1.1动态链接库
本系统使用VC++开发专门用于网络文件传输的动态链接库(DLL),基于对字节流的处理可以传输任何文件,因此对于XML文件的传输来说是透明的。该动态链接库的主要接口及其功能如下:
(1)初始化
服务器端要先启动监听,客户端主动联接。
DWORDDT_Net_InitServer(BOOLbIsServer=TRUE);
参数:bIsServer表示是否将此Socket端用作服务返回:0或者错误代码
(2)设置回调函数接口
DWORDDT_Net_SetCallBack(LPVOIDpParam,LPNET_ACCEPT_CALLBACKpAccept,LPNET_RECV_CALLBACKpRevc,LPNET_DISCONN_CALLBACKpDisConnect,LPNET_LOG_CALLBACKpLogInfo);
包括请求连接、接收到数据、断开连接和日志回调。
(3)设置文件操作的回调函数接口
DWORDDT_Net_SetFileCallBack(LPCTSTRpSavePath,LPNET_SENDFILE_CALLBACKpSendFile,LPNET_RECVFILE_CALLBACKpRecvFile,LPNET_ABORTFILE_CALLBACKpAbortFile);
包括文件发送完毕、接收到文件、文件发送中断的回调。
(4)服务器启动监听
DWORDDT_Net_StartListen(LPCTSTRpszLocalIP,unsignedlongnSvrPort);
参数:pszLocalIP-服务器IP地址nSvrPort-服务器端口号返回:0或者错误代码
(5)服务器停止监听
DWORDDT_Net_StopListen();
(6)发送文件
DWORDDT_Net_SendFile(unsignedintnIDSocket,LPCTSTRpstrFileName,LPCTSTRpszReName=NULL);
参数:nIDSocket-Client端套接字句柄pstrFileName-文件名称(全部路径)pszReName-文件重命名
(7)中止文件发送
DWORDDT_Net_AbortFile(unsignedintnIDSocket);
参数:nIDSocket-Client端套接字句柄
(8)断开连接
DWORDDT_Net_DisConnect(unsignedintnIDSocket);
参数:nIDSocket-套接字句柄
(9)连接服务器
DWORDDT_Net_ConnectRemote(LPCTSTRpstrRemoteIP,unsignedlongnRemotePort);
参数:pstrRemoteIp-服务器IP地址;nRemotePort-服务器端口号
4.1.2实现文件传输
将监控中心作为SocketServer,启动监听: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_SENDFILE_CALLBACK,LPNET_RECVFILE_CALLBACK,LPNET_ABORTFILE_CALLBACK);
各站点作为SocketClient,也设置回调函数,并主动去连接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_SENDFILE_CALLBACK,LPNET_RECVFILE_CALLBACK,LPNET_ABORTFILE_CALLBACK);
DT_Net_ConnectRemote(ServerIP,ServerPort);
每个站点和监控中心之间建立的独立通道,当连接建立成功后,就可以利用该套接字在该站点与监控中心之间收发文件:
DT_Net_SendFile(theSocket,FileName);
4.2XML文件封装协议
不同的数据终封装成的XML文件是不同的,但是为了便于处理,把每一个XML文件分成两个主要的部分(Head和Data),如图3所示:
(1)Head部分系统中的任何一个XML数据文件都有相同的Head(数据包头),表明该XML文件的优先级(priority)、数据种类(FrameType)、来自何处(FromStationNo,站点编号,如果是服务器则为“0”)以及封装时间(DateTime)。
(2)Data部分这一部分是XML文件所要封装的数据内容,基本按字段格式排列即可。要注意数据类型转换的问题,任何数据都必须想方设法转换成字符串类型的表示形式。
4.3XML文件控制
在实现了文件传输的基础上,对XML文件的封装、解析、接收和发送等操作使用多线程方式并行处理,并且引入队列(Queue)的机制。监控中心的基本处理机制与流程如图4所示:
文件接收线程接收到XML文件后,先不管文件的具体内容,只负责将文件入队。然后由专门负责从队列中提取文件的线程将文件取出,由处理线程进行解析、处理,并将数据保存至数据库,同时还要生成确认应答的XML文件放如发送队列中。另外有专门负责发送文件的线程将文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采购代理廉洁自律制度
- 采购保密管理制度
- 采购全流程监督制度范本
- 采购原材料询价制度
- 采购制度通知文案范本
- 采购单据及对账管理制度
- 采购双流水采购制度
- 采购合同应该谁管理制度
- 采购员出差日常管理制度
- 采购员现场随身工具管理制度
- (完整版)笔录模板
- EN ISO 15614-05金属材料焊接工艺规程与评定-焊接工艺试验 中文
- 惠州市惠城区2022-2023学年数学六年级第二学期期末综合测试试题含解析
- 2023年江苏对口单招财会高考试卷
- 工程地质勘察报告110000字
- 实验动物课件 实验动物的营养控制-研究生2018
- YY/T 1778.1-2021医疗应用中呼吸气体通路生物相容性评价第1部分:风险管理过程中的评价与试验
- GB/T 23901.1-2019无损检测射线照相检测图像质量第1部分:丝型像质计像质值的测定
- FZ/T 73009-2021山羊绒针织品
- 印刷及纸张基础知识培训课件
- 利用导数证明数列不等式问题课件-高考数学二轮复习
评论
0/150
提交评论