CN103269327A - 一种基于代理机制的通用文件数据服务的实现方法 - Google Patents
一种基于代理机制的通用文件数据服务的实现方法 Download PDFInfo
- Publication number
- CN103269327A CN103269327A CN2013100045741A CN201310004574A CN103269327A CN 103269327 A CN103269327 A CN 103269327A CN 2013100045741 A CN2013100045741 A CN 2013100045741A CN 201310004574 A CN201310004574 A CN 201310004574A CN 103269327 A CN103269327 A CN 103269327A
- Authority
- CN
- China
- Prior art keywords
- file data
- file
- request
- agent
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开了一种基于代理机制的通用文件数据服务的实现方法。该方法包含了以下信息:基于标准的Web服务技术建立文件数据发布服务,能够支持各平台各语言进行调用;基于代理机制实现文件数据的发布,具体每一种文件数据对应一个代理,代理可以运行在异构的分布式环境中,使得整个系统能够满足规模庞大结构复杂的电网调度系统中文件数据发布的需求。本发明基于代理机制的方式,保证了原有系统的复用,可以在不改造已有系统的基础上进行集成;同时通过提供标准的文件数据的发布接口,简化了数据接入方式,最大程度降低了数据交换带来的子系统之间耦合,提高了文件数据交互的方便性和灵活性。
Description
技术领域
本发明涉及基于代理框架实现的电网各调度自动化系统之间数据服务的实现技术领域,具体是一种基于代理机制的通用文件数据服务的实现方法。
背景技术
随着电网规模的不断扩大,电网监控及运行维护工作量不断增大,各功能建立了自身领域的信息化调度子系统,例如:EMS系统、水调自动化系统、雷电监测系统、保信子系统等等。各调度子系统是电力信息化系统的必要补充,为生产、评估、分析、检修等提供专业数据。以往各调度子系统独立建设,分散运行,使得电网调度系统中各个系统之间的数据交互变得非常困难。
文件数据的交互是实现电网调度系统中分散子系统之间数据交互的重要方式。通过文件数据的传输,各个调度子系统可以获取其他系统的数据,使得各个调度子系统数据互相关联、融合。例如EMS系统可以发布模型文件数据、图形文件数据;水调自动化系统可以发布发电计划文件数据;雷电监测系统可以发布天气预报文件数据;保信子系统可以发布保护定值文件数据等。这些文件数据被其他系统获取分析利用,实现了电网调度系统的集成与融合。
但是,当前调度子系统之间文件数据的传输方式单一,基本通过ftp方式手工传输。随着电网调度系统结构日益复杂和分散,已经不能满足调度子系统之间文件数据传输的要求,主要表现在以下几个问题:
1.ftp方式的文件传输要求系统运行维护人员手动推送文件数据,文件数据请求方只能被动等待,并且不能对文件数据进行过滤和筛选,不能保证文件数据的及时性和准确性。
2.当电网调度系统结构简单,功能单一时,只需要在少数几个系统之间传输有限的文件数据,使用ftp方式比较灵活。随着电网调度系统规模日益庞大、结构日益复杂时,运行维护人员已无法准确及时了解系统中各种文件的传输方式与方向,必须采用一种自动化、灵活扩展的文件数据发布方法。
发明内容
本发明的目的在于:提供一种基于代理机制的通用文件数据服务的实现方法。也就是电网调度系统中各子系统之间互相获取文件数据服务的实现方法,采用基于代理机制的文件数据发布方法,可以实现通用的文件数据发布与传输,灵活方便的解决了复杂分散电网调度系统中文件数据的传输问题。通过采用代理机制,可以在不改造已有系统的基础上进行集成,通过文件数据的发布方式,最大程度降低了数据交换带来的子系统之间耦合。
本发明解决上述技术问题的技术方案是:
一种基于代理机制的通用文件数据服务的实现方法是通过部署文件数据发布服务和相应的代理程序后,由文件数据发布服务和代理程序完成文件数据的传输,包含以下四个步骤:
1文件数据请求方获取文件数据发布服务的访问接口,并向该接口发送文件服务查询请求,该请求包含了所请求文件数据的类型、特征、过滤条件以及文件数据请求方的用户标识。
具体步骤包括:
1)文件数据请求方在服务注册中心查找文件数据发布服务的服务描述WSDL文件;
2)文件数据请求方根据步骤1.1)得到的WSDL文件分析出文件数据发布服务的访问接口、参数类型和返回值类型;
3)文件数据请求方编写访问客户端程序发送查询请求至文件数据发布服务,请求包含了所请求文件数据的类型、过滤条件以及文件数据请求方的用户标识,请求以xml文件形式封装通过HTTP协议进行传输。
2文件发布服务接受到文件数据请求方的请求,分析该请求并向远方具体实现某一类型文件数据发布的代理程序发出具体的文件获取请求。
具体步骤包括:
1)文件数据发布服务接收到步骤1)中发送的请求进行解析,分析请求方的权限和其所请求的文件数据类型是否匹配,不匹配的话返回错误,匹配则进行步骤2.2);
2)文件数据发布服务维护了所有代理程序的列表,该列表中每一种文件数据类型对应了一个代理程序,文件数据发布服务根据请求的文件数据类型查询其对应的代理程序的地址和端口;
3)文件数据发布服务重新封装文件数据请求,通过socket连接发送给2.2)所查询到的代理程序。
3代理程序收到请求,在本地完成文件数据的查找与处理,并将结果返回给文件发布服务。
具体步骤包括:
1)代理程序启动后一直在监听特定端口socket连接,收到文件数据发布服务的请求后进行解析,判断该请求是否能够处理,不能返回错误结果,能处理进行步骤3.2);
2)代理程序将请求分配给空闲线程进行处理,具体的文件查询过程根据每一个具体代理程序的业务逻辑而不同,基本特征都是通过查询符合请求中过滤条件的文件,打包并压缩,进行二进制编码生成字符串,最后通过socket连接返回给文件发布服务;
3)处理线程返回之后恢复空闲状态,继续等待下一个请求。
4文件发布服务收到代理程序返回的结果再进行解析,生成最终返回结果返回文件数据请求方。
具体步骤包括:文件数据发布服务收到代理程序返回的结果,其中主要包括了文件数据的BASE64二进制编码,此编码符合RFC2045规范定义。文件数据发布服务对这一结果进行解析并以xml文件形式进行封装,通过HTTP协议返回给文件数据请求方,文件数据请求方对其中的二进制编码字符串进行BASE64反编码,得到所请求的文件数据。
本发明的有益效果是:本发明通过一种方便、灵活、统一的方式,提供电网调度系统中各子系统之间互相获取文件数据的方法,通过采用代理机制,可以在不改造已有系统的基础上进行集成,通过部署相应的代理程序,屏蔽了底层的操作系统和网络的异构性,实现该系统文件数据的发布,最大程度降低了数据交换带来的子系统之间耦合,适用于分散复杂的电网调度系统的集成。
附图说明
图1为本发明的系统架构示意图。
图中,服务器1,调度子系统A2-1,调度子系统B2-2,调度子系统A网络协议3-1,调度子系统B络协议3-2。
图2为本发明的代理机制结构示意图。
图中,代理框架4,第一代理线程5-1,第二代理线程5-2,第三代理线程5-3,第四代理线程5-4,第五代理线程5-5,第六代理线程5-6。
图3为本发明的基于代理机制的文件数据发布过程示意图。
图中,SVG文件请求客户端6,文件发布Web服务7,文件代理配置列表8,SVG文件代理框架9,SVG文件代理线程10。
具体实施方式
下面结合附图和实施对本发明作进一步说明。
本发明的系统架构如图1所示,图中,服务器1,调度子系统A2-1,调度子系统B2-2,调度子系统A网络协议3-1,调度子系统B络协议3-2。
系统架构包括了服务器1、调度子系统A2-1以及调度子系统B2-2。服务器中包括了文件数据发布服务、Tomcat、JVM以及Windows、Linux或者AIX操作系统。调度子系统A或B包含了代理机制以及Windows、Linux或者AIX操作系统。服务器中的文件数据发布服务部署在Tomcat中,通过底层Java虚拟机JVM的屏蔽,可以适用于Windows、Linux或者AIX等各个不同的操作系统平台。调度子系统A2-1中部署了代理机制,通过网络协议3-1与服务器1相连;调度子系统B2-2中部署了代理机制,通过网络协议3-2与服务器1相连。
本发明使用Web服务技术,文件数据发布服务作为标准Web服务发布到服 务注册中心,可以提供服务描述文件供客户端调用。文件数据发布服务部署在Tomcat服务器中,通过底层Java虚拟机JVM的屏蔽,可以适用于各个不同的操作系统平台。各个调度子系统中部署了代理机制,通过网络协议与服务器相连。
整个方案包括了文件数据发布服务的建立、调度子系统中代理机制的建立以及完成文件数据发布的交互过程三个部分内容。
一、建立文件数据发布服务
对于各不同的文件数据请求方,其操作系统、网络环境和编程语言往往各不相同,为此我们采用标准的Web服务方式来建立文件数据服务。这一解决方案的益处在于,文件数据请求方不需要关心其底层的操作系统和网络环境的特点,只需要通过HTTP协议获取文件数据发布服务的服务描述文件——WSDL文件,并根据这一文件编写客户端程序。
文件数据发布服务的WSDL文件描述了本服务的接口信息,包括接口名称、参数类型、返回值类型,其定义如下:
文件数据发布服务内部对于所有的文件数据请求做了统一的封装,包括以下数据结构:
FDRequestWrapper(文件数据请求封装)的各个属性定义如下:
文件数据发布服务维护了所有代理程序的列表,该列表中每一种文件数据类型对应了一个代理程序根据请求中的文件数据类型信息,文件数据发布服务根据请求的文件数据类型查询其对应的代理程序的地址和端口。这一列表的定义形式如下:
二、建立调度子系统的代理机制
调度子系统中的代理机制负责具体某一种文件数据的查询、打包、编码和传输。
代理机制的结构如下图2所示:图中,代理框架4,第一代理线程5-1,第二代理线程5-2,第三代理线程5-3,第四代理线程5-4,第五代理线程5-5,第六代理线程5-6。
代理机制包括了代理框架4和一组代理线程:第一代理线程5-1,第二代理线程5-2,第三代理线程5-3,第四代理线程5-4,第五代理线程5-5,第六代理线程5-6。
代理框架4是代理机制的主体,一直运行在系统中,它维护了一个代理线池,池中包含了一组代理线程:第一代理线程5-1,第二代理线程5-2,第三代理线程5-3,第四代理线程5-4,第五代理线程5-5,第六代理线程5-6。代理框架4负责监听网络socket端口,发现有请求到达就从代理线程池中取出处于空闲状态的代理线程,将文件数据请求交由其处理。
代理线程之间彼此独立,负责某一个文件数据请求的处理。代理线程负责接收、解析、处理和返回请求。
上述代理机制包含了以下数据结构:
代理框架的各属性定义如下:
代理线程的各属性定义如下:
文件数据请求封装的各属性定义如下:
文件数据结果封装的各属性定义如下:
三、完成文件数据发布的交互过程
通过建立上述两个过程,建立了实现文件数据发布的设施如图3所示:
图中,SVG文件数据请求客户端6,文件数据发布Web服务7,文件数据代理配置列表8,SVG文件数据代理框架9,SVG文件数据代理线程10。
提供了文件数据请求方调用的Web服务接口以及代理机制的支撑。实现了文件数据发布的交互过程包含了SVG文件数据请求客户端6与文件数据发布Web服务7之间的交互、文件数据发布Web服务7与SVG文件数据代理框架9之间的交互两个过程,下面以一个实现SVG文件数据发布的具体过程进行说明。SVG文件数据发布包含以下四个步骤:
1)SVG文件数据请求客户端6获取文件数据发布Web服务7的访问接口,并向该接口发送请求SVG文件数据的soap消息;
2)文件数据发布Web服务7接受到请求,分析通过查找文件数据代理配置列表8获取SVG文件数据请求对应的SVG文件数据代理框架9,向远方SVG文件数据代理框架9发出的文件获取请求的Socket消息。
3)SVG文件数据代理框架9收到请求,分配给一个SVG文件数据代理线程10在本地完成文件数据的查找与处理,并将结果通过Socket消息返回给文件数据发布Web服务7;
4)文件数据发布Web服务7收到SVG文件数据代理线程10返回的结果再 进行解析,生成最终返回结通过soap消息返回SVG文件请求客户端6。
步骤1)中SVG文件数据请求客户端6向文件数据发布Web服务7发送的soap(简单对象访问协议)消息是一种XML格式的数据,本例中soap消息的形式如下:
此soap消息中主要的信息包含在<mes:Header>元素体中,包括了<mes:Verb>动词,<mes:Noun>名词,<mes:User>用户,<mes:Property>过滤条件,<mes:User>又包含了<mes:UserID>用户标识以及<mes:Organization>用户厂家,<mes:Property>又包含了<mes:Name>条件名称,<mes:Value>条件值。
步骤2)中文件发布Web服务7针对每一种文件数据请求分配一个文件数 据代理,向其发送文件数据请求,具体的请求使用JSON对象。JSON采用完全独立于语言的文本格式,易于人阅读和编写,同时也易于机器解析和生成。本例中文件发布Web服务发送的JSON对象消息形式如下:
步骤3)中SVG文件代理线程10返回的JSON消息形式如下:
步骤4)文件发布Web服务7返回给SVG文件数据客户端6的soap消息形式如下:
Claims (1)
1.一种基于代理机制的通用文件数据服务的实现方法,其特征在于,通过部署文件数据发布服务和相应的代理程序后,由文件数据发布服务和代理程序完成文件数据的传输,包含以下四个步骤:
1)文件数据请求方获取文件数据发布服务的访问接口,并向该接口发送文件服务查询请求,该请求包含了所请求文件数据的类型、特征、过滤条件以及文件数据请求方的用户标识;
具体步骤包括:
1.1)文件数据请求方在服务注册中心查找文件数据发布服务的服务描述WSDL文件;
1.2)文件数据请求方根据步骤1.1)得到的WSDL文件分析出文件数据发布服务的访问接口、参数类型和返回值类型;
1.3)文件数据请求方编写访问客户端程序发送查询请求至文件数据发布服务,请求包含了所请求文件数据的类型、过滤条件以及文件数据请求方的用户标识,请求以xml文件形式封装通过HTTP协议进行传输;
2)文件发布服务接受到文件数据请求方的请求,分析该请求并向远方具体实现某一类型文件数据发布的代理程序发出具体的文件获取请求;
具体步骤包括:
2.1)文件数据发布服务接收到步骤1)中发送的请求进行解析,分析请求方的权限和其所请求的文件数据类型是否匹配,不匹配的话返回错误,匹配则进行步骤2.2);
2.2)文件数据发布服务维护了所有代理程序的列表,该列表中每一种文件数据类型对应了一个代理程序,文件数据发布服务根据请求的文件数据类型查询其对应的代理程序的地址和端口;
2.3)文件数据发布服务重新封装文件数据请求,通过socket连接发送给2.2)所查询到的代理程序;
3)代理程序收到请求,在本地完成文件数据的查找与处理,并将结果返回给文件发布服务;
具体步骤包括:
3.1)代理程序启动后一直在监听特定端口socket连接,收到文件数据发布服务的请求后进行解析,判断该请求是否能够处理,不能返回错误结果,能处理进行步骤3.2);
3.2)代理程序将请求分配给空闲线程进行处理,具体的文件查询过程根据每一个具体代理程序的业务逻辑而不同,基本特征都是通过查询符合请求中过滤条件的文件,打包并压缩,进行二进制编码生成字符串,最后通过socket连接返回给文件发布服务;
3.3)处理线程返回之后恢复空闲状态,继续等待下一个请求;
4)文件发布服务收到代理程序返回的结果再进行解析,生成最终返回结果返回文件数据请求方;
具体步骤包括:文件数据发布服务收到代理程序返回的结果,其中主要包括了文件数据的BASE64二进制编码,此编码符合RFC2045规范定义,文件数据发布服务对这一结果进行解析并以xml文件形式进行封装,通过HTTP协议返回给文件数据请求方,文件数据请求方对其中的二进制编码字符串进行BASE64反编码,得到所请求的文件数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100045741A CN103269327A (zh) | 2013-01-07 | 2013-01-07 | 一种基于代理机制的通用文件数据服务的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100045741A CN103269327A (zh) | 2013-01-07 | 2013-01-07 | 一种基于代理机制的通用文件数据服务的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103269327A true CN103269327A (zh) | 2013-08-28 |
Family
ID=49012936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100045741A Pending CN103269327A (zh) | 2013-01-07 | 2013-01-07 | 一种基于代理机制的通用文件数据服务的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103269327A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468849A (zh) * | 2015-01-04 | 2015-03-25 | 云南电力调度控制中心 | 一种基于虚拟服务的跨安全区服务调用的实现方法 |
CN108989427A (zh) * | 2018-07-20 | 2018-12-11 | 北京开普云信息科技有限公司 | 一种基于多源信息聚合的公共服务系统及其构建方法 |
CN109005248A (zh) * | 2018-09-26 | 2018-12-14 | 广东电网有限责任公司 | 一种电网调度平台的二级代理装置和一种系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852150A (zh) * | 2005-10-20 | 2006-10-25 | 华为技术有限公司 | 网络中的个人数据搜索系统和方法 |
CN101695076A (zh) * | 2009-09-21 | 2010-04-14 | 中兴通讯股份有限公司 | 基于Web服务的统一代理适配方法、装置以及适配系统 |
CN101764837A (zh) * | 2009-12-23 | 2010-06-30 | 宁波东海蓝帆科技有限公司 | 一种Web服务动态调用系统及调用方法 |
US7870188B2 (en) * | 2004-07-30 | 2011-01-11 | Hewlett-Packard Development Company, L.P. | Systems and methods for exposing web services |
CN102291460A (zh) * | 2011-08-15 | 2011-12-21 | 华北电力大学 | 基于Web Service的信息资源访问方法 |
-
2013
- 2013-01-07 CN CN2013100045741A patent/CN103269327A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7870188B2 (en) * | 2004-07-30 | 2011-01-11 | Hewlett-Packard Development Company, L.P. | Systems and methods for exposing web services |
CN1852150A (zh) * | 2005-10-20 | 2006-10-25 | 华为技术有限公司 | 网络中的个人数据搜索系统和方法 |
CN101695076A (zh) * | 2009-09-21 | 2010-04-14 | 中兴通讯股份有限公司 | 基于Web服务的统一代理适配方法、装置以及适配系统 |
CN101764837A (zh) * | 2009-12-23 | 2010-06-30 | 宁波东海蓝帆科技有限公司 | 一种Web服务动态调用系统及调用方法 |
CN102291460A (zh) * | 2011-08-15 | 2011-12-21 | 华北电力大学 | 基于Web Service的信息资源访问方法 |
Non-Patent Citations (1)
Title |
---|
翟丽芳: "P2P网络Peer访问WebService的研究和实现", 《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》, no. 4, 15 December 2004 (2004-12-15) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468849A (zh) * | 2015-01-04 | 2015-03-25 | 云南电力调度控制中心 | 一种基于虚拟服务的跨安全区服务调用的实现方法 |
CN108989427A (zh) * | 2018-07-20 | 2018-12-11 | 北京开普云信息科技有限公司 | 一种基于多源信息聚合的公共服务系统及其构建方法 |
CN109005248A (zh) * | 2018-09-26 | 2018-12-14 | 广东电网有限责任公司 | 一种电网调度平台的二级代理装置和一种系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106033476B (zh) | 一种云计算环境中分布式计算模式下的增量式图计算方法 | |
CN105183452B (zh) | 一种用于配电设备监测基于Spring AOP的远程规约服务系统 | |
CN105809356A (zh) | 一种基于应用集成云平台的信息系统资源管理方法 | |
CN101587639A (zh) | 一种基于网格的城市公交信息管理与调度决策支持系统 | |
CN102043837A (zh) | 数据整合系统和方法 | |
CN108924228B (zh) | 基于边缘计算的工业互联网优化系统 | |
CN102932431A (zh) | 一种基于消息路由的状态监测数据接口配置方法 | |
KR102345082B1 (ko) | 클라우드 기반 iec61850 정보 처리 방법 | |
CN113703997A (zh) | 集成多种消息代理的双向异步通信中间件系统及实现方法 | |
CN110247981A (zh) | 一种电力调度自动化系统应用微服务改造方法 | |
CN103269327A (zh) | 一种基于代理机制的通用文件数据服务的实现方法 | |
KR102130003B1 (ko) | 원격 전력 모니터링 시스템 | |
CN103561113B (zh) | Web Service接口的生成方法及装置 | |
CN101304410A (zh) | 分布式web的智能信息平台 | |
Dai | Design and implementation of ESB based on SOA in power system | |
CN105245553A (zh) | 一种soa系统及业务处理方法 | |
Qiu et al. | Design and application of data integration platform based on web services and XML | |
CN101986624B (zh) | 一种核心处理基于服务流机制的服务架构集成系统 | |
CN114281790B (zh) | 一种多类型负荷资源聚合商接入系统及方法 | |
CN110532313A (zh) | 数据交换装置 | |
CN103281343B (zh) | 一种基于代理机制的通用历史数据服务的实现方法 | |
CN115774573A (zh) | 应用集成方法、装置、电子设备和存储介质 | |
CN101977165A (zh) | 云模式下的消息传输方法及消息总线系统 | |
KR101757259B1 (ko) | Cim 기반 실시간 데이터 교환을 위한 통합관리 시스템 | |
Varga et al. | Applicability of RESTful web services in control center software integrations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130828 |