![]() |
學(xué)校地址:湖南省 長沙市 雨花區(qū) 車站南路紅花坡路口 |
![]() |
學(xué)校地址:湖南省 長沙市 雨花區(qū) 車站南路紅花坡路口 |
電力系統(tǒng)實(shí)時(shí)圖形系統(tǒng)的基于COM的設(shè)計(jì)與實(shí)現(xiàn)
戴賽1 李曉明1 陳少明2
(1.武漢大學(xué),湖北武漢430072;2.孝南供電局,湖北孝感432000)
摘 要 針對(duì)電力系統(tǒng)中應(yīng)用軟件圖形系統(tǒng)復(fù)用性不強(qiáng)的問題,提出了一種采用組件對(duì)象模型技術(shù)開發(fā)電力系統(tǒng)實(shí)時(shí)圖形系統(tǒng)的方法。該方法開發(fā)的實(shí)時(shí)圖形系統(tǒng),可實(shí)現(xiàn)圖形的繪制、圖形編輯和圖形狀態(tài)的實(shí)時(shí)控制等,并可開放地為其它軟件提供服務(wù)。
關(guān)鍵詞 COM技術(shù) 電力系統(tǒng) 圖形生成
0 引 言
隨著電力系統(tǒng)信息化的不斷發(fā)展,在一個(gè)電力企業(yè)內(nèi)部,往往同時(shí)存在著不同廠家開發(fā)的各種電力系統(tǒng)應(yīng)用軟件,如SCADA系統(tǒng)、調(diào)度自動(dòng)化系統(tǒng)、MIS系統(tǒng)、地理信息系統(tǒng)、操作票智能生成系統(tǒng)等。在這些應(yīng)用軟件中,經(jīng)常要有界面友好的圖形系統(tǒng),它們是由不同的開發(fā)廠家分別獨(dú)立開發(fā),雖然能滿足各自的要求,但不能做到很好的系統(tǒng)集成,往往存在著功能重復(fù)設(shè)計(jì),即增加一個(gè)應(yīng)用系統(tǒng)時(shí),整個(gè)圖形系統(tǒng)又要重復(fù)設(shè)計(jì),重復(fù)開發(fā)等問題,這樣極大地浪費(fèi)了開發(fā)人員的時(shí)間,增加了企業(yè)的負(fù)擔(dān)。增強(qiáng)軟件復(fù)用性,提高軟件生產(chǎn)率是一個(gè)亟待解決的問題。
電力企業(yè)的應(yīng)用軟件應(yīng)按照系統(tǒng)開放的原則,遵循共同的標(biāo)準(zhǔn),做到插入兼容性(Plug-Compatible),從而提高系統(tǒng)集成度。微軟公司推出的COM/DCOM標(biāo)準(zhǔn)為此提供了有效的工具。
組件對(duì)象模型(Component Object Model/Distribute COM即COM/DCOM)技術(shù)是繼模塊化、結(jié)構(gòu)化,面向?qū)ο箝_發(fā)方法之后,發(fā)展起來的又一新的軟件開發(fā)方法。它主要思想是將一個(gè)對(duì)象的外觀(接口)同其工作方式(實(shí)現(xiàn))分離開來〔1〕,這一封裝思想應(yīng)用到二進(jìn)制層次上,使得我們可以在COM架構(gòu)下開發(fā)出各種各樣的功能專一的軟件“積木塊”,然后根據(jù)需要將其裝配起來構(gòu)成復(fù)雜的應(yīng)用系統(tǒng), 大程度地實(shí)現(xiàn)了軟件的復(fù)用。
1 組件對(duì)象模型
1.1 COM標(biāo)準(zhǔn)
COM標(biāo)準(zhǔn)括規(guī)范和實(shí)現(xiàn)兩大部分。COM規(guī)范是一套為組件架構(gòu)設(shè)置標(biāo)準(zhǔn)的文檔,它定義了組件與組件之間的通信機(jī)制,這些規(guī)范不依賴任何特定的語言和操作系統(tǒng)。COM實(shí)現(xiàn)部分是一個(gè)COM庫(COM Library)的API(ApplicationProgramming Interface),它為COM規(guī)范的具體實(shí)現(xiàn)提供核心服務(wù)。
1.2 COM工作原理
COM本質(zhì)上是客戶機(jī)/服務(wù)器(C/S)模式。當(dāng)客戶通過傳遞一個(gè)組件類的CLSID(ClassIdentifier)請(qǐng)求其服務(wù)時(shí),Windows通過注冊(cè)表透明地查找到組件對(duì)象地址,然后創(chuàng)建該組件對(duì)象,并把客戶請(qǐng)求的接口指針回傳給客戶。在COM模型中,客戶請(qǐng)求服務(wù)時(shí),只是通過GUID(GloballyUnique Identifier)獲取接口指針,從而調(diào)用其相應(yīng)的成員函數(shù)。而COM對(duì)象對(duì)客戶而言是不可見的,客戶只是通過接口才感受到對(duì)象的存在。對(duì)客戶而言,接口便是一切。
COM接口規(guī)范規(guī)定,所有接口都必須直接或間接地從IUnknown接口繼承。IUnknown接口只有3個(gè)函數(shù):QueryInterface()用于接口查詢,AddRef()和Release()用來維護(hù)對(duì)象的生存期管理。COM對(duì)象可支持多個(gè)接口。
C++通過實(shí)現(xiàn)繼承來支持重用,即一個(gè)類繼承其基類的代碼或?qū)崿F(xiàn),COM對(duì)象重用機(jī)制為接口繼承,它指的是一個(gè)類繼承其基類的類型或接口,實(shí)現(xiàn)方法有2種:容(containment)或聚合(aggregation)。容是指外部對(duì)象A作為內(nèi)部對(duì)象B的客戶調(diào)用內(nèi)部對(duì)象B的方法來實(shí)現(xiàn)自己的功能。
聚合是指外部對(duì)象A將內(nèi)部對(duì)象B的接口暴露出來,就象它自己的接口一樣。
組件程序通常有2種實(shí)現(xiàn)形式:一種是動(dòng)態(tài)鏈接庫,運(yùn)行時(shí)客戶程序與組件程序運(yùn)行在同進(jìn)程地址空間,故也叫進(jìn)程內(nèi)組件;另一種形式是EXE文件,這種組件運(yùn)行時(shí),客戶程序和組件程序運(yùn)行在不同的進(jìn)程地址空間,故也叫進(jìn)程外組件。
當(dāng)跨越機(jī)器的邊界時(shí),為適應(yīng)分布式環(huán)境,微軟推出了DCOM,進(jìn)一步提供位置透明性。
總的來說,COM的特點(diǎn)有:語言無關(guān)性。它采用的是一種二進(jìn)制代碼級(jí)的標(biāo)準(zhǔn),而非源代碼級(jí)的標(biāo)準(zhǔn);進(jìn)程透明性。客戶與服務(wù)器既可以在一個(gè)進(jìn)程中,也可不在一個(gè)進(jìn)程中;位置透明性。客戶與服務(wù)器既可以在1臺(tái)機(jī)器上,也可跨越網(wǎng)絡(luò);版本兼容。組件可以在不妨礙已有客戶的情況下被升級(jí)。
1.3 COM組件開發(fā)
現(xiàn)在微軟公司在VisualC++中提供了2種方法來開發(fā)COM組件:MFC庫(MicrosoftFoundation Class Library)和ATL模板庫(ActiveTemplate Library)。MFC不僅可用于建立COM應(yīng)用,而且是一套Windows平臺(tái)上各種應(yīng)用開發(fā)的基本類庫。ATL主要側(cè)重于開發(fā)一些小巧、快捷的COM組件。
2 電力系統(tǒng)實(shí)時(shí)圖形系統(tǒng)設(shè)計(jì)方法
2.1 總體設(shè)計(jì)
文章致力于利用MFC庫開發(fā)一個(gè)可復(fù)用的電力系統(tǒng)實(shí)時(shí)的圖形系統(tǒng),從而為眾多電力系統(tǒng)應(yīng)用軟件提供開放的、統(tǒng)一的圖形用戶界面。系統(tǒng)的總體結(jié)構(gòu)如圖1所示。
[1] [2] [3] 下一頁
湖南省陽光電子技術(shù)學(xué)校常年面向全國招生.安置就業(yè)。考試合格頒發(fā)全國通用權(quán)威證書:《中華人民共和國職業(yè)資格證》 、《電工證》 、《焊工證》 。采用我校多年來獨(dú)創(chuàng)的“模塊教學(xué)法”,理論與實(shí)踐相結(jié)合、原理+圖紙+機(jī)器三位一體的教學(xué)模式,半天理論,半天實(shí)踐,通俗易懂,確保無任何基礎(chǔ)者也能全面掌握維修技能、成為同行業(yè)中的佼佼者。工作(一期不會(huì),免費(fèi)學(xué)會(huì)為止)。