于振波 ,牛文楠 ,鄢安娜 ,郭子健 ,陶文偉 ,吳潤澤 ,張海波
(1.華北電力大學 電氣與電子工程學院,北京 102206;2.深圳供電局,廣東 深圳 518001)
電力計算需要在分布式區(qū)域建立數據交換與共享,以實現電網的整體分析計算,提高實時監(jiān)控性能與分布式計算的能力。而數據網格通過統(tǒng)一分享平臺,實現對于資源的統(tǒng)一管理和動態(tài)組合,為用戶提供能夠完成高性能計算的一體化平臺。電力數據網格致力于建立一種高性能、支持分布式電力計算的協(xié)作環(huán)境,滿足電力系統(tǒng)新型并行與分布式協(xié)作型業(yè)務的需要,提高信息系統(tǒng)的資源利用率[1-2]。
OGSA-DAI是目前技術較為成熟的數據網格中間件,建立在Globus Toolkit的網格環(huán)境上,通過屏蔽下層操作來實現對異構數據庫的統(tǒng)一化訪問[3]。利用數據網格便于異構資源管理和共享的功能,實現分布式數據資源管理和共享。
Globus是一種用于構建計算網格的開放體系結構、開放標準的項目,對資源管理、安全與信息服務及數據管理等網格計算的關鍵理論進行研究并提供了基本的機制和接口,適合大型網格系統(tǒng)運行的大型應用程序的開發(fā)。Globus Toolkit工具包來源于Globus項目,是一個開放源碼的網格的基礎平臺,基于開放結構、開放服務資源和軟件庫,并支持網格和網格應用,目的是為構建網格應用提供中間件服務和程序庫。
OGSA-DAI中間件完全由Java編寫,因而適用于各種系統(tǒng)平臺。通過Web service進行數據訪問,即屏蔽服務內部的配置,將查詢動作以服務的方式執(zhí)行,為構建高層次的數據網格服務提供開發(fā)工具。
數據網格適用于解決數據密集型電力計算應用中方便高效使用分布式數據資源的問題,其內容主要集中在廣域、異構、分布環(huán)境下如何對數據進行管理;如何從調度主站的各種異構數據資源中獲取數據;并通過地域分布的協(xié)作和處理,從數據源中獲取有用信息。面向調度主站的數據網格架構分為數據服務源、數據網格中間件和調度應用三個層次,如圖1所示。
數據網格可以理解為是調度應用同底層存儲系統(tǒng)之間的綜合服務代理,它對應用程序提供一致的管理以及統(tǒng)一的數據結構,屏蔽操作的復雜性和網絡上存儲系統(tǒng)的異構性。該架構以數據網格為基礎,建立輸網調度自動化系統(tǒng)、電能計量自動化系統(tǒng)的數據一體化查詢和管理平臺。
網格中間件,在整個查詢的過程中涉及到多個模塊的應用。整個軟件的實現是建立在Globus Toolkit以及在此軟件平臺上的OGSA-DAI軟件包。其實現包括實現數據網格中間件軟件配置和數據管理應用接口編程。
圖2 中間件軟件配置
中間軟件配置是數據網格的實現基礎和開發(fā)平臺。首先安裝 Globus Toolkit,重點是配置 Globus的認證機制,正確分配用戶證書;之后需要將OGSA-DAI作為Globus Toolkit中的新服務,配置到網格環(huán)境下的服務容器中,最后將數據庫作為數據服務源配置到新服務下。中間件模塊如圖2所示。
OGSA-DAI在網格環(huán)境的服務容器中添加專門用來和數據庫交互的網格服務,可以通過這個服務來查詢數據庫的數據,并返回查詢的結果,在這個過程中實現的是將數據庫注冊到服務中,以便在訪問能夠得知都能訪問的數據的目錄。單個服務可以對應多個數據源,通過Resource ID來進行識別。
網格服務管理和發(fā)現模塊是由Globus Toolkit實現的,調節(jié)各個服務的執(zhí)行,具體的調用管理由Globus Toolkit自動實現。
設計目的是將數據網格的基本管理功能封裝起來的中間件軟件模塊,提供簡單、方便的數據調用和管理接口,為上層應用提供統(tǒng)一、共享的數據資源。而實現調度主站一體化,需要給應用提供異構電力數據庫數據的統(tǒng)一查詢,以及提供對底層的數據庫的統(tǒng)一管理。調度主站數據網格的數據管理接口模塊如圖3所示。
圖3 數據管理接口架構
(1)元數據提取
元數據也就是用來描述數據的數據。在數據源注冊的過程中,除需要向平臺提交數據庫的類型、服務器IP、端口號、數據庫名稱、只讀用戶與口令等參數外,可以通過元數據提取模塊來提取各個數據庫中的信息,包括包含的表、字段名等,以便能夠建立所謂的虛擬數據庫,方便定位到所需的服務和數據源。
(2)服務定位和數據庫連接
在訪問數據庫之前,當然要連接到數據庫。這個過程可以分為兩個部分:服務定位和數據庫連接。
①服務定位:如果建立了虛擬數據庫,這可以通過程序在虛擬數據庫中查找到所需的服務和相對應的數據源。而在簡單的情況下,可以直接使用URL來連接數據服務,Resource ID來確定需要訪問的數據庫。
②數據庫連接:部署數據源時同時也部署了JDBC,它是一種用于執(zhí)行SQL語句的Java API,可以為多種關系數據庫提供統(tǒng)一訪問,是由一組用Java語言編寫的類和接口組成。當確定了服務和數據源后軟件就通過JDBC實現對數據庫的連接。
(3)SQL 查詢
SQL查詢是軟件最關鍵的部分,也是軟件的目的。首先涉及到的就是對于查詢語句的分析。如果訪問單個數據庫,則直接將Sql語句添加到執(zhí)行文檔,然后發(fā)送給數據庫直接執(zhí)行查詢就可以。當Sql語句涉及到多個數據源時,就需要對Sql語句進行分析、拆分,然后再發(fā)送給對應的數據源。在整個執(zhí)行的過程中,由于數據是以流的形式傳送,也需要數據流化和存儲模塊的參與。
(4)結果處理
對于執(zhí)行結果的處理涉及到數據集成、數據格式轉換、查詢結果重組這三個模塊。
①數據集成:輸配一體化的數據管理包括EMS、DMS以及計量數據庫的統(tǒng)一訪問。在某些查詢中需要來自不同數據庫的結果集成到一張表中。軟件中采用的方法是連接到一個具有多個數據資源的數據服務在其中一個數據庫中建立新表,將涉及到的數據庫的查詢結果匯總到這張表上。
②數據格式轉換:最后的查詢結果是以響應文檔反應的。不同的應用客戶端可能會對結果的形式有不同的要求,而軟件的數據格式轉化模塊中的XSlTransform活動可以實現將xml的響應文檔轉換為任何形式的文本文檔,比如轉換為HTML以便在瀏覽器中顯示。
③查詢結果重組:這個過程可以說就是將集成和格式轉換后的查詢結果以客戶端要求的形式通過網格服務接口傳送到相應的應用。
OGSA-DAI是實現異構數據庫訪問的軟件包,它提供了許多編譯好的class程序以便在編程時通過import調用??梢哉f整個編程的過程就是涉及到的class程序的調用和執(zhí)行,而對于數據庫的連接則是采用JDBC驅動實現的。接口程序流程圖如圖4所示。
圖4 接口程序流程圖
調度主站一體化數據涉及到EMS和計量數據庫,平臺設計的目的就是要實現對數據庫的統(tǒng)一訪問。假如需要查詢某個變電站的所有信息:首先是接口接收到用戶或者應用程序的查詢需求信息,通過調用程序形成執(zhí)行文檔;然后是中間件,對執(zhí)行文檔進行分析,根據數據庫的元數據判斷是否需要對Sql語句進行拆分,也就是說,如果這個變電站的信息分別保存在多個數據庫中,就需要對Sql語句進行邏輯拆分,在確定了Resource ID后連接數據庫,執(zhí)行完Sql語句后可生成響應文檔,響應文檔中涉及到模塊的完成情況;最后是針對不同的應用而對結果做相應的處理,包括數據流的存儲、數據集成以及數據格式的轉換,以需要的形式將查詢的變電站所有信息傳送回客戶端或者電力應用。
OGSA-DAI通過面向文檔的接口支持與數據服務源的交互過程如圖5所示。調度應用程序不需要直接操作數據服務源,而是通過向數據服務發(fā)送一個執(zhí)行文檔,然后數據服務將文檔轉送給代表實際數據源的數據服務源。數據服務源解析執(zhí)行文檔,并且執(zhí)行文檔中指定的動作。數據源再創(chuàng)建描述請求結果的響應文檔,并且通過數據服務將響應文檔返還到調度程序[4]。
調度主站數據網格實驗平臺利用局域網模擬分布在不同地理位置的數據庫或者文件服務器,并通過網格環(huán)境將各個服務器作為統(tǒng)一資源進行管理,實現異構數據庫的訪問,并為上層的電力應用提供統(tǒng)一數據查詢工作。平臺的結構包括軟件配置和硬件兩個部分,如圖6所示。作為實驗平臺,硬件主要是數據庫服務器并通過網絡互聯,軟件配置主要是網格運行環(huán)境和為應用程序實現遠程、異構數據庫安全訪問而開發(fā)的業(yè)務應用中間件。
圖5 OGSA-DAI執(zhí)行流程
圖6 數據網格實驗系統(tǒng)結構
數據庫服務器模擬網格節(jié)點,并安裝配置Globus Toolkit網格運行中間件,具有安全服務認證功能。遠程訪問的主機則作為客戶機通過安全證書認證后具有訪問數據網格節(jié)點權限。在網格環(huán)境內部可以實現在客戶主機上統(tǒng)一訪問位于遠程不同網絡上的異構數據庫,并將計量數據庫、EMS數據庫安裝在不同數據網格節(jié)點上。在網格外部,面向調度主站的接口可實現對網格節(jié)點數據庫服務器統(tǒng)一的數據訪問。實驗平臺可完成復雜、具有不同標識的輸配電數據查詢功能,通過向接口程序提交查詢要求,通過OGSA-DAI數據庫訪問中間件的SQL語句處理后可以在為調度應用提供統(tǒng)一數據結構的各個數據庫中存儲的數據。經過查詢,系統(tǒng)已得到欲查詢的一次設備的相關實時量測數據,最后通過數據顯示模塊,系統(tǒng)將量測配置信息及相關實時量測數據分別顯示在界面上,供用戶查看參考。
在數據網格環(huán)境下,開發(fā)了基于OGSA-DAI的數據網格中間件以實現底層異構數據管理與訪問,利用數據網格中間件,建立分布式數據體系的統(tǒng)一通用的基本信息框架。將調度主站的各自動化系統(tǒng)與實時數據庫真正統(tǒng)一在一起,直接查出各數據平臺上涉及到的所有相關實時量測數據功能。OGSA-DAI能夠十分有效地屏蔽數據庫的下層管理,用于異構數據的管理與訪問,實現廣泛的分布式數據資源管理和共享。
[1]DOBRZELECKIB, KRAUSEA, HUMEAC, etal.Integrating distributed data sources with OGSA-DAI DQP and VIEWS[C].UK e-Science All Hands Meeting,2010.
[2]LIU X H, SHI Y M, XU Y B, et al.Heterogeneous database integration of EPR system based on OGSA-DAI[C].2nd InternationalConference on High Performance Computing and Applications,2009.
[3]羅清地,蔣秀鳳.網格環(huán)境下基于 OGSA-DAI的異構數據集成研究[J].計算機技術與發(fā)展,2009(3):144-147.
[4]MARIA S,JEMAL H.An agent architecture for managing data resources in a grid environment[J].Future Generation Computer Systems,2009(7):295-303.
[5]PACITTI E, VALDURIEZ P, MATTOSO M.Grid data management: open problems and new issues[J].Journal of Grid Computing, 2007,5(3):273-281.