王二勇,謝維波,郭一蘭
(1.華僑大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,福建 泉州 362021;2.華僑大學(xué) 廈門軟件園嵌入式技術(shù)開放實驗室,福建 廈門 361008)
可定制型監(jiān)控設(shè)備軟件的設(shè)計與實現(xiàn)
王二勇1,2,謝維波1,2,郭一蘭1,2
(1.華僑大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,福建 泉州 362021;2.華僑大學(xué) 廈門軟件園嵌入式技術(shù)開放實驗室,福建 廈門 361008)
提出在監(jiān)控系統(tǒng)軟件的設(shè)計上采用監(jiān)控設(shè)備配置的可定制性原則,以及線程的可調(diào)度性和降低硬件數(shù)據(jù)采集與數(shù)據(jù)分析的耦合性思想,并給出基于現(xiàn)代監(jiān)控系統(tǒng)的整體參考模型.與傳統(tǒng)監(jiān)控系統(tǒng)軟件相比較,監(jiān)控設(shè)備參數(shù)的可定制性使監(jiān)控系統(tǒng)所能監(jiān)控的設(shè)備范圍更加廣泛,線程的可調(diào)度性及有效降低硬件數(shù)據(jù)采集與數(shù)據(jù)分析的耦合性,極大地提高了硬件采集數(shù)據(jù)的能力和監(jiān)控系統(tǒng)的實時性.
監(jiān)控系統(tǒng);可定制;可調(diào)度;耦合性;實時性
近年來,利用監(jiān)控系統(tǒng)軟件[1-2]來控制機(jī)房與工業(yè)監(jiān)控設(shè)備的需求日趨上升.監(jiān)控軟件所能監(jiān)控設(shè)備的覆蓋面,是衡量監(jiān)控軟件性能的一項重要指標(biāo).基于目前市面上出現(xiàn)的大多數(shù)機(jī)房與工業(yè)監(jiān)控系統(tǒng)軟件對用戶所需要進(jìn)行監(jiān)控的設(shè)備的把握或預(yù)期不足,致使監(jiān)控軟件在開發(fā)完畢交付客戶后,客戶在遇到新的或者軟件當(dāng)中沒有預(yù)期到的設(shè)備時無法進(jìn)行監(jiān)控,導(dǎo)致后期在需要監(jiān)控新的設(shè)備時,不得不在原有軟件的基礎(chǔ)上增加對新設(shè)備的支持 .這樣一方面極易破壞原有軟件的完整性,另一方面也不利于軟件的后期市場銷售.同時,在機(jī)房及工業(yè)控制領(lǐng)域,對監(jiān)控設(shè)備的快速響應(yīng)也是一項頗為棘手的難題.雖然通過實時性操作系統(tǒng)的設(shè)計,可使這個難題在一定程度上得到緩解,但對于在實時性操作系統(tǒng)上運行的監(jiān)控系統(tǒng)軟件而言,實時性卻沒有得到軟件設(shè)計者們更多的關(guān)注.本文從客戶可對監(jiān)控設(shè)備參數(shù)進(jìn)行相應(yīng)定制的方面著手,研究與探討通過可調(diào)度、可定制設(shè)備的方式,快速響應(yīng)監(jiān)控設(shè)備變化的監(jiān)控系統(tǒng)軟件實現(xiàn)方案.
根據(jù)目前各種監(jiān)控設(shè)備的監(jiān)控工作流程,給出如下形式化定義 .監(jiān)控設(shè)備工作流程模型(supervisory control equipment workflow model,SEWM)可以表示為SEWM=〈S,C,E,D1,D2,G,F(xiàn)〉.其中:S表示關(guān)于設(shè)備參數(shù)設(shè)置的集合,S={s1,s2,…};C 表示設(shè)備發(fā)送命令的集合,C={c1,c2,…};E表示采集設(shè)備的集合,E={e1,e2,…};D1表示從設(shè)備返回的數(shù)據(jù)集合,D1={d1,1,d1,2,…};D2表示D1經(jīng)分析得到的數(shù)據(jù)集合,D2={d2,1,d2,2,…};G 表示一個有限的硬約束函數(shù)集合,G={g1,g2,…};F表示一個有限的軟約束函數(shù)集合,F(xiàn)={f1,f2,…}.即有
式(1)的具體表示可通過參數(shù)配置的監(jiān)控設(shè)備,在發(fā)送命令的情況下得到硬件采集的數(shù)據(jù)d1,i;式(2)的具體表示可將硬件采集到的數(shù)據(jù)d1,i,經(jīng)過分析得到最終數(shù)據(jù)d2,i.整個監(jiān)控軟件工作流程包含3個主要步驟:監(jiān)控設(shè)備參數(shù)的設(shè)置、監(jiān)控設(shè)備實施硬件數(shù)據(jù)采集,以及分析從硬件采集出來的數(shù)據(jù).
從監(jiān)控系統(tǒng)軟件的體系結(jié)構(gòu)中不難發(fā)現(xiàn),關(guān)于監(jiān)控設(shè)備的參數(shù)設(shè)置問題主要集中于監(jiān)控設(shè)備工作流程模型中的E(設(shè)備),S(設(shè)備參數(shù)設(shè)置),C(設(shè)備控制命令).這3者之間的關(guān)系為
即對于任意的設(shè)備ei,存在相應(yīng)的設(shè)置sj,以及依賴于ei,sj的發(fā)送命令ck,如圖1所示.由圖1可知:傳統(tǒng)監(jiān)控系統(tǒng)軟件在面臨新設(shè)備或新設(shè)備種群時,不能有效適應(yīng)監(jiān)控的一個重要原因在于監(jiān)控設(shè)備ei與設(shè)備參數(shù)設(shè)置sj及發(fā)送命令ck的耦合性較大.
圖1 E,S,C的依賴關(guān)系Fig.1 Dependencies of E,S,C
在提出的可定制型設(shè)計模式中,首先對需要監(jiān)控的監(jiān)控設(shè)備參數(shù)配置保持一無所知的狀態(tài);其次,在進(jìn)入實際監(jiān)控之前,針對具體設(shè)備進(jìn)行相應(yīng)的配置,并將相應(yīng)的配置保存;最后,當(dāng)進(jìn)入監(jiān)控環(huán)節(jié)時,監(jiān)控軟件讀取相應(yīng)的設(shè)備參數(shù)及命令配置,按照這種方式所設(shè)計出來的監(jiān)控軟件體系將能應(yīng)對更加廣泛的監(jiān)控設(shè)備群.
要實現(xiàn)可定制型設(shè)計方式,首先整個監(jiān)控軟件需要有針對具體設(shè)備進(jìn)行相應(yīng)配置的組成模塊,即定義為監(jiān)控系統(tǒng)軟件的配置模塊.監(jiān)控系統(tǒng)軟件的配置模塊主要完成的工作有:對于具體的監(jiān)控設(shè)備,根據(jù)其即將進(jìn)行的監(jiān)控配置要求進(jìn)行相應(yīng)的設(shè)備參數(shù)配置,并將配置好的設(shè)備參數(shù)保存于文件或數(shù)據(jù)庫中,待監(jiān)控軟件讀取用于監(jiān)控.在大型監(jiān)控環(huán)境下,由于所需監(jiān)控的監(jiān)控設(shè)備數(shù)量和種類都相對比較大,因此有必要對設(shè)備參數(shù)配置進(jìn)行有效的管理.為了有效地管理設(shè)備參數(shù)配置性數(shù)據(jù),在監(jiān)控軟件的系統(tǒng)架構(gòu)的基礎(chǔ)上對E,C,S的形式化定義進(jìn)行擴(kuò)充 .即
其中:Ei為監(jiān)控設(shè)備集E中的一類設(shè)備;Si,Ci為對應(yīng)于Ei的參數(shù)配置及命令設(shè)置.將式(3)擴(kuò)充為
根據(jù)上述監(jiān)控設(shè)備可定制型定義及擴(kuò)充后的監(jiān)控軟件系統(tǒng)架構(gòu),可給出關(guān)于監(jiān)控軟件設(shè)備參數(shù)可定制的流程示意圖,如圖2所示.圖2中:最下方的表格為各種類型的設(shè)備所對應(yīng)的設(shè)備配置數(shù)據(jù).
圖2 設(shè)備參數(shù)可定制型流程示意圖Fig.2 Routine of the customization of the monitoring device parameters
至此,通過在監(jiān)控系統(tǒng)軟件中加入對監(jiān)控設(shè)備的可配置性模塊,使得對于任何需要進(jìn)行監(jiān)控的設(shè)備在預(yù)先保持其配置不可知的情況下,有效地降低監(jiān)控設(shè)備與其設(shè)備配置及發(fā)送命令的耦合性,提高了監(jiān)控系統(tǒng)軟件所能監(jiān)控的設(shè)備范圍.
在監(jiān)控設(shè)備的硬件數(shù)據(jù)采集時,采用線程可調(diào)度的方式,即通過一個可調(diào)度程序來控制所有監(jiān)控設(shè)備的硬件數(shù)據(jù)采集[3-4].
假定在操作系統(tǒng)P下,P下的內(nèi)核進(jìn)程調(diào)度程序平均每秒種分配給監(jiān)控系統(tǒng)應(yīng)用程序的時間片為T ms,監(jiān)控系統(tǒng)軟件在運行時創(chuàng)建了N個線程,每個線程執(zhí)行一次硬件數(shù)據(jù)采集需要的時間為t ms,以及假設(shè)P操作系統(tǒng)下的內(nèi)核對于進(jìn)程內(nèi)的線程切換所需時間為Sms.該進(jìn)程中,當(dāng)所有線程執(zhí)行一次硬件數(shù)據(jù)采集時線程的平均切換次數(shù)為R次,則當(dāng)所有線程執(zhí)行完一次硬件數(shù)據(jù)采集時需要時間Nt+RS ms,即監(jiān)控應(yīng)用程序的硬件采集頻率為
由式(5)不難發(fā)現(xiàn),提高監(jiān)控系統(tǒng)軟件的硬件數(shù)據(jù)采集頻率有兩種途徑:(1)減少監(jiān)控系統(tǒng)軟件運行時創(chuàng)建的線程數(shù)量N;(2)減少進(jìn)程內(nèi)線程的切換次數(shù)R.
對于監(jiān)控系統(tǒng)軟件運行時創(chuàng)建的線程數(shù)量N,可根據(jù)現(xiàn)代監(jiān)控軟件關(guān)于設(shè)備采集的運行方式,總體可以歸結(jié)為按設(shè)備種類及配置劃分 .即在同一種類的設(shè)備當(dāng)中配置相同的監(jiān)控設(shè)備往往被劃分在同一線程當(dāng)中,不同的配置被劃分于另一線程,不同種類的監(jiān)控設(shè)備一般不在同一線程中[5].
為了有效地表達(dá)監(jiān)控系統(tǒng)軟件中創(chuàng)建的最小線程數(shù)量,首先假設(shè)監(jiān)控軟件中需要監(jiān)控的設(shè)備種類有m類,每類監(jiān)控設(shè)備當(dāng)中不同的配置數(shù)量分別為Y1,Y2,…,Ym,則整個監(jiān)控系統(tǒng)軟件運行時所需創(chuàng)建的最小線程數(shù)量為
當(dāng)監(jiān)控系統(tǒng)軟件中所有線程執(zhí)行一次硬件數(shù)據(jù)采集,并且每個線程僅被切換一次,即切換次數(shù)R=時,進(jìn)程內(nèi)線程的切換次數(shù)最小.但這些條件都源于所依賴的操作系統(tǒng),切換次數(shù)R的大小由所在操作系統(tǒng)的內(nèi)核對進(jìn)程內(nèi)線程調(diào)度算法決定.
倘若在監(jiān)控系統(tǒng)軟件中加入一個自定義的線程調(diào)度算法,使整個監(jiān)控系統(tǒng)進(jìn)程內(nèi)并發(fā)執(zhí)行的線程數(shù)為Q(Q<N),則操作系統(tǒng)P對進(jìn)程內(nèi)的線程切換頻率將有一定程度的下降 .具體下降比例與具體操作系統(tǒng)和進(jìn)程內(nèi)的線程數(shù)有關(guān).比如在Windows系統(tǒng)下,對于一個擁有20個線程的監(jiān)控進(jìn)程,當(dāng)使并發(fā)執(zhí)行的線程數(shù)Q=3時,監(jiān)控進(jìn)程所采集到的數(shù)據(jù)量提高近20%.這意味著在監(jiān)控進(jìn)程內(nèi),通過將線程切換所消耗的時間轉(zhuǎn)由線程的硬件數(shù)據(jù)采集時間,提高了監(jiān)控系統(tǒng)的數(shù)據(jù)吞吐量,從而也有效地提高了監(jiān)控系統(tǒng)對監(jiān)控設(shè)備的響應(yīng)速率.
通過對以上分析,可以將式(5)擴(kuò)充為
式(6)中:α為并發(fā)線程與進(jìn)程內(nèi)創(chuàng)建線程的百分比.
同時,對于操作系統(tǒng)而言,時間片通常是以進(jìn)程為單位進(jìn)行分配的.因此,對于整個監(jiān)控系統(tǒng)進(jìn)程而言,操作系統(tǒng)給其分配的時間片資源是非常有限的,進(jìn)程內(nèi)的所有線程在操作系統(tǒng)分配的時間片T下協(xié)同工作.倘若將整個監(jiān)控系統(tǒng)進(jìn)程的工作分配給多個進(jìn)程(這里假設(shè)為P)時,每秒種監(jiān)控運用程序相當(dāng)于獲得了時間片PTms.即整個監(jiān)控程序的數(shù)據(jù)采集量及頻率提高P倍,則有
由式(7)可知,P的數(shù)量越大,并不意味著整個監(jiān)控運用程序的數(shù)據(jù)采集量越高.
根據(jù)現(xiàn)代操作系統(tǒng)內(nèi)核在進(jìn)程方面的調(diào)度原理,在一個操作系統(tǒng)中所運行的進(jìn)程數(shù)越多,其占用的系統(tǒng)資源和進(jìn)程間的切換頻率越高.進(jìn)程間的切換伴隨著內(nèi)存資源的獲取和釋放,與進(jìn)程內(nèi)的線程相比,進(jìn)程間的切換將帶來更多的系統(tǒng)資源消耗,而其中最重要的資源之一便是對處理器資源的大量消耗.因此,監(jiān)控系統(tǒng)程序中究竟該采用多少進(jìn)程,應(yīng)視具體硬件和操作系統(tǒng)環(huán)境而定,而不是一味地增加進(jìn)程數(shù)P 的大?。?].
在現(xiàn)代體系設(shè)計的監(jiān)控設(shè)備中,監(jiān)控設(shè)備的硬件數(shù)據(jù)采集往往僅占整個數(shù)據(jù)采集過程非常小的一部分,通常只有40%左右.也就是說,監(jiān)控設(shè)備從發(fā)送監(jiān)控指令到分析出最后有用數(shù)據(jù)的整個過程中,耗時最長的過程并不在于硬件數(shù)據(jù)的采集,而在于分析監(jiān)控設(shè)備采集的數(shù)據(jù),這個過程平均占據(jù)整個過程的60%左右.因此,有效地分析監(jiān)控設(shè)備采集的數(shù)據(jù),將極大地提高整個監(jiān)控軟件的性能.然而,在實踐中,雖然通過良好的編碼算法可以提高這個分析過程,但其所起到的作用還是顯得相對微弱.
圖3為傳統(tǒng)監(jiān)控系統(tǒng)軟件的體系結(jié)構(gòu)示意圖.由圖3可知,在傳統(tǒng)監(jiān)控系統(tǒng)軟件中,監(jiān)控設(shè)備從發(fā)送監(jiān)控命令、硬件數(shù)據(jù)采集及數(shù)據(jù)分析處理,乃至獲得最終數(shù)據(jù),整個過程通常都在同一線程中執(zhí)行.這種硬件采集數(shù)據(jù)與數(shù)據(jù)分析處理的高耦合性,必然導(dǎo)致整個線程的工作量增加,降低硬件采集數(shù)據(jù)的吞吐量.為了有效降低這種耦合性,可以采用硬件數(shù)據(jù)采集與數(shù)據(jù)分析處理相分離的方式,使其在兩個線程當(dāng)中執(zhí)行.同時,考慮到監(jiān)控設(shè)備的硬件數(shù)據(jù)采集中所提到的盡量降低監(jiān)控系統(tǒng)進(jìn)程內(nèi)的線程數(shù).
圖3 傳統(tǒng)監(jiān)控系統(tǒng)軟件體系結(jié)構(gòu)Fig.3 Traditional monitoring device software architecture
因此,僅僅使硬件數(shù)據(jù)采集與數(shù)據(jù)分析處理處于不同線程是不夠的,最好的方式是使硬件數(shù)據(jù)采集與數(shù)據(jù)分析處于不同的進(jìn)程或平臺之中.據(jù)統(tǒng)計,在Windows平臺下,使硬件數(shù)據(jù)采集與數(shù)據(jù)分析處于兩個不同進(jìn)程當(dāng)中執(zhí)行時,硬件的數(shù)據(jù)采集量提高近30%.也就是說,整個系統(tǒng)的監(jiān)控實時性提高了將近四成,這極大地打破了傳統(tǒng)監(jiān)控系統(tǒng)軟件的監(jiān)控能力.
圖4為監(jiān)控系統(tǒng)流程示意圖.圖4中:Design Module部分表示設(shè)計程序,用來定制監(jiān)控設(shè)備各項參數(shù);Device Gather Data Module部分表示監(jiān)控設(shè)備采集各項環(huán)境數(shù)據(jù);Data Analyse Module部分表示對采集到的數(shù)據(jù)進(jìn)行分析處理及最后顯示.
圖4 監(jiān)控系統(tǒng)流程圖Fig.4 Flow chart of the monitoring system
首先,通過編寫設(shè)計程序,使其功能主要具備數(shù)據(jù)庫的創(chuàng)建特性,將需要監(jiān)控的設(shè)備的配置保存于數(shù)據(jù)庫當(dāng)中,并且按照不同種類的設(shè)備存放于不同的數(shù)據(jù)庫表,可以對設(shè)備配置進(jìn)行添加,刪除或修改.
其次,設(shè)計硬件采集數(shù)據(jù)的服務(wù)器程序 .服務(wù)器程序讀取上述數(shù)據(jù)庫中的設(shè)備配置,相同種類中不同的配置不置于同一個線程,及不同種類的設(shè)備置于不同的線程.根據(jù)實際需要,選擇是否將整個監(jiān)控運用程序置于不同的進(jìn)程當(dāng)中 .通常在監(jiān)控設(shè)備量較大,硬件及操作系統(tǒng)平臺允許的情況下可以采用多進(jìn)程的方式減輕單個進(jìn)程工作量大的壓力.然后,將進(jìn)程當(dāng)中的各個線程采集到的硬件數(shù)據(jù)發(fā)送至另一個進(jìn)程當(dāng)中.
最后,定制不同種類監(jiān)控設(shè)備的數(shù)據(jù)分析模塊,完成分析各種不同類型硬件采集的數(shù)據(jù),并將分析出來的最終數(shù)據(jù)按照需要的方式呈現(xiàn).
通過校企合作項目的深入實踐,對監(jiān)控設(shè)備參數(shù)配置的可定制式設(shè)計,使監(jiān)控軟件相比于傳統(tǒng)監(jiān)控系統(tǒng)而言,監(jiān)控設(shè)備范圍在一定程度上的確得到了明顯的擴(kuò)展 .尤其是在串口方面,幾乎涵蓋了整個串口監(jiān)控設(shè)備群.通過采用可調(diào)度的策略及硬件數(shù)據(jù)采集與數(shù)據(jù)分析相分離的方式,在性能上,如監(jiān)控系統(tǒng)對監(jiān)控設(shè)備的響應(yīng)速率及監(jiān)控設(shè)備采集數(shù)據(jù)的吞吐量明顯得到很大的提高[1].
[1]林粵偉,魏權(quán)利,李麗萍,等.基于 VC++的局域網(wǎng)監(jiān)控軟件的研制[J].計算機(jī)時代,2005(4):23-25.
[2]蔡榆榕.VB通訊控件在機(jī)房管理中的應(yīng)用[J].華僑大學(xué)學(xué)報:自然科學(xué)版,2004,25(3):115-117.
[3]朱貴良,蔣小森,布輝,等.進(jìn)程調(diào)度演進(jìn)過程的仿真設(shè)計與實現(xiàn)[J].華北水利水電,2007,28(1):59-62.
[4]唐雅娟,楊子杰.串口通信多線程實現(xiàn)的分析[J].計算機(jī)應(yīng)用研究,2001,18(11):32-34,37.
[5]吳先亮,劉春生.基于多線程的串口通信軟件的設(shè)計與實現(xiàn)[J].控制工程,2004,11(2):171-175.
[6]趙霞,于重重.Linux進(jìn)程調(diào)度策略的研究[J].微型電腦應(yīng)用,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,F(xiàn)ujian)
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-),男,教授,主要從事計算機(jī)應(yīng)用和數(shù)字信號處理的研究.E-mail:xwblxf@hqu.edu.cn.
福建省自然科學(xué)基金資助項目(2010J01334);福建省廈門市科技計劃項目(3502Z20083047);福建省廈門市重點產(chǎn)學(xué)研項目(廈經(jīng)技[2009]233-03)
(責(zé)任編輯:黃曉楠 英文審校:吳逢鐵)