丁健生
(長春工業(yè)大學軟件職業(yè)技術學院,吉林長春 130022)
隨著計算機和網(wǎng)絡技術的迅速發(fā)展,越來越多的企業(yè)、機關開始全面實施信息化辦公,各種業(yè)務對計算機的依賴性越來越高,計算機機房的安全問題也變得越來越重要?,F(xiàn)代化的機房必須配備完善的數(shù)據(jù)采集及監(jiān)控系統(tǒng),實時監(jiān)控機房的溫度、濕度、電磁、煙塵及各服務器的運行狀態(tài)等可能影響設備正常運行的因素。然而由于監(jiān)控設備種類繁多,不同廠家生產(chǎn)的監(jiān)控設備其通信規(guī)則往往互不相同,導致各種業(yè)務系統(tǒng)的開發(fā)者不得不為每一種監(jiān)控設備分別開發(fā)數(shù)據(jù)采集程序[1]。這種模式不僅加重業(yè)務程序開發(fā)者的負擔,將大量的精力浪費在與業(yè)務無關的底層硬件通信程序上,而且不利于整個系統(tǒng)的升級和擴展。當添加新的監(jiān)控設備或更換原有監(jiān)控設備時,必須修改每一個業(yè)務系統(tǒng)的數(shù)據(jù)采集程序。因此,監(jiān)控系統(tǒng)的設計需要一種靈活的松耦合解決方案[2]。
OPC(OLE for Process Control)是由OPC基金會提出的新一代工控軟件規(guī)范[3],其中OPC XML DA(Data Access)規(guī)范規(guī)定了控制程序與不同的設備之間進行數(shù)據(jù)存取的標準。采用了OPC XM L DA規(guī)范之后,不同的設備可以使用統(tǒng)一的數(shù)據(jù)交換格式與控制程序通訊。在很大程度上降低了應用程序開發(fā)的復雜性。OPC XML DA規(guī)范采用SOAP/HT TP協(xié)議傳輸數(shù)據(jù),適用于Internet遠程訪問。在本質(zhì)上,OPC XML DA是一種Web服務[4],可以在任何支持Internet的操作系統(tǒng)上進行訪問,包括Window s,Linux,Unix等主流操作系統(tǒng),十分適合綜合性的分布式控制系統(tǒng)。
目前,國內(nèi)OPC XML DA規(guī)范的應用主要集中在大型工業(yè)控制系統(tǒng)中,如大型車間、電廠、油田等環(huán)境。對于其在機房監(jiān)控等輕量級系統(tǒng)中的應用,尚缺乏推廣。文中基于OPC XML DA規(guī)范設計并實現(xiàn)了一套分布式機房監(jiān)控系統(tǒng),通過該系統(tǒng)的實施,可以有效地實現(xiàn)Internet、Wap、短信及Windows客戶端等多種途徑的機房信息實時監(jiān)控,且系統(tǒng)具有良好的開放性,易于擴展和維護。
分布式監(jiān)控系統(tǒng)的硬件架構(gòu)由內(nèi)網(wǎng)應用及公網(wǎng)應用兩大部分組成,內(nèi)網(wǎng)主要負責實時數(shù)據(jù)采集并通過OPC服務器發(fā)布,公網(wǎng)應用為各種遠程客戶端提供服務。系統(tǒng)的硬件拓撲結(jié)構(gòu)如圖1所示。
圖1 分布式機房監(jiān)控系統(tǒng)硬件架構(gòu)拓撲圖
各種傳感器通過各自的連線方式與控制機相連,在控制機上運行數(shù)據(jù)采集程序,控制機通過交換機與OPC服務器相連,構(gòu)成采集、發(fā)布監(jiān)控信息的高速局域網(wǎng)絡。此網(wǎng)絡本身可作為一個獨立的系統(tǒng)運行,也可在其上通過添加應用服務器來部署若干應用程序(如報警及監(jiān)控日志記錄等),構(gòu)成一個封閉的內(nèi)網(wǎng)應用環(huán)境。
現(xiàn)代化的監(jiān)控系統(tǒng)通常要求負責人能夠隨時隨地利用多種方式查看監(jiān)控信息,如瀏覽器、智能移動設備甚至手機短信等方式。當某一監(jiān)控數(shù)據(jù)超過設定的閾值后(如機房溫度超過警戒值),監(jiān)控系統(tǒng)應立即向負責人發(fā)出警報,即使在無人監(jiān)守的情況下,也應以短信或手機呼叫等方式通知負責人,以減少重大事故發(fā)生的幾率。顯然封閉的內(nèi)網(wǎng)應用并不能滿足此需求,為此分布式監(jiān)控系統(tǒng)的設計提供了支持公網(wǎng)應用的能力。
監(jiān)控系統(tǒng)支持多種公網(wǎng)應用,如Internet網(wǎng)絡、GPRS網(wǎng)絡、GSM網(wǎng)絡等,并可以根據(jù)需要添加新的擴展應用或移除某一應用。OPC XML DA服務器本質(zhì)上是一種Web服務,部署在IIS服務器上,如需要提供Internet支持,僅需要將交換機接入廣域網(wǎng)并設置IIS服務器的IP地址即可輕松實現(xiàn)Internet訪問。如需要在智能移動設備上使用Wap形式訪問監(jiān)控信息,只需要在局域網(wǎng)內(nèi)架設一臺Wap服務器,以該服務器作為中轉(zhuǎn),將OPC XML DA服務器提供的數(shù)據(jù)轉(zhuǎn)發(fā)給Wap客戶端即可。如果需要通過手機短信來獲取監(jiān)控數(shù)據(jù),可在局域網(wǎng)內(nèi)增加一臺短信服務器,在收到短信請求以后,從OPC XML DA服務器讀取數(shù)據(jù),再以短信的形式發(fā)送給手機用戶。該模式還可與報警服務程序相結(jié)合,從而實現(xiàn)險情發(fā)生時以短信或手機呼叫的模式主動報警。
分布式機房監(jiān)控系統(tǒng)的軟件設計采用分層式松耦合架構(gòu),從下至上可分為數(shù)據(jù)采集程序、統(tǒng)一數(shù)據(jù)源、應用服務程序及應用客戶端程序4層。系統(tǒng)以OPC XML DA Server為統(tǒng)一數(shù)據(jù)源,將底層各種數(shù)據(jù)采集程序所采集的數(shù)據(jù)以統(tǒng)一的接口進行發(fā)布。以數(shù)據(jù)源為基礎構(gòu)建各種應用服務程序,在應用服務程序的基礎上再構(gòu)建各種應用的客戶端。系統(tǒng)的整體軟件架構(gòu)如圖2所示。
圖2 分布式機房監(jiān)控系統(tǒng)軟件架構(gòu)圖
各種針對特定傳感器而開發(fā)的數(shù)據(jù)采集程序是整個分布式監(jiān)控系統(tǒng)中的最底層軟件,直接與硬件通信,是監(jiān)控系統(tǒng)的原始數(shù)據(jù)來源[5]。通常提供硬件設備的廠商都會配套提供相應的設備驅(qū)動程序,在此基礎上加入局域網(wǎng)通信模塊(文中采用遠程過程調(diào)用RPC方式)即可構(gòu)成數(shù)據(jù)采集程序。
OPC XML DA服務器在整個分布式監(jiān)控系統(tǒng)中起著“承上啟下”的作用,是整個系統(tǒng)的核心。對下,OPC XML DA服務器需要將各數(shù)據(jù)采集程序采集到的數(shù)據(jù)按照統(tǒng)一的服務器組項的格式進行封裝;對上,需要發(fā)布符合OPC XML DA規(guī)范的8個Web Service接口[6],為其上的應用服務程序提供統(tǒng)一格式的數(shù)據(jù)源。
應用服務程序從OPC XML DA Server獲得監(jiān)控數(shù)據(jù),以此為基礎開發(fā)各自的業(yè)務功能,如短信響應、自動報警、監(jiān)控日志記錄等。最終用戶可通過應用客戶端程序訪問相應的應用服務程序,實現(xiàn)對機房隨時隨地的監(jiān)控,從而構(gòu)成功能強大的分布式監(jiān)控系統(tǒng)。
由于使用OPC XML DA作為數(shù)據(jù)源,各應用服務程序不再需要關心各種不同的硬件設備的通信問題,只需按照統(tǒng)一的接口便可從OPC XML DA Server獲得監(jiān)控數(shù)據(jù),大大簡化了業(yè)務程序的開發(fā)工作。傳統(tǒng)監(jiān)控系統(tǒng)架構(gòu)與基于OPC XML DA規(guī)范的監(jiān)控系統(tǒng)架構(gòu)對比示意圖如圖3和圖4所示。
圖3 傳統(tǒng)監(jiān)控系統(tǒng)軟件架構(gòu)
圖4 基于OPC XM L DA規(guī)范的監(jiān)控系統(tǒng)架構(gòu)
通過對比容易看出,基于OPC XML DA規(guī)范的架構(gòu)設計使應用程序的開發(fā)者從繁雜的硬件通信接口中解脫,只需要專注于業(yè)務功能的開發(fā),而硬件通信的復雜性被隔離在OPC XML DA Server以下的數(shù)據(jù)源層。這樣的設計很大程度上降低了應用程序開發(fā)的復雜度,也使得系統(tǒng)易于擴展和升級。
OPC XML DA Server是整個監(jiān)控系統(tǒng)的數(shù)據(jù)來源,負責為其上的所有應用程序提供數(shù)據(jù),是整個系統(tǒng)的核心部分。在實現(xiàn)上,OPC XML DA服務器是架設在IIS(Internet Information Service)上的一個特殊Web服務,它包括管理模塊、實時數(shù)據(jù)采集模塊、數(shù)據(jù)緩沖區(qū)以及OPC XML DA接口4個部分。OPC XML DA服務器的結(jié)構(gòu)框架如圖5所示。
圖5 OPC XM L DA服務器結(jié)構(gòu)圖
管理模塊負責系統(tǒng)的初始化及參數(shù)設置。
通信模塊負責與數(shù)據(jù)采集程序通信,并從中獲得監(jiān)控數(shù)據(jù)。該模塊的設計采用可配置形式,在配置數(shù)據(jù)庫中存儲各個數(shù)據(jù)采集程序的配置信息。當OPC XML DA服務器加載時,將根據(jù)配置數(shù)據(jù)庫中的配置信息來調(diào)用各個數(shù)據(jù)采集程序,從而獲得實際監(jiān)控數(shù)據(jù)。
由于數(shù)據(jù)采集操作較為耗時,加上不同的硬件設備的響應速度差別也較大,當需要采集數(shù)據(jù)的設備較多時,如采用單一線程進行輪詢訪問,會嚴重影響服務器的響應速度[7-8]。為解決上述問題,OPC XML DA服務器在設計時對數(shù)據(jù)采集程序采用多線程(MultiThread)并發(fā)控制,為每一個數(shù)據(jù)采集程序動態(tài)創(chuàng)建一個監(jiān)控線程,主線程通過信號機制協(xié)調(diào)控制各監(jiān)控線程的工作。監(jiān)控線程間在宏觀上處于并行狀態(tài),彼此互不干擾,一個監(jiān)控線程處于等待狀態(tài)時并不會影響其它線程運行,從而保證使各種速率的設備均能發(fā)揮最大效率。
通信模塊獲得的數(shù)據(jù)是實時的,在通過WebService接口發(fā)布之前,通信模塊會先將采集到的數(shù)據(jù)寫入一個數(shù)據(jù)緩沖池內(nèi)。緩沖區(qū)是設備數(shù)據(jù)的臨時存儲區(qū),在實現(xiàn)方式上,緩沖池是一塊內(nèi)存存儲區(qū),通信模塊將采集到的實時設備數(shù)據(jù)暫存在緩沖池內(nèi),如果有OPC客戶端請求數(shù)據(jù),OPC服務器會立刻將緩沖池內(nèi)的最新數(shù)據(jù)發(fā)送給客戶端。此外,OPC服務器會定時處理緩沖池內(nèi)的數(shù)據(jù),將緩沖池內(nèi)的數(shù)據(jù)存入歷史數(shù)據(jù)庫,并清空緩沖池。
WebService接口模塊負責接收來自OPC XML DA客戶端的請求,并根據(jù)請求將數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)封裝成SOAP消息回饋給客戶端,從而對客戶端的請求做出應答,為客戶端提供數(shù)據(jù)來源。
通過對OPC XML DA服務器的訪問,各種應用程序可以很方便地獲得標準格式的監(jiān)控數(shù)據(jù)。限于硬件條件,文中僅對機房溫度及濕度數(shù)據(jù)進行了采集。采用Windows桌面程序開發(fā)的監(jiān)控客戶端運行界面如圖6所示。
圖6 機房監(jiān)控Windows客戶端程序界面
分析了OPC XML DA服務器的工作原理,設計了一種基于OPC XML DA規(guī)范的分布式機房監(jiān)控系統(tǒng)。該系統(tǒng)以OPC XML DA服務器為統(tǒng)一數(shù)據(jù)源,對各種應用程序提供統(tǒng)一的數(shù)據(jù)訪問格式,屏蔽了復雜的硬件設備通信細節(jié),降低了應用程序開發(fā)的復雜性。通過該系統(tǒng)的實施,可以實現(xiàn)Internet、Wap、手機短信等多種形式的機房監(jiān)控,從而構(gòu)建一個功能強大的分布式機房監(jiān)控系統(tǒng)。同時,該系統(tǒng)的設計具有通用性,對于其它類型的監(jiān)控系統(tǒng)也有借鑒意義。
[1] 邢建春,王平,仲未央,等.工業(yè)控制軟件互操作標準OPC綜述[J].工業(yè)控制計算機,2006,13(1):29-32.
[2] 岳曉峰,劉磊,王劍飛.分布式遠程油井無線監(jiān)測系統(tǒng)的設計與實現(xiàn)[J].長春工業(yè)大學學報:自然科學版,2004,25(4):14-16.
[3] 陳德美,牛秦洲,張烈平.基于OPC的MAT LAB與組態(tài)王的數(shù)據(jù)通信[J].長春工業(yè)大學學報:自然科學版,2006,27(4):308-310.
[4] 薛福珍,王海明.基于OPC XM L-DA技術的遠程監(jiān)控系統(tǒng)的設計[J].控制工程,2007(3):182-184.
[5] 孟逢逢.冗余OPC數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)[J].計算機應用,2009(1):256-257.
[6] OPC XML-DA Specification version1.01[S].OPCFoundation,2004.
[7] 張堯弼,王巍.OPC XM L技術在工業(yè)信息數(shù)據(jù)通訊中的應用[D]:[碩士學位論文].上海:上海交通大學,2008.
[8] 劉麗.基于OPC XM L-DA實現(xiàn)遠程實時監(jiān)控的研究與設計[D]:[碩士學位論文].杭州:浙江大學,2007.