蘇憲華,徐 迪,熊再豹
(國核電力規(guī)劃設計研究院,北京 100094)
基于CORBA技術(shù)的特高壓智能變電站通信模式研究
蘇憲華,徐 迪,熊再豹
(國核電力規(guī)劃設計研究院,北京 100094)
IEC61850規(guī)定智能電子裝置(IED)采用客戶端/服務器模式進行通信。在現(xiàn)有方式下, IED客戶端/服務器通信模式的實現(xiàn)大多采用客戶端與服務器直接相連的兩層體系結(jié)構(gòu)。本文針對此實現(xiàn)方式的不足,根據(jù)CORBA組件的基本原理,通過CORBA提供的ORB機制建立了三層體系結(jié)構(gòu)的客戶端/服務器通信模式。在全面遵循IEC61850的體系結(jié)構(gòu)的前提下,結(jié)合目前特高壓智能變電站建設的契機,提出了通過構(gòu)建基于CORBA-MMS的通訊結(jié)構(gòu)體系來實現(xiàn)IEC61850通信的方法,實現(xiàn)特特高壓智能變電站的智能通信。
CORBA;IEC61850;中間件;特高壓;智能變電站。
公共對象請求代理體系結(jié)構(gòu)(Common Object Request Broker Architecture,CORBA)是一種被廣泛使用的組件技術(shù)。CORBA提供的對象請求代理(Object Request Broker,ORB)機制是實現(xiàn)客戶端與服務器連接的中間件。通過ORB機制,可以建立一種三層體系結(jié)構(gòu)的客戶端/服務器通信模式。ORB擴展了服務器通信接口的信道容量,當有多個客戶端對服務器發(fā)送服務請求時,ORB緩存客戶端服務請求,并為每個客戶端返回一個服務器對象引用,從而實現(xiàn)對多個客戶端的同時響應。
IEC61850通信協(xié)議的實現(xiàn),應以不改變IEC61850的體系結(jié)構(gòu)為前提。因此,本文提出了基于CORBA-MMS的通信體系結(jié)構(gòu)的IEC61850實現(xiàn)方法。該方法利用CORBA提供的ORB機制,建立了基于IEC61850的三層體系結(jié)構(gòu)的客戶端/服務器通信模式。設計了支持并發(fā)訪問的ORB模型,使服務器能同時對多個客戶端進行響應。通過構(gòu)建CORBA-MMS的通訊系統(tǒng)結(jié)構(gòu),在全面遵循IEC61850的體系結(jié)構(gòu)前提下,實現(xiàn)了CORBA與IEC61850的有機結(jié)合。
客戶端需要向服務器發(fā)送服務請求時,客戶端通過ORB接口激活服務器在本地的代理,構(gòu)造請求消息,將請求消息發(fā)往服務器。服務器通過ORB接口探測到網(wǎng)絡事件時,將適配并激活相應的事件處理器進行處理。對于網(wǎng)絡連接事件,將建立連接,生成相應處理器,處理來自該網(wǎng)絡連接的事件;對于請求事件,請求事件處理器在讀出請求后,通過對象適配器定位目標服務,然后適配出相應的方法并激活,完成整個請求事件的處理過程;當該連接準備好寫事件時,對應事件處理器將緩沖區(qū)中的返回消息送出。
由以上分析可知,ORB是實現(xiàn)客戶端與服務器連接的中間件。ORB對于網(wǎng)絡事件的探測、請求消息的分發(fā)和適配以及網(wǎng)絡事件的處理策略決定了CORBA分布計算環(huán)境的吞吐率和響應時間。因而,高性能的ORB并發(fā)模型是實現(xiàn)IEC61850通信的關(guān)鍵。
為了使服務器能夠同時接收多個客戶端的訪問,就必須設計能夠支持并發(fā)訪問的ORB模型。ORB并發(fā)模型包括通信級并發(fā)和請求級并發(fā)兩個部分。通信級并發(fā)是指ORB如何并發(fā)處理多個通信端口的通信問題;請求級并發(fā)是指ORB如何并發(fā)地調(diào)度執(zhí)行從通信級解析出來的請求。通信級并發(fā)和請求級并發(fā)有各自不同的并發(fā)模式。將通信級并發(fā)模式和請求級并發(fā)模式進行組合后,可以設計出多種ORB并發(fā)模型。其中最常見的ORB并發(fā)模型如下:
(1)一個請求派生一個線程(thread-perrequest)模型。通信級使用thread模型,請求級使用THREAD-PER-REQUEST模型。在該并發(fā)模式下,ORB為每個對象請求都派生一個線程,來完成請求的處理。這種并發(fā)模式使需要較長時間完成服務請求的應用系統(tǒng)共有較高的吞吐率,如對大型數(shù)據(jù)庫的查詢。但是,當多個客戶請求需要同時處理時,將消耗大量的系統(tǒng)資源。由于創(chuàng)建新線程的開銷具有不確定性,所以該模型不能用于實時環(huán)境。
(2)線程池(thread-pool)模型。通信級使用thread模式,請求級使用THREAD-POOL模式。該模型是對第一種模型的優(yōu)化,通過預先派生一定數(shù)目的線程處理所有的請求,預約了所使用的系統(tǒng)資源和避免動態(tài)派生線程所帶來的低效。然而,當并發(fā)處理的請求超過線程池中的線程數(shù)目時,必須將額外的請求放入激活隊列,延遲請求的響應。另外,線程池模型對激活隊列訪問的同步控制和線程執(zhí)行上下文的切換都將影響系統(tǒng)的吞吐率和響應時間。
(3)一個客戶派生一個線程(thread-perclient)模型。通信級使用thread模型,請求級使用SAME-THREAD模型。在該模型下,ORB為每個客戶派生一個線程,該線程負責處理來自對應客戶的所有請求。這種并發(fā)模式節(jié)約了系統(tǒng)派生線程所耗費的資源,適合于多客戶端同時訪問,但不利于負載平衡。
通過以上分析可以看出,這幾種并發(fā)模型都是為了簡化用戶對通信級和請求級模型的設置而設計的,都有各自的優(yōu)缺點,但都不能完全滿足IEC61850通信的要求。因而需要利用CORBA提供的ORB并發(fā)模型定制機制進行設計以滿足IEC61850的通信要求。其中,一個客戶派生一個線程的并發(fā)模型主要是由于不能支持動態(tài)負載平衡,而不能適應IEC61850的通信要求。因此,本文在一個客戶派生一個線程的并發(fā)模型基礎上,通過在ORB內(nèi)核中增加一個對客戶連接線程負載進行記錄的監(jiān)控線程,由該線程記錄每個客戶連接負載的大小,從而實現(xiàn)對每個客戶連接線程負載的動態(tài)平衡。其原理見圖2。
圖2 ORB并發(fā)模型原理圖
由于一個客戶派生一個線程模型在通信級使用thread模型,在請求級使用SAME THREAD策略,并且對象適配器(POA)在調(diào)度線程時會使用同步策略,請求級的多個線程會被同步執(zhí)行。服務器分別使用單獨的線程用于接收客戶的請求和發(fā)送應答。而且有一個獨立的線程專門負責接收到來的連接請求,以便一個服務器可以同時響應多個客戶端的請求。
一個客戶派生一個線程并發(fā)模型只允許僅有一個用戶線程處于激活狀態(tài)。這意味著即使有很多請求,也可以同時被接收,這些請求的執(zhí)行是完全串行化的,按照請求發(fā)生的時間順序進行。這樣,用戶不需關(guān)心任何的線程同步問題。這意味著用戶代碼可以書寫仿佛在使用單線程系統(tǒng),但不會丟失ORB內(nèi)部使用多線程優(yōu)化的優(yōu)越性。
監(jiān)控線程對所有的客戶連接線程進行監(jiān)控,并根據(jù)每個線程的ID,對線程信息進行存儲。在確定連接線程的負載大小后,以參數(shù)的形式,將連接線程負載大小傳遞給系統(tǒng)。由系統(tǒng)根據(jù)具體的情況,為每個連接的客戶端線程分配資源,從而實現(xiàn)連接負載的動態(tài)平衡。
例如,在學習人教版三年級英語下冊Unit 3 At the zoo一節(jié),在教授單詞fat、thin時,先出示熊貓的圖片,引出單詞fat,讓學生邊讀邊拼寫,我糾正學生的發(fā)音,同時引出它的反義詞thin,讓學生對比記憶。如此,我借助多媒體為學生展示了相關(guān)的圖片情景,提供了一個真實的語言環(huán)境,進而讓學生主動地進入到英語的學習中,加深學生對單詞的理解、記憶。
IEC 61850在技術(shù)上的一個顯著特點就是使用了報文制造規(guī)范(MMS),其高層抽象定義最終都映射到底層的報文制造規(guī)范(MMS)上去,所以MMS是IEC 61850的基礎之一。在全面遵循IEC61850的體系結(jié)構(gòu)為前提下,本文通過構(gòu)建CORBA-MMS的通信系統(tǒng)結(jié)構(gòu),實現(xiàn)了IEC61850通信。
利用CORBA機制來開發(fā)程序,關(guān)鍵的一步是用接口描述語言(IDL)定義客戶端和服務器端之間的接口。IDL定義的服務在服務器端實現(xiàn),客戶端依賴接口獲得服務器所提供的服務。因此,利用CORBA實現(xiàn)IEC61850的關(guān)鍵是完成IDL對IEC61850信息模型的描述,并形成相應的IDL接口文件。
從CORBA的分布式對象技術(shù)特點可知,CORBA可為IEC61850的客戶端/服務器之間的報文通訊規(guī)范(MMS)提供一個實現(xiàn)客戶機/服務器報文通訊的機制。將MMS融入CORBA的通訊機制見圖3。
圖3 實時CORBA-MMS體系結(jié)構(gòu)圖
其特點如下:
(1)ORB實現(xiàn)了客戶端程序和服務器間通信的透明性,它屏蔽了服務器的位置、實現(xiàn)方法(編譯語言和操作系統(tǒng))、狀態(tài)(是否正在執(zhí)行)和通信機制等細節(jié),以及不同實現(xiàn)方法間可能存在的差異。
(2)ORB接口是為了實現(xiàn)使用接口與實現(xiàn)細節(jié)的分離而定義了抽象接口,這些接口提供了各種實用函數(shù),如對象引用和字符之間的轉(zhuǎn)換、為動態(tài)調(diào)用請求創(chuàng)建參數(shù)列表等。
(3)對象適配器位于ORB核心和服務器之間,負責服務對象的注冊、對象引用的創(chuàng)建和解釋、對象實現(xiàn)的服務進程的激活、對象實現(xiàn)的激活以及客戶端程序請求的分發(fā)。對象適配器可以使ORB核心盡可能簡單,從而提高ORB核心的穩(wěn)定性和效率。
(4)MMS-IDL樁為客戶提供了靜態(tài)調(diào)用接口(Static Invocation Interface, SII)。IDL編譯器編譯描述服務對象接口的MMS規(guī)范的IDL文件,生成對應于具體編程語言的MMS-IDL樁和MMS-IDL框架。MMS-IDL樁負責把客戶端程序的請求進行編碼,發(fā)送到服務器,并對收到的處理結(jié)果進行解釋,把結(jié)果或異常信息返回給客戶端程序;MMS-IDL框架對客戶端程序的請求進行譯碼,定位所請求對象的方法,執(zhí)行該方法并把執(zhí)行結(jié)果或異常信息,編碼后發(fā)送給MMS客戶程序的請求。
(5)MMS服務相關(guān)聯(lián)的PDUs的數(shù)據(jù)結(jié)構(gòu)的描述,遵循標準的抽象文法——ANS.1語法。
接口的設計過程就是用IDL對IEC61850的數(shù)據(jù)模型以及相應服務的描述過程。IEC61850標準采用了面向?qū)ο蟮乃枷雭斫ED的通信數(shù)據(jù)模型,并對此數(shù)據(jù)模型按層次進行了分類。依次分為:服務器(SERVER)、邏輯設備(LD)、邏輯節(jié)點(LN)、數(shù)據(jù)(DATA)以及數(shù)據(jù)屬性(DATA_ATTRIBUTE)。其中服務器包含了所有從通信網(wǎng)絡可訪問的數(shù)據(jù)和服務,并提供IED的外部可視行為。服務器實現(xiàn)了邏輯節(jié)點和數(shù)據(jù)的封裝并提供了供外界訪問的抽象通信服務接口(ACSI)。
ACSI的具體通信服務映射主要在應用層進行,ACSI并不定義具體的ACSI報文。ACSI服務首先通過特定通信服務映射(SCSM)將服務映射為應用層服務,應用層服務通過各層協(xié)議將服務映射為一個一個的協(xié)議數(shù)據(jù)單元在網(wǎng)絡上傳輸,而IEC61850標準規(guī)定現(xiàn)有特定通信服務映射為報文制造規(guī)范(MMS)。
在實現(xiàn)C O R B A-M M S體系結(jié)構(gòu)的IEC61850通信接口設計時,首先要按照MMS服務的ASN.1語法描述客戶端(IEC61850 客戶程序)對服務器(IEC61850服務器)服務請求的PDUs報文格式。然后,在遵循CORBA IDL語法下,將MMS服務的ANS.1報文格式轉(zhuǎn)換成IDL語言。主要包括了基本數(shù)據(jù)類型、函數(shù)以及服務的轉(zhuǎn)換。
(1)基本數(shù)據(jù)的轉(zhuǎn)換
IEC61850-7-2部分定義了基本數(shù)據(jù)類型?;緮?shù)據(jù)類型是構(gòu)成所有數(shù)據(jù)類型和模型的基本元素,因此基本數(shù)據(jù)類型的映射是所有映射的基礎。IDL是一種說明性語言,由IDL可以很容易實現(xiàn)對IEC61850基本數(shù)據(jù)的描述。
(2)函數(shù)的轉(zhuǎn)換
抽象通信服務接口提供的是一種抽象函數(shù),只有聲明部分。即只是定義了函數(shù)的一個框架而沒有定義函數(shù)的具體實現(xiàn)。接口函數(shù)的定義形式與類的定義十分相似,但是接口函數(shù)中沒有成員變量。因此,在接口函數(shù)的映射時不需要考慮接口中的方法如何實現(xiàn)。但在對接口函數(shù)的實現(xiàn)過程中,必須實現(xiàn)接口函數(shù)中的所有方法。IEC61850-8-1部分詳細的描述了IEC61850到MMS相關(guān)函數(shù)的映射。因而,要完成相關(guān)函數(shù)的映射,只需用CORBA的IDL將相關(guān)函數(shù)描述出來即可。
(3) 服務的轉(zhuǎn)換
IEC61850定義的主要通信服務可歸納為四類服務,這四類服務到CORBA的映射關(guān)系見表1。在表1中, IEC61850中定義的請求和單向請求可以通過ORB代理來實現(xiàn)服務;GOOSE狀態(tài)變化和采樣值傳輸事件通道則通過CORBA事件服務來實現(xiàn);在push模式中,事件提供方把時間數(shù)據(jù)“推”給用戶;在pull模式中,事件用戶把事件數(shù)據(jù)從提供方“拉”到用戶,從而實現(xiàn)事件提供方和用戶之間的事件數(shù)據(jù)通信。
表1 IEC61850到CORBA通信機制的映射
本文描述和分析了C O R B A技術(shù)和IEC61850的通信原理。在此基礎上,完成了MMS到CORBA的映射。并通過CORBA提供的ORB機制建立了三層體系結(jié)構(gòu)的IEC61850客戶端/服務器,解決了在傳統(tǒng)實現(xiàn)方式下服務器不能同時對多個客戶端進行響應的問題。
改進了原有的一個客戶派生一個線程的ORB并發(fā)模型,提出通過構(gòu)建CORBA-MMS通信體系結(jié)構(gòu)的方式來實現(xiàn)IEC61850。隨著西北電網(wǎng)750kV特高壓智能變電站的興建,本文提出的思想方法可以在特高壓智能變電站建設中起到一定的參考作用。
[1]王濤.基于CORBA的分布式代理模型研究[D].哈爾濱工程大學,2004.
[2]任雁銘,秦立軍,楊奇遜.IEC 61850通信協(xié)議體系介紹和分析[J].電力系統(tǒng)自動化,2000,24(8).
[3]項軍,高洪奎,吳泉源.支持多種并發(fā)模式的ORB實現(xiàn)模型.計算機工程[J].2000,26(11).
[4]王照,任雁銘,高峰,等.IEC 61850客戶端應用程序的實現(xiàn).電力系統(tǒng)自動化[J].2005,29(19).
[5]周炳海,王世進,王國龍,奚立峰.基于CORBA_MMS的制造自動化通訊系統(tǒng)設計[J].計算機集成制造系統(tǒng),2005,(1-1).
[6]項洪印,高會生,杜曉暉.基于工業(yè)以太網(wǎng)技術(shù)的IEC 61850協(xié)議應用分析[J].微計算機信息,2006,(6-3).
Study on Communication Model of EHV-intelligent Substation Based on CORBA Technology
SU Xian-hua, XU Di, XIONG Zai-bao
(State Nuclear Electric Power Planning Design & Research Institute, Beijing 100094, China)
In IEC61850, IEDs should be communicated by client/sever model. Within the present IEDs’ client/server model, the client is mostly directly linked to the server by two-layer system. Aiming at the lacks of the method this paper builds up a three-layer client/server communication system through ORB supplied by CORBA technology.With the constructing of ehv-intelligent substation, and following the IEC61850 system completely, the paper proposes a communicating system based on CORBA-MMS to achieve IEC61850 communicating and thus realize the communication of ehv-intelligent substation.
CORBA; IEC61850; middleware; EHV; intelligent substation.
TM73
B
1671-9913(2011)03-0052-05
2011-04-12
蘇憲華 (1969- ),男,山東人,碩士,高級工程師,主要從事輸變電工程技術(shù)管理工作。