首页> 中国专利> 一种适用于弱连接网络下的信息订阅发布方法

一种适用于弱连接网络下的信息订阅发布方法

摘要

本发明提供了一种适用于弱连接网络下的信息订阅发布方法,本发明以“订阅‑发布”信息交互模型的可信性、时效性和轻量化等QOS参数为保障重点,设计并综合运用分布式订阅发布信息维护机制、“推/拉”结合的数据获取机制以及基于NAK的自动重传机制,设计“订阅‑发布”信息交互系统,适应分布式系统数据传输需求,适应窄带、高时延的弱连接网络通信环境,实现了基于“订阅‑发布”信息交互模式的数据传输QOS保障。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-07-14

    实质审查的生效 IPC(主分类):H04L67/61 专利申请号:2023101907208 申请日:20230302

    实质审查的生效

  • 2023-06-27

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及数据分发领域,特别涉及一种适用于弱连接网络下的信息订阅发布方法。

背景技术

“订阅-发布”信息交互模型是分布式信息系统各子系统之间进行信息交互的有效模式。在“订阅-发布”信息交互模型中,具有信息订阅者和发布者两种角色。订阅者向中心协调服务提交订阅信息,发布者向中心协调服务提交发布数据信息,中心协调服务对发布信息和订阅信息进行匹配,并向订阅者发送一个包含发布信息的通知。“订阅-发布”信息交互模型具有解耦性强、易自组织的特点,适用于大规模、动态变化的节点间信息共享。

当前,商业领域已有较多的“订阅-发布”信息交互模型的软件解决方案,比较著名的软件有Kafka、RocketMQ、ZeroMq、RabbitMQ等。不同的商业软件提供的QOS保证有着不同的侧重,主要聚焦报文可靠性、顺序性、时延、吞吐量、持久化等QOS参数,QoS(Quality ofService)即服务质量。在公安、采矿、野外作业等特殊应用场景中,通信链路呈现窄带、高时延、时断时续的弱连接网络特征。与现有的商业软件相比,应用于弱连接网络的“订阅-发布”信息交互系统更强调信息交互过程的可信,必须考虑由于时间、空间两个维度的服务解耦所造成的数据失效问题。相比于时延、吞吐量等参数,业务系统对信息交互的时效性也有较高的要求,且在弱连接网络环境下,对传输过程的网络资源占用更为敏感。

弱连接网络条件下“订阅-发布”信息交互模式带来的“不可信”问题主要体现在订阅者异常情况下,发布者无法及时确认消息是否被正确处理。消防救援、公安执法等应用场景下的关键信息对数据传递的时效性要求严格,必须在规定的时间内通知信息传递结果。同时,受限于分布式节点的网络通信条件和硬件资源,“订阅-发布”信息交互模式必须尽可能少地占用通信资源,具备传输轻量化特征。

发明内容

发明目的:本发明的目的在于根据分布式信息系统对“订阅-发布”信息交互模式的要求,针对弱连接通信网络条件,提供一种适用于弱连接网络下的信息订阅发布方法。

实现本发明目的技术解决方案为:

1)设计分布式订阅发布信息维护机制。将“订阅-发布”信息共享系统中的成员分为不同级别,上级成员为下级成员维护订阅发布信息。一个成员可以同时承担上级/下级两种角色,下级成员可以选择接入一个或者多个上级成员,整个订阅发布系统形成分层拓扑结构,避免因单节点失效导致“订阅-发布”信息交互系统失效问题,提高系统的可信度;

2)设计“推/拉”结合的数据获取机制。订阅者根据需求拉取信息,避免拉取“过期”信息;订阅者可按需拉取,避免数据的无效推送,仅拉取订阅者需要的有效信息,优化网络资源占用;新消息采用推送的方式通知订阅者,保证数据的时效性;

3)设计基于NAK(Nagative Acknowledgement,否定应答)的数据自动重传机制。保证数据传输的可靠性并控制数据传输速度,缓解因网络丢包/拥塞导致的传输失败问题,适应弱连接通信网络。

本发明方法具体包括如下步骤:

步骤1,将订阅发布信息交互系统中的节点划分为不同的级别,形成分层网络拓扑,提高系统可靠性;

步骤2,建立推拉结合的数据获取机制,在带宽占用方面进行优化设计;

步骤3,建立基于NAK(Nagative Acknowledgement,否定应答)的自动重传机制,对重传次数和重传间隔的计算方法进行优化设计;

步骤4,完成信息发布流程和消息接收流程。

步骤1包括:将节点划分为上级节点和下级节点,上级节点能够为下级节点提供中心协调服务,包括订阅者匹配、新消息通知;上级和下级是从信息管理的角度描述系统成员的关系;订阅者和发布者是从某一条具体数据流的角度描述系统成员的关系;订阅发布系统内的一个成员能够同时承担上级和下级两种角色,任意一个成员能够同时是订阅者或者发布者,整个订阅发布系统形成分层拓扑结构;

一个发布者或者订阅者能够接入两个以上的上级节点,调用来自于两个以上的上级节点提供的中心协调服务;当发布者和订阅者接入同一个上级节点时,订阅者能够接收到来自发布者的新消息提醒,并支持向发布者索取发布信息。

步骤2包括:所述推拉结合的数据获取机制包括新消息通知和消息索取;

所述新消息通知包括:当发布者发布新的消息后,将新消息通知发布到中心协调服务器上,中心协调服务器根据订阅信息匹配订阅者,并将新消息通知主动推送至订阅者节点;

所述消息索取包括:订阅者收到新消息通知后,向发布者发送新消息索取命令,消息发布者收到索取命令后,将数据发送给消息订阅者,完成消息发布过程。

步骤3包括:所述基于NAK否定应答的自动重传机制包括:发布者向订阅者推送数据时,针对长消息(大于512字节)进行分包处理,将各个数据包依次发送,如果传输过程中出现丢包,接收端将向发送端发出数据包丢失请求,发送端对丢失的数据包进行重传处理;

数据包全部发送完成后,接收端将向发送端发送接收完全确认,结束数据发送过程;

如果数据包反复丢失,发送方将向接收方发送取消传输通知,结束本次数据拉取过程;发送方将对有效期内的发布数据进行存储,数据有效期根据业务实际需求确定。

步骤4包括:所述信息发布流程包括消息持久化和信息推送:业务软件提交的数据首先进行持久化存储;在消息有效期内,业务数据能够被反复拉取;持久化完成后进行信息的推送;对于新发布的消息,发送新消息通知至上级节点;如果接收到拉取指令,从持久化模块中读取业务数据,并通过基于NAK否定应答的自动重传机制将消息送到订阅者;如果信息推送失败,记录失败状态,提示业务软件发送失败;

所述消息接收流程包括消息持久化和信息拉取:接收到来自上级节点的新消息提醒后,触发订阅者向发布者发送消息索取指令,并通知业务软件有新消息到来;收到发布者发布的数据后,首先对消息进行持久化存储,然后提交给业务软件;当业务软件需要查询历史数据时,从本机持久化数据中获取到相关信息。

有益效果:本发明与现有技术相比,其显著优点为:以“订阅-发布”信息交互模型的可信性、时效性和轻量化等QOS参数为保障重点,设计“订阅-发布”信息交互系统,适应分布式系统在弱连接网络下的数据传输需求。综合运用分布式订阅发布信息维护机制、“推/拉”结合的数据获取机制以及基于NAK的自动重传机制等,实现了基于“订阅-发布”信息交互模式的数据传输QOS保障。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。

图1是本发明的分布式订阅发布信息维护机制示意图。

图2是本发明的“推/拉”结合的数据获取机制示意图。

图3是本发明的基于NAK的自动重传机制示意图。

图4是本发明的信息发布流程示意图。

图5是本发明的信息接收流程示意图。

具体实施方式

本发明提供了一种适用于弱连接网络下的信息订阅发布方法,包括:

步骤1,将订阅发布信息交互系统中的节点划分为不同的级别,形成分层网络拓扑;

步骤2,建立推拉结合的数据获取机制,在带宽占用方面进行优化设计;

步骤3,建立基于NAK否定应答的自动重传机制,对重传次数和重传间隔的计算方法进行优化设计;

步骤4,完成信息发布流程和消息接收流程。

步骤1包括:将节点划分为上级节点和下级节点,上级节点能够为下级节点提供中心协调服务,包括订阅者匹配、新消息通知;上级和下级是从信息管理的角度描述系统成员的关系;订阅者和发布者是从一条具体数据流的角度描述系统成员的关系;订阅发布系统内的一个成员能够同时承担上级和下级两种角色,任意一个成员能够同时是订阅者或者发布者,整个订阅发布系统形成分层拓扑结构。

步骤1中,一个发布者或者订阅者能够接入两个以上的上级节点,调用来自于两个以上的上级节点提供的中心协调服务;当发布者和订阅者接入同一个上级节点时,订阅者能够接收到来自发布者的新消息提醒,并支持向发布者索取发布信息。

步骤2包括:所述推拉结合的数据获取机制包括新消息通知和消息索取。

步骤2中,所述新消息通知包括:当发布者发布新的消息后,将新消息通知发布到中心协调服务器上,中心协调服务器根据订阅信息匹配订阅者,并将新消息通知主动推送至订阅者节点。

步骤2中,所述消息索取包括:订阅者收到新消息通知后,向发布者发送新消息索取命令,消息发布者收到索取命令后,将数据发送给消息订阅者,完成消息发布过程。

步骤3包括:所述基于NAK否定应答的自动重传机制包括:发布者向订阅者推送数据时,针对长消息进行分包处理,将各个数据包依次发送,如果传输过程中出现丢包,接收端将向发送端发出数据包丢失请求,发送端对丢失的数据包进行重传处理。

步骤3中,数据包全部发送完成后,接收端将向发送端发送接收完全确认,结束数据发送过程;

如果数据包反复丢失,发送方将向接收方发送取消传输通知,结束本次数据拉取过程;发送方将对有效期内的发布数据进行存储。

步骤4包括:所述信息发布流程包括消息持久化和信息推送:业务软件提交的数据首先进行持久化存储;在消息有效期内,业务数据能够被反复拉取;持久化完成后进行信息的推送;对于新发布的消息,发送新消息通知至上级节点;如果接收到拉取指令,从持久化模块中读取业务数据,并通过基于NAK否定应答的自动重传机制将消息送到订阅者;如果信息推送失败,记录失败状态,提示业务软件发送失败。

步骤4中,所述消息接收流程包括消息持久化和信息拉取:接收到来自上级节点的新消息提醒后,触发订阅者向发布者发送消息索取指令,并通知业务软件有新消息到来;收到发布者发布的数据后,首先对消息进行持久化存储,然后提交给业务软件;当业务软件需要查询历史数据时,从本机持久化数据中获取到相关信息。

实施例

图1中,本发明设计的分布式订阅发布信息维护机制将“订阅-发布”信息交互系统中的节点划分为不同的级别,设计要点如下:

(1)上级节点可以为下级节点提供中心协调服务,包括订阅者匹配、新消息通知等功能。上级节点缺乏有效的订阅发布信息时,将向更高一层的上级节点查询相关信息。为保证数据分发的时效性,不同层级上级节点之间需要周期性同步订阅发布信息,同步周期建议计算方法为:

(2)一个发布者或者订阅者可以接入多个上级节点。接入更多的上级可以获得实时性更好、可靠性更高的信息分发服务,但是也会在网络上产生重复数据,降低通信资源的利用率。如图1中订阅者B所示,接入了两个上级节点,此时订阅者B可以及时地接收发布者B和发布者C发布的数据。

结合图2,本发明设计的“推/拉”结合的数据获取机制共分为新消息通知和消息索取两个部分:

(1)新消息通知属于“推”过程:当发布者发布新的消息后,将新消息通知发布到中心协调服务器上,中心协调服务器根据订阅信息匹配订阅者,并将新消息通知主动推送至订阅者节点。

(2)消息索取属于“拉”过程:订阅者收到新消息通知后,向发布者发送新消息索取命令。消息发布者收到索取命令后,将数据发送给消息订阅者,完成消息发布过程。

(3)发布者发布的信息由全局唯一的编号进行标识。接入多个上级时,订阅者可能重复收到新消息通知,但是只拉取一次实际数据,减轻网络资源的占用。针对较大的数据(例如十倍于网络带宽的数据),订阅者可以采取按需下载实际数据的策略,进一步优化网络环境。

结合图3,本发明设计的基于NAK的自动重传机制用于保证数据的可靠传输,具体设计如下:

(1)针对长消息(超过512字节)进行分包处理,将各个数据包依次发送;

(2)如果传输过程中出现丢包,那么接收端将向发送端发出数据包丢失请求,发送端对丢失的数据包进行重传处理。如果通信网络环境极端恶劣,数据包反复丢失,那么发送方将向接收方发送取消传输通知,结束本次数据拉取过程。发送方将对有效期内的发布数据进行存储,以解决网络中断、订阅者启动延迟等异常场景下的数据丢失问题。重传次数可以根据网络丢包率进行调整,建议的计算方法为:

(3)数据包全部发送完成后,接收端将向发送端发送接收完全确认,结束数据发送过程。

结合图4,本发明设计的信息发布流程包含消息持久化和信息推送两个部分,具体设计如下:

(1)业务软件提交的数据首先交由“信息持久化”模块进行持久化存储;

(2)持久化完成后,向上级节点发出新消息通知,包含消息的发布者、消息编号、消息长度和消息有效期等信息;

(3)接收到到订阅者的拉取命令后,通过基于NAK的自动重传机制将消息可靠地送到订阅者;

(4)在消息有效期内,业务数据不会被删除,可以被订阅者反复拉取。超过有效期的消息将被及时清理。

结合图5,本发明设计的消息接收流程包括消息持久化和信息拉取两个部分,具体设计如下:

(1)接收到来自上级节点的新消息提醒后,订阅者根据策略向发布者发送消息索取指令。订阅者策略主要包括:1)已接收消息是否重复索取;2)发布者是否被屏蔽;3)是否根据消息长度选择索取时机;4)是否索取超期消息;

(2)订阅者收到发布数据后,对消息进行持久化存储。因业务需要查询历史数据时,优先从本机持久化模块中获取到相关信息,避免频繁从发布者索取数据。

具体实现中,本申请提供计算机存储介质以及对应的数据处理单元,其中,该计算机存储介质能够存储计算机程序,所述计算机程序通过数据处理单元执行时可运行本发明提供的一种适用于弱连接网络下的信息订阅发布方法的发明内容以及各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random access memory,RAM)等。

本领域的技术人员可以清楚地了解到本发明实施例中的技术方案可借助计算机程序以及其对应的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机程序即软件产品的形式体现出来,该计算机程序软件产品可以存储在存储介质中,包括若干指令用以使得一台包含数据处理单元的设备(可以是个人计算机,服务器,单片机。MUU或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本发明提供了一种适用于弱连接网络下的信息订阅发布方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号