王富強,曾 凌,張運福,陳宏波,唐 瑜
(重慶金美通信有限責任公司,重慶400030)
隨著瀏覽器技術的普及,瀏覽器提供的圖形化界面越來越友好,在監(jiān)控系統(tǒng)方面,運用Web 技術的監(jiān)控,已逐漸成為眾多類型監(jiān)控系統(tǒng)不可或缺的一部分。其中,基于嵌入式Linux 系統(tǒng)的無線通信設備的Web 遠程監(jiān)控系統(tǒng),結合了先進的Web 技術和嵌入式技術,可通過Web 技術實現(xiàn)客戶端與服務器端的跨平臺信息交互,具有功能強大、實時性強、可靠性高和結構小巧等優(yōu)點[1-2]。
在對系統(tǒng)的控制設備進行設計時,采用以太網(wǎng)通信,同時在設備內(nèi)部嵌入WEB 服務器,通過PC機的瀏覽器訪問設備的IP 地址,就可以直接對設備進行控制與監(jiān)測??蛻舳藷o需開發(fā)任何用戶界面,用戶也不需要下載安裝特殊的控制軟件,只需通過PC機上的瀏覽器就能遠程訪問設備上的Web 界面,達到對設備狀態(tài)實時監(jiān)控的目的。由此降低了Web 監(jiān)控系統(tǒng)軟件的開發(fā)難度,縮短了開發(fā)周期,節(jié)約了研發(fā)成本,同時也有助于提高Web 監(jiān)控系統(tǒng)軟件的實用性和移植性。
系統(tǒng)的客戶端采用支持HTML5 的瀏覽器,服務器采用開源的Apache 服務器,后端采用基于PHP 語言的腳本程序,數(shù)據(jù)庫采用支持XML 的主控軟件。以無線通信設備作為監(jiān)控對象,監(jiān)控目標包括:設備運行狀態(tài)、設備性能、設備參數(shù)的配置和查詢操作、文件下載和上傳功能。
系統(tǒng)的開發(fā)體系結構采用Brower/Server(即B/S)系統(tǒng)架構。在每個設備中搭建一個Web 服務器,通過以太網(wǎng)連接一個設備,接入設備局域網(wǎng)絡中,可以任意訪問此網(wǎng)絡中的設備中的Web 服務器,實現(xiàn)局域網(wǎng)內(nèi)所有設備的實時監(jiān)控。簡單的場景應用網(wǎng)絡拓撲結構如圖1 所示。
圖1 網(wǎng)絡拓撲結構
在整個網(wǎng)絡中,客戶端和服務器端之間節(jié)點不對HTTP 請求及響應做任何操作,用戶在PC 機上的瀏覽器中輸入目的設備的IP 地址,就可以訪問相應的無線設備的Web 監(jiān)控界面。
按照此法設計的監(jiān)控系統(tǒng)架構的優(yōu)勢如下:
(1) 具有分布式特點,具備實時業(yè)務處理能力;
(2) 開發(fā)簡便,共享性強:只需在服務器端進行網(wǎng)頁程序開發(fā),客戶端只需瀏覽器就可以訪問,降低了用戶的總體成本,提高了監(jiān)控系統(tǒng)的實用性和可移植性;
(3) 軟件升級和維護方便快捷:進行軟件升級和維護操作時,不需要關閉服務器,只需對服務器端網(wǎng)頁程序進行替換,即可實現(xiàn)用戶端的Web 監(jiān)控界面在線同步更新,以此減輕了Web 監(jiān)控系統(tǒng)維護與升級的成本和工作量。
無線通信設備采用的是基于PC(PowerPC)平臺的Linux 操作系統(tǒng)。嵌入式Linux 系統(tǒng)具有以下幾個特點:
1、內(nèi)核源碼完全開放,用戶可以根據(jù)具體的應用需求對內(nèi)核源碼進行修改和優(yōu)化,實現(xiàn)內(nèi)核源碼的定制化;
2、具有強大的網(wǎng)絡支持功能,支持TCP/IP 協(xié)議;
3、擁有便捷的開發(fā)工具,能為開發(fā)人員提供多種開源的開發(fā)者工具,方便開發(fā)人員對Web 應用軟件的開發(fā),節(jié)約了Web 監(jiān)控系統(tǒng)軟件的開發(fā)成本,提高了Web 監(jiān)控系統(tǒng)軟件的開發(fā)效率;
4、具有廣泛的硬件支持特性,宜于在不同平臺上進行軟件移植;
5、保密性高,程序運行在保護模式下,防止重要的數(shù)據(jù)被截獲。
監(jiān)控系統(tǒng)的Web 服務器采用開源的Apache 服務器。Apache 是一個單任務的HTTP 服務器,源代碼開放,性能高,支持認證和PHP 等,在嵌入式系統(tǒng)資源有限的情況下,它的快速性和可靠性非常適合于嵌入式系統(tǒng)的應用[3]。
基于PowerPC 平臺的Linux 操作系統(tǒng)的嵌入式Web 服務器搭建分為兩個方面:服務器環(huán)境搭建和服務器源碼交叉編譯。
在服務器環(huán)境搭建中,把定義的GCC 編譯器指定為pc-linux-gnuspe-gcc、交叉編譯數(shù)據(jù)壓縮用的函式庫(zlib)、字庫(freetype)、圖像壓縮庫(jpeg)、語言解析器(xml)、圖片識別(PNG)和腳本解析器(PHP)。
在Web 服務器源碼交叉編譯前,首先利用configure 命令引用已經(jīng)搭建好的環(huán)境庫文件和參數(shù)配置。然后用pc-linux-gnuspe-gcc 編譯器進行交叉編譯,編譯成功后生成一個可運行在PowerPC 平臺下的httpd 可執(zhí)行文件。然后在平臺上修改配置文件,在httpd.conf 文件中配置服務器的端口號、用戶信息和PHP 文檔存放目錄等參數(shù)信息,在httpd_mpm.conf 文件中配置服務器工作模式、進程等參數(shù)。至此,通過瀏覽器就可以訪問存放在服務器里的靜態(tài)PHP 網(wǎng)頁,實現(xiàn)對無線設備運行狀態(tài)的實時監(jiān)控。
監(jiān)控系統(tǒng)軟件采用分層、模塊化的結構設計[4],軟件分為3 層,第一層是界面層,提供給用戶操作使用的可視化界面;第二層是數(shù)據(jù)處理層,處理客戶的操作請求和采集到的設備數(shù)據(jù)等信息;第三層是接口層,負責服務器端與主控軟件模塊通信。
接口層采用Sokect 通道與主控軟件進行信息交互,包括用戶操作信息、設備運行狀態(tài)、設備操作記錄、報警事件和日志等數(shù)據(jù)信息。
數(shù)據(jù)處理層采用PHP 腳本語言建立各模塊之間的通信橋梁,通過與嵌入式Web 服務器之間的數(shù)據(jù)通信,實現(xiàn)對設備運行狀態(tài)和設備參數(shù)信息的實時讀取?;贘avaScript 語言進行Web 頁面各個程序的動態(tài)交互,維護系統(tǒng)中其它模塊之間的通信。
界面層接收來自數(shù)據(jù)處理層的實時數(shù)據(jù)和用戶操作指令,生成各種抽象的表格、曲線圖或圖形動畫等來顯示設備的運行狀態(tài)。其中,曲線圖以Jtopo、Highcharts 控件的組件方式設計,使Web 監(jiān)控界面呈現(xiàn)出最直觀的設備監(jiān)控效果。
客戶端的模塊化設計有利于將人機交互、動態(tài)數(shù)據(jù)和圖形動畫集成于一體的網(wǎng)絡遠程監(jiān)控平臺的開發(fā)[4]。針對各種不同的應用場景的監(jiān)控需求,可以靈活增減監(jiān)控頁面,靈活組態(tài)出符合特定要求的監(jiān)控界面,使系統(tǒng)監(jiān)控平臺的設計具有良好的模塊性和可移植性。
客戶端訪問服務器端的流程如圖2 所示。通過瀏覽器執(zhí)行JavaScript 腳本語言收集用戶在瀏覽器上的操作信息,通過Ajax 引擎?zhèn)鞯剑℉TTP 請求)Web服務器[5],由Web 服務器里的PHP 解析器進行信息處理,PHP 腳本程序通過Sokect 通道與Linux 系統(tǒng)中的主控模塊進行信息交互,并通過Web 服務器把交互返回的結果(PHP 數(shù)據(jù))提交給客戶端頁面的Ajax 引擎,再由Ajax 引擎來決定將這些數(shù)據(jù)(HTML+CSSS 數(shù)據(jù))插入到頁面的指定位置,生成各種抽象表格、曲線圖或圖形動畫等直觀的顯示效果界面[6]。
圖2 客戶端訪問服務器端流程
針對無線設備在不同應用場景下的監(jiān)控需求,設計研發(fā)了3 種監(jiān)控系統(tǒng)。根據(jù)不同的應用場景進行多點混合組網(wǎng)測試[7]。實際測試中的軟件界面如圖3 所示。
圖3 系統(tǒng)實測登錄界面
系統(tǒng)整體測試效果可歸納如下:
1) 保密性
在數(shù)據(jù)安全性的需求方面,系統(tǒng)提供了密碼訪問機制,用戶登錄時需要進行用戶名和密碼認證才可訪問本系統(tǒng)。每次跳轉(zhuǎn)頁面通過數(shù)據(jù)庫模塊進行用戶登錄的合法性驗證,防止非法訪問。每個頁面訪問內(nèi)置了時效性功能,防止長時間訪問一個頁面造成設備關鍵信息泄密。在數(shù)據(jù)采集方面,數(shù)據(jù)采集軟件(以嵌入式腳本語言PHP 通過Socket 通道與Linux 系統(tǒng)中的主控模塊進行數(shù)據(jù)交互)只在服務器平臺中運行,瀏覽器顯示的都是裁剪過的數(shù)據(jù),以此提高了軟件的保密性。
2) 設備狀態(tài)采集和控制
系統(tǒng)采用PHP 程序通過Socket 通道與主控模塊進行實時設備狀態(tài)信息交互,采集的設備數(shù)據(jù)在系統(tǒng)主界面上動態(tài)顯示,改善了遠程監(jiān)控的實時性。用戶可根據(jù)實際需要,通過客戶端瀏覽器對上設備上的各個軟硬件模塊進行參數(shù)的配置、查詢等操作。
3) 實時網(wǎng)絡運行監(jiān)控
系統(tǒng)的無線設備組網(wǎng)拓撲的監(jiān)控圖像界面,是根據(jù)采集的路由信息[8],采用Jtopo 控件實現(xiàn)的。實時顯示接入網(wǎng)絡設備的設備號、IP 地址、北斗信息、路由鏈路連接情況等信息,可令監(jiān)控端能夠隨時隨地用Web 瀏覽器監(jiān)控設備組網(wǎng)情況。
4) 遠程控制
在線設備處在組網(wǎng)狀態(tài)下,使用PC 機通過以太網(wǎng)連接一個設備,連接進入設備局域網(wǎng)絡中,可以任意訪問此網(wǎng)絡中的設備中的Web 服務器,實現(xiàn)對遠程設備運行狀態(tài)實時測控。
隨著無線網(wǎng)絡通信技術、數(shù)據(jù)采集技術和嵌人式控制技術的迅猛發(fā)展,基于Linux 操作系統(tǒng)的嵌入式Web 的監(jiān)控系統(tǒng),擺脫了傳統(tǒng)的集中控制系統(tǒng)在設計、使用和維護上的諸多局限性,將成為現(xiàn)代監(jiān)控技術發(fā)展的一個必然趨勢。在設計中提出的研發(fā)思路與實驗調(diào)試,都是在迎合這一發(fā)展趨勢,做出符合現(xiàn)有條件與現(xiàn)實需要的初步試探。對于系統(tǒng)的進一步完善與擴展,也將在后續(xù)的研究工作予以完成。