llzzyy 2018-12-20
国网宁夏电力有限公司电力科学研究院的研究人员伍弘、马飞越等,在2018年第10期《电气技术》杂志上撰文指出,随着电气检测新技术的快速发展,各种用于带电检测、停电试验及在线监测等应用的电气设备不断增多,亟需开发出一款通用性好、可扩展性好及交互性强的协同管理系统。
本系统遵循国家电网公司公共信息模型(SG-CIM)对检测设备数据扩展建模并编码,采用IEC 61970组件接口规范(CIS)中通用数据访问服务(GDA)设计数据访问接口,用WCF构建服务端与客户端间通信;对开发出的原型程序进行测试,其能够快速、准确完成对检测设备的信息管理操作。后续将不断完善信息管理功能并扩展其他功能组件。
随着能源经济的快速发展,电网规模急速扩大,输变电设备数量激增。这些设备如变压器、开关、电力电缆等基数增大,发生或可能发生的故障总数也不断增加。为了准确发现缺陷,及时消除设备运行隐患,或在故障发生后快速查找故障原因,减小设备停电时间,各种基于不同原理的停电、带电、在线监测类电气检测设备不断增多并投入使用[1-2]。
这类检测设备具有种类繁多、易损耗等特点,一般多采用分类别、分地点、分优先级存放。然而,这些设备包含信息繁杂,且在设备出入库、数据信息统计、送检管理等方面仅依靠物理层面已不能满足实际要求,亟需一款通用性好、可扩展性好、交互性强的软件辅助管理。
为了满足上述管理需求,设计出一款功能完善、性能优越的电气检测设备管理系统:
1)针对当前信息管理系统普遍存在的交互性差、通用性和可扩展性不足的问题,且考虑系统实际应用范围及应用特点,采用分布式架构。
2)遵循国家电网公司公共信息模型SG-CIM(State Grid common information model)对电气检测设备资产进行扩展并建模。
3)按照IEC 61970-403通用数据访问GDA(generic data access)的模式设计并实现资产数据信息访问接口。
4)综合考虑现行的多种分布式技术,采用微软公司的WCF(windows communication foundation)实现系统客户端与服务端之间的通信。
采用面向对象的方法设计电气检测设备管理系统将使其本身变得更加开放,且可根据实际需要继续添加新的功能组件,这为电力企业一般设备的高效管理指明了方向。
国家电网公司公共信息模型SG-CIM是在研究IEC 61970/IEC 61968的数据模型基础上,梳理、分析了全网共享交换数据需求,按照国家电网公司的业务组织形式,对国际标准的研究成果进行扩展和优化而形成的公共数据模型,其本质是一种用面向对象的概念(对象类和属性及他们之间的关系)描述和表示电力系统资源、业务的标准方法。
SG-CIM根据国家电网公司的实际业务进行筛选、分类,划分为设备、电网、资产等12个主题域,并在各主题域按照公司具体业务进一步划分,形成二级主题域[3]。各种基于CIM或SG-CIM的数据域分析软件、配网自动化平台、人力资源信息平台等应用也相继展开研究[4-7]。
WCF是微软为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5及以上版本的重要组成部分[8]。其提供了一种构建安全可靠的分布式面向服务系统的统一框架,整合了.NET Remoting、DCOM、Web Service等技术,解决了远程对象之间的互操作问题[9-11]。
组成WCF服务的基本单位是WCF访问点(或称端点),它包含了实现通信所必须的所有信息,如图1所示。
图1 WCF的通信模型
相较于其他分布式技术而言,WCF主要有以下几点优势:
1)统一性。由于WCF整合多项技术,完全由托管代码编写,因此可利用其创建面向服务的应用程序。
2)互操作性。WCF技术最基本的通信机制是简单对象访问协议SOAP(simple object access protocol),保证了系统之间的互操作性。
3)安全性。多种Web服务策略被添加到SOAP消息中,用于用户认证、数据完整性验证、数据隐私等多种安全策略,这些WCF都提供了支持。
4)兼容性。WCF可与旧有系统兼容,不会影响原有的技术支持。
2.1 系统架构
电气检测设备资产管理主要包括设备出入库管理、信息统计(查询及更新)管理、送检管理等。不同的用户基于不同的需求和权限来访问系统,而相互之间不能产生干扰,即设计的系统应能满足多客户端同时访问。
因此,该管理系统宜采用瘦客户端(C/S, Client/Server)模式,即图模分离模式:客户端只存储用户操作界面等内存量很小的数据,服务端则封装检测设备对象的模型、对象间的关系、所要进行访问的接口及数据库本体等。在利用分布式通信组件构建客户端与服务端之间的通信后,多个用户便能同时远端调用服务器中的服务。
用统一建模语言UML(unified modeling language)描述管理系统架构如图2所示。
由图2可知,系统服务器采用SQL数据库,核心为服务器管理组件,由其统一管理、调配服务器中其他组件运行,而它又依赖于数据访问服务组件。
2.2 遵循SG-CIM的数据模型及编码规则
SG-CIM的设备域描述了企业拥有的物理、电子和机械的设备,包括在电力系统各个环节应用的和在网运行电力及其他设备信息。根据电气检测设备的实际特点及管理需要,对设备域包含的二级主题域“变电设备”扩展一个类:检测设备类(Equ Detection),其固有属性名、属性代码及数据类型见表1。
按照《GB/T 7027—2002信息分类和编码的基本原则与方法》,遵循SG-CIM,从逻辑上反映电气检测设备资源信息,对电气检测设备资源进行编码,包括具体设备名称、资料信息及所属设备类别(带电检测类、停电试验类、在线监测类等)。
图2 电气检测设备管理系统架构部署图
表1 检测设备(EquDetection)类的固有属性
为了与现有遵循IEC 61970组件接口规范CIS的系统或应用互联,电气检测设备资源编码亦采用紧凑的128位(16字节)ID数字,即32位字符串组成。资源ID惟一确定电气检测设备,不同系统或应用通过资源ID完成信息交互,并以此识别。
2.3 数据访问接口
电气检测设备数据信息是一种非实时或准实时的静态数据,而IEC 61970-403定义了一种用于模型数据管理与更新的通用数据访问接口GDA,利用GDA可准确高效地完成对数据信息的读、写操作[12-13]。因此采用GDA设计管理系统的数据访问接口。
1)数据访问“读”服务
用UML描述数据访问“读”服务的静态结构如图3所示。
图3中数据访问“读”服务的主体类为Resource QueryService,该类主要关联ResourceID、ClassID、PropertyID(PropertySequence)、Association、ResourceDescription等,分别对应于普通查询、范围查询和关联查询(关联类对象作为主体类的属性),以及查询后返回的资源形式;PropertyID和ClassID继承自ResourceID,因此,类和属性的标识与对象标识具有相同的编码规则;客户端类Client与服务器类Server互相关联,且一个服务器对应多个客户端,而一个服务器又组合至少一个Resource QueryService。
当要对目标数据进行有选择的“读”访问时,可在上述“读”访问的基础上增加一个过滤器(过滤节点)用于筛选查询结果。数据访问服务“读”操作流程如下:客户端访问服务器时,首先调用服务器中的方法create_res_query()给客户端实例化一个读服务对象;其后客户端再调用该服务对象中的3种方法获取具体的资源描述;最后将该资源描述返回给客户端。操作序列如图4所示。
2)数据访问“写”服务
“写”服务主要用于设备管理员或其他有权限的人员对检测设备信息进行更新操作。“写”服务借助四组差异模型(DifferentModel,每组模型为一个资源描述序列)来实现对SG-CIM模型对象的增、删、改操作。“写”服务可以无返回值,或返回一组资源标识符,用来通知客户端“哪些数据发生了怎样的改变”这一事实。
电气检测设备管理系统面向的是多客户端同时访问、中远程操作等问题,因此采用WCF技术构建客户端与服务器间通信。以服务器中数据访问接口为例,详细介绍其与客户端间通信的建立过程。
图3 数据访问“读”服务静态类图
3.1 服务端建立
将数据访问服务(类)封装后,通过配置其WCF服务的ABC便可将其公开至客户端。因此服务端的建立便是ABC的建立。其具体过程如下。
1)添加服务操作。协定(Contract)。WCF服务协定一般包括服务协定(ServiceContract)、操作协定(OperationContract)、数据协定(DataContract),分别对应于数据访问服务中的接口、方法和类。按照对应规则,在WCF服务库中依次添加上述协定。
2)添加配置文件。地址(Address)、绑定(Binding)。当添加完各种协定后,再添加应用程序配置文件并配置其WCF的A、B项。
另外,客户端和服务端之间关于服务的具体信息交互依赖于元数据交换(Metadata Exchange),因此配置文件中还需加上元数据的EndPoint。
3)服务托管。因为所设计的WCF服务是公开的,所以需要一个运行服务的宿主环境,并通过宿主程序加载实现服务。在服务托管后,便能动态监听端点消息。
图4 数据访问“读”服务序列图
3.2 客户端建立
新建客户端应用程序,运行服务端宿主,在客户端程序中添加服务引用。系统会根据地址(Address)获取服务操作及元数据,后台也会相应生成代理类并配置端点,从而客户端便能通过代理类的调用实现对服务端服务的调用。
借助.NET平台,用WCF建立服务端与客户端之间的通信切实可行,且操作简便。
3.3 安全访问控制策略
任何形式的数据访问都有类似的安全性需求,如何保证安全性是系统设计中极为重要的一环[14]。该电气检测设备管理系统主要对种类多、数量大且存放位置多样的检测设备信息进行读、写访问,一旦出现安全漏洞,轻则使数据泄露,重则使数据损坏,从而影响设备台账、出入库及送检管理,特别是设备到期未检将严重影响现场工作。针对实际情况,总结数据访问时较突出的安全问题如下[15]:
1)用户非法访问。用户未在服务端注册即能访问数据。
2)用户越权访问。只允许进行读访问的用户进行了写访问,只允许访问部分数据的用户访问了其他敏感数据。
3)用户访问不受控。用户的访问行为不被监视与控制。
针对上述前两项安全问题,对电气检测设备管理系统的用户进行权限管理,采用用户/角色/操作权限的模式来实现。用UML用例图表示的用户权限如图5所示。
在客户端建立日志文档,实时更新数据访问组件的事件服务(“写”服务返回的资源标识符),用以记录不同用户在任何时间发生怎样的数据访问操作,从而实现对用户访问行为的监控及漏洞捕获。
图5 系统用户权限管理用例图
选择SQL Server 2008关系型数据库作为测试用数据库,并遵循SG-CIM完成电气检测设备资源模型封装;在Visual Studio 2013环境下,编制了数据访问服务组件及服务端与客户端的窗体应用程序。通过对目标设备数据进行读写操作测试,并验证数据访问功能组件和通信的正确性与有效性。
测试环境为两台搭载.NET Framework 4.5的普通PC机(2.2GHz Intel Core i3双核处理器,4G内存,64位Win7操作系统),一台作为服务器,另一台作为客户端。部分测试过程如下所示。
首先服务端应启动WCF通信服务,客户端通过WCF链接至SQL服务器,验证登录用户名及密码的正确性并选择对应功能。客户端端登录界面如图6所示。选择设备管理系统,后台根据登录的用户名判断其角色为设备管理员,并提供“查询设备、增加设备、更新设备、删除设备”的选项界面,以查询设备为例,其操作界面如图7所示。
以操作单条数据为例,测试系统的增、改、查操作所耗时间见表2。结果表明,在该硬件环境下,客户端对服务端中数据进行访问具有快速性(毫秒级)。
表2 管理系统数据访问操作时间测试
图6 用户成功登录界面
图7 设备管理员查询设备界面
实测结果表明,客户端能够快速、准确地对服务端中数据进行增、删、改、查,这为实现更高级的设备管理操作奠定了基础。
数据和通信是C/S应用的基础,采用面向对象方法,遵循SG-CIM设计电气检测设备管理系统可提高其通用性与开放性;采用WCF实现其客户端与服务端间通信,可提高系统的交互性。以SG-CIM和WCF为核心所设计并实现的管理系统,适用于多用户访问及一定范围内的局域网(也可至广域网)环境,对硬件及网络的需求较低。
以其为骨干,可结合实际使用情况进一步扩展其他功能组件,也可按照上述设计思路,扩展报告数据管理等其他非设备类应用。后续将逐步完成功能扩展,并在提高数据访问效率及系统内的多功能组件高效管理方面进行重点研究。