一种基于虚拟服务的跨安全区服务调用的实现方法

文档序号:7835313阅读:339来源:国知局
一种基于虚拟服务的跨安全区服务调用的实现方法
【专利摘要】本发明公开了一种基于虚拟服务的跨安全区服务调用的实现方法。该方法包含了以下信息:虚拟服务运行在Web服务器中,对外采用标准Web服务接口,客户端调用服务完全透明,不需要知道Web服务存在哪个安全区,由虚拟服务完成SOAP消息与报文文件的转换、报文文件的跨隔离装置正、反向传输。本发明适用于电力调度自动化系统,保证了在不增加硬、软件成本的条件下方便多系统使用Web服务技术进行集成与数据交换;使用虚拟服务的方式不依赖任何第三方总线,提高了技术的易用性;在跨隔离装置反向传输大文件过程中使用文件分片技术,提高了服务调用的效率。
【专利说明】一种基于虚拟服务的跨安全区服务调用的实现方法

【技术领域】
[0001] 本发明属于电力调度自动化系统,尤其涉及在一种基于虚拟服务的跨安全区服务 调用的实现方法。

【背景技术】
[0002] Web服务是当前流行的跨系统应用数据交换的架构技术,它在电力调度系统的横 向业务系统集成与数据交换中得到了广泛的应用。Web服务技术基于HTTP协议、XML规范、 SOAP、WSDL规范等实现,其中HTTP协议是最为基础的技术,Web服务依赖HTTP报文传输来 完成服务请求。
[0003] 电力系统为了保证安全性,将电力调度自动化系统分为4个安全区,分别为:安全 一区(实时控制区)、安全二区(非控制生产区)、安全三区(生产管理区)、安全四区(管 理信息区)。其中,安全二区与安全三区之间通过部署正向隔离装置和反向隔离装置进行严 格控制,只允许以文本文件的方式传输数据,阻隔二、三区的HTTP报文。因此,无法实现安 全二区的客户端调用安全三区的Web服务。
[0004] 当电力系统中原本建设在不同安全区的子系统需要通过Web服务进行数据交换 时,传统的解决方案是在其他安全区部署Web服务器镜像与数据服务器镜像,供其他安全 区的其他子系统调用,从而在同一安全区内实现数据交换与系统集成。这一方式具有以下 缺点:
[0005] 1.子系统需要在不同的安全区部署额外的Web服务器与数据服务器,增加了硬件 成本;
[0006] 2.子系统需要维护不同安全区内数据的一致性,即在某一安全区内增加或者删除 数据后如何保证在其他安全区的数据的正确性,这一问题会带来很大的后期维护工作量。


【发明内容】

[0007] 本发明要解决的问题是:目前电力调度自动化系统处于不同安全分区的子系统 在通过Web服务进行数据交换与系统集成时,采用的实现方式存在硬件成本高,数据一致 性难以保证,维护工作量加大的问题。
[0008] 本发明的技术方案为:一种基于虚拟服务的跨安全区服务调用的实现方法,通过 在安全二区和安全三区部署用于实现跨安全区服务调用的虚拟服务,在安全二区由Web服 务客户端透明地调用实际部署在安全三区的Web服务,包含以下六个步骤:
[0009] 1安全二区的Web服务客户端向安全二区的虚拟服务发送基于HTTP协议的服务请 求,由虚拟服务完成跨安全区服务调用,这一过程对于Web服务客户端完全透明。
[0010] 2安全二区的虚拟服务截获服务请求,将HTTP报文内容写进服务请求文件,通过 隔离装置正向传输程序将服务请求文件传输到安全三区。具体步骤包括:
[0011] 2. 1报文处理程序截获服务请求,读取HTTP请求中的报文内容,并将请求报文内 容写入请求报文文件,每一个服务请求对应一个请求报文文件,通过文件名进行区分;
[0012] 2. 2正向文件发送程序调用隔离装置正向传输程序将请求报文文件发送到安全三 区的请求报文接收目录,由安全三区的虚拟服务进行处理。
[0013] 3安全三区的虚拟服务接收到来自安全二区的请求报文文件,读取文件,生成基于 HTTP协议的服务请求,并将该服务请求发送至位于安全三区的Web服务。具体步骤包括:
[0014] 3. 1正向文件接收程序持续监视安全三区的请求报文接收目录,判断文件已经接 收完整之后,通知报文处理程序;
[0015] 3. 2报文处理程序读取请求报文文件,生成基于HTTP协议的服务请求报文,并将 服务请求发送给安全三区的真正的Web服务。
[0016] 4安全三区的Web服务按照其业务逻辑处理服务请求,将服务反馈报文通过HTTP 协议返回给安全三区的虚拟服务;
[0017] 5安全三区的虚拟服务截获服务反馈报文,将HTTP报文内容写进服务反馈文件, 通过隔离装置反向传输程序将服务反馈文件传输到安全二区。具体步骤包括:
[0018] 5. 1报文处理程序截获服务反馈,读取HTTP反馈中的报文内容,并将反馈报文内 容写入反馈报文文件;
[0019] 5. 2反向文件发送程序调用隔离装置反向传输程序将反馈报文文件发送到安全二 区的反馈报文接收目录,由安全二区的虚拟服务进行处理。
[0020] 6安全二区的虚拟服务接收到来自安全三区的反馈报文文件,读取文件,生成基于 HTTP协议的服务反馈,并将该服务反馈发送至安全二区的Web服务客户端,完成了跨安全 区的服务调用。具体步骤包括:
[0021] 6. 1反向文件接收程序持续监视安全二区的反馈报文接收目录,判断文件已经接 收完整之后,通知报文处理程序;
[0022] 6. 2报文处理程序读取反馈报文文件,生成基于HTTP协议的服务反馈报文,并将 服务反馈发送给安全二区的Web服务客户端,完成Web服务调用。
[0023] 本发明的有益效果是:本发明解决了电力调度自动化系统中跨安全区Web服务调 用时,由于隔离装置的存在,导致HTTP请求无法传输,服务调用无法实现的问题。采用本技 术方案后,Web服务客户端和Web服务均无需作任何改变,本方案对于Web服务客户端完全 透明,客户端不需要知道所调用的服务是在本安全区或者跨安全区;相对传统实现建立数 据镜像与服务镜像的方法,本方案无需在其他安全区部署额外的客户端和服务端,也无需 进行数据一致性维护,降低了 Web服务技术在电力系统中应用的成本与难度。

【专利附图】

【附图说明】
[0024] 图1是基于虚拟服务跨安全区服务调用技术的系统结构图。
[0025] 图2是跨安全区调用雷电服务的数据流程图。

【具体实施方式】
[0026] 本发明在电力调度自动化系统中的应用如图1所示,下面首先介绍出现在实施方 式中的术语:
[0027] 网络平台技术:即PCS9000分布式网络管理技术。网络平台屏蔽不同硬件平台和 操作系统的差异,管理整个系统中的进程,提供统一的报文通讯接口,提供了跨隔离装置正 向/反向传输文件的功能;
[0028] Tomcat :是一种技术先进、性能稳定的免费WEB服务系统,由Apache、Sun和其他一 些公司及个人共同开发,适合中小型系统或并发访问用户不是特别多的情况下使用。支持 JAVA开发语言。
[0029] SOAP协议:简单对象访问协议,是一个用来在分布式的环境中交换信息的简单协 议,基于XML规范与HTTP协议,被用于传递Web服务请求与反馈。
[0030] Java Servlet :是一种服务器端的Java应用程序,具有独立于平台和协议的特 性,它接收HTTP客户请求并返回HTTP反馈报文。
[0031] 下面以安全二区的雷电数据Web服务客户端如何调用位于安全三区的雷电系统 Web服务的过程来具体说明本发明的实施步骤:
[0032] 一、部署安全二区的虚拟服务
[0033] 在本发明的实施中,安全二区的虚拟服务使用Java Servlet技术实现,它能够接 收来自Web服务客户端的SOAP消息,并返回给Web服务客户端以SOAP消息,这样从接口上 来说是一个Web服务,但它并不具备具体的业务逻辑执行能力,只负责去安全三区调用Web 服务并返回,所以是一种虚拟服务。虚拟服务部署在Tomcat Web服务器中,由Tomcat负责 管理其生命周期并提供多线程的并发支持。安全二区的虚拟服务由报文处理程序、正向文 件发送程序以及反向文件接收程序组成。
[0034] 报文处理程序负责SOAP消息与报文文件的相互转换,即将服务请求SOAP消息转 换成请求报文文件、将反馈报文文件转换成反馈SOAP消息。报文处理程序接收到SOAP消 息时,用"当前系统时间+处理线程号"作为消息ID标识每一个SOAP消息,并将转换之后 的服务请求文件以"消息ID"+". request"命名。这样能保证SOAP请求、请求文件与"消 息ID"能够一一对应。直到接收到以同样的"消息ID"+ ".response"命名的反馈报文文 件,报文处理程序读取该文件、生成反馈SOAP消息并返回给Web服务客户端。
[0035] 正向文件发送程序调用电力调度系统网络平台技术提供的跨隔离装置正向传输 功能,将服务请求报文文件发送到安全三区的请求报文接收目录。
[0036] 反向文件接收程序持续监视安全二区的反馈报文接收目录,判断文件已经接收完 整之后,通知报文处理程序。目前应用于电力调度系统的反向隔离装置在传输大容量文件 时,是以1280k字节为单位分块顺序进行传输,导致反向传输大容量文件效率低下。针对 这一问题,我们在反向文件传输过程中采用了对大文件分块,并发传输的方法,提高传输效 率。
[0037] 二、部署安全三区的虚拟服务
[0038] 安全三区的虚拟服务可以使用Java Servlet技术实现部署在Tomcat中,也可以 作为独立的进程运行。它负责在安全三区处理来自安全二区的服务请求,实际调用目标Web 服务,并将结果返回安全二区。
[0039] 安全三区的虚拟服务由报文处理程序、正向文件接收程序以及反向文件发送程序 组成。
[0040] 正向文件接收程序持续监视安全三区的请求报文接收目录,每收到一个以"消息 ID" +". request"命名的请求报文文件,启动一个报文处理程序线程进行处理,并以"消息 ID"唯一地命名该线程。
[0041] 报文处理程序负责SOAP消息与报文文件的相互转换,即将服务请求报文文件转 换成SOAP请求消息、将SOAP返回消息转换成反馈报文文件。报文处理线程读取请求报文 文件,生成服务请求SOAP请求消息,并用以此调用安全三区的真正的Web服务,获得SOAP 返回消息,然后转换成反馈报文文件,并以"消息ID"+". response"的文件名进行命名。
[0042] 反向文件发送程序调用电力调度系统网络平台技术提供的跨隔离装置反向传输 功能,将服务反馈报文文件发送到安全二区的反馈报文接收目录。如前所述,由于反向隔离 装置的限制,我们在反向文件传输过程中采用了对大文件分块,并发传输的方法,提高传输 效率。
[0043] 三、完成跨安全区调用雷电服务
[0044] 如图2所示,完成跨安全区调用雷电服务的数据流程包括:
[0045] 1雷电Web服务客户端向安全二区的报文处理程序发送请求SOAP消息,请求雷电 数据,该SOAP消息的格式如下:
[0046]

【权利要求】
1. 一种基于虚拟服务的跨安全区服务调用的实现方法,其特征在于,通过在安全二区 和安全=区部署用于实现跨安全区服务调用的虚拟服务,在安全二区由Web服务客户端透 明地调用实际部署在安全S区的Web服务,包含W下六个步骤: 1) 安全二区的Web服务客户端向安全二区的虚拟服务发送基于HTTP协议的服务请求, 由虚拟服务完成跨安全区服务调用,该一过程对于Web服务客户端完全透明; 2) 安全二区的虚拟服务截获服务请求,将HTTP报文内容写进服务请求文件,通过隔离 装置正向传输程序将服务请求文件传输到安全=区;具体步骤包括: 2. 1)报文处理程序截获服务请求,读取HTTP请求中的报文内容,并将请求报文内容写 入请求报文文件,每一个服务请求对应一个请求报文文件,通过文件名进行区分; 2. 2)正向文件发送程序调用隔离装置正向传输程序将请求报文文件发送到安全=区 的请求报文接收目录,由安全=区的虚拟服务进行处理; 3) 安全=区的虚拟服务接收到来自安全二区的请求报文文件,读取文件,生成基于 HTTP协议的服务请求,并将该服务请求发送至位于安全S区的Web服务;具体步骤包括: 3. 1)正向文件接收程序持续监视安全=区的请求报文接收目录,判断文件已经接收完 整之后,通知报文处理程序; 3. 2)报文处理程序读取请求报文文件,生成基于HTTP协议的服务请求报文,并将服务 请求发送给安全=区的真正的Web服务; 4) 安全S区的Web服务按照其业务逻辑处理服务请求,将服务反馈报文通过HTTP协议 返回给安全=区的虚拟服务; 5) 安全S区的虚拟服务截获服务反馈报文,将HTTP报文内容写进服务反馈文件,通过 隔离装置反向传输程序将服务反馈文件传输到安全二区;具体步骤包括: 5. 1)报文处理程序截获服务反馈,读取HTTP反馈中的报文内容,并将反馈报文内容写 入反馈报文文件; 5. 2)反向文件发送程序调用隔离装置反向传输程序将反馈报文文件发送到安全二区 的反馈报文接收目录,由安全二区的虚拟服务进行处理; 6) 安全二区的虚拟服务接收到来自安全=区的反馈报文文件,读取文件,生成基于 HTTP协议的服务反馈,并将该服务反馈发送至安全二区的Web服务客户端,完成了跨安全 区的服务调用。具体步骤包括: 6. 1)反向文件接收程序持续监视安全二区的反馈报文接收目录,判断文件已经接收完 整之后,通知报文处理程序; 6. 2)报文处理程序读取反馈报文文件,生成基于HTTP协议的服务反馈报文,并将服务 反馈发送给安全二区的Web服务客户端,完成Web服务调用。
【文档编号】H04L29/08GK104468849SQ201510002753
【公开日】2015年3月25日 申请日期:2015年1月4日 优先权日:2015年1月4日
【发明者】赵川, 夏晨, 朱涛, 陈然, 卞瑞祥 申请人:云南电力调度控制中心, 南京南瑞继保工程技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1