一种可扩展远程监控系统的设计与实现
2014-11-20易发胜龚海刚汪海鹰
易发胜,龚海刚,汪海鹰
(1.成都学院模式识别与智能信息处理四川省高校重点实验室,四川成都610106;2.成都学院信息科学与技术学院,四川成都610106;3.电子科技大学计算机学院,四川成都610054)
数字标牌系统广泛应用于各种信息的及时发布,特别是突发事件或者灾难信息通告等方面。系统中有大量智能终端设备分布在广泛的地区工作。如何有效地检测和控制这些设备,是系统的一个重要功能。由于播放设备种类多样,新旧设备混杂,且系统在不断更新,要求监控内容越来越细致,如何形成统一的监控体系是一个迫切的问题。
一直以来,远程监控都是一个智能系统必不可少的要求。许多复杂场景的远程监控采用视频监控形式[1-2]。近年来,伴随着智能家居的发展,越来越多的研究开始关注家电设备的远程监控[3-5],因为系统规模小,这些控制相对简单。随着大型系统中大量智能设备的应用,远程监控技术得到越来越多的研究[6-9]。由于监控信息的多样化,基于扩展性和互换性要求,XML技术在监控系统中得到广泛的应用[8-9]。
同上述研究相比,数字标牌系统在远程监控方面面临更多挑战。比如一个数字标牌系统往往有大量不同版本、不同类型的播放终端,且不同时期要监控的信息也不一样。这都增加了监控系统的难度。本文根据数字标牌系统远程监控面临的问题,充分利用可扩展的结构设计和XML技术,设计了一种扩展性强的远程监控系统。最后通过实际测试,显示这样的设计是可行有效的。
1 系统框架结构及关键技术
1.1 系统框架结构
监控系统的主要目标有两个,一是可以通过系统了解终端设备的工作情况;二是可以通过系统对终端设备进行必要的控制。此外,也需要终端设备发生重要状况时可以主动发出报警信息。
考虑到实际应用环境的需要和网络情况的适应性,本方案采用的系统框架结构如图1所示。
图1 监控系统框架结构
图1是一个逻辑框架结构,图中,管理程序和监控程序之间有一个接入服务器,这主要是考虑大多数被监控的设备及监控信息管理者都处于内网中,二者无法直接访问,利用接入服务器中转,便于管理程序和监控程序进行通信。同时,接入服务器对监控程序和管理程序进行接入管理,也保证了系统的安全要求。
1.2 系统结构的扩展性
系统中的监控程序运行于不同的终端设备上,可能具有不同的监控要求。这些监控要求还可能随着时间的变化而变化。比如,早期监控程序可能仅仅监控终端的功能程序执行情况,如通过接口获取一些特别变量值、读取运行日志等;而后期可能又需要监控系统信息,比如内存占用大小、磁盘剩余空间、系统运行进程等多方面信息。可扩展的体系结构应该很方便地反应检测信息和控制行为的更新变化,所以采用合理的监控程序结构设计是需要重点考虑的。
目前,有许多可扩展的程序设计技术,比如动态库技术、中间件技术、动态升级技术等。良好的结构可以确保在系统要求监控信息和行为发生改变时,对系统的修改和影响最小。基于此,本系统采用了可动态升级的动态库组件作为控制程序的核心,实现了监控系统结构扩展性要求。
1.3 基于XML的监控信息表示
为了适应多种多样的且频繁变化的监控信息的采集、传输、显示和控制管理,采用一种扩展的信息描述方法也是本系统的必然要求。
XML可扩展标记语言在数据表示和数据交换方面具有强大的功能,已成功应用在各种领域的数据交换和系统集成中。在本系统中,为了实现监控信息与传输的无关性,特别设计了监控信息标记语言(MIML),通过合理的协议设计,接入服务器完全不需要知道监控信息的具体内容。而管理程序只要根据语言描述展现信息即可。因此,针对不同终端的不同监控要求,虽然其监控信息内容因为不断升级而不一样,但是并不需要接入服务器和管理程序同步升级,大大简化了系统的维护工作。
2 系统设计与实现
2.1 基于XML的监控信息描述
可扩展的监控系统需要支持各种监控信息的采集传输和显示,特别是考虑到未来扩展和升级的要求。一般来说,远程监控信息体现在如下几个方面:
1)管理程序发送远程控制要求,监控程序返回远程控制结果和控制后状态信息;
2)发生故障或者意外时,监控程序主动向管理程序发送的告警信息;
3)管理程序定时或者随机发送的查询信息请求,监控程序返回恰当的信息。
信息的产生、执行和显示主要在监控程序和管理程序之间。管理程序需要能够识别并合理显示监控程序送过来的各种信息;而监控程序能够根据配置或者管理程序的要求,及时执行控制命令或者返回查询信息,并主动汇报异常信息。根据扩展性要求,需要管理程序能够合理显示一种监测信息;而监控程序可以根据播放终端的类型,合理地执行管理程序的控制要求及给出可升级的信息。
采用具有扩展性的XML为基础,本方案专门为监控信息传输和处理而建立的MIML可以很好地实现上述各种监控信息的需要,实现监控程序和管理程序之间的数据信息扩展性共享。
根据监控信息的特点,MIML主要是描述各种监控信息的内容和显示方式,结合了XML描述数据内容的特点和HTML描述显示的功能。这样设计的好处在于,无论监控程序如何升级,显示的信息如何变化,管理程序都可以很好地显示给用户查看。
MIML对每个信息内容采用3个标签表示,即名称、类型和值。对于一组信息具有分类属性。对一组或者一个信息还有一个统一的显示描述。分别描述其标题、位置、颜色、字型等简单的显示要素。以下是一个符合MIML的简单描述代码:
MIML支持默认处理,比如显示属性如果都是默认显示,则可以不需要描述;另外,对于一些二进制数据,比如图片、声音或者文件传输,MIML仅传输相关URL,然后由具体传输协议处理,这大大简化了MIML的设计。为了动态获取监控程序的功能,type为5时表示后面跟子控制命令,由于篇幅关系,不再对子控制命令做详细说明。
为了处理方便,MIML严格实行端到端逻辑,仅仅是监控程序和管理程序之间的逻辑。同时,为了扩展性要求和处理方便,设计了可扩展的监控信息传输协议,采用option=value的格式。如图2所示。
图2 监控信息传输报文格式
协议的选项包括3种,即信息类型(type),表示监控信息的种类;信息内容(content),表示信息的具体XML描述;信息长度(length)则表示信息内容的长度,避免XML内容中具有选项字而影响协议的解析。信息类型的设计要便于分类处理,结合监控程序和管理程序设计的需要,信息类型的设计如表1所示。
表1 监控信息基本类型及其含义
信息类型是可扩展的,具体一个设备可以监测或者控制的信息类型可以通过一个查询得到,然后再根据信息类型进行详细查询,以确保系统的可扩展性要求。
2.2 监控程序设计
虽然数字标牌系统终端类型多样,且要求监控的信息在不同类型之间也具有差异,但是确保相似的程序架构设计可确保信息处理和升级流程具有一致性。目前大多数播放终端采用了Linux和Windows平台,虽然Android系统也逐渐流行,但是其内核仍然是Linux的。考虑到监控程序不需要界面,完全是自动执行,因此仅仅考虑给予Linux和Windows的服务程序编程模式。
无论Linux和Windows的服务程序,都支持C语言程序并可采用动态库技术,因此采用适合动态升级的动态库插件有利于满足监控程序的监控能力扩展改进要求。其程序结构如图3所示。
图3 监控程序结构
在图3中,程序由3个层次的模块构成。其中通用通信模块完成与接入服务器的基本通信要求。而最上面的监控模块都是动态库,它们对外具有统一的接口。在导入内存后,向协议分析和任务派发模块注册其可以处理的信息类型。这些监控模块可以随时替换升级、增加或者减少。比如对于可以远程控制的,可以增加远程控制模块,实现对终端的关机、重启等操作;对于具有传感器的终端,可以增加处理类型为6的监控模块,从而支持对传感器的信息获取和检查。最大限度地适应了数字标牌终端类型多样和监控信息区别对待的要求。
各个动态模块分别对所负责的信息类型进行处理,即对接收到XML要求的信息进行解析或者要返回的信息进行XML封装。协议分析与任务派发模块(PATD)是总控模块,协调整个程序的工作。它负责获取管理程序发来的请求,主要对类型0的报文进行分析。由于每个动态模块都需在PATD进行注册,管理程序对监控程序的能力查询可以在PATD完成并返回。而其他的要求则分别送到相应的模块处理。各个动态模块完成具体的监控功能后,返回的信息通过PATD封装返回给管理程序。
2.3 管理程序设计
相对于监控程序来说,管理程序比较简单。由于是管理人员使用,并不需要自动升级和过多的扩展性考虑,所以结构并不复杂。其设计重点是如何解析各种MIML以形成良好的监控信息展示效果。在实际数字标牌系统中,设备监控功能仅作为数字标牌系统设备管理的一个功能模块而存在。在此不再详细介绍。
3 系统测试及结果分析
为了体现设计的效果,本文设计了一个简单的实验环境,如图1所示的结构布置。按照前述的设计原理,实现了监控程序,运行于一个Windows XP系统的播放器下。然后实现了一个用C#编写的简单管理程序。接入服务器仅实现一个简单的转发处理。一开始,监控程序只有信息类型为3和4两种动态库,点击系统情况,管理程序的界面如图4所示。
图4 仅有两个监控模块的情形(截图)
然后在监控端增加了一个控制模块,重新运行监控程序和管理程序,点击远程控制按钮,可以得到如图5所示的界面。
图5 增加一个监控模块的情形(截图)
通过图4和图5比较,可以很容易看出监控程序容易实现监控功能的扩展,由于采用了易于扩展的MIML描述信息,管理程序可以自动适应监控程序的功能扩展,很好地实现了方案意图。
4 小结
本文针对数字标牌系统大量播放终端存在监控问题,讨论了可扩展的远程监控系统设计的关键技术在于两个方面,一是设计具有动态升级功能的监控模块;二是设计具有扩展性的监控信息描述语言。设计并实现了一个可扩展的远程监控系统,包括监控信息的描述方法MIML以及在此之上的传输协议实现方案,支持动态改进的监控程序和管理程序结构等。实际测试结果表明,按照这样设计的系统可很好地适应数字标牌监控系统复杂多样的情况,方便动态升级等扩展改进的需要。
[1]卢朝东.数字电视机房环境智能远程监测系统[J].电视技术,2012,36(6):92-94.
[2]聂雄,黄斌全.广西广播电视发射台远程监控系统的设计[J].电视技术,2011,35(22):78-81.
[3]郑娟毅.基于ZigBee技术的家庭WSN及远程控制研究[J].电视技术,2010,34(4):67-69.
[4]康志亮,李开国,许丽佳.基于TCP/IP协议的全自动电饭煲远程控制系统设计[J].电子技术应用,2012,37(6):99-102.
[5]李开国,康志亮,丁武伟,等.基于TCP/IP协议的家电远程控制系统设计[J],测控技术,2011,30(7):41-45.
[6]杨威,朱珍民,陈援非,等.远程访问UPnP网络的方法与实现[J].计算机工程与设计,2012,33(5):1691-1694.
[7]张冰,冯扬,罗恺恺.基于智能代理的远程控制技术研究[J].南京邮电大学学报,2009,29(3):21-26.
[8]周玲,叶桦,仰燕兰,等.基于XML的风电变流器监控软件配置信息存储方法[J].东南大学学报:自然科学版,2012,42(S1):140-145.
[9]顾九春,刘璐.基于XML的公路车辆只能监测信息交换研究[J].计算机应用研究,2012,29(8):2986-2990.