王二勇,謝維波,郭一蘭
(1.華僑大學 計算機科學與技術學院,福建 泉州 362021;2.華僑大學 廈門軟件園嵌入式技術開放實驗室,福建 廈門 361008)
可定制型監控設備軟件的設計與實現
王二勇1,2,謝維波1,2,郭一蘭1,2
(1.華僑大學 計算機科學與技術學院,福建 泉州 362021;2.華僑大學 廈門軟件園嵌入式技術開放實驗室,福建 廈門 361008)
提出在監控系統軟件的設計上采用監控設備配置的可定制性原則,以及線程的可調度性和降低硬件數據采集與數據分析的耦合性思想,并給出基于現代監控系統的整體參考模型.與傳統監控系統軟件相比較,監控設備參數的可定制性使監控系統所能監控的設備范圍更加廣泛,線程的可調度性及有效降低硬件數據采集與數據分析的耦合性,極大地提高了硬件采集數據的能力和監控系統的實時性.
監控系統;可定制;可調度;耦合性;實時性
近年來,利用監控系統軟件[1-2]來控制機房與工業監控設備的需求日趨上升.監控軟件所能監控設備的覆蓋面,是衡量監控軟件性能的一項重要指標.基于目前市面上出現的大多數機房與工業監控系統軟件對用戶所需要進行監控的設備的把握或預期不足,致使監控軟件在開發完畢交付客戶后,客戶在遇到新的或者軟件當中沒有預期到的設備時無法進行監控,導致后期在需要監控新的設備時,不得不在原有軟件的基礎上增加對新設備的支持 .這樣一方面極易破壞原有軟件的完整性,另一方面也不利于軟件的后期市場銷售.同時,在機房及工業控制領域,對監控設備的快速響應也是一項頗為棘手的難題.雖然通過實時性操作系統的設計,可使這個難題在一定程度上得到緩解,但對于在實時性操作系統上運行的監控系統軟件而言,實時性卻沒有得到軟件設計者們更多的關注.本文從客戶可對監控設備參數進行相應定制的方面著手,研究與探討通過可調度、可定制設備的方式,快速響應監控設備變化的監控系統軟件實現方案.
根據目前各種監控設備的監控工作流程,給出如下形式化定義 .監控設備工作流程模型(supervisory control equipment workflow model,SEWM)可以表示為SEWM=〈S,C,E,D1,D2,G,F〉.其中:S表示關于設備參數設置的集合,S={s1,s2,…};C 表示設備發送命令的集合,C={c1,c2,…};E表示采集設備的集合,E={e1,e2,…};D1表示從設備返回的數據集合,D1={d1,1,d1,2,…};D2表示D1經分析得到的數據集合,D2={d2,1,d2,2,…};G 表示一個有限的硬約束函數集合,G={g1,g2,…};F表示一個有限的軟約束函數集合,F={f1,f2,…}.即有

式(1)的具體表示可通過參數配置的監控設備,在發送命令的情況下得到硬件采集的數據d1,i;式(2)的具體表示可將硬件采集到的數據d1,i,經過分析得到最終數據d2,i.整個監控軟件工作流程包含3個主要步驟:監控設備參數的設置、監控設備實施硬件數據采集,以及分析從硬件采集出來的數據.
從監控系統軟件的體系結構中不難發現,關于監控設備的參數設置問題主要集中于監控設備工作流程模型中的E(設備),S(設備參數設置),C(設備控制命令).這3者之間的關系為

即對于任意的設備ei,存在相應的設置sj,以及依賴于ei,sj的發送命令ck,如圖1所示.由圖1可知:傳統監控系統軟件在面臨新設備或新設備種群時,不能有效適應監控的一個重要原因在于監控設備ei與設備參數設置sj及發送命令ck的耦合性較大.

圖1 E,S,C的依賴關系Fig.1 Dependencies of E,S,C
在提出的可定制型設計模式中,首先對需要監控的監控設備參數配置保持一無所知的狀態;其次,在進入實際監控之前,針對具體設備進行相應的配置,并將相應的配置保存;最后,當進入監控環節時,監控軟件讀取相應的設備參數及命令配置,按照這種方式所設計出來的監控軟件體系將能應對更加廣泛的監控設備群.
要實現可定制型設計方式,首先整個監控軟件需要有針對具體設備進行相應配置的組成模塊,即定義為監控系統軟件的配置模塊.監控系統軟件的配置模塊主要完成的工作有:對于具體的監控設備,根據其即將進行的監控配置要求進行相應的設備參數配置,并將配置好的設備參數保存于文件或數據庫中,待監控軟件讀取用于監控.在大型監控環境下,由于所需監控的監控設備數量和種類都相對比較大,因此有必要對設備參數配置進行有效的管理.為了有效地管理設備參數配置性數據,在監控軟件的系統架構的基礎上對E,C,S的形式化定義進行擴充 .即

其中:Ei為監控設備集E中的一類設備;Si,Ci為對應于Ei的參數配置及命令設置.將式(3)擴充為

根據上述監控設備可定制型定義及擴充后的監控軟件系統架構,可給出關于監控軟件設備參數可定制的流程示意圖,如圖2所示.圖2中:最下方的表格為各種類型的設備所對應的設備配置數據.

圖2 設備參數可定制型流程示意圖Fig.2 Routine of the customization of the monitoring device parameters
至此,通過在監控系統軟件中加入對監控設備的可配置性模塊,使得對于任何需要進行監控的設備在預先保持其配置不可知的情況下,有效地降低監控設備與其設備配置及發送命令的耦合性,提高了監控系統軟件所能監控的設備范圍.
在監控設備的硬件數據采集時,采用線程可調度的方式,即通過一個可調度程序來控制所有監控設備的硬件數據采集[3-4].
假定在操作系統P下,P下的內核進程調度程序平均每秒種分配給監控系統應用程序的時間片為T ms,監控系統軟件在運行時創建了N個線程,每個線程執行一次硬件數據采集需要的時間為t ms,以及假設P操作系統下的內核對于進程內的線程切換所需時間為Sms.該進程中,當所有線程執行一次硬件數據采集時線程的平均切換次數為R次,則當所有線程執行完一次硬件數據采集時需要時間Nt+RS ms,即監控應用程序的硬件采集頻率為

由式(5)不難發現,提高監控系統軟件的硬件數據采集頻率有兩種途徑:(1)減少監控系統軟件運行時創建的線程數量N;(2)減少進程內線程的切換次數R.
對于監控系統軟件運行時創建的線程數量N,可根據現代監控軟件關于設備采集的運行方式,總體可以歸結為按設備種類及配置劃分 .即在同一種類的設備當中配置相同的監控設備往往被劃分在同一線程當中,不同的配置被劃分于另一線程,不同種類的監控設備一般不在同一線程中[5].
為了有效地表達監控系統軟件中創建的最小線程數量,首先假設監控軟件中需要監控的設備種類有m類,每類監控設備當中不同的配置數量分別為Y1,Y2,…,Ym,則整個監控系統軟件運行時所需創建的最小線程數量為
當監控系統軟件中所有線程執行一次硬件數據采集,并且每個線程僅被切換一次,即切換次數R=時,進程內線程的切換次數最小.但這些條件都源于所依賴的操作系統,切換次數R的大小由所在操作系統的內核對進程內線程調度算法決定.
倘若在監控系統軟件中加入一個自定義的線程調度算法,使整個監控系統進程內并發執行的線程數為Q(Q<N),則操作系統P對進程內的線程切換頻率將有一定程度的下降 .具體下降比例與具體操作系統和進程內的線程數有關.比如在Windows系統下,對于一個擁有20個線程的監控進程,當使并發執行的線程數Q=3時,監控進程所采集到的數據量提高近20%.這意味著在監控進程內,通過將線程切換所消耗的時間轉由線程的硬件數據采集時間,提高了監控系統的數據吞吐量,從而也有效地提高了監控系統對監控設備的響應速率.
通過對以上分析,可以將式(5)擴充為

式(6)中:α為并發線程與進程內創建線程的百分比.
同時,對于操作系統而言,時間片通常是以進程為單位進行分配的.因此,對于整個監控系統進程而言,操作系統給其分配的時間片資源是非常有限的,進程內的所有線程在操作系統分配的時間片T下協同工作.倘若將整個監控系統進程的工作分配給多個進程(這里假設為P)時,每秒種監控運用程序相當于獲得了時間片PTms.即整個監控程序的數據采集量及頻率提高P倍,則有

由式(7)可知,P的數量越大,并不意味著整個監控運用程序的數據采集量越高.
根據現代操作系統內核在進程方面的調度原理,在一個操作系統中所運行的進程數越多,其占用的系統資源和進程間的切換頻率越高.進程間的切換伴隨著內存資源的獲取和釋放,與進程內的線程相比,進程間的切換將帶來更多的系統資源消耗,而其中最重要的資源之一便是對處理器資源的大量消耗.因此,監控系統程序中究竟該采用多少進程,應視具體硬件和操作系統環境而定,而不是一味地增加進程數P 的大?。?].
在現代體系設計的監控設備中,監控設備的硬件數據采集往往僅占整個數據采集過程非常小的一部分,通常只有40%左右.也就是說,監控設備從發送監控指令到分析出最后有用數據的整個過程中,耗時最長的過程并不在于硬件數據的采集,而在于分析監控設備采集的數據,這個過程平均占據整個過程的60%左右.因此,有效地分析監控設備采集的數據,將極大地提高整個監控軟件的性能.然而,在實踐中,雖然通過良好的編碼算法可以提高這個分析過程,但其所起到的作用還是顯得相對微弱.
圖3為傳統監控系統軟件的體系結構示意圖.由圖3可知,在傳統監控系統軟件中,監控設備從發送監控命令、硬件數據采集及數據分析處理,乃至獲得最終數據,整個過程通常都在同一線程中執行.這種硬件采集數據與數據分析處理的高耦合性,必然導致整個線程的工作量增加,降低硬件采集數據的吞吐量.為了有效降低這種耦合性,可以采用硬件數據采集與數據分析處理相分離的方式,使其在兩個線程當中執行.同時,考慮到監控設備的硬件數據采集中所提到的盡量降低監控系統進程內的線程數.

圖3 傳統監控系統軟件體系結構Fig.3 Traditional monitoring device software architecture
因此,僅僅使硬件數據采集與數據分析處理處于不同線程是不夠的,最好的方式是使硬件數據采集與數據分析處于不同的進程或平臺之中.據統計,在Windows平臺下,使硬件數據采集與數據分析處于兩個不同進程當中執行時,硬件的數據采集量提高近30%.也就是說,整個系統的監控實時性提高了將近四成,這極大地打破了傳統監控系統軟件的監控能力.
圖4為監控系統流程示意圖.圖4中:Design Module部分表示設計程序,用來定制監控設備各項參數;Device Gather Data Module部分表示監控設備采集各項環境數據;Data Analyse Module部分表示對采集到的數據進行分析處理及最后顯示.

圖4 監控系統流程圖Fig.4 Flow chart of the monitoring system
首先,通過編寫設計程序,使其功能主要具備數據庫的創建特性,將需要監控的設備的配置保存于數據庫當中,并且按照不同種類的設備存放于不同的數據庫表,可以對設備配置進行添加,刪除或修改.
其次,設計硬件采集數據的服務器程序 .服務器程序讀取上述數據庫中的設備配置,相同種類中不同的配置不置于同一個線程,及不同種類的設備置于不同的線程.根據實際需要,選擇是否將整個監控運用程序置于不同的進程當中 .通常在監控設備量較大,硬件及操作系統平臺允許的情況下可以采用多進程的方式減輕單個進程工作量大的壓力.然后,將進程當中的各個線程采集到的硬件數據發送至另一個進程當中.
最后,定制不同種類監控設備的數據分析模塊,完成分析各種不同類型硬件采集的數據,并將分析出來的最終數據按照需要的方式呈現.
通過校企合作項目的深入實踐,對監控設備參數配置的可定制式設計,使監控軟件相比于傳統監控系統而言,監控設備范圍在一定程度上的確得到了明顯的擴展 .尤其是在串口方面,幾乎涵蓋了整個串口監控設備群.通過采用可調度的策略及硬件數據采集與數據分析相分離的方式,在性能上,如監控系統對監控設備的響應速率及監控設備采集數據的吞吐量明顯得到很大的提高[1].
[1]林粵偉,魏權利,李麗萍,等.基于 VC++的局域網監控軟件的研制[J].計算機時代,2005(4):23-25.
[2]蔡榆榕.VB通訊控件在機房管理中的應用[J].華僑大學學報:自然科學版,2004,25(3):115-117.
[3]朱貴良,蔣小森,布輝,等.進程調度演進過程的仿真設計與實現[J].華北水利水電,2007,28(1):59-62.
[4]唐雅娟,楊子杰.串口通信多線程實現的分析[J].計算機應用研究,2001,18(11):32-34,37.
[5]吳先亮,劉春生.基于多線程的串口通信軟件的設計與實現[J].控制工程,2004,11(2):171-175.
[6]趙霞,于重重.Linux進程調度策略的研究[J].微型電腦應用,2001,17(1):20-22.
Research and Implementation on the Customization of Monitoring Device Software
WANG Er-yong1,2,XIE Wei-bo1,2,GUO Yi-lan1,2
(1.College of Computer Science and Technology,Huaqiao University,Quanzhou 362021,China 2.Laboratory of Embedded Technology of Xiamen Software Park,Huaqiao University,Xiamen 361008,Fujian)
In this paper we propose the customizableness of monitoring device as its system software design and implementation.The scheduling of the threads,and integrating the idea of reducing the data gathering and data analysis are concerned.An integrated reference model based on modern monitoring systems is illustrated.Compared with traditional monitoring system,the parameter customizable monitoring device can greatly broaden the monitoring range of the devices.The re-scheduling ability of the threads and the integration of both reducing hardware data gathering and data analysis can greatly improve data gathering ability and the real-time of the monitoring devices.
monitoring system;customization;schedule;coupling;real time
TP 393.07;TP 319
A
1000-5013(2011)06-0628-05
2010-11-29
謝維波(1964-),男,教授,主要從事計算機應用和數字信號處理的研究.E-mail:xwblxf@hqu.edu.cn.
福建省自然科學基金資助項目(2010J01334);福建省廈門市科技計劃項目(3502Z20083047);福建省廈門市重點產學研項目(廈經技[2009]233-03)
(責任編輯:黃曉楠 英文審校:吳逢鐵)