摘 要: 高性能電力應(yīng)用致力于搭建用于調(diào)度數(shù)據(jù)的統(tǒng)一管理、集中處理平臺(tái)。數(shù)據(jù)網(wǎng)格易于海量數(shù)據(jù)共享的特點(diǎn)使其適用于實(shí)現(xiàn)調(diào)度主站一體化。構(gòu)建了調(diào)度主站數(shù)據(jù)網(wǎng)格的基本架構(gòu),利用網(wǎng)格軟件Globus Toolkit建立網(wǎng)格環(huán)境,在此基礎(chǔ)上配置數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)中間件OGSA-DAI來(lái)建立面向調(diào)度主站一體化的數(shù)據(jù)網(wǎng)格實(shí)驗(yàn)平臺(tái)。
關(guān)鍵詞: 調(diào)度主站一體化;數(shù)據(jù)網(wǎng)格;網(wǎng)格服務(wù);統(tǒng)一訪(fǎng)問(wèn)
電力計(jì)算需要在分布式區(qū)域建立數(shù)據(jù)交換與共享,以實(shí)現(xiàn)電網(wǎng)的整體分析計(jì)算,提高實(shí)時(shí)監(jiān)控性能與分布式計(jì)算的能力。而數(shù)據(jù)網(wǎng)格通過(guò)統(tǒng)一分享平臺(tái),實(shí)現(xiàn)對(duì)于資源的統(tǒng)一管理和動(dòng)態(tài)組合,為用戶(hù)提供能夠完成高性能計(jì)算的一體化平臺(tái)。電力數(shù)據(jù)網(wǎng)格致力于建立一種高性能、支持分布式電力計(jì)算的協(xié)作環(huán)境,滿(mǎn)足電力系統(tǒng)新型并行與分布式協(xié)作型業(yè)務(wù)的需要,提高信息系統(tǒng)的資源利用率[1-2]。
OGSA-DAI是目前技術(shù)較為成熟的數(shù)據(jù)網(wǎng)格中間件,建立在Globus Toolkit的網(wǎng)格環(huán)境上,通過(guò)屏蔽下層操作來(lái)實(shí)現(xiàn)對(duì)異構(gòu)數(shù)據(jù)庫(kù)的統(tǒng)一化訪(fǎng)問(wèn)[3]。利用數(shù)據(jù)網(wǎng)格便于異構(gòu)資源管理和共享的功能,實(shí)現(xiàn)分布式數(shù)據(jù)資源管理和共享。
1 數(shù)據(jù)網(wǎng)格
1.1 數(shù)據(jù)網(wǎng)格環(huán)境
Globus是一種用于構(gòu)建計(jì)算網(wǎng)格的開(kāi)放體系結(jié)構(gòu)、開(kāi)放標(biāo)準(zhǔn)的項(xiàng)目,對(duì)資源管理、安全與信息服務(wù)及數(shù)據(jù)管理等網(wǎng)格計(jì)算的關(guān)鍵理論進(jìn)行研究并提供了基本的機(jī)制和接口,適合大型網(wǎng)格系統(tǒng)運(yùn)行的大型應(yīng)用程序的開(kāi)發(fā)。Globus Toolkit工具包來(lái)源于Globus項(xiàng)目,是一個(gè)開(kāi)放源碼的網(wǎng)格的基礎(chǔ)平臺(tái),基于開(kāi)放結(jié)構(gòu)、開(kāi)放服務(wù)資源和軟件庫(kù),并支持網(wǎng)格和網(wǎng)格應(yīng)用,目的是為構(gòu)建網(wǎng)格應(yīng)用提供中間件服務(wù)和程序庫(kù)。
1.2 中間件
OGSA-DAI中間件完全由Java編寫(xiě),因而適用于各種系統(tǒng)平臺(tái)。通過(guò)Web service進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn),即屏蔽服務(wù)內(nèi)部的配置,將查詢(xún)動(dòng)作以服務(wù)的方式執(zhí)行,為構(gòu)建高層次的數(shù)據(jù)網(wǎng)格服務(wù)提供開(kāi)發(fā)工具。
2 調(diào)度主站網(wǎng)格架構(gòu)
數(shù)據(jù)網(wǎng)格適用于解決數(shù)據(jù)密集型電力計(jì)算應(yīng)用中方便高效使用分布式數(shù)據(jù)資源的問(wèn)題,其內(nèi)容主要集中在廣域、異構(gòu)、分布環(huán)境下如何對(duì)數(shù)據(jù)進(jìn)行管理;如何從調(diào)度主站的各種異構(gòu)數(shù)據(jù)資源中獲取數(shù)據(jù);并通過(guò)地域分布的協(xié)作和處理,從數(shù)據(jù)源中獲取有用信息。面向調(diào)度主站的數(shù)據(jù)網(wǎng)格架構(gòu)分為數(shù)據(jù)服務(wù)源、數(shù)據(jù)網(wǎng)格中間件和調(diào)度應(yīng)用三個(gè)層次,如圖1所示。
數(shù)據(jù)網(wǎng)格可以理解為是調(diào)度應(yīng)用同底層存儲(chǔ)系統(tǒng)之間的綜合服務(wù)代理,它對(duì)應(yīng)用程序提供一致的管理以及統(tǒng)一的數(shù)據(jù)結(jié)構(gòu),屏蔽操作的復(fù)雜性和網(wǎng)絡(luò)上存儲(chǔ)系統(tǒng)的異構(gòu)性。該架構(gòu)以數(shù)據(jù)網(wǎng)格為基礎(chǔ),建立輸網(wǎng)調(diào)度自動(dòng)化系統(tǒng)、電能計(jì)量自動(dòng)化系統(tǒng)的數(shù)據(jù)一體化查詢(xún)和管理平臺(tái)。
3 調(diào)度主站網(wǎng)格設(shè)計(jì)實(shí)現(xiàn)
網(wǎng)格中間件,在整個(gè)查詢(xún)的過(guò)程中涉及到多個(gè)模塊的應(yīng)用。整個(gè)軟件的實(shí)現(xiàn)是建立在Globus Toolkit以及在此軟件平臺(tái)上的OGSA-DAI軟件包。其實(shí)現(xiàn)包括實(shí)現(xiàn)數(shù)據(jù)網(wǎng)格中間件軟件配置和數(shù)據(jù)管理應(yīng)用接口編程。
3.1 中間件配置
中間軟件配置是數(shù)據(jù)網(wǎng)格的實(shí)現(xiàn)基礎(chǔ)和開(kāi)發(fā)平臺(tái)。首先安裝Globus Toolkit,重點(diǎn)是配置Globus的認(rèn)證機(jī)制,正確分配用戶(hù)證書(shū);之后需要將OGSA-DAI作為Globus Toolkit中的新服務(wù),配置到網(wǎng)格環(huán)境下的服務(wù)容器中,最后將數(shù)據(jù)庫(kù)作為數(shù)據(jù)服務(wù)源配置到新服務(wù)下。中間件模塊如圖2所示。
OGSA-DAI在網(wǎng)格環(huán)境的服務(wù)容器中添加專(zhuān)門(mén)用來(lái)和數(shù)據(jù)庫(kù)交互的網(wǎng)格服務(wù),可以通過(guò)這個(gè)服務(wù)來(lái)查詢(xún)數(shù)據(jù)庫(kù)的數(shù)據(jù),并返回查詢(xún)的結(jié)果,在這個(gè)過(guò)程中實(shí)現(xiàn)的是將數(shù)據(jù)庫(kù)注冊(cè)到服務(wù)中,以便在訪(fǎng)問(wèn)能夠得知都能訪(fǎng)問(wèn)的數(shù)據(jù)的目錄。單個(gè)服務(wù)可以對(duì)應(yīng)多個(gè)數(shù)據(jù)源,通過(guò)Resource ID來(lái)進(jìn)行識(shí)別。
網(wǎng)格服務(wù)管理和發(fā)現(xiàn)模塊是由Globus Toolkit實(shí)現(xiàn)的,調(diào)節(jié)各個(gè)服務(wù)的執(zhí)行,具體的調(diào)用管理由Globus Toolkit自動(dòng)實(shí)現(xiàn)。
3.2 數(shù)據(jù)管理接口
設(shè)計(jì)目的是將數(shù)據(jù)網(wǎng)格的基本管理功能封裝起來(lái)的中間件軟件模塊,提供簡(jiǎn)單、方便的數(shù)據(jù)調(diào)用和管理接口,為上層應(yīng)用提供統(tǒng)一、共享的數(shù)據(jù)資源。而實(shí)現(xiàn)調(diào)度主站一體化,需要給應(yīng)用提供異構(gòu)電力數(shù)據(jù)庫(kù)數(shù)據(jù)的統(tǒng)一查詢(xún),以及提供對(duì)底層的數(shù)據(jù)庫(kù)的統(tǒng)一管理。調(diào)度主站數(shù)據(jù)網(wǎng)格的數(shù)據(jù)管理接口模塊如圖3所示。
(1)元數(shù)據(jù)提取
元數(shù)據(jù)也就是用來(lái)描述數(shù)據(jù)的數(shù)據(jù)。在數(shù)據(jù)源注冊(cè)的過(guò)程中,除需要向平臺(tái)提交數(shù)據(jù)庫(kù)的類(lèi)型、服務(wù)器IP、端口號(hào)、數(shù)據(jù)庫(kù)名稱(chēng)、只讀用戶(hù)與口令等參數(shù)外,可以通過(guò)元數(shù)據(jù)提取模塊來(lái)提取各個(gè)數(shù)據(jù)庫(kù)中的信息,包括包含的表、字段名等,以便能夠建立所謂的虛擬數(shù)據(jù)庫(kù),方便定位到所需的服務(wù)和數(shù)據(jù)源。
?。?)服務(wù)定位和數(shù)據(jù)庫(kù)連接
在訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)之前,當(dāng)然要連接到數(shù)據(jù)庫(kù)。這個(gè)過(guò)程可以分為兩個(gè)部分:服務(wù)定位和數(shù)據(jù)庫(kù)連接。
?、俜?wù)定位:如果建立了虛擬數(shù)據(jù)庫(kù),這可以通過(guò)程序在虛擬數(shù)據(jù)庫(kù)中查找到所需的服務(wù)和相對(duì)應(yīng)的數(shù)據(jù)源。而在簡(jiǎn)單的情況下,可以直接使用URL來(lái)連接數(shù)據(jù)服務(wù),Resource ID來(lái)確定需要訪(fǎng)問(wèn)的數(shù)據(jù)庫(kù)。
?、跀?shù)據(jù)庫(kù)連接:部署數(shù)據(jù)源時(shí)同時(shí)也部署了JDBC,它是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪(fǎng)問(wèn),是由一組用Java語(yǔ)言編寫(xiě)的類(lèi)和接口組成。當(dāng)確定了服務(wù)和數(shù)據(jù)源后軟件就通過(guò)JDBC實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的連接。
?。?)SQL查詢(xún)
SQL查詢(xún)是軟件最關(guān)鍵的部分,也是軟件的目的。首先涉及到的就是對(duì)于查詢(xún)語(yǔ)句的分析。如果訪(fǎng)問(wèn)單個(gè)數(shù)據(jù)庫(kù),則直接將Sql語(yǔ)句添加到執(zhí)行文檔,然后發(fā)送給數(shù)據(jù)庫(kù)直接執(zhí)行查詢(xún)就可以。當(dāng)Sql語(yǔ)句涉及到多個(gè)數(shù)據(jù)源時(shí),就需要對(duì)Sql語(yǔ)句進(jìn)行分析、拆分,然后再發(fā)送給對(duì)應(yīng)的數(shù)據(jù)源。在整個(gè)執(zhí)行的過(guò)程中,由于數(shù)據(jù)是以流的形式傳送,也需要數(shù)據(jù)流化和存儲(chǔ)模塊的參與。
?。?)結(jié)果處理
對(duì)于執(zhí)行結(jié)果的處理涉及到數(shù)據(jù)集成、數(shù)據(jù)格式轉(zhuǎn)換、查詢(xún)結(jié)果重組這三個(gè)模塊。
?、贁?shù)據(jù)集成:輸配一體化的數(shù)據(jù)管理包括EMS、DMS以及計(jì)量數(shù)據(jù)庫(kù)的統(tǒng)一訪(fǎng)問(wèn)。在某些查詢(xún)中需要來(lái)自不同數(shù)據(jù)庫(kù)的結(jié)果集成到一張表中。軟件中采用的方法是連接到一個(gè)具有多個(gè)數(shù)據(jù)資源的數(shù)據(jù)服務(wù)在其中一個(gè)數(shù)據(jù)庫(kù)中建立新表,將涉及到的數(shù)據(jù)庫(kù)的查詢(xún)結(jié)果匯總到這張表上。
?、跀?shù)據(jù)格式轉(zhuǎn)換:最后的查詢(xún)結(jié)果是以響應(yīng)文檔反應(yīng)的。不同的應(yīng)用客戶(hù)端可能會(huì)對(duì)結(jié)果的形式有不同的要求,而軟件的數(shù)據(jù)格式轉(zhuǎn)化模塊中的XSlTransform活動(dòng)可以實(shí)現(xiàn)將xml的響應(yīng)文檔轉(zhuǎn)換為任何形式的文本文檔,比如轉(zhuǎn)換為HTML以便在瀏覽器中顯示。
③查詢(xún)結(jié)果重組:這個(gè)過(guò)程可以說(shuō)就是將集成和格式轉(zhuǎn)換后的查詢(xún)結(jié)果以客戶(hù)端要求的形式通過(guò)網(wǎng)格服務(wù)接口傳送到相應(yīng)的應(yīng)用。
3.3 接口程序執(zhí)行流程
OGSA-DAI是實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的軟件包,它提供了許多編譯好的class程序以便在編程時(shí)通過(guò)import調(diào)用??梢哉f(shuō)整個(gè)編程的過(guò)程就是涉及到的class程序的調(diào)用和執(zhí)行,而對(duì)于數(shù)據(jù)庫(kù)的連接則是采用JDBC驅(qū)動(dòng)實(shí)現(xiàn)的。接口程序流程圖如圖4所示。
調(diào)度主站一體化數(shù)據(jù)涉及到EMS和計(jì)量數(shù)據(jù)庫(kù),平臺(tái)設(shè)計(jì)的目的就是要實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的統(tǒng)一訪(fǎng)問(wèn)。假如需要查詢(xún)某個(gè)變電站的所有信息:首先是接口接收到用戶(hù)或者應(yīng)用程序的查詢(xún)需求信息,通過(guò)調(diào)用程序形成執(zhí)行文檔;然后是中間件,對(duì)執(zhí)行文檔進(jìn)行分析,根據(jù)數(shù)據(jù)庫(kù)的元數(shù)據(jù)判斷是否需要對(duì)Sql語(yǔ)句進(jìn)行拆分,也就是說(shuō),如果這個(gè)變電站的信息分別保存在多個(gè)數(shù)據(jù)庫(kù)中,就需要對(duì)Sql語(yǔ)句進(jìn)行邏輯拆分,在確定了Resource ID后連接數(shù)據(jù)庫(kù),執(zhí)行完Sql語(yǔ)句后可生成響應(yīng)文檔,響應(yīng)文檔中涉及到模塊的完成情況;最后是針對(duì)不同的應(yīng)用而對(duì)結(jié)果做相應(yīng)的處理,包括數(shù)據(jù)流的存儲(chǔ)、數(shù)據(jù)集成以及數(shù)據(jù)格式的轉(zhuǎn)換,以需要的形式將查詢(xún)的變電站所有信息傳送回客戶(hù)端或者電力應(yīng)用。
OGSA-DAI通過(guò)面向文檔的接口支持與數(shù)據(jù)服務(wù)源的交互過(guò)程如圖5所示。調(diào)度應(yīng)用程序不需要直接操作數(shù)據(jù)服務(wù)源,而是通過(guò)向數(shù)據(jù)服務(wù)發(fā)送一個(gè)執(zhí)行文檔,然后數(shù)據(jù)服務(wù)將文檔轉(zhuǎn)送給代表實(shí)際數(shù)據(jù)源的數(shù)據(jù)服務(wù)源。數(shù)據(jù)服務(wù)源解析執(zhí)行文檔,并且執(zhí)行文檔中指定的動(dòng)作。數(shù)據(jù)源再創(chuàng)建描述請(qǐng)求結(jié)果的響應(yīng)文檔,并且通過(guò)數(shù)據(jù)服務(wù)將響應(yīng)文檔返還到調(diào)度程序[4]。
4 數(shù)據(jù)網(wǎng)格實(shí)驗(yàn)系統(tǒng)
調(diào)度主站數(shù)據(jù)網(wǎng)格實(shí)驗(yàn)平臺(tái)利用局域網(wǎng)模擬分布在不同地理位置的數(shù)據(jù)庫(kù)或者文件服務(wù)器,并通過(guò)網(wǎng)格環(huán)境將各個(gè)服務(wù)器作為統(tǒng)一資源進(jìn)行管理,實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn),并為上層的電力應(yīng)用提供統(tǒng)一數(shù)據(jù)查詢(xún)工作。平臺(tái)的結(jié)構(gòu)包括軟件配置和硬件兩個(gè)部分,如圖6所示。作為實(shí)驗(yàn)平臺(tái),硬件主要是數(shù)據(jù)庫(kù)服務(wù)器并通過(guò)網(wǎng)絡(luò)互聯(lián),軟件配置主要是網(wǎng)格運(yùn)行環(huán)境和為應(yīng)用程序?qū)崿F(xiàn)遠(yuǎn)程、異構(gòu)數(shù)據(jù)庫(kù)安全訪(fǎng)問(wèn)而開(kāi)發(fā)的業(yè)務(wù)應(yīng)用中間件。
數(shù)據(jù)庫(kù)服務(wù)器模擬網(wǎng)格節(jié)點(diǎn),并安裝配置Globus Toolkit網(wǎng)格運(yùn)行中間件,具有安全服務(wù)認(rèn)證功能。遠(yuǎn)程訪(fǎng)問(wèn)的主機(jī)則作為客戶(hù)機(jī)通過(guò)安全證書(shū)認(rèn)證后具有訪(fǎng)問(wèn)數(shù)據(jù)網(wǎng)格節(jié)點(diǎn)權(quán)限。在網(wǎng)格環(huán)境內(nèi)部可以實(shí)現(xiàn)在客戶(hù)主機(jī)上統(tǒng)一訪(fǎng)問(wèn)位于遠(yuǎn)程不同網(wǎng)絡(luò)上的異構(gòu)數(shù)據(jù)庫(kù),并將計(jì)量數(shù)據(jù)庫(kù)、EMS數(shù)據(jù)庫(kù)安裝在不同數(shù)據(jù)網(wǎng)格節(jié)點(diǎn)上。在網(wǎng)格外部,面向調(diào)度主站的接口可實(shí)現(xiàn)對(duì)網(wǎng)格節(jié)點(diǎn)數(shù)據(jù)庫(kù)服務(wù)器統(tǒng)一的數(shù)據(jù)訪(fǎng)問(wèn)。實(shí)驗(yàn)平臺(tái)可完成復(fù)雜、具有不同標(biāo)識(shí)的輸配電數(shù)據(jù)查詢(xún)功能,通過(guò)向接口程序提交查詢(xún)要求,通過(guò)OGSA-DAI數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)中間件的SQL語(yǔ)句處理后可以在為調(diào)度應(yīng)用提供統(tǒng)一數(shù)據(jù)結(jié)構(gòu)的各個(gè)數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)。經(jīng)過(guò)查詢(xún),系統(tǒng)已得到欲查詢(xún)的一次設(shè)備的相關(guān)實(shí)時(shí)量測(cè)數(shù)據(jù),最后通過(guò)數(shù)據(jù)顯示模塊,系統(tǒng)將量測(cè)配置信息及相關(guān)實(shí)時(shí)量測(cè)數(shù)據(jù)分別顯示在界面上,供用戶(hù)查看參考。
在數(shù)據(jù)網(wǎng)格環(huán)境下,開(kāi)發(fā)了基于OGSA-DAI的數(shù)據(jù)網(wǎng)格中間件以實(shí)現(xiàn)底層異構(gòu)數(shù)據(jù)管理與訪(fǎng)問(wèn),利用數(shù)據(jù)網(wǎng)格中間件,建立分布式數(shù)據(jù)體系的統(tǒng)一通用的基本信息框架。將調(diào)度主站的各自動(dòng)化系統(tǒng)與實(shí)時(shí)數(shù)據(jù)庫(kù)真正統(tǒng)一在一起,直接查出各數(shù)據(jù)平臺(tái)上涉及到的所有相關(guān)實(shí)時(shí)量測(cè)數(shù)據(jù)功能。OGSA-DAI能夠十分有效地屏蔽數(shù)據(jù)庫(kù)的下層管理,用于異構(gòu)數(shù)據(jù)的管理與訪(fǎng)問(wèn),實(shí)現(xiàn)廣泛的分布式數(shù)據(jù)資源管理和共享。
參考文獻(xiàn)
[1] DOBRZELECKI B, KRAUSE A, HUME A C, et al.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 International Conference on High Performance Computing and Applications,2009.
[3] 羅清地,蔣秀鳳.網(wǎng)格環(huán)境下基于OGSA-DAI的異構(gòu)數(shù)據(jù)集成研究[J].計(jì)算機(jī)技術(shù)與發(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.