【摘要】:針對Web Scada系統中如何更好地適應用戶規模變化的問題,分析現有實現方式對建立可伸縮系統的限制,提出了基于WCF技術建立可伸縮的Web Scada系統的解決方案。系統核心是采用面向服務的SOA架構,推送或抓取不同規模用戶的數據采集終端的各種數據,對外公布數據訪問和推送接口。實現了Web客戶端響應推送服務或查詢采集數據,呈現到監控頁面中。
【關鍵詞】:Web Scada 系(xi)(xi)統(tong);可伸(shen)縮;監(jian)控頁面(mian);面(mian)向(xiang)服務;WCF基(ji)于Web的(de)(de)(de)(de)(de)(de)Scada系(xi)(xi)統(tong)不僅提高了(le)Scada系(xi)(xi)統(tong)的(de)(de)(de)(de)(de)(de)適(shi)應范圍(wei),提高了(le)系(xi)(xi)統(tong)的(de)(de)(de)(de)(de)(de)可靠性(xing),也使Scada系(xi)(xi)統(tong)的(de)(de)(de)(de)(de)(de)管理(li)和(he)維護(hu)變(bian)得更加簡單(dan)方(fang)便,已經成為國內Scada系(xi)(xi)統(tong)事(shi)實(shi)上(shang)的(de)(de)(de)(de)(de)(de)標準。從(cong)Windows平臺的(de)(de)(de)(de)(de)(de)基(ji)于DCOM、ActiveX技(ji)術(shu)的(de)(de)(de)(de)(de)(de)同構平臺,到CGI/PHP,再(zai)到SOAP、SOA的(de)(de)(de)(de)(de)(de)異(yi)構平臺,它(ta)涉及了(le)Web數(shu)(shu)(shu)據(ju)(ju)(ju)發布(bu)技(ji)術(shu)、實(shi)時圖形的(de)(de)(de)(de)(de)(de)生成和(he)處(chu)理(li)、客(ke)戶端圖形實(shi)時刷(shua)新技(ji)術(shu)、遙(yao)控操(cao)作(zuo)圖像熱點處(chu)理(li)技(ji)術(shu)、系(xi)(xi)統(tong)管理(li)和(he)安全技(ji)術(shu)等方(fang)面(mian)[2]。由(you)于Scada系(xi)(xi)統(tong)的(de)(de)(de)(de)(de)(de)特點決定了(le)它(ta)必須處(chu)理(li)數(shu)(shu)(shu)量變(bian)化的(de)(de)(de)(de)(de)(de)遠程(cheng)通訊(xun)裝置(zhi)的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)采(cai)集(ji)(ji)。由(you)于當前數(shu)(shu)(shu)據(ju)(ju)(ju)采(cai)集(ji)(ji)技(ji)術(shu)的(de)(de)(de)(de)(de)(de)限(xian)制,數(shu)(shu)(shu)據(ju)(ju)(ju)的(de)(de)(de)(de)(de)(de)采(cai)集(ji)(ji)源點可能(neng)千差(cha)萬別,給Web數(shu)(shu)(shu)據(ju)(ju)(ju)發布(bu)帶來了(le)可伸(shen)縮的(de)(de)(de)(de)(de)(de)要求。可以這樣(yang)說,能(neng)否具有可伸(shen)縮性(xing)能(neng)是決定Web Scada系(xi)(xi)統(tong)能(neng)夠進入大(da)規模工(gong)程(cheng)實(shi)際(ji)應用的(de)(de)(de)(de)(de)(de)基(ji)礎。其(qi)他的(de)(de)(de)(de)(de)(de)多項技(ji)術(shu)都須建立在它(ta)的(de)(de)(de)(de)(de)(de)基(ji)礎之(zhi)上(shang)才會有實(shi)際(ji)意義。
Web Scada系統(tong)的分層設計如下[3]:
由監控邏輯層處理復雜多(duo)變(bian)的通訊(xun)層變(bian)動,為界(jie)面層提供一個穩定的數據來(lai)源是建立可伸縮Web Scada系統的關鍵。
本文(wen)擬以一個實(shi)際的(de)(de)Web Scada系統(tong)的(de)(de)開發為(wei)背景,利用(yong).Net Framework 4.0、VS2010以及IIS、HTML技(ji)術建立一個可伸縮的(de)(de)Web Scada 系統(tong),其核心是建立介于通(tong)訊層(ceng)和界(jie)面層(ceng)之間的(de)(de)監控邏輯層(ceng)。通(tong)過該層(ceng)實(shi)現與(yu)通(tong)訊層(ceng)的(de)(de)可伸縮連接和與(yu)Web界(jie)面層(ceng)之間的(de)(de)穩定連接。
一、現有Web Scada系統模式
現(xian)有的Web Scada 系統(tong)主要(yao)為了實現(xian)采(cai)(cai)集的數(shu)(shu)據信息的Web展現(xian),他們都以(yi)在Web 頁(ye)面中實施(shi)展現(xian)通訊層的數(shu)(shu)據采(cai)(cai)集內容為主要(yao)功能(neng)。由(you)于面對的用戶規模不同(tong),出現(xian)了比較多的Web Scada 系統(tong),但它們基本都屬于以(yi)下(xia)兩類:
1、 分布(bu)式Web Scada 系(xi)統(下稱分布(bu)式系(xi)統)
系統有多個服(fu)務(wu)器分別(bie)處理不同間隔內的(de)遠程(cheng)裝置(RTU)數據采集。形成分布式的(de)網絡數據庫,用戶(hu)根(gen)據需要(yao)連(lian)接到不同的(de)服(fu)務(wu)器對其連(lian)接的(de)遠程(cheng)裝置進行(xing)監控。在此結構(gou)中,服(fu)務(wu)中內含Web Server。它可以根(gen)據用戶(hu)規模(mo)的(de)不同,增添更(geng)多的(de)服(fu)務(wu)器來滿足用戶(hu)的(de)擴展要(yao)求。如下圖(tu)2。
2、 集中(zhong)式Web Scada系統(下稱集中(zhong)式系統)
系(xi)統只有一個服務器分別處(chu)理間隔內(nei)(nei)的(de)(de)(de)遠(yuan)程裝(zhuang)(zhuang)置(RTU)數據采集。形(xing)成集中(zhong)的(de)(de)(de)網(wang)絡(luo)數據庫,用戶可(ke)以對其(qi)連接的(de)(de)(de)遠(yuan)程裝(zhuang)(zhuang)置進行(xing)監(jian)控。在(zai)此結構中(zhong),服務中(zhong)內(nei)(nei)含Web Server。它(ta)可(ke)以根據用戶規模(mo)的(de)(de)(de)不同,增添更多遠(yuan)程裝(zhuang)(zhuang)置和采用更好的(de)(de)(de)服務器來滿足用戶的(de)(de)(de)擴展(zhan)要(yao)求。如(ru)上圖3。
二(er)、 可伸縮Web Scada 系統模式(shi)
上述(shu)的(de)兩種(zhong)系統模式在(zai)解決(jue)實際的(de)問題時,存(cun)在(zai)著各自的(de)優缺點(dian)。
分布式系統的(de)(de)(de)優點是擴展服務(wu)器的(de)(de)(de)數量可(ke)以適(shi)應更大(da)(da)規模的(de)(de)(de)用戶需(xu)求,它適(shi)應用戶規模較大(da)(da)的(de)(de)(de)情況,缺點是:如(ru)果采用客(ke)戶端(duan)查(cha)詢方式(client pull)[2]沒有更新(xin)的(de)(de)(de)數據時也(ye)需(xu)要(yao)定時查(cha)詢,網絡(luo)流量大(da)(da);如(ru)果采用服務(wu)端(duan)推送(song)(server push)[2],則(ze)由于需(xu)要(yao)保持連(lian)接通道,使得客(ke)戶端(duan)的(de)(de)(de)數量受到(dao)限制(zhi)。同(tong)時,如(ru)果要(yao)同(tong)時監控多個(ge)服務(wu)器的(de)(de)(de)數據則(ze)需(xu)要(yao)服務(wu)器之間要(yao)建立相(xiang)應的(de)(de)(de)聯系,會破壞服務(wu)器之間的(de)(de)(de)獨(du)立性,極大(da)(da)地增(zeng)加其擴展的(de)(de)(de)代價。
集中式系統(tong)顯(xian)然(ran)沒有分布式系統(tong)的(de)這些(xie)缺點,其優點是:結構簡單,數據統(tong)一管(guan)理,網頁設計簡單穩(wen)定,頁面刷新延遲(chi)小。但它(ta)的(de)缺點也是顯(xian)而易見的(de):擴展受限,要增加遠(yuan)程裝置的(de)數據,只能提升服(fu)務器(qi)的(de)性能。它(ta)只適應用戶(hu)規(gui)模較小的(de)情況。
在我們開發Web Scada系統的時,我們提出了(le)以下(xia)目標:
穩(wen)定(ding)的界面層(ceng)
靈活地適用(yong)于不同的用(yong)戶規模
因為我們(men)的(de)用戶分布(bu)于各個行業,自動化(hua)水平相差很大(da),我們(men)提出這(zhe)樣的(de)目標是要實現開發和(he)維護成本的(de)最(zui)低化(hua)。該系統(tong)的(de)結構如(ru)下圖4:
比較它和分(fen)布式系統結(jie)構,我們(men)(men)可以看(kan)到,Web Server不(bu)再內含。它增(zeng)加了(le)發(fa)布網頁的(de)(de)Web Server、進行(xing)(xing)數據(ju)管(guan)(guan)(guan)理(li)的(de)(de)數據(ju)服(fu)務器(qi)(qi)、進行(xing)(xing)文(wen)件(jian)管(guan)(guan)(guan)理(li)的(de)(de)文(wen)件(jian)傳送服(fu)務器(qi)(qi)等(deng)等(deng)(我們(men)(men)的(de)(de)實際系統中,還(huan)包(bao)含事件(jian)管(guan)(guan)(guan)理(li)服(fu)務器(qi)(qi)、口令(ling)管(guan)(guan)(guan)理(li)服(fu)務器(qi)(qi)、數據(ju)轉發(fa)服(fu)務器(qi)(qi)等(deng)等(deng))。因為它是按照(zhao)需要的(de)(de)功能進行(xing)(xing)配置的(de)(de),所以它是可伸縮的(de)(de)。比如增(zeng)加事件(jian)短信(xin)報(bao)(bao)警(jing)功能,接(jie)在網絡上(shang)加掛一(yi)個短信(xin)報(bao)(bao)警(jing)服(fu)務器(qi)(qi)。
在用戶(hu)規模的(de)可伸(shen)縮上,Web Scada Server、數(shu)據服(fu)(fu)務(wu)(wu)(wu)器(qi)(歷史數(shu)據、實(shi)時數(shu)據)、文件傳送服(fu)(fu)務(wu)(wu)(wu)器(qi)、事(shi)件管理服(fu)(fu)務(wu)(wu)(wu)器(qi)、口令管理服(fu)(fu)務(wu)(wu)(wu)器(qi)、數(shu)據轉(zhuan)發服(fu)(fu)務(wu)(wu)(wu)器(qi)等服(fu)(fu)務(wu)(wu)(wu)器(qi)都是可配(pei)置的(de),而且是自動加載的(de),可以(yi)實(shi)現在線切(qie)換(huan)。
在具(ju)體實現方式上,每(mei)個服務(wu)器均(jun)公布(bu)WCF接口(kou),按照(zhao)SOA架構進行(xing)(xing)開發,每(mei)個服務(wu)均(jun)是可配置(綁定、終結(jie)點(dian))的(de),便(bian)于(yu)在復雜的(de)網(wang)絡中進行(xing)(xing)靈(ling)活的(de)部署。此外,數據(ju)轉發服務(wu)器可以增加、修改(gai)、刪除轉發實例,為(wei)實現用戶規模(mo)的(de)可伸縮奠(dian)定了(le)基礎。部署結(jie)構如圖5
三、關鍵技術的實現(xian)
1、 靈(ling)活的數據轉發
我們知道,用戶規(gui)模不同,遠程通訊(xun)裝置的(de)數(shu)量(liang)就不同,要為(wei)界面層建立(li)一個(ge)穩(wen)定的(de)數(shu)據(ju)來源(yuan),我們需要建立(li)一個(ge)處(chu)理(li)系統所有(you)同類數(shu)據(ju)的(de)服務器(qi),然后(hou)把相關的(de)數(shu)據(ju)都交(jiao)到該(gai)服務器(qi)中進行(xing)處(chu)理(li),讓它進行(xing)Web數(shu)據(ju)發布。以歷史數(shu)據(ju)處(chu)理(li)為(wei)例,其軟件結構如下圖6:
這樣(yang),針對(dui)多(duo)個通訊服務器(對(dui)應(ying)不同(tong)的(de)(de)用(yong)戶規模),我們(men)在(zai)系(xi)(xi)統中(zhong)配置對(dui)應(ying)數量的(de)(de)歷史(shi)數據(ju)(ju)轉(zhuan)(zhuan)發器,就可(ke)以適應(ying)用(yong)戶的(de)(de)遠(yuan)程通訊裝置數量的(de)(de)擴展變化。歷史(shi)數據(ju)(ju)轉(zhuan)(zhuan)發器運(yun)行(xing)的(de)(de)實例數量根(gen)據(ju)(ju)配置文件自動生(sheng)成(cheng),不僅(jin)如此,還必須在(zai)服務器系(xi)(xi)統啟動后自動載(zai)入,且在(zai)運(yun)行(xing)過(guo)程中(zhong)受(shou)到監控。?
2、 數據(ju)服務端推送
如圖1,監控邏(luo)輯(ji)層(ceng)向界面層(ceng)發布數(shu)(shu)據(ju)(ju)是實現界面層(ceng)向用戶呈(cheng)現采集數(shu)(shu)據(ju)(ju)的(de)基(ji)礎(chu),由于(yu)我(wo)們采用的(de)是SOA架構,模塊(kuai)連接采用WCF接口,所以我(wo)們可以很方便(bian)地(di)采用建立雙向通道的(de)方式實現服務端數(shu)(shu)據(ju)(ju)推送[1]。
如圖7,實(shi)(shi)(shi)(shi)時(shi)(shi)(shi)(shi)(shi)數(shu)(shu)(shu)據(ju)(ju)轉發(fa)器(qi)(qi)(qi)在(zai)從(cong)通(tong)訊(xun)服務(wu)(wu)(wu)器(qi)(qi)(qi)取得實(shi)(shi)(shi)(shi)時(shi)(shi)(shi)(shi)(shi)數(shu)(shu)(shu)據(ju)(ju)后將(jiang)實(shi)(shi)(shi)(shi)時(shi)(shi)(shi)(shi)(shi)數(shu)(shu)(shu)據(ju)(ju)存(cun)(cun)入實(shi)(shi)(shi)(shi)時(shi)(shi)(shi)(shi)(shi)數(shu)(shu)(shu)據(ju)(ju)存(cun)(cun)取服務(wu)(wu)(wu)器(qi)(qi)(qi),實(shi)(shi)(shi)(shi)時(shi)(shi)(shi)(shi)(shi)數(shu)(shu)(shu)據(ju)(ju)存(cun)(cun)取服務(wu)(wu)(wu)器(qi)(qi)(qi)發(fa)現數(shu)(shu)(shu)據(ju)(ju)有(you)變化(hua)便使(shi)用(yong)(yong)實(shi)(shi)(shi)(shi)時(shi)(shi)(shi)(shi)(shi)監控畫(hua)面事(shi)先(xian)與(yu)實(shi)(shi)(shi)(shi)時(shi)(shi)(shi)(shi)(shi)數(shu)(shu)(shu)據(ju)(ju)存(cun)(cun)取服務(wu)(wu)(wu)器(qi)(qi)(qi)建立(li)好(hao)的回調通(tong)道,向(xiang)實(shi)(shi)(shi)(shi)時(shi)(shi)(shi)(shi)(shi)監控畫(hua)面推送實(shi)(shi)(shi)(shi)時(shi)(shi)(shi)(shi)(shi)數(shu)(shu)(shu)據(ju)(ju)。在(zai)WCF技術中,一般采(cai)用(yong)(yong)TCP通(tong)道,因(yin)為它(ta)是面向(xiang)連接的,而Http通(tong)道是無狀(zhuang)態的,不適合做雙(shuang)向(xiang)通(tong)道,當然,Http也(ye)有(you)雙(shuang)向(xiang)的Http,但是由于(yu)它(ta)要(yao)指定回調的知(zhi)名(ming)端口(kou)而使(shi)得回調會受到(dao)一些(xie)限制[4]。
四、結束(shu)語
采用(yong)面向服(fu)(fu)務(wu)(wu)(wu)的(de)系(xi)(xi)(xi)(xi)(xi)統(tong)(tong)結構式(shi)我們可(ke)(ke)以結合Web Scada系(xi)(xi)(xi)(xi)(xi)統(tong)(tong)分(fen)布(bu)式(shi)和集(ji)中式(shi)模(mo)式(shi)的(de)優點(dian)形(xing)成(cheng)(cheng)可(ke)(ke)伸縮(suo)Web Scada系(xi)(xi)(xi)(xi)(xi)統(tong)(tong),該(gai)系(xi)(xi)(xi)(xi)(xi)統(tong)(tong)由簡潔的(de)數(shu)據(ju)通(tong)訊服(fu)(fu)務(wu)(wu)(wu)器(qi)(qi)(qi)、數(shu)據(ju)管理(li)服(fu)(fu)務(wu)(wu)(wu)器(qi)(qi)(qi)、文件傳送服(fu)(fu)務(wu)(wu)(wu)器(qi)(qi)(qi)、口令管理(li)服(fu)(fu)務(wu)(wu)(wu)器(qi)(qi)(qi)等組成(cheng)(cheng)。它綜合了(le)集(ji)中式(shi)系(xi)(xi)(xi)(xi)(xi)統(tong)(tong)和分(fen)布(bu)式(shi)系(xi)(xi)(xi)(xi)(xi)統(tong)(tong)的(de)優點(dian)。由于通(tong)訊服(fu)(fu)務(wu)(wu)(wu)器(qi)(qi)(qi)負責與(yu)遠程裝置(zhi)的(de)數(shu)據(ju)通(tong)訊,靈活(huo)(huo)地部署和配置(zhi)通(tong)訊服(fu)(fu)務(wu)(wu)(wu)器(qi)(qi)(qi)可(ke)(ke)以適(shi)應不同規(gui)模(mo)的(de)用(yong)戶需(xu)求,靈活(huo)(huo)地部署各個功能(neng)(neng)(neng)服(fu)(fu)務(wu)(wu)(wu)器(qi)(qi)(qi)可(ke)(ke)以適(shi)應用(yong)戶的(de)不同功能(neng)(neng)(neng)要求,以此形(xing)成(cheng)(cheng)可(ke)(ke)伸縮(suo)Web Scada系(xi)(xi)(xi)(xi)(xi)統(tong)(tong)。今(jin)后,還將(jiang)開發(fa)多級熱備份功能(neng)(neng)(neng),故(gu)障(zhang)錄播分(fen)析服(fu)(fu)務(wu)(wu)(wu)器(qi)(qi)(qi)、潮流分(fen)析服(fu)(fu)務(wu)(wu)(wu)器(qi)(qi)(qi)、諧波分(fen)析服(fu)(fu)務(wu)(wu)(wu)器(qi)(qi)(qi)、數(shu)據(ju)預(yu)處理(li)系(xi)(xi)(xi)(xi)(xi)統(tong)(tong)等行業系(xi)(xi)(xi)(xi)(xi)統(tong)(tong)的(de)專用(yong)功能(neng)(neng)(neng)服(fu)(fu)務(wu)(wu)(wu)器(qi)(qi)(qi)。
二、 文獻
[1] 秦(qin)友倫、孟文(wen)、易東(dong),Sliverlight在Web Scada中的應用,工業(ye)控制計算機,2011,24(9):31-31
[2] 蔣士林,基(ji)于Web的SCADA系統,科技廣場,2006,1:32-33
[3] 沈正、陳鍾,基于WCF和SOA的電力SCADA系統研究(jiu)與開發(fa),中國新技術新產品,2009,No.13:17-18
[4] Juval Lowy,WCF服(fu)務(wu)編程(張逸(yi)、徐寧譯),機械工業出版(ban)社(she),2009
[5] 蔣金楠,WCF技(ji)術剖析(卷1),電子(zi)工(gong)業出版社(she),2008
作者簡介(jie):
曾明昌 (1966- ) 男(nan) 四川(chuan)省德陽人 本科生(sheng) 研究(jiu)方向:WCF應(ying)用、SOA、網絡數據管理
Copyright 2018 四川臻誠電氣有限公(gong)司 版權所有 :