基于CORBA的異構(gòu)電力信息系統(tǒng)的集成與數(shù)據(jù)交換
目前國(guó)內(nèi)的電力公司大多有幾個(gè)異構(gòu)的電力信息系統(tǒng),各系統(tǒng)相互獨(dú)立,具有很強(qiáng)的獨(dú)立性和“自治性”,但各系統(tǒng)間資源不能共享,信息不能交換。本文在介紹CORBA常識(shí)的基礎(chǔ)上,提出了基于CORBA的異構(gòu)電力信息集成與數(shù)據(jù)交換的方法,實(shí)現(xiàn)了多個(gè)異構(gòu)電力信息系統(tǒng)的整合和信息交換,并且利用異構(gòu)數(shù)據(jù)庫(kù)開發(fā)了一些新功能。
關(guān)鍵詞:公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu);系統(tǒng)集成;異構(gòu)數(shù)據(jù)庫(kù)
The system integration and data exchange of heterogeneous configuration electric information system based on CORBA
Zhang Zhi-liu, Li Xiao-ming, Zhang Lian-mei
(Wuhan University, Wuhan, 430072)
Abstract: There are several heterogeneous configuration electric information systems in China at the present time. Each system is self-governed. The resource can't be shared as well as information can't be exchanged each other in systems. The article introduces some general knowledge of CORBA, and puts forward a method based on CORBA, which carries out information integration and data exchange between several heterogeneous configuration electric information systems. Some functions have been developed based on heterogeneous database.
Key words:CORBA, System integration, Heterogeneous-configuration database
0 引言
隨著電力系統(tǒng)信息化和自動(dòng)化程度一步步的提高,各地電力公司都建成了多個(gè)異構(gòu)的電力信息系統(tǒng),主要包括調(diào)度自動(dòng)化系統(tǒng)、負(fù)荷控制和用電管理系統(tǒng)、管理信息系統(tǒng)(MIS)和配網(wǎng)地理信息系統(tǒng)等。這些系統(tǒng)關(guān)心電力對(duì)象的不同方面,對(duì)于不同的電力對(duì)象采用了不同的建模方法,相互之間很少設(shè)計(jì)成能夠進(jìn)行自由的數(shù)據(jù)交換,而且采用的開發(fā)工具以及后臺(tái)的數(shù)據(jù)庫(kù)都有可能不一致,使得各個(gè)應(yīng)用系統(tǒng)在信息上成為相對(duì)孤立的“自動(dòng)化島”。為了滿足用戶對(duì)信息集成的需求,異構(gòu)電力信息集成與交換系統(tǒng)(以下簡(jiǎn)稱異構(gòu)集成系統(tǒng))對(duì)屬于不同管理部門的多個(gè)異構(gòu)電力信息系統(tǒng)進(jìn)行整合,溝通信息渠道,建立橫向聯(lián)系,向電力公司各個(gè)職能部門提供較全面的服務(wù)。
要建成異構(gòu)集成系統(tǒng),必須解決一系列兼容性問題,譬如跨平臺(tái)、跨操作系統(tǒng)、跨語(yǔ)言、跨協(xié)議和跨版本等。而CORBA作為分布式對(duì)象的主要標(biāo)準(zhǔn),已成為應(yīng)用系統(tǒng)集成和即插即用的主要技術(shù)?;贑ORBA的應(yīng)用系統(tǒng)集成可以為企業(yè)提供支持多廠商、多平臺(tái)、異構(gòu)網(wǎng)絡(luò)、不同操作系統(tǒng)和已有的傳統(tǒng)應(yīng)用系統(tǒng)的集成和即插即用的環(huán)境,實(shí)現(xiàn)多個(gè)異構(gòu)系統(tǒng)的集成和信息交換。
1 CORBA的相關(guān)概念
公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)CORBA(Common Object Request Broker Architecture)是由OMG(Object Management Group)組織制定的一個(gè)工業(yè)標(biāo)準(zhǔn)。CORBA是OMA(Object Management Architecture)的一個(gè)重要組成部分。OMG即對(duì)象管理體系結(jié)構(gòu),由對(duì)象模型和引用模型組成,對(duì)象模型定義了如何描述分布在異構(gòu)環(huán)境中的對(duì)象,而對(duì)象引用模型則規(guī)定了這些對(duì)象如何進(jìn)行互操作。圖1描述了OMA引用模型的各組成部分。
OMA的重點(diǎn)在于對(duì)象請(qǐng)求代理(即ORB),這是非常必要的。因?yàn)榭蛻舳讼驅(qū)ο笳?qǐng)求執(zhí)行某一任務(wù),必須通過ORB實(shí)現(xiàn)客戶端和對(duì)象之間的通訊。CORBA則詳細(xì)規(guī)定了ORB的接口和特征,OMG給CORBA的定義是:通過ORB一個(gè)客戶程序可以透明地激活服務(wù)器對(duì)象的一個(gè)方法。這個(gè)服務(wù)器對(duì)象可以和客戶程序在同一臺(tái)機(jī)器上,也可以位于網(wǎng)絡(luò)上的另一臺(tái)機(jī)器,ORB截獲調(diào)用請(qǐng)求,然后尋找該服務(wù)器對(duì)象,向其傳遞參數(shù),激活相應(yīng)的方法并返回執(zhí)行結(jié)果,客戶程序不必知道服務(wù)器對(duì)象的位置、它的編程語(yǔ)言、所處的操作系統(tǒng)及其它任何非對(duì)象接口方面的系統(tǒng)信息。這樣,ORB提供分布式異構(gòu)環(huán)境中不同機(jī)器上應(yīng)用程序的互操作和多對(duì)象系統(tǒng)的無縫連接。CORBA定義了創(chuàng)建軟件組件的面向?qū)ο蟮姆椒ǎ憧梢栽趹?yīng)用程序間重用和共享這些軟件組件,每個(gè)對(duì)象的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)都被封裝起來,只對(duì)編程人員展現(xiàn)出一個(gè)定義好的接口,從而減少了程序的復(fù)雜性。
2 CORBA應(yīng)用于異構(gòu)電力信息系統(tǒng)的集成
2.1 系統(tǒng)接口
為了將電力公司的多個(gè)異構(gòu)的電力信息系統(tǒng)集成起來,主要是要設(shè)計(jì)異構(gòu)集成系統(tǒng)與這些系統(tǒng)的接口,也就是CORBA的中間件。CORBA中間件借助IDL(接口定義語(yǔ)言)來描述對(duì)象接口,一個(gè)接口可包含若干相關(guān)方法和屬性,這就實(shí)現(xiàn)了CORBA與語(yǔ)言無關(guān)的獨(dú)立性。CORBA IDL是一種描述接口,可以映射到不同的語(yǔ)言。本文主要利用Delphi提供的Type Library定義接口。其IDL文本文件如下:
VisiBroker會(huì)自動(dòng)根據(jù)IDL文件生成相應(yīng)的CORBA的客戶端代理Stub和CORBA服務(wù)器端的Skeleton。比如說在管理信息系統(tǒng)(MIS)要獲取調(diào)度自動(dòng)化系統(tǒng)的信息,由Stub來處理這種請(qǐng)求后再向?qū)ο笳?qǐng)求代理(ORB)發(fā)送調(diào)用請(qǐng)求,然后由ORB負(fù)責(zé)攔截請(qǐng)求調(diào)用,負(fù)責(zé)找到可以實(shí)現(xiàn)請(qǐng)求的對(duì)象,即調(diào)度自動(dòng)化系統(tǒng),在這個(gè)系統(tǒng)上有CORBA服務(wù)器端的Skeleton,它負(fù)責(zé)處理完請(qǐng)求后返回請(qǐng)求結(jié)果,這樣通過這種接口定義即成功實(shí)現(xiàn)了系統(tǒng)的集成。
2.2 對(duì)象服務(wù)
在原有電力公司的某個(gè)電力信息系統(tǒng)內(nèi),存在著很多需要局內(nèi)另一個(gè)電力信息系統(tǒng)的數(shù)據(jù)的情況。比如說屬于用電管理系統(tǒng)的市場(chǎng)營(yíng)銷部需要調(diào)度自動(dòng)化系統(tǒng)的一些實(shí)時(shí)數(shù)據(jù),即供電局調(diào)度日?qǐng)?bào)表和電網(wǎng)運(yùn)行情況日?qǐng)?bào)表的數(shù)據(jù)。對(duì)供電局調(diào)度日?qǐng)?bào)表,主要需要系統(tǒng)、省網(wǎng)、直供三個(gè)方面的96個(gè)點(diǎn)的有功、無功數(shù)據(jù),以報(bào)表的形式給出,并具要有一定的圖形分析功能。對(duì)電網(wǎng)運(yùn)行情況日?qǐng)?bào)表,要求數(shù)據(jù)以文本文件的形式給出。
以往這些數(shù)據(jù)資料都有人工來傳送,用電管理系統(tǒng)和調(diào)度自動(dòng)化系統(tǒng)雖然都在一個(gè)局域網(wǎng)內(nèi),但也不能實(shí)現(xiàn)資源和數(shù)據(jù)的互通。通過異構(gòu)集成系統(tǒng)就可以通過網(wǎng)絡(luò)來實(shí)現(xiàn),節(jié)省了大量的人力物力,提高了實(shí)時(shí)性和可靠性。這些功能通過上面定義的接口,主要由CORBA的對(duì)象服務(wù)來完成。當(dāng)用電管理系統(tǒng)需要數(shù)據(jù)時(shí),就可以根據(jù)情況,選擇相應(yīng)時(shí)間和內(nèi)容,主動(dòng)讀取數(shù)據(jù)。
3 利用CORBA實(shí)現(xiàn)異種數(shù)據(jù)庫(kù)集成
電力公司的多個(gè)信息系統(tǒng)大多依賴于不同的數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù),要實(shí)現(xiàn)網(wǎng)絡(luò)環(huán)境下的信息共享,就必須聯(lián)合各個(gè)異構(gòu)數(shù)據(jù)庫(kù)建立合理高效的海量異構(gòu)數(shù)據(jù)庫(kù)。異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)是指異構(gòu)的多數(shù)據(jù)庫(kù)系統(tǒng),即組成它的成員數(shù)據(jù)庫(kù)具有的硬件、系統(tǒng)軟件例如操作系統(tǒng)或通信支持不同,或者成員數(shù)據(jù)庫(kù)不同或具有不同的數(shù)據(jù)語(yǔ)義。
CORBA采用一種中性的接口定義語(yǔ)言(IDL)來規(guī)定一個(gè)分布式對(duì)象的邊界以及它與潛在客戶的合同接口,寫入IDL中的分布式對(duì)象應(yīng)當(dāng)可以跨語(yǔ)言、工具、操作系統(tǒng)和網(wǎng)絡(luò)進(jìn)行訪問,從而也就實(shí)現(xiàn)了對(duì)異構(gòu)數(shù)據(jù)庫(kù)的集成。異構(gòu)的多數(shù)據(jù)庫(kù)系統(tǒng)主要由三大部分組成:全局?jǐn)?shù)據(jù)庫(kù)(GDB:Global Database)、多庫(kù)系統(tǒng)事務(wù)管理器(MOTM:Multidatabase Object Transaction Manager)和局部數(shù)據(jù)庫(kù)(LDB:Local Database),如圖2所示。其中全局?jǐn)?shù)據(jù)庫(kù)接受全局事務(wù),把它分解為針對(duì)每個(gè)LDB的子事務(wù)后交給MOTM;MOTM負(fù)責(zé)把全局事務(wù)的所有子事務(wù)交予相應(yīng)的LDB站點(diǎn)執(zhí)行,并負(fù)責(zé)維護(hù)全局事務(wù),同時(shí)負(fù)責(zé)負(fù)荷平衡、安全管理等問題;LDB接受MOTM交下來的子事務(wù)并執(zhí)行相應(yīng)的操作。異構(gòu)的多數(shù)據(jù)庫(kù)系統(tǒng)把應(yīng)用的表現(xiàn)邏輯、業(yè)務(wù)邏輯和資源的管理分離開來,在頂層為用戶提供了一個(gè)統(tǒng)一的視圖,用戶可以像使用一種數(shù)據(jù)庫(kù)一樣使用多庫(kù)系統(tǒng),底層數(shù)據(jù)庫(kù)的分布和異構(gòu)對(duì)頂層用戶是透明的。
評(píng)論