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