【摘要】:針對Web Scada系統中如何更好地適應用戶規模變化的問題,分析現有實現方式對建立可伸縮系統的限制,提出了基于WCF技術建立可伸縮的Web Scada系統的解決方案。系統核心是采用面向服務的SOA架構,推送或抓取不同規模用戶的數據采集終端的各種數據,對外公布數據訪問和推送接口。實現了Web客戶端響應推送服務或查詢采集數據,呈現到監控頁面中。
【關鍵詞】:Web Scada 系統;可伸縮;監控頁面;面向服務;WCF基于Web的Scada系統不僅提高了Scada系統的適應范圍,提高了系統的可靠性,也使Scada系統的管理和維護變得更加簡單方便,已經成為國內Scada系統事實上的標準。從Windows平臺的基于DCOM、ActiveX技術的同構平臺,到CGI/PHP,再到SOAP、SOA的異構平臺,它涉及了Web數據發布技術、實時圖形的生成和處理、客戶端圖形實時刷新技術、遙控操作圖像熱點處理技術、系統管理和安全技術等方面[2]。由于Scada系統的特點決定了它必須處理數量變化的遠程通訊裝置的數據采集。由于當前數據采集技術的限制,數據的采集源點可能千差萬別,給Web數據發布帶來了可伸縮的要求。可以這樣說,能否具有可伸縮性能是決定Web Scada系統能夠進入大規模工程實際應用的基礎。其他的多項技術都須建立在它的基礎之上才會有實際意義。
Web Scada系統的分層設計如下[3]:
由監控邏輯層處理復雜多變的通訊層變動,為界面層提供一個穩定的數據來源是建立可伸縮Web Scada系統的關鍵。
本文擬以一個實際的Web Scada系統的開發為背景,利用.Net Framework 4.0、VS2010以及IIS、HTML技術建立一個可伸縮的Web Scada 系統,其核心是建立介于通訊層和界面層之間的監控邏輯層。通過該層實現與通訊層的可伸縮連接和與Web界面層之間的穩定連接。
一、現有Web Scada系統模式
現有的Web Scada 系統主要為了實現采集的數據信息的Web展現,他們都以在Web 頁面中實施展現通訊層的數據采集內容為主要功能。由于面對的用戶規模不同,出現了比較多的Web Scada 系統,但它們基本都屬于以下兩類:
1、 分布式Web Scada 系統(下稱分布式系統)
系統有多個服務器分別處理不同間隔內的遠程裝置(RTU)數據采集。形成分布式的網絡數據庫,用戶根據需要連接到不同的服務器對其連接的遠程裝置進行監控。在此結構中,服務中內含Web Server。它可以根據用戶規模的不同,增添更多的服務器來滿足用戶的擴展要求。如下圖2。
2、 集中式Web Scada系統(下稱集中式系統)
系統只有一個服務器分別處理間隔內的遠程裝置(RTU)數據采集。形成集中的網絡數據庫,用戶可以對其連接的遠程裝置進行監控。在此結構中,服務中內含Web Server。它可以根據用戶規模的不同,增添更多遠程裝置和采用更好的服務器來滿足用戶的擴展要求。如上圖3。
二、 可伸縮Web Scada 系統模式
上述的兩種系統模式在解決實際的問題時,存在著各自的優缺點。
分布式系統的優點是擴展服務器的數量可以適應更大規模的用戶需求,它適應用戶規模較大的情況,缺點是:如果采用客戶端查詢方式(client pull)[2]沒有更新的數據時也需要定時查詢,網絡流量大;如果采用服務端推送(server push)[2],則由于需要保持連接通道,使得客戶端的數量受到限制。同時,如果要同時監控多個服務器的數據則需要服務器之間要建立相應的聯系,會破壞服務器之間的獨立性,極大地增加其擴展的代價。
集中式系統顯然沒有分布式系統的這些缺點,其優點是:結構簡單,數據統一管理,網頁設計簡單穩定,頁面刷新延遲小。但它的缺點也是顯而易見的:擴展受限,要增加遠程裝置的數據,只能提升服務器的性能。它只適應用戶規模較小的情況。
在我們開發Web Scada系統的時,我們提出了以下目標:
穩定的界面層
靈活地適用于不同的用戶規模
因為我們的用戶分布于各個行業,自動化水平相差很大,我們提出這樣的目標是要實現開發和維護成本的最低化。該系統的結構如下圖4:
比較它和分布式系統結構,我們可以看到,Web Server不再內含。它增加了發布網頁的Web Server、進行數據管理的數據服務器、進行文件管理的文件傳送服務器等等(我們的實際系統中,還包含事件管理服務器、口令管理服務器、數據轉發服務器等等)。因為它是按照需要的功能進行配置的,所以它是可伸縮的。比如增加事件短信報警功能,接在網絡上加掛一個短信報警服務器。
在用戶規模的可伸縮上,Web Scada Server、數據服務器(歷史數據、實時數據)、文件傳送服務器、事件管理服務器、口令管理服務器、數據轉發服務器等服務器都是可配置的,而且是自動加載的,可以實現在線切換。
在具體實現方式上,每個服務器均公布WCF接口,按照SOA架構進行開發,每個服務均是可配置(綁定、終結點)的,便于在復雜的網絡中進行靈活的部署。此外,數據轉發服務器可以增加、修改、刪除轉發實例,為實現用戶規模的可伸縮奠定了基礎。部署結構如圖5
三、關鍵技術的實現
1、 靈活的數據轉發
我們知道,用戶規模不同,遠程通訊裝置的數量就不同,要為界面層建立一個穩定的數據來源,我們需要建立一個處理系統所有同類數據的服務器,然后把相關的數據都交到該服務器中進行處理,讓它進行Web數據發布。以歷史數據處理為例,其軟件結構如下圖6:
這樣,針對多個通訊服務器(對應不同的用戶規模),我們在系統中配置對應數量的歷史數據轉發器,就可以適應用戶的遠程通訊裝置數量的擴展變化。歷史數據轉發器運行的實例數量根據配置文件自動生成,不僅如此,還必須在服務器系統啟動后自動載入,且在運行過程中受到監控。?
2、 數據服務端推送
如圖1,監控邏輯層向界面層發布數據是實現界面層向用戶呈現采集數據的基礎,由于我們采用的是SOA架構,模塊連接采用WCF接口,所以我們可以很方便地采用建立雙向通道的方式實現服務端數據推送[1]。
如圖7,實時數據轉發器在從通訊服務器取得實時數據后將實時數據存入實時數據存取服務器,實時數據存取服務器發現數據有變化便使用實時監控畫面事先與實時數據存取服務器建立好的回調通道,向實時監控畫面推送實時數據。在WCF技術中,一般采用TCP通道,因為它是面向連接的,而Http通道是無狀態的,不適合做雙向通道,當然,Http也有雙向的Http,但是由于它要指定回調的知名端口而使得回調會受到一些限制[4]。
四、結束語
采用面向服務的系統結構式我們可以結合Web Scada系統分布式和集中式模式的優點形成可伸縮Web Scada系統,該系統由簡潔的數據通訊服務器、數據管理服務器、文件傳送服務器、口令管理服務器等組成。它綜合了集中式系統和分布式系統的優點。由于通訊服務器負責與遠程裝置的數據通訊,靈活地部署和配置通訊服務器可以適應不同規模的用戶需求,靈活地部署各個功能服務器可以適應用戶的不同功能要求,以此形成可伸縮Web Scada系統。今后,還將開發多級熱備份功能,故障錄播分析服務器、潮流分析服務器、諧波分析服務器、數據預處理系統等行業系統的專用功能服務器。
二、 文獻
[1] 秦友倫、孟文、易東,Sliverlight在Web Scada中的應用,工業控制計算機,2011,24(9):31-31
[2] 蔣士林,基于Web的SCADA系統,科技廣場,2006,1:32-33
[3] 沈正、陳鍾,基于WCF和SOA的電力SCADA系統研究與開發,中國新技術新產品,2009,No.13:17-18
[4] Juval Lowy,WCF服務編程(張逸、徐寧譯),機械工業出版社,2009
[5] 蔣金楠,WCF技術剖析(卷1),電子工業出版社,2008
作者簡介:
曾明昌 (1966- ) 男 四川省德陽人 本科生 研究方向:WCF應用、SOA、網絡數據管理