丁健生
(長春工業大學軟件職業技術學院,吉林長春 130022)
隨著計算機和網絡技術的迅速發展,越來越多的企業、機關開始全面實施信息化辦公,各種業務對計算機的依賴性越來越高,計算機機房的安全問題也變得越來越重要?,F代化的機房必須配備完善的數據采集及監控系統,實時監控機房的溫度、濕度、電磁、煙塵及各服務器的運行狀態等可能影響設備正常運行的因素。然而由于監控設備種類繁多,不同廠家生產的監控設備其通信規則往往互不相同,導致各種業務系統的開發者不得不為每一種監控設備分別開發數據采集程序[1]。這種模式不僅加重業務程序開發者的負擔,將大量的精力浪費在與業務無關的底層硬件通信程序上,而且不利于整個系統的升級和擴展。當添加新的監控設備或更換原有監控設備時,必須修改每一個業務系統的數據采集程序。因此,監控系統的設計需要一種靈活的松耦合解決方案[2]。
OPC(OLE for Process Control)是由OPC基金會提出的新一代工控軟件規范[3],其中OPC XML DA(Data Access)規范規定了控制程序與不同的設備之間進行數據存取的標準。采用了OPC XM L DA規范之后,不同的設備可以使用統一的數據交換格式與控制程序通訊。在很大程度上降低了應用程序開發的復雜性。OPC XML DA規范采用SOAP/HT TP協議傳輸數據,適用于Internet遠程訪問。在本質上,OPC XML DA是一種Web服務[4],可以在任何支持Internet的操作系統上進行訪問,包括Window s,Linux,Unix等主流操作系統,十分適合綜合性的分布式控制系統。
目前,國內OPC XML DA規范的應用主要集中在大型工業控制系統中,如大型車間、電廠、油田等環境。對于其在機房監控等輕量級系統中的應用,尚缺乏推廣。文中基于OPC XML DA規范設計并實現了一套分布式機房監控系統,通過該系統的實施,可以有效地實現Internet、Wap、短信及Windows客戶端等多種途徑的機房信息實時監控,且系統具有良好的開放性,易于擴展和維護。
分布式監控系統的硬件架構由內網應用及公網應用兩大部分組成,內網主要負責實時數據采集并通過OPC服務器發布,公網應用為各種遠程客戶端提供服務。系統的硬件拓撲結構如圖1所示。

圖1 分布式機房監控系統硬件架構拓撲圖
各種傳感器通過各自的連線方式與控制機相連,在控制機上運行數據采集程序,控制機通過交換機與OPC服務器相連,構成采集、發布監控信息的高速局域網絡。此網絡本身可作為一個獨立的系統運行,也可在其上通過添加應用服務器來部署若干應用程序(如報警及監控日志記錄等),構成一個封閉的內網應用環境。
現代化的監控系統通常要求負責人能夠隨時隨地利用多種方式查看監控信息,如瀏覽器、智能移動設備甚至手機短信等方式。當某一監控數據超過設定的閾值后(如機房溫度超過警戒值),監控系統應立即向負責人發出警報,即使在無人監守的情況下,也應以短信或手機呼叫等方式通知負責人,以減少重大事故發生的幾率。顯然封閉的內網應用并不能滿足此需求,為此分布式監控系統的設計提供了支持公網應用的能力。
監控系統支持多種公網應用,如Internet網絡、GPRS網絡、GSM網絡等,并可以根據需要添加新的擴展應用或移除某一應用。OPC XML DA服務器本質上是一種Web服務,部署在IIS服務器上,如需要提供Internet支持,僅需要將交換機接入廣域網并設置IIS服務器的IP地址即可輕松實現Internet訪問。如需要在智能移動設備上使用Wap形式訪問監控信息,只需要在局域網內架設一臺Wap服務器,以該服務器作為中轉,將OPC XML DA服務器提供的數據轉發給Wap客戶端即可。如果需要通過手機短信來獲取監控數據,可在局域網內增加一臺短信服務器,在收到短信請求以后,從OPC XML DA服務器讀取數據,再以短信的形式發送給手機用戶。該模式還可與報警服務程序相結合,從而實現險情發生時以短信或手機呼叫的模式主動報警。
分布式機房監控系統的軟件設計采用分層式松耦合架構,從下至上可分為數據采集程序、統一數據源、應用服務程序及應用客戶端程序4層。系統以OPC XML DA Server為統一數據源,將底層各種數據采集程序所采集的數據以統一的接口進行發布。以數據源為基礎構建各種應用服務程序,在應用服務程序的基礎上再構建各種應用的客戶端。系統的整體軟件架構如圖2所示。

圖2 分布式機房監控系統軟件架構圖
各種針對特定傳感器而開發的數據采集程序是整個分布式監控系統中的最底層軟件,直接與硬件通信,是監控系統的原始數據來源[5]。通常提供硬件設備的廠商都會配套提供相應的設備驅動程序,在此基礎上加入局域網通信模塊(文中采用遠程過程調用RPC方式)即可構成數據采集程序。
OPC XML DA服務器在整個分布式監控系統中起著“承上啟下”的作用,是整個系統的核心。對下,OPC XML DA服務器需要將各數據采集程序采集到的數據按照統一的服務器組項的格式進行封裝;對上,需要發布符合OPC XML DA規范的8個Web Service接口[6],為其上的應用服務程序提供統一格式的數據源。
應用服務程序從OPC XML DA Server獲得監控數據,以此為基礎開發各自的業務功能,如短信響應、自動報警、監控日志記錄等。最終用戶可通過應用客戶端程序訪問相應的應用服務程序,實現對機房隨時隨地的監控,從而構成功能強大的分布式監控系統。
由于使用OPC XML DA作為數據源,各應用服務程序不再需要關心各種不同的硬件設備的通信問題,只需按照統一的接口便可從OPC XML DA Server獲得監控數據,大大簡化了業務程序的開發工作。傳統監控系統架構與基于OPC XML DA規范的監控系統架構對比示意圖如圖3和圖4所示。

圖3 傳統監控系統軟件架構

圖4 基于OPC XM L DA規范的監控系統架構
通過對比容易看出,基于OPC XML DA規范的架構設計使應用程序的開發者從繁雜的硬件通信接口中解脫,只需要專注于業務功能的開發,而硬件通信的復雜性被隔離在OPC XML DA Server以下的數據源層。這樣的設計很大程度上降低了應用程序開發的復雜度,也使得系統易于擴展和升級。
OPC XML DA Server是整個監控系統的數據來源,負責為其上的所有應用程序提供數據,是整個系統的核心部分。在實現上,OPC XML DA服務器是架設在IIS(Internet Information Service)上的一個特殊Web服務,它包括管理模塊、實時數據采集模塊、數據緩沖區以及OPC XML DA接口4個部分。OPC XML DA服務器的結構框架如圖5所示。

圖5 OPC XM L DA服務器結構圖
管理模塊負責系統的初始化及參數設置。
通信模塊負責與數據采集程序通信,并從中獲得監控數據。該模塊的設計采用可配置形式,在配置數據庫中存儲各個數據采集程序的配置信息。當OPC XML DA服務器加載時,將根據配置數據庫中的配置信息來調用各個數據采集程序,從而獲得實際監控數據。
由于數據采集操作較為耗時,加上不同的硬件設備的響應速度差別也較大,當需要采集數據的設備較多時,如采用單一線程進行輪詢訪問,會嚴重影響服務器的響應速度[7-8]。為解決上述問題,OPC XML DA服務器在設計時對數據采集程序采用多線程(MultiThread)并發控制,為每一個數據采集程序動態創建一個監控線程,主線程通過信號機制協調控制各監控線程的工作。監控線程間在宏觀上處于并行狀態,彼此互不干擾,一個監控線程處于等待狀態時并不會影響其它線程運行,從而保證使各種速率的設備均能發揮最大效率。
通信模塊獲得的數據是實時的,在通過WebService接口發布之前,通信模塊會先將采集到的數據寫入一個數據緩沖池內。緩沖區是設備數據的臨時存儲區,在實現方式上,緩沖池是一塊內存存儲區,通信模塊將采集到的實時設備數據暫存在緩沖池內,如果有OPC客戶端請求數據,OPC服務器會立刻將緩沖池內的最新數據發送給客戶端。此外,OPC服務器會定時處理緩沖池內的數據,將緩沖池內的數據存入歷史數據庫,并清空緩沖池。
WebService接口模塊負責接收來自OPC XML DA客戶端的請求,并根據請求將數據緩沖區中的數據封裝成SOAP消息回饋給客戶端,從而對客戶端的請求做出應答,為客戶端提供數據來源。
通過對OPC XML DA服務器的訪問,各種應用程序可以很方便地獲得標準格式的監控數據。限于硬件條件,文中僅對機房溫度及濕度數據進行了采集。采用Windows桌面程序開發的監控客戶端運行界面如圖6所示。

圖6 機房監控Windows客戶端程序界面
分析了OPC XML DA服務器的工作原理,設計了一種基于OPC XML DA規范的分布式機房監控系統。該系統以OPC XML DA服務器為統一數據源,對各種應用程序提供統一的數據訪問格式,屏蔽了復雜的硬件設備通信細節,降低了應用程序開發的復雜性。通過該系統的實施,可以實現Internet、Wap、手機短信等多種形式的機房監控,從而構建一個功能強大的分布式機房監控系統。同時,該系統的設計具有通用性,對于其它類型的監控系統也有借鑒意義。
[1] 邢建春,王平,仲未央,等.工業控制軟件互操作標準OPC綜述[J].工業控制計算機,2006,13(1):29-32.
[2] 岳曉峰,劉磊,王劍飛.分布式遠程油井無線監測系統的設計與實現[J].長春工業大學學報:自然科學版,2004,25(4):14-16.
[3] 陳德美,牛秦洲,張烈平.基于OPC的MAT LAB與組態王的數據通信[J].長春工業大學學報:自然科學版,2006,27(4):308-310.
[4] 薛福珍,王海明.基于OPC XM L-DA技術的遠程監控系統的設計[J].控制工程,2007(3):182-184.
[5] 孟逢逢.冗余OPC數據采集系統的設計與實現[J].計算機應用,2009(1):256-257.
[6] OPC XML-DA Specification version1.01[S].OPCFoundation,2004.
[7] 張堯弼,王巍.OPC XM L技術在工業信息數據通訊中的應用[D]:[碩士學位論文].上海:上海交通大學,2008.
[8] 劉麗.基于OPC XM L-DA實現遠程實時監控的研究與設計[D]:[碩士學位論文].杭州:浙江大學,2007.