一种数据通信方法及数据通信装置与流程

文档序号:12376382阅读:203来源:国知局
一种数据通信方法及数据通信装置与流程

本发明涉及电子技术领域,特别涉及一种数据通信方法及数据通信装置。



背景技术:

数据分发服务(DDS-Data Distribution Service)是新一代分布式实时通信中间件技术规范,采用发布/订阅架构,以数据为中心,提供丰富的Qos策略,由对象管理组织(OMG)制定,用于解决实时分布式系统中的数据分发实时性、灵活性和Qos控制等问题。以该技术规范为基础产生了诸多数据分发服务中间件,为分布式系统中各节点间通信提供了新的手段。目前,数据分发服务中间件已在发达国家中的舰船控制、数字电视系统、飞行模拟器和军队网络系统中得到广泛使用。

在现有的基于数据分发服务的数据通信方法中,整个分布式服务系统的配置信息只能由本机程序使用,非本机程序无法直接使用,这样,当分布式系统中组成节点过多时,本机程序需要创建和维护配置信息的数目和工作量都会上升。

可见,现有技术中的基于数据分发服务的数据通信方法存在配置信息维护的工作量较大的技术问题。

进一步,当分布式系统中缺少数据流量控制并且其通信数据过多导致数据处理速度和数据接收速度不匹配时,会导致数据延时处理、数据丢失或者程序内存无限增长从而崩溃,影响分布式系统的实时性和稳定性。

可见,现有的基于数据分发服务的数据通信方法在通信数据过多时存在实时性和稳定性差的技术问题。



技术实现要素:

本发明实施例提供一种数据通信方法及数据通信装置,用于解决现有技术中的基于数据分发服务的数据通信方法存在配置信息维护的工作量较大的技术问题,实现增加配置管理的灵活性、减轻配置信息维护的工作量的技术效果。

本申请实施例一方面提供了一种数据通信方法,应用于数据通信装置中,包括:

为所述数据通信装置的N个节点中的每个节点设置配置库信息,其中,N为大于等于2的整数;

加载并解析所述配置库信息,基于所述配置库信息创建与所述每个节点对应的一组数据分发服务对象,获取N组数据分发服务对象;

为所述每个节点配置数据缓冲区,获取N个数据缓冲区;

基于所述N组数据分发服务对象及所述N个数据缓冲区进行数据通信。

可选的,所述配置库信息包括初始化配置信息和/或运行参数配置信息和/或数据分发服务对象配置信息和/或Qos策略配置信息。

可选的,所述基于所述配置库信息创建与所述每个节点对应的一组数据分发服务对象,包括:

获取所述初始化配置信息;

基于所述初始化配置信息确定所述数据分发服务对象配置信息及所述Qos策略配置信息的获取类型,其中,所述获取类型包含本机类型或远程类型;

从与所述获取类型相对应的第一配置库中获取所述数据分发服务对象配置信息及所述Qos策略配置信息;

基于所述数据分发服务对象配置信息及所述Qos策略配置信息创建所述数据分发服务对象。

可选的,所述从与所述获取类型相对应的配置库中获取所述数据分发服务对象配置信息及所述Qos策略配置信息,包括:

依次取i为1至N,确定所述N个节点中的第i个节点的所述获取类型为本机类型,则从与所述第i个节点对应第i个配置库获取所述第i个节点的第i个数据分发服务对象配置信息及Qos策略配置信息,在i为N时,获取所述数据分发服务对象配置信息及所述Qos策略配置信息;或

依次取i为1至N,确定所述N个节点中的第i个节点的所述获取类型为远程类型,则从第i个预设配置库获取所述第i个节点的第i个数据分发服务对象配置信息及Qos策略配置信息,在i为N时,获取所述数据分发服务对象配置信息及所述Qos策略配置信息。

可选的,所述为所述每个节点配置数据缓冲区,获取N个数据缓冲区,包括:

依次取j为1至N,获取所述N个节点中的第j个节点的第j个运行参数配置信息,基于所述第j个运行参数配置信息配置与所述第j个节点对应的第j个数据缓冲区,在j为N时,获取N个数据缓冲区,其中,所述N个数据缓冲区中的每个数据缓冲区为具有数据流控制能力的数据缓冲区。

可选的,所述运行参数配置信息包括减速阈值、与所述减速阈值对应的第一持续时间阈值、恢复阈值及与所述恢复阈值对应的第二持续时间阈值。

可选的,所述基于所述N组数据分发服务对象及所述N个数据缓冲区进行数据通信,包括:

在所述N个节点中任意一个节点发送数据时,将所述数据放置于与所述节点对应的第一数据缓冲区中,通过所述第一数据缓冲区对所述数据进行处理并通过与所述节点对应的第一数据分发服务对象发送所述数据;或

在所述N个节点中任意一个节点接收数据时,通过与所述节点对应的第一数据分发服务对象将所述数据写入与所述节点对应的第一数据缓冲区中,通过所述第一数据缓冲区对所述数据进行处理,获取所述数据。

可选的,所述通过所述第一数据缓冲区对所述数据进行处理,包括:

所述第一数据缓冲区根据所述数据的数据类型进行组装处理,以及对所述数据的读写速度进行监控及调整。

可选的,所述对所述数据的读写速度进行监控及调整,包括:

对所述第一数据缓冲区中的数据读写速度和数据缓冲数目进行采样,获得采样结果;

根据所述采样结果实时计算所述数据读写速度的算数平均值及第一数据缓冲数目;

判断所述第一数据缓冲数目是否超过所述减速阈值;

在所述第一数据缓冲数目超过所述减速阈值时,获取与所述第一数据缓冲数目对应的第一持续时长;

判断所述第一持续时长是否超过所述第一持续时间阈值;

在所述第一持续时长超过所述第一持续时间阈值时,向所述数据的发送方发送第一速度控制信息,以减少所述发送方的数据发送速度,使所述第一数据缓冲区中数据处理速度大于数据接收速度,从而减少数据缓冲数目,以维持所述第一数据缓冲区中数据读写速度平衡。

可选的,在所述第一持续时长超过所述持续时间阈值时,向所述数据的发送方发送速度控制信息之后,所述方法还包括:

获取所述第一数据缓冲区中的第二数据缓冲数目;

判断所述第二数据缓冲数目是否低于所述恢复阈值;

在所述第二数据缓冲数目低于所述恢复阈值时,获取与所述第二数据缓冲数目对应的第二持续时长;

判断所述第二持续时长超过所述持续时间阈值;

在所述第二持续时长超过所述持续时间阈值时,向所述数据的发送方发送第二速度控制信息,恢复数据发送速度,以维持所述第一数据缓冲区中数据传输性能平衡。

本申请实施例另一方面还提供了一种数据通信装置,包括:

配置单元,用于为所述数据通信装置的N个节点中的每个节点设置配置库信息,其中,N为大于等于2的整数;

数据分发服务对象创建单元,用于加载并解析所述配置库信息,基于所述配置库信息创建与所述每个节点对应的一组数据分发服务对象,获取N组数据分发服务对象;

数据缓冲区创建单元,用于为所述每个节点配置数据缓冲区,获取N个数据缓冲区;

数据传输单元,用于基于所述N组数据分发服务对象及所述N个数据缓冲区进行数据通信。

可选的,所述配置库信息包括初始化配置信息和/或运行参数配置信息和/或数据分发服务对象配置信息和/或Qos策略配置信息。

可选的,所述数据分发服务对象创建单元具体用于:

获取所述初始化配置信息;

基于所述初始化配置信息确定所述数据分发服务对象配置信息及所述Qos策略配置信息的获取类型,其中,所述获取类型包含本机类型或远程类型;

从与所述获取类型相对应的第一配置库中获取所述数据分发服务对象配置信息及所述Qos策略配置信息;

基于所述数据分发服务对象配置信息及所述Qos策略配置信息创建所述数据分发服务对象。

可选的,所述数据分发服务对象创建单元具体用于:

依次取i为1至N,确定所述N个节点中的第i个节点的所述获取类型为本机类型,则从与所述第i个节点对应第i个配置库获取所述第i个节点的第i个数据分发服务对象配置信息及Qos策略配置信息,在i为N时,获取所述数据分发服务对象配置信息及所述Qos策略配置信息;或

依次取i为1至N,确定所述N个节点中的第i个节点的所述获取类型为远程类型,则从第i个预设配置库获取所述第i个节点的第i个数据分发服务对象配置信息及Qos策略配置信息,在i为N时,获取所述数据分发服务对象配置信息及所述Qos策略配置信息。

可选的,所述数据缓冲区创建单元具体用于:

依次取j为1至N,获取所述N个节点中的第j个节点的第j个运行参数配置信息,基于所述第j个运行参数配置信息配置与所述第j个节点对应的第j个数据缓冲区,在j为N时,获取N个数据缓冲区,其中,所述N个数据缓冲区中的每个数据缓冲区为具有数据流控制能力的数据缓冲区。

可选的,所述运行参数配置信息包括减速阈值、与所述减速阈值对应的第一持续时间阈值、恢复阈值及与所述恢复阈值对应的第二持续时间阈值。

可选的,所述数据传输单元具体用于:

在所述N个节点中任意一个节点发送数据时,将所述数据放置于与所述节点对应的第一数据缓冲区中,通过所述第一数据缓冲区对所述数据进行处理并通过与所述节点对应的第一数据分发服务对象发送所述数据;或

在所述N个节点中任意一个节点接收数据时,通过与所述节点对应的第一数据分发服务对象将所述数据写入与所述节点对应的第一数据缓冲区中,通过所述第一数据缓冲区对所述数据进行处理,获取所述数据。

可选的,所述数据传输单元具体用于:

所述第一数据缓冲区根据所述数据的数据类型进行组装处理,以及对所述数据的读写速度进行监控及调整。

可选的,所述数据传输单元具体用于:

对所述第一数据缓冲区中的数据读写速度和数据缓冲数目进行采样,获得采样结果;

根据所述采样结果实时计算所述数据读写速度的算数平均值及第一数据缓冲数目;

判断所述第一数据缓冲数目是否超过所述减速阈值;

在所述第一数据缓冲数目超过所述减速阈值时,获取与所述第一数据缓冲数目对应的第一持续时长;

判断所述第一持续时长是否超过所述第一持续时间阈值;

在所述第一持续时长超过所述第一持续时间阈值时,向所述数据的发送方发送第一速度控制信息,以减少所述发送方的数据发送速度,使所述第一数据缓冲区中数据处理速度大于数据接收速度,从而减少数据缓冲数目,以维持所述第一数据缓冲区中数据读写速度平衡。

可选的,所述数据传输单元还用于:

获取所述第一数据缓冲区中的第二数据缓冲数目

判断所述第二数据缓冲数目是否低于所述恢复阈值;

在所述第二数据缓冲数目低于所述恢复阈值时,获取与所述第二数据缓冲数目对应的第二持续时长;

判断所述第二持续时长超过所述第二持续时间阈值;

在所述第二持续时长超过所述第二持续时间阈值时,向所述数据的发送方发送第二速度控制信息,恢复数据发送速度,以维持所述第一数据缓冲区中数据传输性能平衡。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

一、由于本申请实施例中的技术方案,采用为所述数据通信装置的N个节点中的每个节点设置配置库信息,其中,N为大于等于2的整数;加载并解析所述配置库信息,基于所述配置库信息创建与所述每个节点对应的一组数据分发服务对象,获取N组数据分发服务对象;为所述每个节点配置数据缓冲区,获取N个数据缓冲区;基于所述N组数据分发服务对象及所述N个数据缓冲区进行数据通信的技术手段,这样,所述数据通信装置中的各个节点都设置有与之对应的配置库,从而用户可以根据需要使每个节点都拥有整个装置所需的配置信息,实现对配置信息的分散管理;或者使指定的节点拥有整个装置所需的配置信息,而其余节点只拥有少量配置信息,实现对配置信息的集中管理;或者使整个装置中的部分节点采用分散管理配置信息的方式,另外一部分节点采用集中管理配置信息的模式,实现混合管理模式,从而有效解决了现有技术中的基于数据分发服务的数据通信方法存在配置信息维护的工作量较大的技术问题,实现了增加配置管理的灵活性,减轻配置信息维护的工作量的技术效果。

二、由于本申请实施例中的技术方案,采用所述第一数据缓冲区根据所述数据的数据类型进行组装处理,以及对所述数据的读写速度进行监控及调整以及采用对所述第一数据缓冲区中的数据读写速度和数据缓冲数目进行采样,获得采样结果;根据所述采样结果实时计算所述数据读写速度的算数平均值及第一数据缓冲数目;判断所述第一数据缓冲数目是否超过所述减速阈值;在所述第一数据缓冲数目超过所述减速阈值时,获取与所述第一数据缓冲数目对应的第一持续时长;判断所述第一持续时长是否超过所述持续时间阈值;在所述第一持续时长超过所述持续时间阈值时,向所述数据的发送方发送第一速度控制信息,以减少所述发送方的数据发送速度,使所述第一数据缓冲区中数据处理速度大于数据接收速度,从而减少数据缓冲数目,以维持所述第一数据缓冲区中数据读写速度平衡的技术手段,这样,将数据缓冲区隔离出数据处理功能和数据收发功能,同时对数据的读写速度进行监控,控制数据缓冲区中的数据量,从而解决了数据接收和处理相互影响问题和缓冲区中数据收发速度不匀导致数据延时处理、数据丢失或者程序内存无限增长从而崩溃,影响分布式系统的实时性和稳定性的技术问题,实现提高系统的实时性和稳定性的技术效果。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。

图1为本申请实施例一中提供的一种数据通信方法的流程图;

图2为本申请实施例一中所述数据通信装置的第一种网络拓扑图;

图3为本申请实施例一中所述数据通信装置的第二种网络拓扑图;

图4为本申请实施例一中步骤S102的具体实现方式流程图;

图5为本申请实施例二中提供的一种数据通信装置的结构框图;

图6为本申请实施例二中的所述数据通信装置的详细结构框图。

具体实施方式

本发明实施例提供一种数据通信方法及数据通信装置,用于解决现有技术中的基于数据分发服务的数据通信方法存在配置信息维护的工作量较大的技术问题,实现增加配置管理的灵活性、减轻配置信息维护的工作量的技术效果。

本申请实施例中的技术方案为解决上述的技术问题,总体思路如下:

一种数据通信方法,应用于数据通信装置中,包括:

为所述数据通信装置的N个节点中的每个节点设置配置库信息,其中,N为大于等于2的整数;

加载并解析所述配置库信息,基于所述配置库信息创建与所述每个节点对应的一组数据分发服务对象,获取N组数据分发服务对象;

为所述每个节点配置数据缓冲区,获取N个数据缓冲区;

基于所述N组数据分发服务对象及所述N个数据缓冲区进行数据通信。

在上述技术方案中,采用为所述数据通信装置的N个节点中的每个节点设置配置库信息,其中,N为大于等于2的整数;加载并解析所述配置库信息,基于所述配置库信息创建与所述每个节点对应的一组数据分发服务对象,获取N组数据分发服务对象;为所述每个节点配置数据缓冲区,获取N个数据缓冲区;基于所述N组数据分发服务对象及所述N个数据缓冲区进行数据通信的技术手段,这样,所述数据通信装置中的各个节点都设置有与之对应的配置库,从而用户可以根据需要使每个节点都拥有整个装置所需的配置信息,实现对配置信息的分散管理;或者使指定的节点拥有整个装置所需的配置信息,而其余节点只拥有少量配置信息,实现对配置信息的集中管理;或者使整个装置中的部分节点采用分散管理配置信息的方式,另外一部分节点采用集中管理配置信息的模式,实现混合管理模式,从而有效解决了现有技术中的基于数据分发服务的数据通信方法存在配置信息维护的工作量较大的技术问题,实现了增加配置管理的灵活性,减轻配置信息维护的工作量的技术效果。

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。

实施例一

请参考图1,为本申请实施例一中提供的一种数据通信方法,应用于数据通信装置中,所述方法包括:

S101:为所述数据通信装置的N个节点中的每个节点设置配置库信息,其中,N为大于等于2的整数;

S102:加载并解析所述配置库信息,基于所述配置库信息创建与所述每个节点对应的一组数据分发服务对象,获取N组数据分发服务对象;

S103:为所述每个节点配置数据缓冲区,获取N个数据缓冲区;

S104:基于所述N组数据分发服务对象及所述N个数据缓冲区进行数据通信。

在具体实施过程中,所述数据通信装置具体可以是基于数据分发服务系统的通信装置,如图2所示,所述数据通信装置中的N个节点由边缘节点和中间节点组成,中间节点将边缘节点分割成不同的通信网络,在同一通信网络中的边缘节点和相邻的中间节点可以直接通信,不在同一通信网络的边缘节点通信需要通过中间节点的转发。通过设置配置信息,指定数据的转发通路,使边缘节点发送的数据可以通过中间节点转发到其它通信网络中的边缘节点处。

在本申请实施例一中,所述数据通信装置可以提供以下三种配置信息的管理模式:

1、分散管理模式,即N个节点中每个节点都分别拥有所述数据通信装置所需的配置信息,这种模式下节点无需从其它节点获取信息,适合节点少、配置信息简单的情况;

2、集中管理模式,即N个节点中的指定节点拥有所述数据通信装置所需的配置信息,其余节点则只拥有少量配置信息,用于获取所需的其余配置信息,构成“客户端-服务器”结构,这些节点通过默认的数据主题与服务节点通信获取指定配置信息,适合节点多、配置信息繁杂的情况,将数据进行集中统一配置管理;

3、混合管理模式,即结合分散管理模式和集中管理模式的特点,N个节点中的一部分节点采用分散管理模式,另一部分节点采用集中管理模式,用户可以根据自身情况来选择设置。

本领域技术人员可以根据实际使用需求选择合适的配置信息管理模式,通过设置配置库信息,改变所述数据通信装置中各节点的通信拓扑结构,从而使各节点间可直接通信,如图3所示,部分节点也可以作为中间节点进行数据转发,使部分非中间节点间可直接通信,与其它非中间节点间通信通过中间节点实现。

在采用本申请实施例一中的方法进行数据通信时,首先执行步骤S101,即:为所述数据通信装置的N个节点中的每个节点设置配置库信息,其中,N为大于等于2的整数。

在本申请实施例一中,所述配置库信息包括初始化配置信息和/或运行参数配置信息和/或数据分发服务对象配置信息和/或Qos策略配置信息。

在具体实施过程中,所述配置库用于保存配置信息,如,控制节点的通信初始化方式,提供节点通信参数,设置数据结构信息、数据分发服务对象定义和Qos策略,通过配置信息构造系统通信结构。

配置库初始状态下只存在部分配置信息,包括数据通信装置间通信对象设置和装置中各模块所需的初始默认参数,而数据分发相关配置需要用户定制,比如数据域、数据主题、发送对象、接收对象和相关Qos策略等。

在执行完成步骤S101之后,本申请实施例中的方法便执行步骤S102,即:加载并解析所述配置库信息,基于所述配置库信息创建与所述每个节点对应的一组数据分发服务对象,获取N组数据分发服务对象。

在本申请实施例一中,请参考图4,步骤S102的具体实现方式如下:

S401:获取所述初始化配置信息;

S402:基于所述初始化配置信息确定所述数据分发服务对象配置信息及所述Qos策略配置信息的获取类型,其中,所述获取类型包含本机类型或远程类型;

S403:从与所述获取类型相对应的第一配置库中获取所述数据分发服务对象配置信息及所述Qos策略配置信息;

S404:基于所述数据分发服务对象配置信息及所述Qos策略配置信息创建所述数据分发服务对象。

在本申请实施例一中,步骤S303的具体实现方式如下:

依次取i为1至N,确定所述N个节点中的第i个节点的所述获取类型为本机类型,则从与所述第i个节点对应第i个配置库获取所述第i个节点的第i个数据分发服务对象配置信息及Qos策略配置信息,在i为N时,获取所述数据分发服务对象配置信息及所述Qos策略配置信息;或

依次取i为1至N,确定所述N个节点中的第i个节点的所述获取类型为远程类型,则从第i个预设配置库获取所述第i个节点的第i个数据分发服务对象配置信息及Qos策略配置信息,在i为N时,获取所述数据分发服务对象配置信息及所述Qos策略配置信息。

在具体实施过程中,所述N个节点中各节点从配置信息中获取初始化信息后,查询分发对象定义信息和Qos测试信息的获取类型,根据所述获取类型确定是从本节点配置库中获取通信所需信息还是从其它节点处获取,根据获取的配置信息,设置通信参数,注册支持的数据结构,创建并管理给定的数据分发服务各对象并应用指定的Qos策略。所述数据分发服务对象具体可以为:数据域(Domain Participant)、主题(Topic)、发布者(Publisher)、订阅者(Subscriber)、写者(Writer)、读者(Reader)和监听者(Listener)这些对象。在创建各数据分发服务对象后,还可以为各个对象分配唯一标记并分类存储。同时,通过Qos策略为数据分发服务中各对象设置(如数据域对象、主题对象、发送对象、监听对象等)所需的规范自身行为的参数,如数据可靠性类型、历史数据保存类型、资源限制、发送窗口大小、是否支持组播和组播地址等。

在执行完成步骤S102之后,本申请实施例中的方法便执行步骤S103,即:为所述每个节点配置数据缓冲区,获取N个数据缓冲区。

在本申请实施例一中,步骤S103的具体实现方式如下:

依次取j为1至N,获取所述N个节点中的第j个节点的第j个运行参数配置信息,基于所述第j个运行参数配置信息配置与所述第j个节点对应的第j个数据缓冲区,在j为N时,获取N个数据缓冲区,其中,所述N个数据缓冲区中的每个数据缓冲区为具有数据流控制能力的数据缓冲区。

其中,所述运行参数配置信息包括减速阈值、与所述减速阈值对应的第一持续时间阈值、恢复阈值及与所述恢复阈值对应的第二持续时间阈值。

在具体实施过程中,沿用上述例子,当数据通信装置为每个节点的创建了各数据分发服务对象之后,数据通信装置便需要对每个节点设置对应的数据缓冲区。在本申请实施例中,所述数据缓冲区被分成发送数据缓冲区和接收数据缓冲区。所述发送数据缓冲区负责发送数据的写入管理和读取管理,监控数据读写情况,控制读写速度;所述接收数据缓冲区负责接收数据的写入管理和读取管理,监控数据读写情况,控制读写速度。

在执行完成步骤S103之后,本申请实施例中的方法便执行步骤S104,即:基于所述N组数据分发服务对象及所述N个数据缓冲区进行数据通信。

在本申请实施例一中,步骤S104的具体实现方式如下:

在所述N个节点中任意一个节点发送数据时,将所述数据放置于与所述节点对应的第一数据缓冲区中,通过所述第一数据缓冲区对所述数据进行处理并通过与所述节点对应的第一数据分发服务对象发送所述数据;或

在所述N个节点中任意一个节点接收数据时,通过与所述节点对应的第一数据分发服务对象将所述数据写入与所述节点对应的第一数据缓冲区中,通过所述第一数据缓冲区对所述数据进行处理,获取所述数据。

在本申请实施例一中,所述通过所述第一数据缓冲区对所述数据进行处理,包括:

所述第一数据缓冲区根据所述数据的数据类型进行组装处理,以及对所述数据的读写速度进行监控及调整。

在具体实施过程中,沿用上述例子,当数据通信装置为各个节点创建的数据分发服务对象及数据缓冲区之后,各个节点间便可以进行数据通信。在发送数据时,首先将发送数据写入到发送数据缓冲区,然后根据数据类型和数据内容决定发布信息,如,数据发送范围和所需发送对象,从而将数据和与之对应的发布信息提交给匹配的数据分发服务对象进行发送;在接收数据时,首先通过数据分发服务对象中的监听对象获取接收数据,通过接收数据缓冲区对接收数据进行组装,获取所述接收数据。

同时,数据缓冲区还需要实时监控数据缓冲区中数据读写情况。在本申请实施例一中,所述对所述数据的读写速度进行监控及调整,包括:

对所述第一数据缓冲区中的数据读写速度和数据缓冲数目进行采样,获得采样结果;

根据所述采样结果实时计算所述数据读写速度的算数平均值及第一数据缓冲数目;

判断所述第一数据缓冲数目是否超过所述减速阈值;

在所述第一数据缓冲数目超过所述减速阈值时,获取与所述第一数据缓冲数目对应的第一持续时长;

判断所述第一持续时长是否超过所述第一持续时间阈值;

在所述第一持续时长超过所述第一持续时间阈值时,向所述数据的发送方发送第一速度控制信息,以减少所述发送方的数据发送速度,使所述第一数据缓冲区中数据处理速度大于数据接收速度,从而减少数据缓冲数目,以维持所述第一数据缓冲区中数据读写速度平衡。

在所述第一持续时长超过所述持续时间阈值时,向所述数据的发送方发送速度控制信息之后,所述方法还包括:

获取所述第一数据缓冲区中的第二数据缓冲数目

判断所述第二数据缓冲数目是否低于所述恢复阈值;

在所述第二数据缓冲数目低于所述恢复阈值时,获取与所述第二数据缓冲数目对应的第二持续时长;

判断所述第二持续时长超过所述第二持续时间阈值;

在所述第二持续时长超过所述第二持续时间阈值时,向所述数据的发送方发送第二速度控制信息,恢复数据发送速度,以维持所述第一数据缓冲区中数据传输性能平衡。

在具体实施过程中,如果数据缓冲区的读取速度小于写入速度,未处理数据数量超过减速阈值,则控制写入速度小于读取速度,设置数据控制标志(所述数据控制标志为数据缓冲区中的一个标记参数,用于记录数据缓冲区是否进行过数据调控操作),减少未处理数据数量,如果未处理数据数量低于恢复阈值且数据控制标志被设置,则控制写入速度与读取速度相匹配,从而使所述数据通信装置在保证传输数据的速度的同时也能够确保数据不会发生丢失,提高所述数据通信装置的稳定性。

实施例二

基于与本申请实施例一相同的发明构思,请参考图5,为本申请实施例二提供一种数据通信装置,包括:

配置单元10,用于为所述数据通信装置的N个节点中的每个节点设置配置库信息,其中,N为大于等于2的整数;

数据分发服务对象创建单元20,用于加载并解析所述配置库信息,基于所述配置库信息创建与所述每个节点对应的一组数据分发服务对象,获取N组数据分发服务对象;

数据缓冲区创建单元30,用于为所述每个节点配置数据缓冲区,获取N个数据缓冲区;

数据传输单元40,用于基于所述N组数据分发服务对象及所述N个数据缓冲区进行数据通信。

在本申请实施例二中,配置单元10用于实现配置信息的保存和管理;数据分发服务对象创建单元20实现数据分发服务中数据域(DomainParticipant)、主题(Topic)、发布者(Publisher)、订阅者(Subscriber)、写者(Writer)、读者(Reader)和监听者(Listener)这些对象的创建和管理,是数据发布、数据接收、配置查询的核心;所述数据缓冲区可以分为发送数据缓冲区和接收数据缓冲区,在所述数据通信装置中还可以设置数据发布接口和数据接收接口,所述数据发布接口从发送数据缓冲区中获取并处理数据,将处理后数据提交给指定写者对象进行发送;数据接收接口接收监听者对象提供的接收数据,对数据进行处理组装,将组装完成的数据提交给接收数据缓冲区保存;发送数据缓冲区提供数据读写接口,接收程序提供的数据,让数据发布接口读取其中数据,根据数据缓冲数目或者控制信息控制数据的读写速度;接收数据缓冲区保存数据接收模块写入的数据,并提供数据读取接口供程序获取数据和速度控制功能控制数据读取速度,根据数据缓冲数目和控制信息控制数据读取速度,请参考图5,为本申请实施例二中的所述数据通信装置的详细结构框图。

在本申请实施例二中,所述数据通信装置中的各个节点间采用平行结构,各节点间可直接通信,如图3所示。配置信息可集中在指定节点中管理,也可分散在各节点中,通过配置信息设置各节点所支持的数据类型、支持的数据域及其下包含的发送接收数据类型,使数据能够通过所述数据通信装置的中间件分发并被指定节点接收。

在本申请实施例二中,所述数据通信装置由边缘节点和中间节点组成,中间节点将边缘节点分割成不同的通信网络,在同一通信网络中的边缘节点和相邻的中间节点可以直接通信,不在同一通信网络的边缘节点通信需要通过中间节点的转发,如图2所示。通过设置配置信息,指定数据的转发通路,使边缘节点发送的数据可以通过中间节点转发到其它通信网络中的边缘节点处。

在本申请实施例二中,所述配置库信息包括初始化配置信息和/或运行参数配置信息和/或数据分发服务对象配置信息和/或Qos策略配置信息。

在本申请实施例二中,数据分发服务对象创建单元20具体用于:

获取所述初始化配置信息;

基于所述初始化配置信息确定所述数据分发服务对象配置信息及所述Qos策略配置信息的获取类型,其中,所述获取类型包含本机类型或远程类型;

从与所述获取类型相对应的第一配置库中获取所述数据分发服务对象配置信息及所述Qos策略配置信息;

基于所述数据分发服务对象配置信息及所述Qos策略配置信息创建所述数据分发服务对象。

在本申请实施例二中,数据分发服务对象创建单元20具体用于:

依次取i为1至N,确定所述N个节点中的第i个节点的所述获取类型为本机类型,则从与所述第i个节点对应第i个配置库获取所述第i个节点的第i个数据分发服务对象配置信息及Qos策略配置信息,在i为N时,获取所述数据分发服务对象配置信息及所述Qos策略配置信息;或

依次取i为1至N,确定所述N个节点中的第i个节点的所述获取类型为远程类型,则从第i个预设配置库获取所述第i个节点的第i个数据分发服务对象配置信息及Qos策略配置信息,在i为N时,获取所述数据分发服务对象配置信息及所述Qos策略配置信息。

在本申请实施例二中,数据缓冲区创建单元30具体用于:

依次取j为1至N,获取所述N个节点中的第j个节点的第j个运行参数配置信息,基于所述第j个运行参数配置信息配置与所述第j个节点对应的第j个数据缓冲区,在j为N时,获取N个数据缓冲区,其中,所述N个数据缓冲区中的每个数据缓冲区为具有数据流控制能力的数据缓冲区。

在本申请实施例二中,所述运行参数配置信息包括减速阈值、与所述减速阈值对应的第一持续时间阈值、恢复阈值及与所述恢复阈值对应的第二持续时间阈值。

在本申请实施例二中,数据传输单元40具体用于:

在所述N个节点中任意一个节点发送数据时,将所述数据放置于与所述节点对应的第一数据缓冲区中,通过所述第一数据缓冲区对所述数据进行处理并通过与所述节点对应的第一数据分发服务对象发送所述数据;或

在所述N个节点中任意一个节点接收数据时,通过与所述节点对应的第一数据分发服务对象将所述数据写入与所述节点对应的第一数据缓冲区中,通过所述第一数据缓冲区对所述数据进行处理,获取所述数据。

在本申请实施例二中,数据传输单元40具体用于:

所述第一数据缓冲区根据所述数据的数据类型进行组装处理,以及对所述数据的读写速度进行监控及调整。

在本申请实施例二中,数据传输单元40具体用于:

对所述第一数据缓冲区中的数据读写速度和数据缓冲数目进行采样,获得采样结果;

根据所述采样结果实时计算所述数据读写速度的算数平均值及第一数据缓冲数目;

判断所述第一数据缓冲数目是否超过所述减速阈值;

在所述第一数据缓冲数目超过所述减速阈值时,获取与所述第一数据缓冲数目对应的第一持续时长;

判断所述第一持续时长是否超过所述第一持续时间阈值;

在所述第一持续时长超过所述第一持续时间阈值时,向所述数据的发送方发送第一速度控制信息,以减少所述发送方的数据发送速度,使所述第一数据缓冲区中数据处理速度大于数据接收速度,从而减少数据缓冲数目,以维持所述第一数据缓冲区中数据读写速度平衡。

在本申请实施例二中,数据传输单元40还用于:

获取所述第一数据缓冲区中的第二数据缓冲数目

判断所述第二数据缓冲数目是否低于所述恢复阈值;

在所述第二数据缓冲数目低于所述恢复阈值时,获取与所述第二数据缓冲数目对应的第二持续时长;

判断所述第二持续时长超过所述第二持续时间阈值;

在所述第二持续时长超过所述第二持续时间阈值时,向所述数据的发送方发送第二速度控制信息,恢复数据发送速度,以维持所述第一数据缓冲区中数据传输性能平衡。

本申请实施例二中所述数据通信装置提供数据发送、数据接收、配置管理、数据分发服务中间件交互接口这些功能,采用标准化的结构设计,无需或者修改相关数据处理代码,目标软件中数据发送功能与数据发送缓冲区连接、数据处理功能与数据接收缓冲区连接,即可集成到目标软件中,使系统中各构成软件可以集成所述数据通信装置,提高配置信息维护效率、开发效率和系统部署速度,降低开发费用。通过集成本发明中各个单元,通信装置的结构可以通过设置配置库信息得到灵活修改,请参考图6。

通过本申请实施例中的一个或多个技术方案,可以实现如下一个或多个技术效果:

一、由于本申请实施例中的技术方案,采用为所述数据通信装置的N个节点中的每个节点设置配置库信息,其中,N为大于等于2的整数;加载并解析所述配置库信息,基于所述配置库信息创建与所述每个节点对应的一组数据分发服务对象,获取N组数据分发服务对象;为所述每个节点配置数据缓冲区,获取N个数据缓冲区;基于所述N组数据分发服务对象及所述N个数据缓冲区进行数据通信的技术手段,这样,所述数据通信装置中的各个节点都设置有与之对应的配置库,从而用户可以根据需要使每个节点都拥有整个装置所需的配置信息,实现对配置信息的分散管理;或者使指定的节点拥有整个装置所需的配置信息,而其余节点只拥有少量配置信息,实现对配置信息的集中管理;或者使整个装置中的部分节点采用分散管理配置信息的方式,另外一部分节点采用集中管理配置信息的模式,实现混合管理模式,从而有效解决了现有技术中的基于数据分发服务的数据通信方法存在配置信息维护的工作量较大的技术问题,实现了增加配置管理的灵活性,减轻配置信息维护的工作量的技术效果。

二、由于本申请实施例中的技术方案,采用所述第一数据缓冲区根据所述数据的数据类型进行组装处理,以及对所述数据的读写速度进行监控及调整以及采用对所述第一数据缓冲区中的数据读写速度和数据缓冲数目进行采样,获得采样结果;根据所述采样结果实时计算所述数据读写速度的算数平均值及第一数据缓冲数目;判断所述第一数据缓冲数目是否超过所述减速阈值;在所述第一数据缓冲数目超过所述减速阈值时,获取与所述第一数据缓冲数目对应的第一持续时长;判断所述第一持续时长是否超过所述持续时间阈值;在所述第一持续时长超过所述持续时间阈值时,向所述数据的发送方发送第一速度控制信息,以减少所述发送方的数据发送速度,使所述第一数据缓冲区中数据处理速度大于数据接收速度,从而减少数据缓冲数目,以维持所述第一数据缓冲区中数据读写速度平衡的技术手段,这样,将数据缓冲区隔离出数据处理功能和数据收发功能,同时对数据的读写速度进行监控,控制数据缓冲区中的数据量,从而解决了数据接收和处理相互影响问题和缓冲区中数据收发速度不匀导致数据延时处理、数据丢失或者程序内存无限增长从而崩溃,影响分布式系统的实时性和稳定性的技术问题,实现提高系统的实时性和稳定性的技术效果。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

具体来讲,本申请实施例中的数据通信方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与数据通信方法对应的计算机程序指令被一电子设备读取或被执行时,包括如下步骤:

为所述数据通信装置的N个节点中的每个节点设置配置库信息,其中,N为大于等于2的整数;

加载并解析所述配置库信息,基于所述配置库信息创建与所述每个节点对应的一组数据分发服务对象,获取N组数据分发服务对象;

为所述每个节点配置数据缓冲区,获取N个数据缓冲区;

基于所述N组数据分发服务对象及所述N个数据缓冲区进行数据通信。

可选的,所述存储介质中存储的配置库信息包括初始化配置信息和/或运行参数配置信息和/或数据分发服务对象配置信息和/或Qos策略配置信息。

可选的,所述存储介质中存储的与步骤:基于所述配置库信息创建与所述每个节点对应的一组数据分发服务对象,对应的计算机程序指令在被执行时,包括:

获取所述初始化配置信息;

基于所述初始化配置信息确定所述数据分发服务对象配置信息及所述Qos策略配置信息的获取类型,其中,所述获取类型包含本机类型或远程类型;

从与所述获取类型相对应的第一配置库中获取所述数据分发服务对象配置信息及所述Qos策略配置信息;

基于所述数据分发服务对象配置信息及所述Qos策略配置信息创建所述数据分发服务对象。

可选的,所述存储介质中存储的与步骤:从与所述获取类型相对应的配置库中获取所述数据分发服务对象配置信息及所述Qos策略配置信息,对应的计算机程序指令在被执行时,包括:

依次取i为1至N,确定所述N个节点中的第i个节点的所述获取类型为本机类型,则从与所述第i个节点对应第i个配置库获取所述第i个节点的第i个数据分发服务对象配置信息及Qos策略配置信息,在i为N时,获取所述数据分发服务对象配置信息及所述Qos策略配置信息;或

依次取i为1至N,确定所述N个节点中的第i个节点的所述获取类型为远程类型,则从第i个预设配置库获取所述第i个节点的第i个数据分发服务对象配置信息及Qos策略配置信息,在i为N时,获取所述数据分发服务对象配置信息及所述Qos策略配置信息。

可选的,所述存储介质中存储的与步骤:为所述每个节点配置数据缓冲区,获取N个数据缓冲区,对应的计算机程序指令在被执行时,包括:

依次取j为1至N,获取所述N个节点中的第j个节点的第j个运行参数配置信息,基于所述第j个运行参数配置信息配置与所述第j个节点对应的第j个数据缓冲区,在j为N时,获取N个数据缓冲区,其中,所述N个数据缓冲区中的每个数据缓冲区为具有数据流控制能力的数据缓冲区。

可选的,所述存储介质中存储的运行参数配置信息包括减速阈值、与所述减速阈值对应的第一持续时间阈值、恢复阈值及与所述恢复阈值对应的第二持续时间阈值。

可选的,所述存储介质中存储的与步骤:基于所述N组数据分发服务对象及所述N个数据缓冲区进行数据通信,对应的计算机程序指令在被执行时,包括:

在所述N个节点中任意一个节点发送数据时,将所述数据放置于与所述节点对应的第一数据缓冲区中,通过所述第一数据缓冲区对所述数据进行处理并通过与所述节点对应的第一数据分发服务对象发送所述数据;或

在所述N个节点中任意一个节点接收数据时,通过与所述节点对应的第一数据分发服务对象将所述数据写入与所述节点对应的第一数据缓冲区中,通过所述第一数据缓冲区对所述数据进行处理,获取所述数据。

可选的,所述存储介质中存储的与步骤:通过所述第一数据缓冲区对所述数据进行处理,对应的计算机程序指令在被执行时,包括:

所述第一数据缓冲区根据所述数据的数据类型进行组装处理,以及对所述数据的读写速度进行监控及调整。

可选的,所述存储介质中存储的与步骤:对所述数据的读写速度进行监控及调整,对应的计算机程序指令在被执行时,包括:

对所述第一数据缓冲区中的数据读写速度和数据缓冲数目进行采样,获得采样结果;

根据所述采样结果实时计算所述数据读写速度的算数平均值及第一数据缓冲数目;

判断所述第一数据缓冲数目是否超过所述减速阈值;

在所述第一数据缓冲数目超过所述减速阈值时,获取与所述第一数据缓冲数目对应的第一持续时长;

判断所述第一持续时长是否超过所述第一持续时间阈值;

在所述第一持续时长超过所述第一持续时间阈值时,向所述数据的发送方发送第一速度控制信息,以减少所述发送方的数据发送速度,使所述第一数据缓冲区中数据处理速度大于数据接收速度,从而减少数据缓冲数目,以维持所述第一数据缓冲区中数据读写速度平衡。

可选的,所述存储介质中还存储有另外一些计算机程序指令,所述另外一些计算机指令在与步骤:在所述第一持续时长超过所述持续时间阈值时,向所述数据的发送方发送速度控制信息执行之后被执行,包括:

获取所述第一数据缓冲区中的第二数据缓冲数目

判断所述第二数据缓冲数目是否低于所述恢复阈值;

在所述第二数据缓冲数目低于所述恢复阈值时,获取与所述第二数据缓冲数目对应的第二持续时长;

判断所述第二持续时长超过所述第二持续时间阈值;

在所述第二持续时长超过所述第二持续时间阈值时,向所述数据的发送方发送第二速度控制信息,恢复数据发送速度,以维持所述第一数据缓冲区中数据传输性能平衡。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1