容器化的配电网信息交互分布式测试技术研究
2019-01-30韩晓言刘鹏吕广宪杜建郑毅
韩晓言, 刘鹏, 吕广宪, 杜建, 郑毅
〔1. 国网四川省电力公司,四川 成都 610041;2. 配电变压器节能技术北京市重点实验室(中国电力科学研究院有限公司),北京 100192〕
0 引 言
随着国家电网公司在全国多个城市开展配电自动化实用化建设工作,逐步确立了信息互操作在配电网业务中的交通枢纽地位[1]。随着国家能源局《配电网建设改造行动计划》(2015—2020年)的出台,明确指出“提高自动化水平,实现可观可控”,对此可通过开展基于IEC 61968标准配电自动化与相关应用系统的信息互操作来提高配网数据的高效互联与共享。
为了提高配电网信息互操作能力,验证信息交互的一致性,美国电科院从2009年起召集厂商开展了基于IEC 61968-9、IEC 61968-13的一致性检测[2]。而国内的IEC 61968标准推广仍处于起步阶段,2014年至2015年间国家电网公司委托中国电科院组织国内配电网信息总线产品的主流厂商开展了基于IEC 61968-100的功能及性能一致性测试,为配电自动化与其他系统间信息交互提供了标准化鉴定能力及优化思路。
云计算、大数据、物联网和移动互联等技术日趋成熟,基于云计算的配网信息总线软件产品(以下简称“云总线”)也正处于研发阶段,即将问世。为应对新一代产品检测,本文采用Docker容器,结合分布式协同技术开展面向IEC 61968标准的信息互操作一致性测试,满足被测对象(云总线)与测试节点的横向扩展,使二者可以添加任意数量到检测平台,以实现“发布/订阅”、“请求/响应”两种基本交互方式与大数据量并发传输情况下的测试要求,解决了无法灵活探知被测对象性能上限的问题,有效提升了测试结点的资源利用率,为基于配电网信息互操作一致性测试提供稳定、经济和高效的解决方案。
1 基于IEC61968的配电网信息互操作
在配电网领域,为了打通业务系统间的信息孤岛,IEC TC57的第13、14工作组制定了61970/61968标准[3]。通过建立标准化的公共信息模型与非标准化的信息互操作体系,保护已投运系统的有效价值,减少新建系统的时间和经济成本。随后,我国配电网的建设也开始逐步引入该标准,等同采用形成了行业标准DL/T 890/1080。
配网信息互操作测试的主要内容包括公共信息模型、信息交互两部分。其中,信息交互测试依据IEC 61968-100—2013《电气设施应用集成.配电管理系统接口.第100部分:安装启用配置文件》标准进行,而公共信息模型测试则依据IEC 61970-301—2011《能量管理系统应用程序接口(EMS-API).第301部分:通用信息模型(CIM)基础》标准的定义开展语义、语法等方面的XML模式校验。
1.1 IEC 61968标准的信息交互
2013年7月,IEC正式发布了61968标准第100部分,提出了配电网信息交互的概要设计,阐述了“发布/订阅”、“请求/应答”的基本消息传输模式,指定了通过信息交换总线的方式,采用WS(Web Service)与JMS(Java Message Service)两种规范来实现配电网的信息交互业务。其中,基于智能代理与消息内容的路由方案如图1所示。
图1 采用WS与JMS实现的信息交互模式
基本思路为:WS与JMS客户端可向信息交互中间件发送请求消息,经过主题队列、消息路由后发送到消息服务中心处理该请求,并根据处理结果产生相应的事件消息广播至消息订阅方[4]。
1.2 主流的信息互操作测试技术
由于配电网应用系统仍以传统的单机或集群形式的部署形式为主,目前相关的信息互操作及其一致性测试也在该平台上构建。图2为中国电力科学研究院的配电网信息互操作测试平台架构,用于验证IEC 61968标准接口[5]、信息交互功能、传输效率及并发效率,包括生产控制大区与信息管理大区之间的跨区交互。
在测试过程中:首先需要根据实际场景编排业务消息流程,以满足现场需要;其次是对各个主机系统进行时钟同步,精确到毫秒级,以确保所有性能数据的准确性。
图2 配电网信息互操作测试架构
结合国内配网信息互操作实际情况,该平台仅实现WS规范的接口标准化检测,测试系统通过指定数量的应用适配器向被测对象发送IEC61968消息,将结果统一汇总至测试中心,根据业务场景和测试数据验证交互过程是否满足标准的要求,最后生成测试报告[6]。
2 面向SaaS的配网互操作分布式云检测方法
作为一种轻量级的虚拟化方式,通过Docker容器技术打包IEC61968互操作测试程序,并借助Kubernetes(以下简称K8S)的集群管理能力构建动态伸缩的统一测试平台,可对外提供面向服务的标准化测试接口,同时满足SaaS的基本特性。
2.1 基于Docker容器的测试体系
容器技术类似于一个简易型沙箱,Docker利用容器运行时对应用隔离的特点,简化传统分布式系统的冗余资源损耗,在相同硬件配置条件下提升了测试系统的执行效率。本文利用Docker容器设计了一整套基于IEC61968标准的配电网信息互操作测试架构,如图3所示。
图3 基于Docker容器的IEC61968标准检测架构
基于Docker的IEC61968标准检测云构建了分布式的配电网信息互操作平台,通过K8S对Docker集群进行管理和维护,实现弹性的分布式应用的协同访问与数据存储,根据具体测试场景自动伸缩容器数量。其中,每台服务器部署1套Docker引擎,通过制作测试程序镜像,可创建、移除各应用容器。
并发能力作为衡量配电信息总线性能的重要指标,是本方案设计的重点。通过动态扩展与降低测试程序的样本数据发送量,可较为精确地掌握被测总线最大并发性能指标。
2.2 制定弹性伸缩策略
根据测试具体场景与要求,容器云采用弹性伸缩策略动态扩展容器数量,开展面向IEC61968标准的信息交互测试。按照测试系统资源来制订伸缩策略,主要针对测试集群的CPU与内存使用率。
2.2.1确定阈值
首先,作为弹性伸缩策略的基础,需要明确发生弹性的条件。本文使用常规策略,如表1所示。当测试集群的平均CPU 或内存使用率超过80%时启动弹性扩展机制。其次是制订弹性尺度,即步幅,考虑到测试程序资源损耗的因素,CPU 每次扩展或收缩5个容器,内存每次扩展或收缩3个容器。
表1 IEC 61968检测云伸缩策略
2.2.2指标监控
通过操作系统本身的API很容易获得系统资源(含CPU、内存、磁盘与网络等)的使用率,例如Linux系统中的top命令。将该命令形成shell脚本供检测平台调用即可实现指标监控,并按照测试需求实现超出阈值时的处理。
2.3 信息交互测试
根据IEC 6968标准第100部分,被测对象的信息交互能力应满足“发布/订阅”、“请求/应答”两种消息传输模式[7]。通过测试样本数据的发送判定返回结果是否与测试场景相符。
2.3.1交互场景编排
在开展测试之前,需要先编排交互场景,作为结果正确性的判定依据。表2结合配网实际需求提供了简化的交互场景,其中:编号1为“请求/应答”类型,由动词与名词可知,Adapter0向总线请求查询资产信息,Adapter2负责将查询结果返回给Adapter0;编号3为“发布/订阅”类型,由动词与名词可知,总线负责将Adapter0广播的停电通知消息分别送达Adapter1和Adapter2。
表2 基于IEC61968标准的应用系统交互场景
2.3.2交互测试
按照交互测试规则,Adapter0、Adapter1和Adapter2将作为测试系统的组成部分负责向被测总线发送测试样本数据,并接收从总线转发来的消息。例如,对于编号为1的“请求/应答”消息,应判断Adapter0收到应答消息与Adapter2提供的应答消息作对比来判断总线交互的正确性,并符合动词使用规则;对于编号为3的“发布/订阅”消息,应判断Adapter1、Adapter2收到的消息与Adapter0发送的消息是否一致。
2.3.3性能测试
配网信息总线的性能主要体现在交互效率与并发效率两方面。交互效率是总线传输单个完整消息的耗时,并发效率是总线批量和并行传输消息的总耗时。
交互效率测试过程中,测试程序根据预编排的场景向总线发送样本消息,通过记录发送消息时间与接收响应时间计算出整个交互过程的时延,从而得到效率测试结果。
并发测试过程中,测试程序首先按照预定义的并发消息数量向总线发送样本消息,若每个容器中的测试程序单次并发量为20,检测云初始创建的容器数量为5,则本次测试总体并发量为100。如果测试结果显示符合100并发未丢包,检测云将自动扩展容器数量为7,则当前并发量为140,执行新一轮测试。如果结果仍未丢包,则继续扩展容器数量直到测试结果发生丢包现象,此时记录上一次符合的结果即为总线的并发性能结果。倘若测试一开始即发生丢包现象,检测云将自动收缩容器数量为4,则当前并发量为160,执行新一轮测试。如果未丢包则总线的并发能力即为160。如果仍发生丢包则继续收缩容器数量直到测试结果不发生丢包现象为止,记录上一次符合的结果即为总线的并发性能结果。
3 结束语
基于IEC 61968标准的信息互操作借助配电自动化系统的建设已广泛使用。作为配网信息交互的主要载体,总线的实施直接影响着配网应用系统之间的互操作性。
国内主流厂商的传统总线标准化检测自2014年起已陆续开展,但在进行并发测试时很难取得准确结果。随着云计算、大数据等新技术在配网的深入应用,未来的总线也将基于云平台。本文提出的方法:一是为了解决云计算平台的测试技术,二是便于快速开展配网信息交互的并发测试。下一步将主要面向IEC61968标准的信息互操作测试云平台提供技术实现。