基于SOAP/REST混合式SOA的输变电设备信息集成平台*

2014-03-29 07:38张金江郭创新
机电工程 2014年4期
关键词:数据服务流程状态

王 元,张金江,郭创新

(浙江大学 电气工程学院,浙江 杭州 310027)

0 引 言

输变电设备作为电力系统的重要组成部分,在运行中涉及到诸多信息的采集、传输和处理。这些信息包括与输电线路安全运行密切相关的气象预警和故障分析数据、变电站内各种监测数据等。由于来自不同厂商的软件往往使用不同的编程语言、数据格式及信息模型,使得电力系统中包含着大量多源异构的数据信息,造成信息孤岛和信息的冗余[1]。随着全寿命周期管理和物联网技术的引入,对本已高度多源异构的输变电信息的全景集成变得更加重要。如何设计一种开放的数据平台,将数据信息接入,并进行集成交互,实现信息共享,从而掌握输变电设备的全景信息,成为建设智能电网的重要课题。

为了能够解决上述问题,并灵活应对需求的变化,应从信息架构上入手。在软件体系结构抽象层次提高、模块化和封装化的进程中,经历了面向过程、面向对象、面向组件等阶段[2]。面向服务架构(SOA)是近期比较流行的一种架构,也被认为是一种趋势。这种架构要求软件的功能按照合适的粒度抽象为服务,服务与服务之间具有松耦合的特性,服务的接口和实现相互独立,使得可以在不破坏系统架构和其他应用的情况下修改或重定义服务。由于服务的可重用,会显著提高开发效率,缩短软件开发周期。同时,由于SOA松耦合的特性,使得既有异构的信息的接入更为便捷。这样,可以打破传统面向各个业务领域、僵化的垂直应用构建模式[3]。虽然SOA的实现并不要求依赖特定的技术、平台和标准,但目前实现SOA的方式中,有两种比较常见:一种是基于SOAP/WSDL的Web Service的实现;另一种是REST方式的实现。两者都是优秀的方案,但各有自身更为适用的场合。

本研究根据输变电设备信息的特点,在分析已有方法的优、缺点的基础上,设计实现一种基于SOA、将SOAP/WSDL与REST技术相结合的、采用ESB且包含数据接入集成与高级应用的技术验证平台。

1 SOA技术

1.1 传统实现技术SOAP/WSDL

SOAP/WSDL方式的Web Service是实现SOA的较为传统的一种方法,是一种基于消息的远程过程调用(Remote Procedure Call,RPC),即将一个个服务发布到Web上,服务与服务间可进行组合和交互。当用户端发出请求后,Web端将调用相应服务或服务的组合,从而实现所需软件的功能。该方式通过UDDI(Universal Description,Discovery and Integration)统一注册和查找服务,具体服务的功能和接口由WSDL(Web Services Description Language)描述,服务与服务间的通信采用SOAP消息。UDDI、WSDL和SOAP都是基于XML编码的。

1.2 REST方式实现

REST(Representational State Transfer,表示性状态转移)的概念最早见诸于Roy Fielding的博士论文[4],它是一组体系架构原则(即客户-服务器、无状态、缓存、统一接口、分层系统和按需代码),依据这些原则可以设计以资源为中心的服务[5]。REST的优势在于简洁和易于使用。它建立在已经广泛采用的HTTP协议的基础上,理论上任何支持HTTP协议的编程语言都可以用于REST开发。REST中,Web被抽象为资源的集合,而所谓服务就是对资源的访问。实现SOA时,将可访问的服务视为资源,而这种资源可以是动态的。研究者按照一定规则为每个资源分配合适的URI,使用HTTP定义的有限的几种方法(主要是GET、PUT、DELTE和POST)对资源进行操作,可以实现服务的统一接口,保证松耦合的实现。这种通用接口的设计,符合数据库方面的成功经验,即有限的几种操作的组合,可以实现复杂的逻辑。而网络上的各种信息可以视为一个庞大的资源库。

1.3 SOAP/WSDL与REST技术比较

SOAP/WSDL产生较早,在软件工程领域有许多积累,形成了许多标准和规范(如SOAP、WSDL、UDDI和WS-*标准集)。在电力领域内也有一定研究和实践[6]。这种技术适合复杂的非功能性需求。而REST方式的技术,则简洁易用,在需要使用有限带宽提供更多连接时有更高的效率。在此综合两种技术的优势,需频繁访问且逻辑较为简单的数据服务采用REST方式技术,而需要完善的非功能性机制的其他服务则采用传统的SOAP/WSDL方法。

REST方式的出现则相对晚些,但大有后来居上的趋势,已有许多著名IT公司(如Yahoo,Google、Facebook等)放弃了原有的SOAP和WSDL方式的接口,转而采用REST方式[7]。Amazon比较了两种技术后,宣称在特定情况下REST服务比SOAP/WSDL服务快6倍。

REST方式通过URI直接定位资源,避免了访问资源时的繁琐过程,从而带来了性能上的提升。同时,只需在HTTP报头中标明,即可按需获得资源的不同表示。相比之下,SOAP/WSDL方式定义的接口则可以有无限多种访问方法。由于操作方法无限制,必须依赖WSDL的描述。服务相关参数改变(如交互数据类型),WSDL需要重新编译,增加了服务客户端与服务端的耦合性。另外,传输数据前需将数据装入SOAP信封,使用数据时需要对SOAP数据包进行解析,这样将在系统资源和时间上产生额外的开销。

但是,SOAP/WSDL也有自身的优势。首先,Web Service相关标准(如SOAP、UDDI、WSDL及的WS-*标准集,其中WS-*标准集包含OASIS发布的WS-Security,WS-ReliableMessaging等[9])提供了一系列良好定义的独立于协议的安全模型,使得服务不易被攻击,并规范消息在线上传输的内容和行为。这些标准针对SOAP/WSDL技术,涉及身份验证、签名、加密、消息可靠传递等多方面内容。其次,如果需要上、下文信息和对话状态管理,SOAP方式更为合适。与之相反,如果需要的主要是无状态的CRUD操作,REST方式的实现更为简单,且效率更高[10]。

如前文所述,当前电力领域采用的SOA技术主流为SOAP/WSDL技术,且在特定场合有其优势;而已经在其他领域呈现取代SOAP/WSDL趋势的REST方式,则有其简洁的优势。这个可能发生的取代,应在REST方式的相关标准变得较为完善之后。在此之前,会有一个过渡过程。将两种技术结合或互相转化,在其他领域已有尝试[11-13]。在电力领域,将两种方式相结合,即需频繁访问大量数据的服务、需要使用有限带宽且更高效地提供更多连接时采用REST方式,而需要完善的非功能性机制或需要有状态操作的服务时采用SOAP/WSDL,兼顾两者的优势,具有一定的现实意义。

2 输变电设备全景信息集成平台功能及总体架构设计

2.1 输变电设备全景信息集成平台功能流程

该平台的主要目的是为了验证相关技术,并采用面向服务架构来实现。根据面向服务构架的思想,本研究选取电网中的一个应用功能,即输变电设备状态评价功能作为业务流程构建一个验证系统,将该应用所需要的子模块采用合适的服务实现方式进行服务封装,从而实现一个基于面向服务架构的系统。

系统的功能流程如图1所示。其中,计算服务在平台中对应的为系统中各个上层业务系统的功能计算(包含以状态评价为例的全寿命周期管理中的各类计算)。数据获取和数据存储采用数据服务来实现,界面交互部分采用Web方式来实现。

图1 系统功能流程图

2.2 输变电设备全景信息集成平台数据流

平台主要功能体现在海量异构数据的获取、数据的转换和存储、数据的访问、服务的封装等方面,因此数据的流程在整个平台的构架中就显得尤为重要,整个平台的功能也是围绕着数据的流向进行设计和实现的。

如表3所示,第2周和第4周的粗蛋白(CP)、中性洗涤纤维(NDF)、酸性洗涤纤维(ADF)、干物质(DM)消化率各组之间均不存在显著差异(P>0.05)。数值上,丙酸组与丁酸组的CP消化率高于对照组;丁酸组NDF消化率在第2周高于对照组,而第4周3组之间数值差距不大;ADF消化率在第2周和第4周时皆以丁酸组数值最高;丙酸组和对照组第4周的CP、DM及ADF消化率均大于第2周,而丁酸组第4周CP、NDF、DM消化率均小于第2周。

整个系统的数据流可以分为4个大的部分,从数据流向来看依次为源数据系统、适配器、数据库、上层应用,数据通过各个组件模块时,被这些组件模块的各个功能模块处理,最终发布为服务供上层应用调用。各个子功能模块的功能描述如表1所示。

表1 数据流中各组件及子组件功能表

2.3 输变电设备全景信息集成平台总体架构

根据系统的功能和数据设计,按照面向服务原则,输变电设备全景信息集成平台总体架构如图2所示。其中,ESB(Enterprise Service Bus,企业服务总线)的作用是为服务之间间接和动态交互提供支持。本研究根据变压器状态评价为例的全寿命周期管理计算所需的数据,读取SCADA/EMS、生产管理、气象数据、变压器状态评价相关数据等并封装为数据服务,并将REST方式的数据服务发布到ESB上去;同样地,将状态评价计算服务为例的上层应用封装为SOAP服务并发布到ESB,然后根据ESB中的流程编排和流`程引擎,构建起状态评价流程服务并对外提供流程服务接口。ESB同时可以提供路由和日志服务等基础服务。在构建的这些服务中,笔者对数据访问有较高性能要求的数据服务采用REST方式,而变压器状态评价相关服务采用SOAP/WSDL技术。

图2 输变电设备全景信息集成平台总体架构

3 输变电设备全景信息集成平台服务设计

根据前节所述功能、数据和业务流程,本研究设计实现了以下服务模块。

3.1 CIM/RDF文件解析服务

目前电网模型的表示多数采用CIM[14-15]模型。而且从安全性角度考虑,EMS中安全一区的数据库不允许直接访问,有访问需求时通常是将数据以CIM/RDF文件格式导出以供使用。因此需要一个服务对以CIM/RDF文件为代表的系统导出模型、数据文件进行解析的服务。

本研究中CIM/RDF文件解析服务为一个CIM/ RDF数据到数据库的接口适配器,主要功能为读取CIM文件。该服务对应数据服务中的适配器,将作为一个子服务为数据服务调用。CIM/RDF解析服务流程图如图3所示,本研究根据CIM文件自动构建符合CIM模型的表格,进行ORM映射,并且自动导入数据。当需要访问相关数据时,再由数据库读出。

电网中还有诸如电力E文件、XML、CSV和EXCEL等格式的数据,它们的解析均有成熟的工具包,实现解析服务时与CIM/RDF文件解析相似。

图3 CIM/RDF解析服务流程图

3.2 数据服务

数据服务模块的功能主要是将需要对外访问的数据封装为服务,使得外部系统可以采用标准化技术使用发布的数据,针对变压器状态评价业务,数据服务即为状态评价所需要使用的数据,将之采用REST-ful技术实现为服务,并发布到ESB上。

数据服务如图4所示,数据由不同数据源读入,通过适配器转换存入平台数据库。平台数据库可以是由若干独立的数据库构成、映射为一个可以统一访问的数据库。当客户端向相应服务端端口发送请求时,可执行对数据的获取、更新、添加或删除操作。只采用简单的4种操作实现相关功能,是一种接口的标准化,减少了不必要的API。同时,访问数据的客户端只需支持HTTP协议即可,简单、易于维护。

图4 数据服务

3.3 状态评价计算服务

本研究选取全寿命周期管理中较为典型的变压器状态评价为例,构建了相关计算服务。状态评价服务模块使用数据服务模块,获得XML格式的变压器状态数据,并且按照状态评价的算法实现状态评价的功能,然后将这一计算功能封装为服务并对外发布,因此它需要的服务输入数据为数据服务提供,对外输出为状态评价结果。

3.4 状态评价流程服务

该服务的核心是两个流程,即数据采集流程和状态评价功能流程。状态评价流程服务如图5所示,数据采集流程整合CIM/RDF文件解析服务和数据服务,为变压器状态评价准备数据;状态评价功能服务负责数据接入和状态评价计算服务的调用。

图5 状态评价流程服务

作为对已有资源的一种整合,流程服务具有很大的灵活性。例如,当变压器状态评价算法发生变化时,由于SOA技术的采用,可以直接对状态评价计算服务进行替换,而不影响其他服务的运行。同样,当有新的业务需求时,可以快速地在ESB上对服务库中的服务进行整合,完成新的业务功能。由此,可以显著提高软件的开发效率,提高电力企业应对需求变化的能力。

4 输变电设备全景信息集成平台实现验证与测试

按运行环境的不同,验证平台分为两部分:一部分运行于Mule Studio中,主要实现状态评价计算服务和状态评价流程服务。该环境下,可以方便地调用环境内嵌的工具构建SOAP/WSDL服务。验证平台的另一部分运行于Java集成开发环境Eclipse下,主要实现CIM/RDF文件解析服务、数据服务。可使用RESTlet工具包简化REST方式服务的开发。其中,Mule Studio是Mule ESB的集成开发环境,而Eclipse中的程序将和Mule Studio中的流程发生交互。将文件解析服务和数据服务置于Mule ESB以外的环境实现,是为了验证接入多种环境下运行的服务的可行性。新建的服务可以在Mule Studio中建立。

4.1 CIM/RDF文件解析服务实现

CIM/RDF文件解析服务中,CIM文件使用基于XML的RDF文件进行描述。本研究通过Apache Jena项目提供的开源工具包,对RDF文件解析,转化为JavaBean对象,然后持久化,将JavaBean实例中的数据依次存入数据库中。反之,亦可将数据库中的数据读入JavaBean中以备调用。

4.2 数据服务实现

数据服务中,数据库中的数据读出后存入Java-Bean中,按需的数据表示。RESTful Web Service发布的过程使用开源的Apache Restlet工具,并为数据按照数据模型的层级分配URI(如通过对URI为http:// 10.14.103.35:8888/PowerSystem/SubstationName/TransformerName。其中,10.14.103.35:8888为服务器地址和开放端口号)。

如果需要查询变电站A变压器B的信息,则采用HTTP的GET请求,其请求的报头如下:

请求发送后,将返回JSON格式的、符合CIM模型的数据表示,以供调用。

4.3 状态评价计算服务实现

状态评价计算服务所采用的算法[16-18]依据扩展的变压器资产CIM模型,建立面向对象的层次评价模型。该模型将变压器划分为分接开关、冷却系统、本体和套管4部分,每部分包含若干子指标。笔者使用模糊层次分析确定各级指标的静态相对权重,结合指标劣化程度,由证据理论方法实现融合评估。

4.4 状态评价流程服务实现

状态评价流程服务采用Mule ESB进行实现验证。Mule Studio环境下,整个程序流程被图形化。这些图形代表预先封装好的模块。通过使用这些预先封装好的模块,可以大大简化流程编排的工作量。如前文所述,状态评价流程服务的核心是数据采集流程和状态评价功能流程。其中,数据采集流程如图6所示,CollectDatas流调用REST方式的数据服务,HTTP端点将状态评价计算所需要的CIM模型数据读取过来,将JSON格式转化为XML格式,并且存放入临时文件中。而状态评价功能流程,如图6中EEvaluateFunction流所示,循环监视临时文件,如果临时文件可用,则启动计算服务的计算。期间本研究使用Mule ESB内嵌的Apache CXF工具,调用基于SOAP/WSDL的状态评价服务模块。状态评价功能流程中,Process Chain充当客户端,与Condition Evaluation Flow成对出现。Condition Evaluation Flow中,HTTP模块对应的是服务发布后所对应的地址,其充当了服务的入口;SOAP模块则负责将功能按照SOAP和WSDL标准实现基于SOAP的消息通信以及基于WSDL的服务描述功能。由于有完善安全模型,SOAP消息有很高的可靠性。状态评价计算结果分别采用Database和JMS(Java Message Service)端点进行发布,供其他服务使用(如界面展示、状态检修等)。

图6 状态评价流程服务

5 结束语

本研究分析了多源、异构信息汇聚、融合及全景应用困难的问题,提出了一种基于混合式SOA技术的解决方案,设计了相关数据流,并初步设计了若干服务,并基于Java语言和ESB技术进行了实现。在传统的SOAP/WSDL方式的基础上,数据服务使用REST方式的设计,可以有效实现异构数据的接入和共享,具有轻量级和通用的特点。笔者基于ESB技术设计了服务的集成,便于实现SOA技术要求的松耦合和统一接口,实现依据需求的服务灵活更换和编排,从而使得应对输变电设备管理不断变化的业务需求的能力得到加强。

(References):

[1] 王继业,张崇见.电力信息资源整合方法综述[J].电网技术,2006,30(9):83-87.

[2] PHILIPPE K,HENK O,JUDITH S.The past,present,and future for software architecture[J].IEEE Software,2006, 23(2):22-30.

[3] 中国南方电网责任有限公司.Q/CSG11817-2010面向服务的信息技术架构(SOA)框架规范[S].中国南方电网责任有限公司,2010.

[4] FIELDINGR T.Architectural Styles and the Design of Network based Software Architecture[D].USA:University of California,2000.

[5] ERL T.基于REST的SOA技术:构建企业级方案的原则、模式和约束(英文版)[M].北京:科学出版社,2013.

[6] 唐跃中,曹晋彰,郭创新,等.电网企业基于面向服务架构的应用集成研究与实现[J].电力系统自动化,2008,32(14):50-54.

[7] RODRIGUEZ A.基于REST的Web服务:基础[EB/OL].[2008-12-22].http://www.ibm.com/developerworks/cn/ webservices/ws-restful/.

[8] TRACHTENBERG A.PHP Web Services Without SOAP[EB/OL].[2003-10-30].http://www.onlamp.com/pub/a/ php/2003/10/30/amazon_rest.html.

[9] OASIS.Standards[EB/OL].[2013-11-08].https://www.oasis-open.org/standards.

[10]MENG J,MEI S,YAN Z.Restful Web services:A solution for distributed data integration[C]//International Conference on Computational Intelligence and Software Engineering,2009.Wuhan:[s.n.],2009:1-4.

[11]UPADHYAYA B,ZOU Y,XIAO H,et al.Migration of SOAP-based services to RESTful services[C]//2011 13th IEEE International Symposium on Web Systems Evolution(WSE).Williamsburg,USA:[s.n.],2011:105-114.

[12]王建斌,胡小生,李康君,等.REST风格和基于SOAP的Web Services的比较与结合[J].计算机应用与软件,2010,27(9):297-300.

[13]SU H,CHENG B,WU T,et al.Mashup service release based on SOAP and REST[C]//2011 International Conference on Computer Science and Network Technology(ICCSNT).Harbin:[s.n.],2011:1091-1095.

[14]IEC61970.Energy Management System Application Program Interface(EMS-API)Part 301:Common Information Model[S].IEC,2002.

[15]王 珊,刘 毅,郭创新.基于CIM的变压器设备建模[J].机电工程,2008,25(7):88-91.

[16]何洁芳.某500 kV变压器故障后的安全运行管控[J].机电工程技术,2013,42(12):50-52.

[17]文耀平.真空包装机加热封口变压器设计计算方式[J].包装与食品机械,2010(4):17-19.

[16]郭创新,高振兴,张 健,等.油浸式电力变压器状态评估模型及方法[J].控制工程,2011,18(6):881-885.

猜你喜欢
数据服务流程状态
地理空间大数据服务自然资源调查监测的方向分析
吃水果有套“清洗流程”
状态联想
违反流程 致命误判
生命的另一种状态
如何运用税收大数据服务供给侧结构性改革
基于频繁子图挖掘的数据服务Mashup推荐
本刊审稿流程
析OGSA-DAI工作流程
坚持是成功前的状态