CN107623645B - 一种基于数据流转发的电力系统实时数据交换系统 - Google Patents
一种基于数据流转发的电力系统实时数据交换系统 Download PDFInfo
- Publication number
- CN107623645B CN107623645B CN201710798281.3A CN201710798281A CN107623645B CN 107623645 B CN107623645 B CN 107623645B CN 201710798281 A CN201710798281 A CN 201710798281A CN 107623645 B CN107623645 B CN 107623645B
- Authority
- CN
- China
- Prior art keywords
- data
- sending
- message
- broker
- consumer
- 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.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 claims abstract description 39
- 230000003993 interaction Effects 0.000 claims abstract description 5
- 238000004891 communication Methods 0.000 claims description 21
- 230000007246 mechanism Effects 0.000 claims description 16
- 238000012790 confirmation Methods 0.000 claims description 7
- 238000000034 method Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 238000009825 accumulation Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims 1
- 230000010354 integration Effects 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000011161 development Methods 0.000 abstract description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010248 power generation Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于数据流转发的电力系统实时数据交换系统。随着电网的技术进步与业务发展,智能电网系统不断细化,内容越来越多。现有技术方案支持将数据写入硬盘,但这大大降低了中转速度;而且现有技术对大文件转发支持不足,难以满足电网体系下数据量大、交互次数多、复杂度高的信息传递要求。本发明针对智能电网数据交换特征,实现了基于数据流转发的准实时数据交换中间件,解决了智能电网应用系统地理分布广、数据集成规模大、及时性要求高、集成技术和管理不统一的难题。该技术能应用于多级部门业务应用间数据集成,能够显著提高部门间大批量的信息交流传递的速度,有效提高工作效率。
Description
技术领域
本发明涉及一种实时数据交换系统,特别是一种基于数据流转发的电力系统实时数据交换系统。
背景技术
随着电网的技术进步与业务发展,智能电网支撑系统不断细化,涉及的内容越来越多,随之而来的是信息系统“信息孤岛”、“大数据交换”现象渐渐浮现。电力信息化系统分布于发电、输电、配电、用电各个环节,系统分布性强,纵向跨越多个分级机构,提高了系统间数据集成的技术复杂度。通信技术作为智能电网的重要技术组成,在应用层建设统一的数据交换系统,跨越多级机构在广域网范围组建高效的数据传输通道需求越发强烈。
现有技术方案支持将数据写入硬盘,但这大大降低了中转速度;而且现有技术对大文件转发支持不足,难以满足电网体系下数据量大、交互次数多、复杂度高的信息传递要求。
发明内容
本发明针对智能电网数据交换特征,并根据队列缓冲、数据流转发、分布式路由思想,设计实现了基于数据流转发的准实时数据交换中间件,解决了智能电网应用系统地理分布广、数据集成规模大、及时性要求高、集成技术不统一、无法统一管理的难题。该技术能够应用于多级部门的业务应用间数据集成,适合作为电力企业应用集成的底层数据交换总线使用,能够显著提高部门间大批量的信息交流传递的速度,有效提高工作效率。
API:Application Programming Interface,应用程序接口
FIFO:First-In First-Out,先入先出
首部:指的是消息传递中该消息的头部分数据,这块数据中包含着这个消息的一些基本信息,如消息的来源、流向与功能等。
技术方案:
本发明一种基于数据流转发的电力系统实时数据交换系统,包括发送端(Producer生产者)、代理节点(Broker)、接收端(Consumer消费者)三个系统模块组成。
首先,发送端(Producer生产者)以API形式存在,实现基于FIFO先进先出队列的异步消息发送机制以及大文件同步发送机制,第三方系统调用发送接口将消息或文件交由Producer进行调度发送,第三方系统无需知道目标接收方的物理位置,只需指明接收端(Consumer消费者)逻辑名称即可将数据交由代理节点(Broker节点)进行自动路由转发,且可以实现一对多的数据分发。
其次,Broker数据路由服务以服务程序形式存在,实现基于数据流的路由转发机制,其无需等待所有数据到达即对数据流进行实时转发提高数据的转发效率,Broker可以分布式部署在不同服务器上形成网络代理节点对数据流进行多节点自动路由转发,最终将数据推送到目标Consumer供第三方系统消费。 Broker可同时对多个Producer提供数据路由服务,从而使得其可以充当多个业务系统间统一的数据交换总线。
最后,Consumer客户端以API形式存在,Consumer收到Broker推送的数据后对数据进行识别,如果是消息型数据则创建FIFO队列进行缓存,并立即通过监听器调用第三方系统进行业务处理,数据接受部门根据接收到的数据进行相应地操作。
附图说明
图1一种基于数据流转发的电力系统实时数据交换系统具体流程
具体实施方式
具体实施方法
本发明一种基于数据流转发的电力系统实时数据交换系统,结合附图进行以下说明:
1.基于FIFO队列的消息缓存机制
当Producer发送内容为文件时,系统使用同步发送方式,即上一文件发送完成才可以进行下一文件的发送,发送文件时API阻塞直到收到Consumer的确认信号(Acknowledgment Signal,ACK),如果发送中断或超时API执行断点续传,系统所使用的流式数据传输协议对数据大小无限制。
发送内容为消息时,提供异步和同步两种发送方式。当使用同步方式时,发送过程同文件的发送过程。当使用异步发送方式时,Producer为发送的消息创建FIFO队列,对不同的Consumer目标创建不同队列,相同目标的消息将按产生顺序缓存入同一队列,与此同时发送线程轮询各队列运行情况,当发现某个队列中有待发送消息时将其一次性打包发送,发送线程设计为贪婪的,总是尽可能快的将消息发出哪怕只有一条消息,发送后移动ACK游标到最新发送位置等待确认,在数据发送过程中产生的消息不受影响继续入列等待下一次发送。收到ACK确认报文后删除ACK游标之前的消息,此机制既可以保障消息发送的可靠性又不会阻塞消息的持续产生。
异步发送消息情况下,当消息产生速度小于发送速度时系统表现为发送一条消息ACK确认一条,当消息产生速度大于发送速度时系统表现为发送一批消息ACK确认一批。批量ACK确认减少通信交互次数,提高消息发送效率。当消息产生速度持续高于发送速度或高于Consumer消费速度时,消息队列中消息将累积,累积达到系统配置的队列最大值时Producer阻塞,直到更多的消息发出,产生多余的队列空间。
由于使用FIFO异步队列缓存机制,通过本系统发出的消息是保序的;第三方系统调用接口将消息交由Producer,由Producer异步完成消息的发送,不会发生阻塞等待,从而提高第三方系统整体通信性能;批量确认机制即保证了消息的可靠通信又提高了消息的确认效率。
Consumer针对消息型数据的接收采用类似的FIFO接收队列,与发送队列不同的是其没有ACK游标,Consumer接收到消息后放入相应的队列,并通过第三方系统注册的监听器调用业务程序进行消费,监听器的调用每次只消费一条消息,系统整体上表现为发送方系统逐条发送消息,接收方系统逐条消费消息。针对文件数据,Consumer接收生成临时文件,接收完直接通过监听器调用第三方系统进行业务消费。
本系统数据传输过程不区分消息与文件,基于Socket实现。在Producer 客户端发送数据前,Consumer客户端需先建立连接注册到Broker服务器上, Broker对所有注册的客户端进行管理,并定时发送心跳以保持与客户端的长连接,心跳包含三种信息,其中0表示正常心跳,1表示需要Consumer主动与Broker 创建更多通信连接,-1表示Broker即将主动断开连接,任意一方超时则断开连接。Consumer注册到Broker后监听控制信息的到来。
2.流式数据传输协议与路由机制
当Producer客户端开始发送数据,首先发送控制报文建立通信链路,控制报文中携带了数据目标端名称、是否是断点续传、数据描述等信息,Broker收到控制报文后读取目标端名称并查询路由表与相邻节点信息表,路由表、相邻节点信息表以XML配置文件的形式存在,在Broker启动时加载到内存,格式如下:
//路由表
<?xml version="1.0"encoding="UTF-8"standalone="no"?>
<properties>
<entry key="TargetName_1">adjacentName_1</entry>
<entry key="TargetName_2">adjacentName_1</entry>
<entry key="TargetName_3">adjacentName_2</entry>
…
</properties>
//相邻节点信息表
<?xml version="1.0"encoding="UTF-8"standalone="no"?>
<properties>
<entry key="adjacentName_1">10.102.12.8:9810</entry>
<entry key="adjacentName_2">10.102.12.9:9810</entry>
…
</properties>
如果目标不可达,则分情况主动断开连接或反馈携带目标不可达标识的ACK 控制报文,并结束通信,否则Broker依据路由表查到的下一节点信息建立与其的连接,将控制报文转发到下一节点,经过多次转发到达Consumer。
当Consumer收到控制报文,意味着当前通信连接被独占,Consumer启动新的线程建立更多与Broker通信连接以支持请求的并发到来,互不影响。Consumer 读取收到的控制报文判断此后的数据是首次发送还是断点续传,如果判断为首次发生Consumer进一步读取控制报文中待发送的数据信息并立即进入接收数据状态。如果判断为断点续传,意味着本次数据传输前曾传输中断过,Consumer 将从控制报文中读取数据描述信息,检查历史临时数据中对应数据的中断位置,将中断位置写入ACK控制信息中并原路反馈到Producer客户端,如未查到历史数据,则中断位置设为0表示数据重新发送。
Producer客户端具有断点续传的控制权,当数据发送异常中断时尝试数次断点续传请求,重发时控制报文中设置断点续传属性,否则数据为第一次发送不设断点续传属性,不产生交互过程。如数据为首次发送,当控制报文发出后立即进行主体数据的发送。如果为断点续传,当控制报文发出后进入ACK报文的读取等待状态,收到ACK报文后根据其中的断点续传位置,跳过已发数据进行续传位置后的数据的发送。
Producer客户端对主体数据的发送是以流的形式进行的,Producer每次读取与TCP/IP包大小等量(此量的值设为系统参数,一般设置4KB)的数据包发出,Broker接收到数据包后,立刻调用之前转发控制报文的连接将数据包转发到下一节点Broker,最终转发到Consumer,重复以上步骤将所有数据传输到 Consumer端。
当Consumer根据控制报文描述的数据大小循环接收到所有数据后,全部数据接收完毕,此时原路反馈ACK控制信息,以通知Producer数据接收情况,至此一次数据传输过程结束。如果Producer长时间未收到ACK报文,则主动断开连接,Broker将产生Socket通信异常并层层关闭Broker间的连接,Producer 端异常,触发断点续传,尝试3次后如仍未成功,Producer报错停止传输。
在传输的整个过程中,正常情况下对于Producer发送一次数据,仅需与 Consumer进行一个来回的通信,一是控制报文与主体数据的连续发送,二是来自Consumer的接收ACK确认。当触发断点续传时需要经过两个来回的通信,在控制报文的发送与主体数据的发送之间,多了续传位置ACK控制报文的交互过程。一个通信来回将数据发出是可靠发送的最低通信次数,系统通信设计上除了采用流式数据传输与路由机制外,将首次发送数据与断点续传发送数据的协议区分对待,而不是统一采用两次来回的通信方式,减少了整体通信往返次数,提高了交换效率。
有益效果:本系统数据缓存设置在Producer端与Consumer端,避免在大规模数据交换场景下Broker资源紧张影响交换效率。Broker只负责维护传输通道的连接以及数据流的路由转发,其无需将所有数据接收完就向下一节点转发数据流。数据交换过程中,数据在Producer、Broker、Consumer间以连续的流的形式源源不断流到接收端。FIFO缓存队列使得第三方系统可以进行异步消息发送,消息被临时存放在队列中发送接口调用立即返回,第三方系统程序可以继续执行其它业务操作,具体的传输交互交由本系统调度完成,从而提高第三方系统的整体性能,降低第三方系统的数据交换复杂度。
Claims (1)
1.一种基于数据流转发的电力系统实时数据交换系统,其特征在于,包括发送端、代理节点、接收端三个系统模块组成;发送端作为生产者Producer,接收端作为消费者Consumer,代理节点作为Broker节点;
发送端以API形式存在,实现基于FIFO先进先出队列的异步消息发送机制以及大文件同步发送机制,第三方系统调用发送接口将消息或文件交由Producer进行调度发送,第三方系统不知道目标接收方的物理位置,仅指明接收端逻辑名称即将数据交由代理节点进行自动路由转发,且实现一对多的数据分发;
Broker数据路由服务以服务程序形式存在,实现基于数据流的路由转发机制,其不等待所有数据到达即对数据流进行实时转发,Broker分布式部署在不同服务器上形成网络代理节点对数据流进行多节点自动路由转发,最终将数据推送到目标Consumer供第三方系统消费;Broker可同时对多个Producer提供数据路由服务,从而使得其可以充当多个业务系统间统一的数据交换总线;
Consumer客户端以API形式存在,Consumer收到Broker推送的数据后对数据进行识别,如果是消息型数据则创建FIFO队列进行缓存,并立即通过监听器调用第三方系统进行业务处理,数据接收部门根据接收到的数据进行相应地操作;
所述基于数据流转发的电力系统实时数据交换系统采用FIFO队列的消息缓存机制,当Producer发送内容为文件时,系统使用同步发送方式,即上一文件发送完成才可以进行下一文件的发送,发送文件时API阻塞直到收到Consumer的确认信号,如果发送中断或超时API执行断点续传,系统所使用的流式数据传输协议对数据大小无限制;
发送内容为消息时,提供异步和同步两种发送方式;当使用同步方式时,发送过程同文件的发送过程;当使用异步发送方式时,Producer为发送的消息创建FIFO队列,对不同的Consumer目标创建不同队列,相同目标的消息将按产生顺序缓存入同一队列,与此同时发送线程轮询各队列运行情况,当发现某个队列中有待发送消息时将其一次性打包发送,发送线程设计为贪婪的,总是尽可能快的将消息发出哪怕只有一条消息,发送后移动ACK游标到最新发送位置等待确认,在数据发送过程中产生的消息不受影响继续入列等待下一次发送;收到ACK确认报文后删除ACK游标之前的消息;
异步发送消息情况下,当消息产生速度小于发送速度时系统表现为发送一条消息ACK确认一条,当消息产生速度大于发送速度时系统表现为发送一批消息ACK确认一批;批量ACK确认减少通信交互次数;当消息产生速度持续高于发送速度或高于Consumer消费速度时,消息队列中消息将累积,累积达到系统配置的队列最大值时Producer阻塞,直到更多的消息发出,产生多余的队列空间;
Consumer针对消息型数据的接收采用类似的FIFO接收队列,与发送队列不同的是其没有ACK游标,Consumer接收到消息后放入相应的队列,并通过第三方系统注册的监听器调用业务程序进行消费,监听器的调用每次只消费一条消息,系统整体上表现为发送方系统逐条发送消息,接收方系统逐条消费消息;针对文件数据,Consumer接收生成临时文件,接收完直接通过监听器调用第三方系统进行业务消费;
本系统数据传输过程不区分消息与文件,基于Socket实现;在Producer客户端发送数据前,Consumer客户端先建立连接注册到Broker服务器上,Broker对所有注册的客户端进行管理,并定时发送心跳以保持与客户端的长连接,心跳包含三种信息,其中0表示正常心跳,1表示需要Consumer主动与Broker创建更多通信连接,-1表示Broker即将主动断开连接,任意一方超时则断开连接;Consumer注册到Broker后监听控制信息的到来;
所述基于数据流转发的电力系统实时数据交换系统采用流式数据传输协议与路由机制,当Producer客户端开始发送数据,首先发送控制报文建立通信链路,控制报文中携带了数据目标端名称、是否是断点续传、数据描述信息,Broker收到控制报文后读取目标端名称并查询路由表与相邻节点信息表,路由表、相邻节点信息表以XML配置文件的形式存在,在Broker启动时加载到内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710798281.3A CN107623645B (zh) | 2017-09-07 | 2017-09-07 | 一种基于数据流转发的电力系统实时数据交换系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710798281.3A CN107623645B (zh) | 2017-09-07 | 2017-09-07 | 一种基于数据流转发的电力系统实时数据交换系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107623645A CN107623645A (zh) | 2018-01-23 |
CN107623645B true CN107623645B (zh) | 2021-04-27 |
Family
ID=61089357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710798281.3A Active CN107623645B (zh) | 2017-09-07 | 2017-09-07 | 一种基于数据流转发的电力系统实时数据交换系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107623645B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109711122B (zh) * | 2019-01-23 | 2021-04-30 | 北京奇艺世纪科技有限公司 | 一种权限管理方法、装置、系统、设备及可读存储介质 |
CN112162875B (zh) * | 2020-10-12 | 2024-08-02 | 上交所技术有限责任公司 | 一种交易系统内部高可靠消息传输方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047614A (zh) * | 2006-05-01 | 2007-10-03 | 华为技术有限公司 | 一种IPv6网络环境中流传输路径建立方法和数据传输系统 |
CN101170574A (zh) * | 2007-11-28 | 2008-04-30 | 浪潮集团山东通用软件有限公司 | 构建多类型数据库安全数据交换平台的方法 |
CN102882790A (zh) * | 2012-10-12 | 2013-01-16 | 北京锐安科技有限公司 | 一种IPv6实时数据流处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9503510B2 (en) * | 2012-03-10 | 2016-11-22 | Headwater Partners Ii Llc | Content distribution based on a value metric |
-
2017
- 2017-09-07 CN CN201710798281.3A patent/CN107623645B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047614A (zh) * | 2006-05-01 | 2007-10-03 | 华为技术有限公司 | 一种IPv6网络环境中流传输路径建立方法和数据传输系统 |
CN101170574A (zh) * | 2007-11-28 | 2008-04-30 | 浪潮集团山东通用软件有限公司 | 构建多类型数据库安全数据交换平台的方法 |
CN102882790A (zh) * | 2012-10-12 | 2013-01-16 | 北京锐安科技有限公司 | 一种IPv6实时数据流处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107623645A (zh) | 2018-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Acharya et al. | A framework for delivering multicast messages in networks with mobile hosts | |
CN101729589B (zh) | 一种提高端到端数据传输速率的方法及系统 | |
JP6240248B2 (ja) | 伝送制御プロトコルの通信方法およびサーバ | |
CN103476062B (zh) | 一种数据流调度的方法、设备和系统 | |
CN106953797B (zh) | 一种基于动态连接的rdma数据传输的方法与装置 | |
CN111427711A (zh) | 一种基于RabbitMQ的消息推送方法 | |
Anastasi et al. | A reliable multicast protocol for distributed mobile systems: Design and evaluation | |
CN103532822A (zh) | 消息投递的管理方法、服务器和系统 | |
CN111970092B (zh) | 一种支持可靠性调节的多协议冗余网络异步通信方法 | |
CN106059936B (zh) | 云系统组播文件的方法及装置 | |
CN112965839B (zh) | 消息传输方法、装置、设备及存储介质 | |
CN107623645B (zh) | 一种基于数据流转发的电力系统实时数据交换系统 | |
CN113194133A (zh) | 一种配电物联网海量消息传递的mqtt协议通信方法 | |
Dong et al. | In-packet network coding for effective packet wash and packet enrichment | |
WO2023221452A1 (zh) | 报文处理系统、方法、设备和存储介质 | |
EP3920035B1 (en) | Message transmission/reception method, communication device, and program | |
KR20220027716A (ko) | 기록매체 | |
Li et al. | ContinuStreaming: Achieving high playback continuity of Gossip-based Peer-to-Peer streaming | |
CN101827026B (zh) | 一种iec61850高层协议报文发送的管理方法 | |
CN109586931A (zh) | 组播方法及终端设备 | |
CN113572582A (zh) | 数据发送、重传控制方法及系统、存储介质及电子设备 | |
CN113612737A (zh) | 一种基于分组与重传机制的长报文可靠传输方法 | |
CN113411266B (zh) | 基于隔离装置的云数据传输方法及系统、终端、存储介质 | |
Vicisano et al. | B-MART, Bulk-data (non-real-time) Multiparty, Adaptive Reliable Transfer Protocol | |
CN115209360B (zh) | 基于对象的聚合容器数据传输方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |