APP下载

基于CORBA技术的特高压智能变电站通信模式研究

2011-02-08苏宪华熊再豹

电力勘测设计 2011年3期
关键词:体系结构线程客户端

苏宪华,徐 迪,熊再豹

(国核电力规划设计研究院,北京 100094)

基于CORBA技术的特高压智能变电站通信模式研究

苏宪华,徐 迪,熊再豹

(国核电力规划设计研究院,北京 100094)

IEC61850规定智能电子装置(IED)采用客户端/服务器模式进行通信。在现有方式下, IED客户端/服务器通信模式的实现大多采用客户端与服务器直接相连的两层体系结构。本文针对此实现方式的不足,根据CORBA组件的基本原理,通过CORBA提供的ORB机制建立了三层体系结构的客户端/服务器通信模式。在全面遵循IEC61850的体系结构的前提下,结合目前特高压智能变电站建设的契机,提出了通过构建基于CORBA-MMS的通讯结构体系来实现IEC61850通信的方法,实现特特高压智能变电站的智能通信。

CORBA;IEC61850;中间件;特高压;智能变电站。

1 概述

公共对象请求代理体系结构(Common Object Request Broker Architecture,CORBA)是一种被广泛使用的组件技术。CORBA提供的对象请求代理(Object Request Broker,ORB)机制是实现客户端与服务器连接的中间件。通过ORB机制,可以建立一种三层体系结构的客户端/服务器通信模式。ORB扩展了服务器通信接口的信道容量,当有多个客户端对服务器发送服务请求时,ORB缓存客户端服务请求,并为每个客户端返回一个服务器对象引用,从而实现对多个客户端的同时响应。

IEC61850通信协议的实现,应以不改变IEC61850的体系结构为前提。因此,本文提出了基于CORBA-MMS的通信体系结构的IEC61850实现方法。该方法利用CORBA提供的ORB机制,建立了基于IEC61850的三层体系结构的客户端/服务器通信模式。设计了支持并发访问的ORB模型,使服务器能同时对多个客户端进行响应。通过构建CORBA-MMS的通讯系统结构,在全面遵循IEC61850的体系结构前提下,实现了CORBA与IEC61850的有机结合。

2 三层体系结构的IEC61850客户端/服务器工作模型

客户端需要向服务器发送服务请求时,客户端通过ORB接口激活服务器在本地的代理,构造请求消息,将请求消息发往服务器。服务器通过ORB接口探测到网络事件时,将适配并激活相应的事件处理器进行处理。对于网络连接事件,将建立连接,生成相应处理器,处理来自该网络连接的事件;对于请求事件,请求事件处理器在读出请求后,通过对象适配器定位目标服务,然后适配出相应的方法并激活,完成整个请求事件的处理过程;当该连接准备好写事件时,对应事件处理器将缓冲区中的返回消息送出。

由以上分析可知,ORB是实现客户端与服务器连接的中间件。ORB对于网络事件的探测、请求消息的分发和适配以及网络事件的处理策略决定了CORBA分布计算环境的吞吐率和响应时间。因而,高性能的ORB并发模型是实现IEC61850通信的关键。

3 ORB并发模型设计

为了使服务器能够同时接收多个客户端的访问,就必须设计能够支持并发访问的ORB模型。ORB并发模型包括通信级并发和请求级并发两个部分。通信级并发是指ORB如何并发处理多个通信端口的通信问题;请求级并发是指ORB如何并发地调度执行从通信级解析出来的请求。通信级并发和请求级并发有各自不同的并发模式。将通信级并发模式和请求级并发模式进行组合后,可以设计出多种ORB并发模型。其中最常见的ORB并发模型如下:

(1)一个请求派生一个线程(thread-perrequest)模型。通信级使用thread模型,请求级使用THREAD-PER-REQUEST模型。在该并发模式下,ORB为每个对象请求都派生一个线程,来完成请求的处理。这种并发模式使需要较长时间完成服务请求的应用系统共有较高的吞吐率,如对大型数据库的查询。但是,当多个客户请求需要同时处理时,将消耗大量的系统资源。由于创建新线程的开销具有不确定性,所以该模型不能用于实时环境。

(2)线程池(thread-pool)模型。通信级使用thread模式,请求级使用THREAD-POOL模式。该模型是对第一种模型的优化,通过预先派生一定数目的线程处理所有的请求,预约了所使用的系统资源和避免动态派生线程所带来的低效。然而,当并发处理的请求超过线程池中的线程数目时,必须将额外的请求放入激活队列,延迟请求的响应。另外,线程池模型对激活队列访问的同步控制和线程执行上下文的切换都将影响系统的吞吐率和响应时间。

(3)一个客户派生一个线程(thread-perclient)模型。通信级使用thread模型,请求级使用SAME-THREAD模型。在该模型下,ORB为每个客户派生一个线程,该线程负责处理来自对应客户的所有请求。这种并发模式节约了系统派生线程所耗费的资源,适合于多客户端同时访问,但不利于负载平衡。

通过以上分析可以看出,这几种并发模型都是为了简化用户对通信级和请求级模型的设置而设计的,都有各自的优缺点,但都不能完全满足IEC61850通信的要求。因而需要利用CORBA提供的ORB并发模型定制机制进行设计以满足IEC61850的通信要求。其中,一个客户派生一个线程的并发模型主要是由于不能支持动态负载平衡,而不能适应IEC61850的通信要求。因此,本文在一个客户派生一个线程的并发模型基础上,通过在ORB内核中增加一个对客户连接线程负载进行记录的监控线程,由该线程记录每个客户连接负载的大小,从而实现对每个客户连接线程负载的动态平衡。其原理见图2。

图2 ORB并发模型原理图

由于一个客户派生一个线程模型在通信级使用thread模型,在请求级使用SAME THREAD策略,并且对象适配器(POA)在调度线程时会使用同步策略,请求级的多个线程会被同步执行。服务器分别使用单独的线程用于接收客户的请求和发送应答。而且有一个独立的线程专门负责接收到来的连接请求,以便一个服务器可以同时响应多个客户端的请求。

一个客户派生一个线程并发模型只允许仅有一个用户线程处于激活状态。这意味着即使有很多请求,也可以同时被接收,这些请求的执行是完全串行化的,按照请求发生的时间顺序进行。这样,用户不需关心任何的线程同步问题。这意味着用户代码可以书写仿佛在使用单线程系统,但不会丢失ORB内部使用多线程优化的优越性。

监控线程对所有的客户连接线程进行监控,并根据每个线程的ID,对线程信息进行存储。在确定连接线程的负载大小后,以参数的形式,将连接线程负载大小传递给系统。由系统根据具体的情况,为每个连接的客户端线程分配资源,从而实现连接负载的动态平衡。

例如,在学习人教版三年级英语下册Unit 3 At the zoo一节,在教授单词fat、thin时,先出示熊猫的图片,引出单词fat,让学生边读边拼写,我纠正学生的发音,同时引出它的反义词thin,让学生对比记忆。如此,我借助多媒体为学生展示了相关的图片情景,提供了一个真实的语言环境,进而让学生主动地进入到英语的学习中,加深学生对单词的理解、记忆。

4 基于CORBA-MMS体系结构的IEC61850实现

IEC 61850在技术上的一个显著特点就是使用了报文制造规范(MMS),其高层抽象定义最终都映射到底层的报文制造规范(MMS)上去,所以MMS是IEC 61850的基础之一。在全面遵循IEC61850的体系结构为前提下,本文通过构建CORBA-MMS的通信系统结构,实现了IEC61850通信。

利用CORBA机制来开发程序,关键的一步是用接口描述语言(IDL)定义客户端和服务器端之间的接口。IDL定义的服务在服务器端实现,客户端依赖接口获得服务器所提供的服务。因此,利用CORBA实现IEC61850的关键是完成IDL对IEC61850信息模型的描述,并形成相应的IDL接口文件。

4.1 基于CORBA-MMS的IEC61850体系结构

从CORBA的分布式对象技术特点可知,CORBA可为IEC61850的客户端/服务器之间的报文通讯规范(MMS)提供一个实现客户机/服务器报文通讯的机制。将MMS融入CORBA的通讯机制见图3。

图3 实时CORBA-MMS体系结构图

其特点如下:

(1)ORB实现了客户端程序和服务器间通信的透明性,它屏蔽了服务器的位置、实现方法(编译语言和操作系统)、状态(是否正在执行)和通信机制等细节,以及不同实现方法间可能存在的差异。

(2)ORB接口是为了实现使用接口与实现细节的分离而定义了抽象接口,这些接口提供了各种实用函数,如对象引用和字符之间的转换、为动态调用请求创建参数列表等。

(3)对象适配器位于ORB核心和服务器之间,负责服务对象的注册、对象引用的创建和解释、对象实现的服务进程的激活、对象实现的激活以及客户端程序请求的分发。对象适配器可以使ORB核心尽可能简单,从而提高ORB核心的稳定性和效率。

(4)MMS-IDL桩为客户提供了静态调用接口(Static Invocation Interface, SII)。IDL编译器编译描述服务对象接口的MMS规范的IDL文件,生成对应于具体编程语言的MMS-IDL桩和MMS-IDL框架。MMS-IDL桩负责把客户端程序的请求进行编码,发送到服务器,并对收到的处理结果进行解释,把结果或异常信息返回给客户端程序;MMS-IDL框架对客户端程序的请求进行译码,定位所请求对象的方法,执行该方法并把执行结果或异常信息,编码后发送给MMS客户程序的请求。

(5)MMS服务相关联的PDUs的数据结构的描述,遵循标准的抽象文法——ANS.1语法。

4.2 基于CORBA-MMS体系结构的IEC61850通信接口设计

接口的设计过程就是用IDL对IEC61850的数据模型以及相应服务的描述过程。IEC61850标准采用了面向对象的思想来建立IED的通信数据模型,并对此数据模型按层次进行了分类。依次分为:服务器(SERVER)、逻辑设备(LD)、逻辑节点(LN)、数据(DATA)以及数据属性(DATA_ATTRIBUTE)。其中服务器包含了所有从通信网络可访问的数据和服务,并提供IED的外部可视行为。服务器实现了逻辑节点和数据的封装并提供了供外界访问的抽象通信服务接口(ACSI)。

ACSI的具体通信服务映射主要在应用层进行,ACSI并不定义具体的ACSI报文。ACSI服务首先通过特定通信服务映射(SCSM)将服务映射为应用层服务,应用层服务通过各层协议将服务映射为一个一个的协议数据单元在网络上传输,而IEC61850标准规定现有特定通信服务映射为报文制造规范(MMS)。

在实现C O R B A-M M S体系结构的IEC61850通信接口设计时,首先要按照MMS服务的ASN.1语法描述客户端(IEC61850 客户程序)对服务器(IEC61850服务器)服务请求的PDUs报文格式。然后,在遵循CORBA IDL语法下,将MMS服务的ANS.1报文格式转换成IDL语言。主要包括了基本数据类型、函数以及服务的转换。

(1)基本数据的转换

IEC61850-7-2部分定义了基本数据类型。基本数据类型是构成所有数据类型和模型的基本元素,因此基本数据类型的映射是所有映射的基础。IDL是一种说明性语言,由IDL可以很容易实现对IEC61850基本数据的描述。

(2)函数的转换

抽象通信服务接口提供的是一种抽象函数,只有声明部分。即只是定义了函数的一个框架而没有定义函数的具体实现。接口函数的定义形式与类的定义十分相似,但是接口函数中没有成员变量。因此,在接口函数的映射时不需要考虑接口中的方法如何实现。但在对接口函数的实现过程中,必须实现接口函数中的所有方法。IEC61850-8-1部分详细的描述了IEC61850到MMS相关函数的映射。因而,要完成相关函数的映射,只需用CORBA的IDL将相关函数描述出来即可。

(3) 服务的转换

IEC61850定义的主要通信服务可归纳为四类服务,这四类服务到CORBA的映射关系见表1。在表1中, IEC61850中定义的请求和单向请求可以通过ORB代理来实现服务;GOOSE状态变化和采样值传输事件通道则通过CORBA事件服务来实现;在push模式中,事件提供方把时间数据“推”给用户;在pull模式中,事件用户把事件数据从提供方“拉”到用户,从而实现事件提供方和用户之间的事件数据通信。

表1 IEC61850到CORBA通信机制的映射

5 结论

本文描述和分析了C O R B A技术和IEC61850的通信原理。在此基础上,完成了MMS到CORBA的映射。并通过CORBA提供的ORB机制建立了三层体系结构的IEC61850客户端/服务器,解决了在传统实现方式下服务器不能同时对多个客户端进行响应的问题。

改进了原有的一个客户派生一个线程的ORB并发模型,提出通过构建CORBA-MMS通信体系结构的方式来实现IEC61850。随着西北电网750kV特高压智能变电站的兴建,本文提出的思想方法可以在特高压智能变电站建设中起到一定的参考作用。

[1]王涛.基于CORBA的分布式代理模型研究[D].哈尔滨工程大学,2004.

[2]任雁铭,秦立军,杨奇逊.IEC 61850通信协议体系介绍和分析[J].电力系统自动化,2000,24(8).

[3]项军,高洪奎,吴泉源.支持多种并发模式的ORB实现模型.计算机工程[J].2000,26(11).

[4]王照,任雁铭,高峰,等.IEC 61850客户端应用程序的实现.电力系统自动化[J].2005,29(19).

[5]周炳海,王世进,王国龙,奚立峰.基于CORBA_MMS的制造自动化通讯系统设计[J].计算机集成制造系统,2005,(1-1).

[6]项洪印,高会生,杜晓晖.基于工业以太网技术的IEC 61850协议应用分析[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- ),男,山东人,硕士,高级工程师,主要从事输变电工程技术管理工作。

猜你喜欢

体系结构线程客户端
基于C#线程实验探究
基于国产化环境的线程池模型研究与实现
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
浅谈linux多线程协作
基于粒计算的武器装备体系结构超网络模型
作战体系结构稳定性突变分析
基于DODAF的装备体系结构设计