王富强,曾 凌,张运福,陈宏波,唐 瑜
(重庆金美通信有限责任公司,重庆400030)
随着浏览器技术的普及,浏览器提供的图形化界面越来越友好,在监控系统方面,运用Web 技术的监控,已逐渐成为众多类型监控系统不可或缺的一部分。其中,基于嵌入式Linux 系统的无线通信设备的Web 远程监控系统,结合了先进的Web 技术和嵌入式技术,可通过Web 技术实现客户端与服务器端的跨平台信息交互,具有功能强大、实时性强、可靠性高和结构小巧等优点[1-2]。
在对系统的控制设备进行设计时,采用以太网通信,同时在设备内部嵌入WEB 服务器,通过PC机的浏览器访问设备的IP 地址,就可以直接对设备进行控制与监测。客户端无需开发任何用户界面,用户也不需要下载安装特殊的控制软件,只需通过PC机上的浏览器就能远程访问设备上的Web 界面,达到对设备状态实时监控的目的。由此降低了Web 监控系统软件的开发难度,缩短了开发周期,节约了研发成本,同时也有助于提高Web 监控系统软件的实用性和移植性。
系统的客户端采用支持HTML5 的浏览器,服务器采用开源的Apache 服务器,后端采用基于PHP 语言的脚本程序,数据库采用支持XML 的主控软件。以无线通信设备作为监控对象,监控目标包括:设备运行状态、设备性能、设备参数的配置和查询操作、文件下载和上传功能。
系统的开发体系结构采用Brower/Server(即B/S)系统架构。在每个设备中搭建一个Web 服务器,通过以太网连接一个设备,接入设备局域网络中,可以任意访问此网络中的设备中的Web 服务器,实现局域网内所有设备的实时监控。简单的场景应用网络拓扑结构如图1 所示。
图1 网络拓扑结构
在整个网络中,客户端和服务器端之间节点不对HTTP 请求及响应做任何操作,用户在PC 机上的浏览器中输入目的设备的IP 地址,就可以访问相应的无线设备的Web 监控界面。
按照此法设计的监控系统架构的优势如下:
(1) 具有分布式特点,具备实时业务处理能力;
(2) 开发简便,共享性强:只需在服务器端进行网页程序开发,客户端只需浏览器就可以访问,降低了用户的总体成本,提高了监控系统的实用性和可移植性;
(3) 软件升级和维护方便快捷:进行软件升级和维护操作时,不需要关闭服务器,只需对服务器端网页程序进行替换,即可实现用户端的Web 监控界面在线同步更新,以此减轻了Web 监控系统维护与升级的成本和工作量。
无线通信设备采用的是基于PC(PowerPC)平台的Linux 操作系统。嵌入式Linux 系统具有以下几个特点:
1、内核源码完全开放,用户可以根据具体的应用需求对内核源码进行修改和优化,实现内核源码的定制化;
2、具有强大的网络支持功能,支持TCP/IP 协议;
3、拥有便捷的开发工具,能为开发人员提供多种开源的开发者工具,方便开发人员对Web 应用软件的开发,节约了Web 监控系统软件的开发成本,提高了Web 监控系统软件的开发效率;
4、具有广泛的硬件支持特性,宜于在不同平台上进行软件移植;
5、保密性高,程序运行在保护模式下,防止重要的数据被截获。
监控系统的Web 服务器采用开源的Apache 服务器。Apache 是一个单任务的HTTP 服务器,源代码开放,性能高,支持认证和PHP 等,在嵌入式系统资源有限的情况下,它的快速性和可靠性非常适合于嵌入式系统的应用[3]。
基于PowerPC 平台的Linux 操作系统的嵌入式Web 服务器搭建分为两个方面:服务器环境搭建和服务器源码交叉编译。
在服务器环境搭建中,把定义的GCC 编译器指定为pc-linux-gnuspe-gcc、交叉编译数据压缩用的函式库(zlib)、字库(freetype)、图像压缩库(jpeg)、语言解析器(xml)、图片识别(PNG)和脚本解析器(PHP)。
在Web 服务器源码交叉编译前,首先利用configure 命令引用已经搭建好的环境库文件和参数配置。然后用pc-linux-gnuspe-gcc 编译器进行交叉编译,编译成功后生成一个可运行在PowerPC 平台下的httpd 可执行文件。然后在平台上修改配置文件,在httpd.conf 文件中配置服务器的端口号、用户信息和PHP 文档存放目录等参数信息,在httpd_mpm.conf 文件中配置服务器工作模式、进程等参数。至此,通过浏览器就可以访问存放在服务器里的静态PHP 网页,实现对无线设备运行状态的实时监控。
监控系统软件采用分层、模块化的结构设计[4],软件分为3 层,第一层是界面层,提供给用户操作使用的可视化界面;第二层是数据处理层,处理客户的操作请求和采集到的设备数据等信息;第三层是接口层,负责服务器端与主控软件模块通信。
接口层采用Sokect 通道与主控软件进行信息交互,包括用户操作信息、设备运行状态、设备操作记录、报警事件和日志等数据信息。
数据处理层采用PHP 脚本语言建立各模块之间的通信桥梁,通过与嵌入式Web 服务器之间的数据通信,实现对设备运行状态和设备参数信息的实时读取。基于JavaScript 语言进行Web 页面各个程序的动态交互,维护系统中其它模块之间的通信。
界面层接收来自数据处理层的实时数据和用户操作指令,生成各种抽象的表格、曲线图或图形动画等来显示设备的运行状态。其中,曲线图以Jtopo、Highcharts 控件的组件方式设计,使Web 监控界面呈现出最直观的设备监控效果。
客户端的模块化设计有利于将人机交互、动态数据和图形动画集成于一体的网络远程监控平台的开发[4]。针对各种不同的应用场景的监控需求,可以灵活增减监控页面,灵活组态出符合特定要求的监控界面,使系统监控平台的设计具有良好的模块性和可移植性。
客户端访问服务器端的流程如图2 所示。通过浏览器执行JavaScript 脚本语言收集用户在浏览器上的操作信息,通过Ajax 引擎传到(HTTP 请求)Web服务器[5],由Web 服务器里的PHP 解析器进行信息处理,PHP 脚本程序通过Sokect 通道与Linux 系统中的主控模块进行信息交互,并通过Web 服务器把交互返回的结果(PHP 数据)提交给客户端页面的Ajax 引擎,再由Ajax 引擎来决定将这些数据(HTML+CSSS 数据)插入到页面的指定位置,生成各种抽象表格、曲线图或图形动画等直观的显示效果界面[6]。
图2 客户端访问服务器端流程
针对无线设备在不同应用场景下的监控需求,设计研发了3 种监控系统。根据不同的应用场景进行多点混合组网测试[7]。实际测试中的软件界面如图3 所示。
图3 系统实测登录界面
系统整体测试效果可归纳如下:
1) 保密性
在数据安全性的需求方面,系统提供了密码访问机制,用户登录时需要进行用户名和密码认证才可访问本系统。每次跳转页面通过数据库模块进行用户登录的合法性验证,防止非法访问。每个页面访问内置了时效性功能,防止长时间访问一个页面造成设备关键信息泄密。在数据采集方面,数据采集软件(以嵌入式脚本语言PHP 通过Socket 通道与Linux 系统中的主控模块进行数据交互)只在服务器平台中运行,浏览器显示的都是裁剪过的数据,以此提高了软件的保密性。
2) 设备状态采集和控制
系统采用PHP 程序通过Socket 通道与主控模块进行实时设备状态信息交互,采集的设备数据在系统主界面上动态显示,改善了远程监控的实时性。用户可根据实际需要,通过客户端浏览器对上设备上的各个软硬件模块进行参数的配置、查询等操作。
3) 实时网络运行监控
系统的无线设备组网拓扑的监控图像界面,是根据采集的路由信息[8],采用Jtopo 控件实现的。实时显示接入网络设备的设备号、IP 地址、北斗信息、路由链路连接情况等信息,可令监控端能够随时随地用Web 浏览器监控设备组网情况。
4) 远程控制
在线设备处在组网状态下,使用PC 机通过以太网连接一个设备,连接进入设备局域网络中,可以任意访问此网络中的设备中的Web 服务器,实现对远程设备运行状态实时测控。
随着无线网络通信技术、数据采集技术和嵌人式控制技术的迅猛发展,基于Linux 操作系统的嵌入式Web 的监控系统,摆脱了传统的集中控制系统在设计、使用和维护上的诸多局限性,将成为现代监控技术发展的一个必然趋势。在设计中提出的研发思路与实验调试,都是在迎合这一发展趋势,做出符合现有条件与现实需要的初步试探。对于系统的进一步完善与扩展,也将在后续的研究工作予以完成。