1、1基于 REST 服务的电力调度数据互联技术研究摘要:为了更好地解决地县级电力调度数据互联的问题,提出了基于表述性状态转移 Web 服务的地调与县调电力数据业务互通实现方法。结合电力调度网的安全性、实时性等特点和要求,研究了 REST 的基本概念、目标与设计约束和主要思想等,在此基本上设计并实现了基于 REST Web 服务的电力调度数据交互系统,经过实践证明切实可行且满足电力调度的安全策略等要求。 关键词:表述性状态转移; 网络服务;电力调度;简单对象访问协议 中图分类号:TN711 文献标识码:A 文章编号: 1 引言 目前各地调度数据互联,采取的方式大多是由本地 SCADA 前置进行转发
2、,或者单独开发一个特殊转发接口。在通信点和内容增多之后,众多的接口显然难以管理,加大了前置系统的复杂性,同时限制了系统之间数据互联的适应性和扩展性。构建一个统一的数据互联系统,在系统设计思想的基础上采用开放分布式应用环境的网络管理、数据库、通信和面向对象技术,遵循 IEC 相关标准及各类电力系统应用规范,具有可靠性、开放性、可移植性以及可扩展性是目前电力系统中地区调度与县2级调度之间数据通信的发展趋势。 作为新一代的分布式技术,Web 服务已逐渐广泛应用于异构环境间的数据通信,并在一些电力调度系统中得以充分应用和体现。然而,目前多数的 Web 服务都基于 WS 协议栈(例如 SOAP、WSDL
3、、WS-Addressing、WS-Reliable Messaging、WS-Security 等)都建,这类Web 服务采用 RPC(Remote Procedure Call)风格,这些服务能够满足局部范围内的互操作需求,但随着应用规模的扩大和通信模式的多样性,RPC 风格的 Web 服务逐渐暴露出可扩展性不足、复杂性大、性能不高等问题,而且受其架构风格的制约这些问题难以克服。为了能够解决这些问题,REST(Representational State Transfer)架构风格的 Web 服务逐渐进入人们的视野。 2 Rest 概述 2.1 REST 定义和内容 Roy Fieldin
4、g 在他的博士论文中首次提出了 REST (representational state transfer)1,主要描述了 Web 体系结构设计原则。REST 的目的是决定如何使的 Web 程序能够更加顺畅地向前推进:用户可以通过选择一个带有链接的 Web 页面上的超链接来实现客户端的状态变换,使得用户可以得到下一个新状态的 Web 页面,使程序能够向后进一步运行。REST 是一种 Web 体系结构的风格,它不是一个协议,它而是一种有助于传达蕴含于 Web 中的基本概念的方式。要理解 REST,就必须澄清资源(Resource) 、表现(Representation)和状态(State)这三个
5、概念。资源(Resource)可以是任何事物,可以是一个实物,也3可以是一个抽象的概念。只要有被引用的必要,就可以将其抽象为一个资源。通常一个资源是某个可以存放在计算机上并体现为 Bit 流的事物。表现(Presentation)是一个资源当前状态的有用信息,对于给定的资源,可以有多个不同的表示。REST 中的状态分为资源状态和应用状态:资源状态是关于资源的信息,保存在服务端;应用状态是客户端在应用中所处状态的信息,由各个客户端自己维护2。REST 提供了一组架构约束,当作为一个整体来应用时,强调组件交互的可伸缩性、接口的通用性、组件的独立部署、以及用来减少交互延迟、增强安全性、封装遗留系统的
6、中间组件等。 2.2 REST 的目标及设计约束 REST 的主要目标如下3: 具有一定规模的组件相互作用 接口的通用性 完全独立的组件 中间媒介的有效支持 REST 的设计约束包括4: 将所有事物都抽象为资源 为每个资源定义唯一的资源标识符 URI 使用统一的接口对资源进行操作 通过资源的表示来处理资源 消息具有自描述性 所有的交互都是无状态的 4将超媒体作为应用状态的引擎 2.3 REST 的主要思想 REST 的体系架构中,URI 被用来标识所有资源或 Web 服务。用于标识资源的 URI 一般使用逻辑 URI,而不是物理 URI。二者分别示例如下: 逻辑 URI:http:/local
7、host/scadadata/10 物理 URI:http:/localhost/scadadata/10.htm 上面两个例子都代表了用户要获取数据编号为 10 的数据记录。假定开发人员由于某种原因需要修改后台的数据供应逻辑,如果使用逻辑URI,则开发人员无须关心客户是否还能正常使用的问题;而如果使用物理 URI,开发人员在更新的过程中一定要保证更新后的文件与更新前的文件名一致,且更新过程中会影响客户使用这个物理 URI 的资源。 REST 使用 Http 的 GET、POST、PUT、DELETE4 个动作作为资源的通用接口,用户通过这些接口访问资源。一般认为 GET 方法用于读取资源,P
8、OST 方法用于更新资源,PUT 方法用于添加资源,DELETE 方法用于删除资源。这 4 种方法完全包含了添加、删除、更新。检索的操作,因此,REST 在最大限度上利用了 HTTP 协议。参见图 1. 图 1.REST 风格的 Web 服务架构5 Fig1 Web Service Architecture of REST Style 3 基于 REST 的电力调度数据交互设计与实现 3.1 两级电力调度数据交换需求概括 本文所提出的基于 REST 的地区电力调度与县级电力调度之间数据业5务互联模型在重庆市永川地区电力调度管理系统中得以实现,并取得了一定的效果。重庆市永川地区电力调度管理系统采
9、用分布式应用的方式,包括两级系统:地调系统和县调系统,例如大足县调系统、永川县调系统等等,并且各个系统都相互独立。地调应用系统包括业务服务系统,电量监控系统和数据分析系统等统计服务系统,各个县调系统包括工作流程服务、消息服务、文件服务、PAS 服务、SCADA 服务和业务模型服务等基础业务数据服务。在该分布式应用中,每个应用系统都有自己的访问控制系统模块,且各级调度网络都严格区分 I 区、II 区和 III 区,同时,县调与地调之间可在 II 区实现数据互通,如图 2 所示。 图 2 重庆市永川地区电力调度系统结构图 Fig 2.System Structure Of Power-Dispat
10、ching In Yongchuan 3.2 REST 服务的应用 由于地调与县调之间的 II 区数据互通中,进行了严格的安全策略限制,SCADA 数据的安全保护策略和与地调通信的实时性机制,都对两级之间的数据互通提出了较高的要求。针对这一特点,结合本文提出的 REST服务方式,我们在两级调度的调度数据网接口中分别通过 REST 服务接口实现数据采集、转换和交互,从而在满足安全及实时要求的基础上实现了数据及业务互通。参见图 3。 图 3 地区、县级调度数据互联网络构架 Fig 3 Data association between region and county level 6根据 REST
11、 服务的架构模型,针对地调、县调两级调度业务的特点来定义 REST Web 服务接口是整个系统可靠使用的核心,通过对各级调度业务及关键数据交互的 REST Web 服务定义,将这些分散的、异构的、有不同安全策略的资源有机地集成起来,实现了相互间的数据业务互通。定义 REST Web 服务接口主要是建立一系列描述调度业务、SCADA 数据等的逻辑 URI 地址,并将这些地址与各级调度系统相应的业务逻辑联系起来。完成这些接口后再将其发布到调度数据网中,则可实现两级之间对应业务系统的相互访问和调用。 4 结束语 REST 采用了一种新的思维方式来抽象服务,让人们真正理解网络协议 HTTP 的本来面貌
12、,更充分利用了现象 Web 的特性,使得服务更贴近Web 而不是背离。与其他的跨域异构数据交互协议/架构相比,采用 REST的 Web 服务架构在扩展性、安全性、数据耦合性等方面存在这优势。通过在重庆市永川电力调度系统 DMIS 的示范性应用,通过基于 REST 的 Web服务技术实现,有效解决了地区调度中心与县级调度中心之间的数据及业务互通问题,缩短了业务审批流程和时间,加强了地区电力调度对县级调度的监督能力,对地区电力平衡可靠运行提供了技术支持和保障。同时,随着支持 REST 开发工具的不断涌现,REST 会被越来越多的采用,并逐渐成为 Web 服务的主流技术。 参考文献 71 Field
13、ing R T. Principled design of the modern web architectureC.Limerick.Ireland:Proc of the 2000 Intl Conf on Software Engineering, 2000:407-416. 2 Roy Thom as Fielding. Architectural sty les and the design of network based software architectures D . Doctorial Dissertation, Dep of Computer Science, Univ. of California, Irvine. 2000. 3 程炜,杨宗凯,乐春晖.基于 Web Service 的一种分布式体系结构J.计算机应用研究,2001,18(3):105-107. 4 Robert McMillan.A RESTful approach to web servicesJ.Network World,2003(2):20-24. 5 Steve Vinosk. Demystifying RESTful data coupling. EB/OL.