首页 > 范文大全 > 正文

基于Websocket的数据传输系统的研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Websocket的数据传输系统的研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:本文研究了传统的C/S架构油气监控系统,并结合业界前沿的Websocket协议以及HTML5标准实现了通过Web来实现对油气计量器的读数及显示。采用Web方式可以使多种终端接入并监控计量器数据,避免了需要针对各种设备开发不同客户端程序的投入,简化了访问程序,节省了数据传输及监控系统的成本。

关键词:Websocket 网络通信 数据传输

一、引言

随着信息和通讯技术的不断发展,油气传输自动化水平也不断提高。采用监控系统实现对油气的数据采集、运行状态监控、措施方案制定已成为一种必然趋势。大部分现有的油气监控系统是基于C/S客户端及服务器端程序的形式来提供的,服务器端程序(Server,S)装载在服务器上,客户端程序(Client,C)装载在监控PC上,C S之间通过TCP端口进行连接,由S向C传递采集的数据,提供给PC进行监控。一个典型的远程油气数据采集及监控系统如下图所示:

图 1 C/S架构下的数据采集监控系统

通过研究发现,此架构系统的优点在于,通过对TCP端口的监听和占用可以保证数据传输的实时性。但其仍存在若干不完善的地方:若实现此系统,需要向监控用PC上加装客户端应用程序,而由于实际电脑操作环境的复杂性,往往需要针对多个操作系统开发客户端应用程序;基于因特网的数据传输,组网方式单一,没能充分利用运营商搭建的现有数据网络(Packet Switched Domain,数据域);接入终端的局限性,不能在未安装客户端软件的终端使用监控功能,在智能手机终端和平板电脑高速发展的今天,无法提供针对这些终端的接入措施。

较普遍地,可以采用基于Web和HTTP协议的方式来提供对多种终端设备监控设备的支持。然而,采用HTTP协议后,数据传输的实时性不能得到保证,除非采用AJAX或轮询的方式,而这将大大增加系统开发难度和部署成本。

在2009年,为解决HTTP协议的实时性问题,IETF工作组提出了websocket协议草案为HTTP协议支持双向的长连接提供了明确的理论依据。随后,W3C在新一代HTML5的标准制定中,也明确了对Websocket协议的支持,即标准的浏览器软件即可支持Websocket的特性。

基于前述的标准化趋势,及协议的理论支持,本文提出和设计了一种低成本的基于Websocket通讯方式的数据传输系统设计方案,旨在提供多终端随时随地接入油气传输数据的监控,简化监控终端的操作,降低部署成本、提高处理效率。

二、基于Websocket的数据传输系统

1.系统概述

本系统以S3C6410 ARM处理器为核心,由数据采集模块、数据处理模块、数据传输模块三个模块组成。数据采集模块通过A/D可以完成对油气流量等数据的采集;数据处理模块采用Qt语言开发,可以实现采集数据的转化、Web服务程序、采集数据的显示、采集数据的缓存和基本的GPIO功能保证远程故障诊断分析;数据传输模块采用LAN、WIFI、及GPRS通讯模块实现数据的传送,此外本系统配备一个服务器作为备份数据存储,及辅助Web服务的功能。本系统对监控用设备,譬如PC或者手持终端没有额外要求,仅要求其支持HTML5标准的浏览器软件即可。

图 2 基于Websocket的数据采集监控系统

2.主要模块构成及功能

数据采集模块,在S3C6410 ARM主板内实现,通过RS-232或RS485串行接口、外置A/D及内置I/O读取计量计数据,并交由数据处理模块进行处理。

数据处理模块,板卡内装载Linux嵌入操作系统,默认开启 Httpd(Web服务),并安装PHP和MySQL作为服务器解释语言。其中服务器端需要单独实现一个PHP程序来作为Websocket的主服务程序:INDEX.PHP。采集的数据通过中断或者定时查询的方式由数据处理模块获取,系统默认在LCD界面上显示计量器的状态和读数,同时数据在后台交由主服务程序INDEX.PHP访问。

辅助服务器,其作用在于存储实时数据,并提供辅助的Web服务。其中,实时数据的获取通过主服务板卡的嵌入操作系统提供的服务程序datap和辅助服务器内程序的TCP Socket连接完成。辅助的Web服务,用于分流主服务板卡的流量以及作为冗余备份。

数据传输模块,板卡内置LAN、WIFI、GPRS模块,组网时应按照现场情况选择合适的物理链路接口。

访问终端,通过支持HTML5的浏览器,通过内部或外部IP地址访问主网页,触发浏览器与主服务板卡的Web服务程序握手并建立Websocket连接,此时主服务板卡通过Web服务程序将读取的实时数据发送给浏览器。至此,终端通过浏览器即可访问实时的计量器数据,浏

览界面如下图所示:

图 3 终端浏览器显示计量器数据(模拟)

三、引申及结论

相较于传统的基于因特网和固定PC的监控方式,使用移动运营商提供的数据域链路和因特网相结合以及提供Web服务的方式,可以使多种终端以更简便的方式接入并获取及显示数据;相较于传统的基于Web的实时数据传输,例如轮询和AJAX的方式,使用Websocket可以使HTTP保持长连接的成本降低,减少了握手会话的传输字节,提高了传输效率,降低了带宽占用,节约了成本,创造了经济效益。

参考文献:

[1] Network Working Group. The WebSocket protocol draft-hixie-thewebsocketprotocol-76. IETF Draft. May 2010. http:///id/draft-hixie-thewebsocketprotocol-76.txt

[2](美)卡尔弗特著,周恒民译. Java TCP/IP Socket编程. 北京:机械工业出版社. 2009

[3](澳)威利著,武欣译. PHP和MySQL Web开发. 北京:机械工业出版社. 2009