郭 潔,王崢瀛,張 煦
(中國水利水電科學研究院中水科技公司,北京 100038)
基于H9000實時數據庫的Web發布系統
郭 潔,王崢瀛,張 煦
(中國水利水電科學研究院中水科技公司,北京 100038)
簡要介紹了基于H 9000實時數據庫的Web發布系統的設計思路,主要特點及功能描述。
Woix;Web發布系統;H9000實時數據庫;Socket
隨著水電廠控制系統的高度自動化,基于B/S(Browser/Server)結構的生產信息實時發布系統日益被各電廠所重視。伴隨自動化程度的提高,水電廠數據規模日漸龐大,同時,電站管理人員對獲取監控數據的全面性、實時性要求也在逐步提高。
目前各電廠所用的Web發布系統多數以商業數據庫為基礎,但是由于海量數據造成的數據讀寫周期的拉長,傳統Web發布系統的實時性已經不能滿足用戶的需求。例如:三峽右岸電廠包含模擬數據量15000點,開關數據量50000點,一個完整的數據讀寫周期最長會超過1min,但是實際電廠要求Web發布系統的分辨率在5s以內,基于商用數據庫的Web發布系統已不能滿足要求,基于實時數據庫的Web應用已迫在眉睫。
Woix是基于H9000監控系統的Web發布系統,主要針對各水電廠監控數據瀏覽、信息發布、報表查詢等功能開發而成。H9000是中國水利水電科學院擁有自主知識產權的水電廠監控系統,在我國有很高的市場占有率。Woix研制的主要目的是在無須增加維護工作的情況下將H9000監控系統搬到電力系統辦公系統的瀏覽器上,同時賦予更加豐富多彩的表現形式,以及提供更多分析、統計結果的展示。
Woix的主要功能是基于H9000實時數據庫實現Web發布,采用AJAX(Asynchronous JavaScript and XML,異步JavaScript腳本和XML技術)框架;圖形使用SVG(Scalable Vector Graphic)格式,系統的畫面可轉換為SVG格式在Web站點上展示,動態縮放,提供多種動態效果展示生產過程;以面向對象的語言C#為開發工具,能滿足大型水電廠海量數據瀏覽,查詢的需求。Web服務器實現H9000實時數據庫訪問接口,能實時接收監控系統數據,包含模擬量、開關量、事件、報警等。
Woix的數據處理分為客戶端和服務器端兩個部分。
本系統的客戶端腳本使用JavaScript,要完成的工作有以下幾項:
(1)向Web服務器要求實時數據
實現方法為頁面腳本通過XMLHttp協議,定時向Web服務器上負責查詢的頁面發送XML查詢報文。
(2)解析返回數據包
服務器端解析查詢數據包,對所有數據點向數據庫進行一次查詢,比較數值是否發生變化,對變化數據重新組包寫回客戶端??蛻舳私馕龇祷財祿?,獲得已變化的數據點,以動態圖符(儀表、棒圖等)、數值、光字等形式展示在瀏覽器上。客戶端僅需處理已變化數據,負荷能得到有效降低。
服務器端接收客戶端的查詢數據包,根據查詢條件返回XML數據包。
系統基于H9000實時數據庫,從實時數據庫中讀取實時數據及報警信息。Web服務器使用Socket接口向數據采集服務器發送請求,接收數據(見圖1)。

圖1 基于實時數據庫的Web發布系統數據處理示意圖
為了進一步的提高數據的實時性,系統采用了頁面緩存和數據緩存雙重緩存機制來最大程度的縮短數據讀取周期。
當客戶端登錄系統調用數據時,首先判斷服務器端的頁面緩存是否符合要求,如果符合則直接將頁面緩存返回給客戶端,如果頁面緩存不符合,則進入服務器端的數據緩存區查詢符合要求的數據并返回,將未查詢到的數據組包向數據采集服務器發送請求,查詢結果存入數據緩存區以備下次使用(見圖 2)。

圖2 基于實時數據庫的Web發布系統數據處理流程圖
(1)頁面緩存
頁面輸出緩存通過保存動態頁面的輸出內容,大大提高了服務器應用的能力。輸出緩存常用于把整個輸出頁面緩存起來。對于一個存取繁忙的站點來說,把一些常用頁面放入內存會帶來性能上的極大提高。當一個頁面被放入輸出緩存,那么接下來的對該頁面的相同請求將不再執行創建它的代碼,而是從內存中直接返回該頁面,同時也減少了Web服務器與數據源之間的交互。
(2)數據緩存
數據緩存是指當Web服務器從數據采集服務器讀取數據后,先將數據保存到Web服務器的內存中,如果在一定時間范圍內其它客戶端查詢此數據點,則不必通過數據采集服務器讀取數據,直接從數據緩存內讀取數據返回。此方式減少了Web服務器與數據源之間的交互。
畫面處理也分為客戶端和服務器端兩個部分(圖3)。

圖3 基于實時數據庫的Web發布系統畫面處理示意圖
本系統使用的圖形通常為SVG的格式,各種控件均以SVG圖元實現。通過改變圖元的屬性可實現控件的動態變化。
按照控件外觀可大致分為普通文本框、數碼文本框、計數器、表計、閥門、管道、開關、刀閘、發電機組、指示燈、棒圖等等。
SVG圖元的表現力非常豐富,除以上幾種比較常用的控件,還可根據用戶需要及電廠的特殊要求制作新的控件。
由于各個電場實際情況不同,對Web界面的畫面質量要求、服務器質量、客戶端數量以及后期維護能力的不同,一種形式的Web發布系統不一定能滿足所有用戶的需求。因此,出于對畫面質量、維護能力及服務器質量等方面考慮,Woix通過以下方法實現信息發布以滿足用戶的不同需求。
(1)手工制作SVG圖片
如大多數的Web發布系統一樣,Woix支持手工繪制網站圖片。此方法需要對工程的總體結構及每張頁面重新構造、美工設計,要求系統集成人員具有一定的Web發布知識,熟悉SVG圖形格式及其制作,后期維護人員需有一定電腦使用基礎,最好對XML文檔及SVG制圖軟件有一定了解。
目前支持SVG格式的制圖軟件比較多并且制圖功能非常強大,重新手工構圖可根據用戶的要求對圖片進行再次布局、數據篩選或再次運算,所以由此方法所制的畫面質量較好。但是因為每張圖片均需要重新制作,前期工作量比較大,對系統集成人員及維護人員的要求也相對較高。
此方法服務器的工作量不大,通常適用于不滿足IPM圖形在Web上的表現能力及外觀,對畫面質量要求較高,后期維護能力較強,服務器配置不高或是客戶端數量較多的用戶使用。
(2)利用轉換器生成SVG圖片
為了降低系統集成人員及后期維護人員的工作量,我們研制了一種SVG轉換器可將IPM制作的監控畫面直接轉換成SVG格式。轉換器只需對轉換路徑,版本等基本信息進行配置即可批量將H9000畫面轉換為SVG圖片。此方法的SVG圖片完全來自轉換器,大大減少了前期制作及后期維護的工作,對系統集成人員及維護人員的要求較低,只需學會使用轉換器即可。由于圖片是由監控系統畫面轉換而來,畫面同監控系統所用的畫面完全相同,Web發布系統的美觀程度完全取決于監控畫面。轉換器可配合手工制圖共同使用,以達到更好的效果。
利用轉換器生成SVG圖片比較適用于對畫面質量要求不高,希望后期維護工作量較小,服務器配置不高或是客戶端數量較多的用戶使用。
(3)動態生成SVG圖片
動態生成SVG圖片是指客戶端在切換畫面時,由服務器實時對圖片進行轉換再發送給客戶端。此方法是動態生成SVG圖片,實現與監控系統的完全同步,服務器本地沒有存放SVG圖片,加大了安全性。放棄轉換器改由服務器實時轉換,雖然加大了服務器的工作量,但是卻完全解放了維護的工作,也減少了系統集成人員的工作。此方法只能獨立使用,不能與前兩種方法配合使用。
此方法服務器的工作量較大,比較適用于對畫面質量要求并不十分高,希望后期維護工作量較小,服務器配置較高或是客戶端數量較少的用戶使用。
(4)選擇性動態生成SVG圖片
以上幾種方法都具有其優點,卻也難免有些弊端。所以我們綜合其優勢,開發出一種兼顧服務器及后期維護工作量的畫面處理方式(圖4)。

圖4 基于實時數據庫的Web發布系統畫面處理流程圖
選擇性動態生成SVG圖片是指當客戶端登錄系統發送畫面請求時,服務器先判斷本地是否有已經生成的SVG畫面,如果沒有則由服務器生成新畫面;如果服務器本地有已經生成的畫面再判斷H9000的畫面是否有修改,如果有修改則由服務器生成新畫面,如果沒有直接將畫面返回客戶端。
此方法服務器工作量適中,Web畫面與監控畫面實時同步,由于可配合手工制圖共同使用,系統美觀程度不局限于監控系統。系統集成及后期維護工作量極小,對于服務器的配置及客戶端數量的限制不高,適用于大部分水電廠的需求,也是目前大部分Woix應用項目的畫面處理方式。
現將基于H9000實時數據庫的Web發布系統與基于商用數據庫Web發布系統在數據信息量、實時性、環境要求等幾方面進行性能比較,如表1所示。

表1 基于H9000實時數據庫的Web發布系統與基于商用數據庫Web發布系統性能對比
作者通過對電力系統實時Web發布系統的深入研究,結合當前大型水電廠的實際情況,開發出了基于H9000實時數據庫的Web發布系統。目前該系統已經在三峽右岸投入運行,運行狀況良好。經過三峽電廠專業技術人員的嚴格測試,性能遠優于基于商用數據庫的Web發布系統,滿足了大型水電廠對生產信息數據在Web上發布的需求。
[1]郭潔,王崢瀛,王桂平.H9000監控系統Web子系統—Woix的研究與開發[J].水電廠自動化,2006,(增).
TP274
B
1672-5387(2011)03-0038-03
2011-04-11
郭潔,女,工程師,從事水電廠計算機監控系統研制、開發工作。