韓曉言, 劉鵬, 呂廣憲, 杜建, 鄭毅
〔1. 國網四川省電力公司,四川 成都 610041;2. 配電變壓器節(jié)能技術北京市重點實驗室(中國電力科學研究院有限公司),北京 100192〕
隨著國家電網公司在全國多個城市開展配電自動化實用化建設工作,逐步確立了信息互操作在配電網業(yè)務中的交通樞紐地位[1]。隨著國家能源局《配電網建設改造行動計劃》(2015—2020年)的出臺,明確指出“提高自動化水平,實現(xiàn)可觀可控”,對此可通過開展基于IEC 61968標準配電自動化與相關應用系統(tǒng)的信息互操作來提高配網數(shù)據(jù)的高效互聯(lián)與共享。
為了提高配電網信息互操作能力,驗證信息交互的一致性,美國電科院從2009年起召集廠商開展了基于IEC 61968-9、IEC 61968-13的一致性檢測[2]。而國內的IEC 61968標準推廣仍處于起步階段,2014年至2015年間國家電網公司委托中國電科院組織國內配電網信息總線產品的主流廠商開展了基于IEC 61968-100的功能及性能一致性測試,為配電自動化與其他系統(tǒng)間信息交互提供了標準化鑒定能力及優(yōu)化思路。
云計算、大數(shù)據(jù)、物聯(lián)網和移動互聯(lián)等技術日趨成熟,基于云計算的配網信息總線軟件產品(以下簡稱“云總線”)也正處于研發(fā)階段,即將問世。為應對新一代產品檢測,本文采用Docker容器,結合分布式協(xié)同技術開展面向IEC 61968標準的信息互操作一致性測試,滿足被測對象(云總線)與測試節(jié)點的橫向擴展,使二者可以添加任意數(shù)量到檢測平臺,以實現(xiàn)“發(fā)布/訂閱”、“請求/響應”兩種基本交互方式與大數(shù)據(jù)量并發(fā)傳輸情況下的測試要求,解決了無法靈活探知被測對象性能上限的問題,有效提升了測試結點的資源利用率,為基于配電網信息互操作一致性測試提供穩(wěn)定、經濟和高效的解決方案。
在配電網領域,為了打通業(yè)務系統(tǒng)間的信息孤島,IEC TC57的第13、14工作組制定了61970/61968標準[3]。通過建立標準化的公共信息模型與非標準化的信息互操作體系,保護已投運系統(tǒng)的有效價值,減少新建系統(tǒng)的時間和經濟成本。隨后,我國配電網的建設也開始逐步引入該標準,等同采用形成了行業(yè)標準DL/T 890/1080。
配網信息互操作測試的主要內容包括公共信息模型、信息交互兩部分。其中,信息交互測試依據(jù)IEC 61968-100—2013《電氣設施應用集成.配電管理系統(tǒng)接口.第100部分:安裝啟用配置文件》標準進行,而公共信息模型測試則依據(jù)IEC 61970-301—2011《能量管理系統(tǒng)應用程序接口(EMS-API).第301部分:通用信息模型(CIM)基礎》標準的定義開展語義、語法等方面的XML模式校驗。
2013年7月,IEC正式發(fā)布了61968標準第100部分,提出了配電網信息交互的概要設計,闡述了“發(fā)布/訂閱”、“請求/應答”的基本消息傳輸模式,指定了通過信息交換總線的方式,采用WS(Web Service)與JMS(Java Message Service)兩種規(guī)范來實現(xiàn)配電網的信息交互業(yè)務。其中,基于智能代理與消息內容的路由方案如圖1所示。
圖1 采用WS與JMS實現(xiàn)的信息交互模式
基本思路為:WS與JMS客戶端可向信息交互中間件發(fā)送請求消息,經過主題隊列、消息路由后發(fā)送到消息服務中心處理該請求,并根據(jù)處理結果產生相應的事件消息廣播至消息訂閱方[4]。
由于配電網應用系統(tǒng)仍以傳統(tǒng)的單機或集群形式的部署形式為主,目前相關的信息互操作及其一致性測試也在該平臺上構建。圖2為中國電力科學研究院的配電網信息互操作測試平臺架構,用于驗證IEC 61968標準接口[5]、信息交互功能、傳輸效率及并發(fā)效率,包括生產控制大區(qū)與信息管理大區(qū)之間的跨區(qū)交互。
在測試過程中:首先需要根據(jù)實際場景編排業(yè)務消息流程,以滿足現(xiàn)場需要;其次是對各個主機系統(tǒng)進行時鐘同步,精確到毫秒級,以確保所有性能數(shù)據(jù)的準確性。
圖2 配電網信息互操作測試架構
結合國內配網信息互操作實際情況,該平臺僅實現(xiàn)WS規(guī)范的接口標準化檢測,測試系統(tǒng)通過指定數(shù)量的應用適配器向被測對象發(fā)送IEC61968消息,將結果統(tǒng)一匯總至測試中心,根據(jù)業(yè)務場景和測試數(shù)據(jù)驗證交互過程是否滿足標準的要求,最后生成測試報告[6]。
作為一種輕量級的虛擬化方式,通過Docker容器技術打包IEC61968互操作測試程序,并借助Kubernetes(以下簡稱K8S)的集群管理能力構建動態(tài)伸縮的統(tǒng)一測試平臺,可對外提供面向服務的標準化測試接口,同時滿足SaaS的基本特性。
容器技術類似于一個簡易型沙箱,Docker利用容器運行時對應用隔離的特點,簡化傳統(tǒng)分布式系統(tǒng)的冗余資源損耗,在相同硬件配置條件下提升了測試系統(tǒng)的執(zhí)行效率。本文利用Docker容器設計了一整套基于IEC61968標準的配電網信息互操作測試架構,如圖3所示。
圖3 基于Docker容器的IEC61968標準檢測架構
基于Docker的IEC61968標準檢測云構建了分布式的配電網信息互操作平臺,通過K8S對Docker集群進行管理和維護,實現(xiàn)彈性的分布式應用的協(xié)同訪問與數(shù)據(jù)存儲,根據(jù)具體測試場景自動伸縮容器數(shù)量。其中,每臺服務器部署1套Docker引擎,通過制作測試程序鏡像,可創(chuàng)建、移除各應用容器。
并發(fā)能力作為衡量配電信息總線性能的重要指標,是本方案設計的重點。通過動態(tài)擴展與降低測試程序的樣本數(shù)據(jù)發(fā)送量,可較為精確地掌握被測總線最大并發(fā)性能指標。
根據(jù)測試具體場景與要求,容器云采用彈性伸縮策略動態(tài)擴展容器數(shù)量,開展面向IEC61968標準的信息交互測試。按照測試系統(tǒng)資源來制訂伸縮策略,主要針對測試集群的CPU與內存使用率。
2.2.1確定閾值
首先,作為彈性伸縮策略的基礎,需要明確發(fā)生彈性的條件。本文使用常規(guī)策略,如表1所示。當測試集群的平均CPU 或內存使用率超過80%時啟動彈性擴展機制。其次是制訂彈性尺度,即步幅,考慮到測試程序資源損耗的因素,CPU 每次擴展或收縮5個容器,內存每次擴展或收縮3個容器。
表1 IEC 61968檢測云伸縮策略
2.2.2指標監(jiān)控
通過操作系統(tǒng)本身的API很容易獲得系統(tǒng)資源(含CPU、內存、磁盤與網絡等)的使用率,例如Linux系統(tǒng)中的top命令。將該命令形成shell腳本供檢測平臺調用即可實現(xiàn)指標監(jiān)控,并按照測試需求實現(xiàn)超出閾值時的處理。
根據(jù)IEC 6968標準第100部分,被測對象的信息交互能力應滿足“發(fā)布/訂閱”、“請求/應答”兩種消息傳輸模式[7]。通過測試樣本數(shù)據(jù)的發(fā)送判定返回結果是否與測試場景相符。
2.3.1交互場景編排
在開展測試之前,需要先編排交互場景,作為結果正確性的判定依據(jù)。表2結合配網實際需求提供了簡化的交互場景,其中:編號1為“請求/應答”類型,由動詞與名詞可知,Adapter0向總線請求查詢資產信息,Adapter2負責將查詢結果返回給Adapter0;編號3為“發(fā)布/訂閱”類型,由動詞與名詞可知,總線負責將Adapter0廣播的停電通知消息分別送達Adapter1和Adapter2。
表2 基于IEC61968標準的應用系統(tǒng)交互場景
2.3.2交互測試
按照交互測試規(guī)則,Adapter0、Adapter1和Adapter2將作為測試系統(tǒng)的組成部分負責向被測總線發(fā)送測試樣本數(shù)據(jù),并接收從總線轉發(fā)來的消息。例如,對于編號為1的“請求/應答”消息,應判斷Adapter0收到應答消息與Adapter2提供的應答消息作對比來判斷總線交互的正確性,并符合動詞使用規(guī)則;對于編號為3的“發(fā)布/訂閱”消息,應判斷Adapter1、Adapter2收到的消息與Adapter0發(fā)送的消息是否一致。
2.3.3性能測試
配網信息總線的性能主要體現(xiàn)在交互效率與并發(fā)效率兩方面。交互效率是總線傳輸單個完整消息的耗時,并發(fā)效率是總線批量和并行傳輸消息的總耗時。
交互效率測試過程中,測試程序根據(jù)預編排的場景向總線發(fā)送樣本消息,通過記錄發(fā)送消息時間與接收響應時間計算出整個交互過程的時延,從而得到效率測試結果。
并發(fā)測試過程中,測試程序首先按照預定義的并發(fā)消息數(shù)量向總線發(fā)送樣本消息,若每個容器中的測試程序單次并發(fā)量為20,檢測云初始創(chuàng)建的容器數(shù)量為5,則本次測試總體并發(fā)量為100。如果測試結果顯示符合100并發(fā)未丟包,檢測云將自動擴展容器數(shù)量為7,則當前并發(fā)量為140,執(zhí)行新一輪測試。如果結果仍未丟包,則繼續(xù)擴展容器數(shù)量直到測試結果發(fā)生丟包現(xiàn)象,此時記錄上一次符合的結果即為總線的并發(fā)性能結果。倘若測試一開始即發(fā)生丟包現(xiàn)象,檢測云將自動收縮容器數(shù)量為4,則當前并發(fā)量為160,執(zhí)行新一輪測試。如果未丟包則總線的并發(fā)能力即為160。如果仍發(fā)生丟包則繼續(xù)收縮容器數(shù)量直到測試結果不發(fā)生丟包現(xiàn)象為止,記錄上一次符合的結果即為總線的并發(fā)性能結果。
基于IEC 61968標準的信息互操作借助配電自動化系統(tǒng)的建設已廣泛使用。作為配網信息交互的主要載體,總線的實施直接影響著配網應用系統(tǒng)之間的互操作性。
國內主流廠商的傳統(tǒng)總線標準化檢測自2014年起已陸續(xù)開展,但在進行并發(fā)測試時很難取得準確結果。隨著云計算、大數(shù)據(jù)等新技術在配網的深入應用,未來的總線也將基于云平臺。本文提出的方法:一是為了解決云計算平臺的測試技術,二是便于快速開展配網信息交互的并發(fā)測試。下一步將主要面向IEC61968標準的信息互操作測試云平臺提供技術實現(xiàn)。