?

基于Web Service 的水情信息交換系統設計與實現

2014-04-30 01:57尹志杰趙蘭蘭
水利信息化 2014年3期
關鍵詞:水情表單數據庫

王 容 ,尹志杰 ,趙蘭蘭

(1. 寧夏水文水資源勘測局,寧夏 銀川 750001;2. 水利部水文局,北京 100053)

水情信息指江河、水庫(湖泊)、地下水和其他水體的水文及有關要素過去,現時及未來的信息,如降水量、水位、流量和土壤含水量等[1]。水情信息是防汛抗旱的耳目,主要通過基層報汛站獲取,并逐級報送至地市、省、流域、中央水文部門,為各級防汛抗旱指揮部門提供決策支持。2005 年,水利部水文局基于《水情信息編碼標準》和《實時雨水情數據庫表結構與標識符標準》開發了 C/S 版的水情信息傳輸軟件,實現了實時水情信息的自動編碼、傳輸、譯電及入庫,提高了信息的收集傳輸效率。近年來,我國水情監測站點大幅增加,自動化水平明顯提高,水情信息測報頻次和信息總量成倍上升,原有軟件難以傳輸基礎類、預報類及統計類水情信息,不適應自動測報技術,已無法滿足實際需要,迫切需要一種新的傳輸方式來提高水情信息傳輸的技術水平。

目前,全國水利信息骨干網已全面覆蓋水利部、各流域和省級水文部門,地市也實現了與省級(流域)之間的互聯;同時,南方部分省份在地市與省之間已采用數據交換方式傳輸水情信息?;谝陨蠗l件,結合水情信息編碼和實時雨水情數據庫的標準修訂工作,水利部水文局于 2010 年初啟動了數據庫之間的信息交換研究工作,設計并研發了水情信息交換系統。

1 系統總體架構

1.1 體系結構

水情信息交換系統依托全國水利信息骨干網,基于水利行業標準 SL323-2011《實時雨水情數據庫表結構與標識符》開發,可用于多級水情部門間傳輸水情信息。系統主要采用 B/S 模式,在配置、維護方面輔助以 C/S 模式進行設計開發,在確保安全、及時、準確的數據交換基礎上,提供了友好的交互操作頁面,增加了數據的透明度,方便網內發送和接收節點相互查詢信息。系統軟件開發基于微軟的 .Net 技術框架,采用 Web Service 技術實現遠程數據傳輸,利用 Ajax 技術實現良好的界面交互效果。根據系統需求,劃分了數據庫升級、信息發送、信息接收、統計分析、信息監控等 5 個子系統,各子系統既相互關聯又可獨立運行,確保某一子系統出現故障時不影響其他子系統的正常運行。數據庫平臺支持 Oracle 和 SQL Server 這 2 大主流數據庫,軟件運行需要 .Net Framework 3.5 和 IIS(互聯網信息服務)的支撐。系統結構如圖 1 所示。

圖1 水情信息交換系統結構

圖2 數據交換流程

1.2 交換流程

系統在 Web 環境下的節點都是對等的,在進行數據交換時,按照功能劃分為發送和接收節點。2 個節點之間進行數據交換主要通過數據持久化模塊、數據處理模塊、發送模塊、接收模塊、Web 服務等完成[2]。流程圖如圖 2 所示。

數據持久化模塊直接同數據庫或各應用接口相互交互。面向不同的異構數據庫進行處理,包括數據庫的插入、更新、刪除等操作;處理異構數據庫中的異構數據庫類型,如各種字符串的轉換等;并通過事務,保證寫入數據的完整性和一致性,防止寫入失敗后數據不一致,在出錯后進行回滾。

數據處理模塊實現數據封裝、解析、轉換等處理,以及用戶的身份、權限驗證;發送模塊、接收模塊及 Web 服務構建了發送和接收點之間的交互窗口,實現數據的發布、交互、接收和發送功能。

數據交換流程中,發送節點通過數據持久化模塊完成數據提取,按照轉發規則進行數據封裝后,映射成 XML 文件,文件依次進行數字簽名并打包成文件流,通過發送模塊發送 Soap 請求,成功后將文件流發送到指定目的地。

接收節點通過接收模塊對 Soap 請求進行處理,進行身份、權限驗證后,提供接收服務;文件流接收后,經過解析,通過數據持久化模塊進行數據的處理、存儲。

發送與接收節點的系統間通信采用 Web 服務的方式,由接收節點提供 Web 服務接口,系統間的數據通信使用 Soap 協議進行交流,接收節點使用WSDL 描述 Web 服務和說明如何與 Web 服務通信[3]。

1.3 運行模式

系統主要部署在水情分中心、?。饔颍┘皣宜橹行模ㄋ恐醒牍濣c),完成每級節點之間的水情信息傳輸。目前全國水情信息傳輸流程主要存在 2 種模式:1)水情信息按照測站、水情分中心、?。饔颍┧橹行?、國家水情中心逐級上傳[4];2)?。饔颍┧橹行募薪邮詹⑾蛩榉种行暮蛧宜橹行姆职l。

水情信息的信息源來自水文測站,具有唯一性,系統運行模式遵循水情信息的傳輸流程,數據交換執行單向傳輸流程。系統運行模式如圖 3 所示。

圖3 水情信息交換系統運行模式

2 系統關鍵技術

2.1 Web Service 技術

Web Service[5]是一種面向服務的分布式計算體系結構,具有松散耦合性、良好的封裝性、協議的通用性和高度可集成性等優點,能夠提供開放的、面向 Internet 的標準程序接口,在不同系統平臺之間具有互操作性,實現不同應用程序之間的遠程過程調用。Web Service 使用(基于 XML)標準化的 Internet 語言和標準化協議(HTTP),使得 Web Service 平臺、語言和發布者能夠相互獨立;通過開放的 Internet 標準,如 SOAP,WSDL 及 UDDI,消除了現有應用集成方案中存在的問題,是解決數據交換共享問題的最佳解決方案。

系統采用 Web Service 技術為接收節點提供狀態查詢和文件接收服務,供發送節點查詢接收節點的接收狀態,并遠程調用文件、接收服務、發送文件,及時進行數據入庫處理,最終實現遠程數據交換。同時,將系統對數據的操作封裝成為標準接口,提高了系統的可拓展性。

2.2 應用層技術

系統在數據交換過程中要保證水情信息交換及時、數據完整,并提供直觀簡潔、易操作的主頁面,對于系統應用層主要使用了以下相關的開發技術:1)利用 COM +、消息隊列(MSMQ)、目錄和安全性等服務,實現業務層與數據層數據服務的交互[6];2)采用 DML 觸發器、數據壓縮(ZIP)、數字簽名(MD5)、遠程命令調用(RPC)、身份驗證等技術,保證數據傳輸的時效性和正確性[7];3)采用Ajax 技術,實現頁面的無刷新數據查詢,保障了系統的多瀏覽器兼容性,極大提高了系統用戶體驗。

2.3 數據層技術

系統基于《實時雨水情數據庫表結構與標識符》進行開發,確保了全國各級水情部門的實時雨水情數據庫格式完全一致,但存在 Oracle 和 SQL Server這 2 種不同類型的異構數據庫系統。系統在數據處理過程中,要保證同步寫入異構數據庫中數據和異構數據庫間交換數據的一致性,對于數據層主要采用以下 2 種技術:1)Spring 技術,實現系統多數據庫事物管理,可同步進行多個數據庫的操作、異常狀態的監視,并完成主備數據庫之間的自動切換,保證數據庫間的一致性;2)IBATIS 技術[8],實現關系數據庫與對象的映射,封裝對數據的訪問,對于異構數據庫可采取完全相同的邏輯處理,通過配置文件設置相應的 SQL 語句進行數據處理。

2.4 數據交換機制

實時水情信息具有較強的時效性,數據交換必須要保證數據同步的及時性、準確性、完整性,并支持異構數據庫平臺。而目前常規的觸發和輪詢機制均存在一定的缺陷,無法滿足實際需要。為此,詳細分析 2 種機制的運行模式,吸取核心思想,設計并提出觸發和輪詢機制結合的混合機制,將 2 種機制取長補短,優勢最大化,使之既能完成異構數據庫之間的數據交換,又能提高數據交換效率,確保數據的完整性。

混合機制是在發送節點的數據庫平臺內采用觸發器機制將發生變動的信息(插入、修改及刪除等)寫入到待交換的數據庫表單中,完成發送數據的提取。然后采用輪詢機制方式監控待交換的數據庫表單,定時處理待交換數據,通過 Web Service 發送到接收節點,實現節點之間的數據交換。工作流程如圖 4 所示。

3 系統實現

3.1 數據庫升級

數據庫升級子系統用于完成實時雨水情數據庫的連接與升級,表結構與 2011 版實時雨水情數據庫表結構一致,完善基礎類、實時類、預報類表單,增加交換類和字典類表單[9],并創建基本類、實時類、預報類及統計類表單的觸發器。

系統實現數據交換必須保證各節點數據庫表結構的一致性,而全國各級水情部門的數據庫均在2005 版實時雨水情數據庫表結構的基礎上創建,并根據單位業務運行增加了表單或字段。為了確保業務系統的正常運行,數據庫升級僅在原有的結構上增加表單和字段,創建主鍵和索引,修改字段類型和長度,如遇到數據問題或數據庫類型限制導致的升級失敗時,系統將自動提示錯誤信息和處理 SQL文件,以便用戶選擇手動處理完成升級。

3.2 信息發送

圖4 混合機制工作流程

信息發送子系統將發送節點實時入庫的水情信息發往相應的接收節點,并為用戶提供 2 種網絡異常時的應急發送方式,保證了信息發送的時效性。按照功能分為發送配置、數據輪詢、數據發送、手工上傳、數據導出、信息補送等 6 個模塊。

發送配置模塊包括信息發往單位、交換站點及表單的設置,用戶可按照報汛任務要求依次完成各個接收節點的設置,待與接收節點連接暢通后,系統將自動啟動輪詢模塊并開始發送數據。發送節點數據庫中有水情信息入庫或對數據進行修改、刪除等操作時,觸發器將自動把發生改變的數據記錄寫入到待發送記錄表中,此時數據輪詢模塊按照輪詢設定時間自動監控待發送信息記錄表中的數據,當輪詢倒計時為 0 時,將依據轉發關系為各個接收節點生成待交換數據文件。生成待交換數據文件后,如網絡暢通,發送模塊將自動上傳待發送狀態的文件;若遇到網絡異常,當接收節點有 VPN 設備時,發送節點用戶可通過人工上傳模塊利用 VPN 虛擬通道上傳文件;若接收節點無 VPN 設備時,也可通過數據導出模塊將待發送或發送失敗的文件包導出,再利用公網發送電子郵件并通知接收節點用戶查收、入庫相關數據。在遇到特殊情況需要補送歷史數據時,用戶可通過信息補送模塊選擇發送的單位、測站、表單及時間段補送本地數據庫中的數據。

3.3 信息接收

信息接收子系統用于接收外單位發來的文件,并依次入庫,實現發送和接收節點信息的同步。按照功能分為接收配置、數據接收、數據導入、數據入庫等 4 個模塊。

接收節點的接收配置在完成信息來源單位設置后,系統將自動啟動接收模塊并開始接收文件。根據發送節點的文件上傳方式,接收模塊提供了自動和手工上傳文件 2 個不同的 Web Service 函數接口。當接收自動上傳文件時,系統會根據發送節點提交的 IP 地址,與數據庫中地址進行對比,判斷是否接收該文件;當接收手工上傳文件時,通過上傳提交的密碼進行驗證,并根據文件包中的 IP 地址識別發送單位。針對發送節點導出的數據文件包,接收節點可通過數據導入模塊將文件導入,依據文件包中的 IP 地址查找發送單位信息。系統通過多種方式成功接收到文件后,將反饋接收成功信息,并啟動數據入庫模塊,將文件中的數據信息存儲于信息接收記錄表中,然后根據表標識字段分批將信息寫入到對應的表單中。信息發送、接收流程如圖 5 所示。

圖5 信息發送、接收流程

3.4 統計分析

統計分析子系統用于水情信息質量考核,分為發送和接收信息統計 2 個模塊。

依據 GB/T 22482-2008《水文情報預報規范》,各級水情部門應定期對水情信息的準確性、及時性和完整性進行檢查和考核,考核內容包括信息數量、時效性及更正數量[10]。為了配合此項工作,水情信息交換系統增加了統計分析功能。發送信息統計模塊統計每日向接收節點發送的信息數據量及時效性,主要包括報送任務站數、實際報送信息站數、報送信息總量、30 min 報送信息量等統計信息;接收信息統計模塊統計每日從發送節點接收的信息數據量與時效性,主要包括報汛任務站數、實際接收信息站數、接收信息總量、30 min 接收信息量等統計信息。所有的統計信息均可按照時間、數量、單位、報汛等級、信息類型等分類顯示,并可進一步查看詳細信息,且支持 Excel 文件導出功能。

3.5 信息監控

信息監控子系統主要為用戶提供實時監控頁面,自動顯示各節點發送和接收信息的狀態、輪詢倒計時及網絡連接情況等,通過系統日志顯示各環節的運行情況,自動將數據交換過程中的異常情況進行告警,并提示錯誤信息,方便用戶管理維護。按照功能分為實時監控、遠程監控、告警提示等 3 個模塊。

實時監控模塊采用 C/S 模式運行在服務器端,用戶可通過監控頁面進行系統的初始設置、手工上傳、數據導入/導出等操作,實時查看各節點發送和接收數據的詳細及統計信息,監控網絡連接及系統運行狀況;遠程監控模塊主要為客戶端服務,方便網內用戶通過 Web 網頁遠程監控各節點的發送和接收狀態、網絡連接和系統運行狀況,查看發送和接收的詳細及統計信息;告警提示模塊主要在監控頁面出現待處理信息或網絡異常、發送文件失敗、備用數據庫連接失敗等錯誤信息時,通過聲音告警的方式進行提醒,并將詳細內容顯示在系統日志中。水利部水文局水情信息交換系統監控頁面如圖 6 所示。

3.6 安全保障

系統開發依托于全國水利信息骨干網和原有的數據庫應用系統,確保了存儲數據和網絡安全,交換安全主要考慮數據交換時水情信息的完整性、安全性、一致性,以及外部系統訪問交換服務器所帶來的安全隱患。

圖6 水利部水文局水情信息交換系統監控頁面

1)鏈路層安全。鏈路層采用全國水利信息骨干網絡數據專用線路,確保了各級水情部門之間的信息安全互通。

2)網絡層安全。網絡層的安全防護通過防火墻技術和安全信息交流系統(隔離網閘)實現。防火墻通過限定源、目地 IP 地址,及源、目的端口達到訪問控制的目的,以防止發生不可預測、潛在破壞性的侵入。安全信息交換系統保障監管系統與內部業務系統的有效隔離和安全可靠的監管信息交流。

3)交換數據安全。系統利用數字簽名、身份驗證等技術確保交換數據的安全,對交換數據進行了以下處理:a)數據加密,使用加密算法將明文轉換為密文,并使用相應的解密算法將密文轉換回明文;b)消息驗證,利用消息身份代碼驗證數據的完整性,確保數據免受意外或者故意(惡意)的篡改;c)身份驗證,利用數字證書提供身份驗證,確定數據的來源。

4)交換系統安全。系統設置了嚴格的安全訪問機制,對于制定 IP 授權的用戶才可訪問;另外在系統管理和維護上,具有管理員身份的用戶登錄后才可進行系統配置和數據處理,并在系統日志中記錄用戶操作過程。

5)數據庫系統安全。數據庫設有安全的數據庫訪問用戶的訪問權限,并提供安全的數據備份和恢復機制。

4 系統特點和優勢

1)創新了數據交換機制。系統設計綜合考慮Oracle 和 SQL Server 這 2 類主流數據庫類型,將觸發器機制和輪詢機制進行了整合,分析和吸取 2 種常規機制的核心思想,提出了觸發和輪詢機制結合的混合機制。該機制將觸發和輪詢 2 種機制取長補短,即支持異構數據庫,又無需在數據庫表單中添加字段,適用于全國水情行業管理模式,確保了交換數據的時效性和安全性,在全國水文系統尚屬首次。

2)適用于自動測報技術。近年新建水文測站均為自動測報站,監測數據可自動采集入庫,但原有信息傳輸系統需要將數據進行編碼才能發送,而交換系統采用數據庫交換方式,直接從數據庫提取數據并發送,實現了水情信息采集、發送、接收全程自動化,大大提高了水情信息傳輸效率。

3)統一了數據庫結構。系統實現數據交換要保證每個節點間的數據庫結構完全一致。系統設計專門增加了數據庫升級環節,對系統部署連接的數據庫進行升級,與 2011 版實時雨水情數據庫表結構相統一,確保了各級水情部門實時雨水情數據庫的一致性。

4)簡化了維護環節。系統運行執行的信息單向傳輸流程,保證了數據源的唯一性,且數據交換環節無需人工干預,測站采集信息入分中心數據庫后,將逐級進行數據交換。無論哪一環節發現數據有誤,只需從源頭修改即可,減少了維護環節,提高了工作效率。

5)實現了信息全面共享。系統開發與《實時雨水情數據庫表結構與標識符》的修訂工作同步開展,新版的實時雨水情數據庫完善了基礎類和預報類表單,增加了統計類表單。系統的運行實現了基礎類、預報類、實時類、統計類信息的全面共享。

5 結語

水情信息交換系統于 2011 年初開發完成,經過8 個單位的試點測試和全國試運行后,于 2011 年汛期正式投入運行。目前,全國共有 39 個流域和省級節點、234 個地市級節點實現了水情信息交換,系統應用范圍基本覆蓋全國,信息傳輸種類、信息量及時效性均得到顯著提高;尤其在縣級非工程措施山洪災害防治和中小河流水文監測項目的推進中,全國水文站點迅猛增加,水情信息交換系統有力推動了全國水情部門開展中小河流、山洪監測等項目所建測站信息的整合共享工作,水利部水文局接收站點及信息量成倍增加。據統計,2013 年全國各類報汛站高達 7 萬余個,新增中小河流站點 1.6 萬個,山洪監測站點 2.6 萬個;水情信息接收總量達 2.65 億條,約為 2010 年信息總量的 12 倍。

[1]水利部. SL 330-2011 水情信息編碼 [S]. 北京:中國水利水電出版社,2011: 1-3.

[2]閔潔,劉麗娟. 基于 XML+Web Service 的異構數據交換技術應用研究[J]. 電腦知識與技術,2011, (7) 26: 6356-6357.

[3]張宗平,張詠,秦慧. 基于 Web Services 的數據交換平臺的應用研究[J]. 現代計算機,2011 (7): 60-62.

[4]水利部水文局,長江水利委員會水文局. 水文情報預報技術手冊[M]. 北京:中國水利水電出版社,2010: 161-191.

[5]帕派佐格羅. Web 服務:原理和技術[M]. 龔玲,張云濤,譯. 北京:機械工業出版社,2009: 1-30.

[6]計巖平. 在數據交換傳輸中安全 Web Service 的實現技術[J]. 計算機應用與軟件,2010, 27 (10) : 281-283.

[7]李菲,張新家,袁林. 基于 Web Services 的群組數據交換系統的研究與實現[J]. 計算機技術與發展,2011, 21 (12):186-190.

[8]張德強,祁亞玲. iBatis.Net(C#)系列二:SQL 數據映射[J].電腦編程技巧與維護,2013(7):5-11.

[9]水利部. SL 323-2011 實時雨水情數據庫表結構與標識符[S]. 北京:中國水利水電出版社,2011: VI-3.

[10]國家質量監督檢驗檢疫總局,國家標準化管理委員會.GB/T 22482-2008 水文情報預報規范[S]. 北京:中國標準出版社,2008: 3-4.

猜你喜歡
水情表單數據庫
電子表單系統應用分析
曹新剛
淺談網頁制作中表單的教學
甜水情
數據庫
數據庫
數據庫
2011年遼寧省汛期水情分析
數據庫
動態表單技術在教學管理中的應用*
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合