首页 / 专利库 / 软件 / 中间件 / 消息中间件 / IoT系统中的数据传输方法、装置、设备及存储介质

IoT系统中的数据传输方法、装置、设备及存储介质

阅读:632发布:2020-05-11

专利汇可以提供IoT系统中的数据传输方法、装置、设备及存储介质专利检索,专利查询,专利分析的服务。并且本 申请 实施例 公开了一种IoT系统中的数据传输方法、装置、设备及存储介质,属于 物联网 领域。该方法包括:当与 服务器 之间的连接异常时,确定IoT设备所发送设备数据的数据类型;将属于实时数据类型的设备数据存储至消息 中间件 的第一消息队列,并将属于历史数据类型的设备数据存储至 消息中间件 的第二消息队列;连接恢复正常时,通过第一MQTT通道向服务器发送第一消息队列中的设备数据,并通过第二MQTT通道向服务器发送第二消息队列中的设备数据。本申请实施例中,将待传输数据划分为实时数据和历史数据,在连接恢复正常时,通过不同的通道将消息队列中的设备数据上传至服务器,在保证数据完整性的同时,提高了上传实时数据的时效性。,下面是IoT系统中的数据传输方法、装置、设备及存储介质专利的具体信息内容。

1.一种物联网IoT系统中的数据传输方法,其特征在于,所述方法用于网关设备,所述网关设备用于将IoT设备发送的设备数据传输至服务器,所述方法包括:
当与所述服务器之间的连接异常时,确定所述IoT设备所发送设备数据的数据类型,所述数据类型包括实时数据类型和历史数据类型;
将属于所述实时数据类型的设备数据存储至消息中间件的第一消息队列,并将属于所述历史数据类型的设备数据存储至所述消息中间件的第二消息队列;
当与所述服务器之间的连接恢复正常时,通过第一消息队列遥测传输MQTT通道向所述服务器发送所述第一消息队列中的设备数据,并通过第二MQTT通道向所述服务器发送所述第二消息队列中的设备数据。
2.根据权利要求1所述的方法,其特征在于,所述确定所述IoT设备所发送设备数据的数据类型,包括:
获取所述设备数据的数据接收时刻,所述数据接收时刻指所述网关设备接收到所述设备数据的时刻;
根据所述数据接收时刻、当前时刻、预期处理时长以及传输延迟阈值,确定所述设备数据的所述数据类型,所述预期处理时长指从所述当前时刻至传输完成时刻之间的预期时长,所述传输延迟阈值是数据接收至完成传输之间的最大延迟。
3.根据权利要求2所述的方法,其特征在于,所述根据所述数据接收时刻、当前时刻、预期处理时长以及传输延迟阈值,确定所述设备数据的所述数据类型,包括:
根据所述数据接收时刻、所述当前时刻以及所述预期处理时长,确定所述设备数据的预期传输时长;
若所述预期传输时长大于所述传输延迟阈值,则确定所述设备数据属于所述历史数据类型;
若所述预期传输时长小于所述传输延迟阈值,则确定所述设备数据属于所述实时数据类型。
4.根据权利要求2所述的方法,其特征在于,所述根据所述数据接收时刻、当前时刻、预期处理时长以及传输延迟阈值,确定所述设备数据的所述数据类型之前,所述方法还包括:
根据所述设备数据的数据处理难度以及预设对应关系,确定所述设备数据对应的所述预期处理时长和所述传输延迟阈值,所述预设对应关系包括所述数据处理难度、所述预期处理时长和所述传输延迟阈值之间的对应关系。
5.根据权利要求1至4任一所述的方法,其特征在于,所述通过第一MQTT通道向所述服务器发送所述第一消息队列中的设备数据,并通过第二MQTT通道向所述服务器发送所述第二消息队列中的设备数据,包括:
根据第一队列消费频率,通过所述第一MQTT通道向所述服务器发送所述第一消息队列中的设备数据;
根据所述第一队列消费频率和连接带宽,确定所述第二消息队列的第二队列消费频率,所述第一队列消费频率与所述第二队列消费频率对应的总占用带宽小于所述连接带宽;
根据所述第二队列消费频率,通过所述第二MQTT通道向所述服务器发送所述第二消息队列中的设备数据。
6.根据权利要求1至4任一所述的方法,其特征在于,所述通过第一MQTT通道向所述服务器发送所述第一消息队列中的设备数据,并通过第二MQTT通道向所述服务器发送所述第二消息队列中的设备数据之前,所述方法还包括:
当与所述服务器之间的连接恢复正常时,重新确定所述第一消息队列中所述设备数据的所述数据类型;将所述第一消息队列中属于所述历史数据类型的设备数据转移至所述第二消息队列;
或,每隔预定时间间隔,重新确定所述第一消息队列中所述设备数据的所述数据类型;
将所述第一消息队列中属于所述历史数据类型的设备数据转移至所述第二消息队列。
7.根据权利要求1至4任一所述的方法,其特征在于,所述当与所述服务器之间的连接异常时,确定所述IoT设备所发送设备数据的数据类型,包括:
当与所述服务器之间的连接异常,且采用第一断点续传模式时,确定所述IoT设备所发送设备数据的数据类型,所述第一断点续传模式指优先传输实时数据的传输模式;
所述方法还包括:
当与所述服务器之间的连接异常,且采用第二断点续传模式时,根据所述设备数据的数据接收时刻,按照先入先出原则将所述设备数据存储至所述第一消息队列,所述第二断点续传模式指按照接收时序上传数据的传输模式;
当与所述服务器之间的连接恢复正常时,通过所述第一MQTT通道发送所述第一消息队列中的设备数据。
8.一种IoT系统中的数据传输装置,其特征在于,所述装置用于网关设备,所述网关设备用于将IoT设备发送的设备数据传输至服务器,所述装置包括:
第一确定模,用于当与所述服务器之间的连接异常时,确定所述IoT设备所发送设备数据的数据类型,所述数据类型包括实时数据类型和历史数据类型;
第一存储模块,用于将属于所述实时数据类型的设备数据存储至消息中间件的第一消息队列,并将属于所述历史数据类型的设备数据存储至所述消息中间件的第二消息队列;
第一发送模块,用于当与所述服务器之间的连接恢复正常时,通过第一MQTT通道向所述服务器发送所述第一消息队列中的设备数据,并通过第二MQTT通道向所述服务器发送所述第二消息队列中的设备数据。
9.一种网关设备,其特征在于,所述网关设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一所述的IoT系统中的数据传输方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7任一所述的IoT系统中的数据传输方法。

说明书全文

IoT系统中的数据传输方法、装置、设备及存储介质

技术领域

[0001] 本申请实施例涉及物联网领域,特别涉及一种IoT系统中的数据传输方法、装置、设备及存储介质。

背景技术

[0002] 物联网(Internet of Things,IoT)系统是通过信息采集设备实现基础设施与互联网的信息交换的计算机控制系统,网关设备获取边缘端IoT设备采集的数据,并上报至端,相关人员可以基于此数据进行分析。
[0003] 在网关设备向云端上传数据的过程中,由于网络延迟或基础设施故障等原因,通信可能会出现中断,相关技术中针对断点数据的处理方式通常为丢弃,或者缓存到磁盘文件或数据库中,待通信恢复后再上传至云端。
[0004] 然而,采用相关技术中对断点数据的处理方法,需要人工干预将缓存的数据文件按照时间戳上传至云端,操作繁琐且费时,无法保证数据的时效性。发明内容
[0005] 本申请实施例提供了一种IoT系统中的数据传输方法、装置、设备及存储介质。所述技术方案如下:
[0006] 一方面,本申请实施例提供了一种IoT系统中的数据传输方法,所述方法包括:
[0007] 当与所述服务器之间的连接异常时,确定所述IoT设备所发送设备数据的数据类型,所述数据类型包括实时数据类型和历史数据类型;
[0008] 将属于所述实时数据类型的设备数据存储至消息中间件的第一消息队列,并将属于所述历史数据类型的设备数据存储至所述消息中间件的第二消息队列;
[0009] 当与所述服务器之间的连接恢复正常时,通过第一消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)通道向所述服务器发送所述第一消息队列中的设备数据,并通过第二MQTT通道向所述服务器发送所述第二消息队列中的设备数据。
[0010] 另一方面,本申请实施例提供了一种IoT系统中的数据传输装置,所述装置包括:
[0011] 第一确定模,用于当与所述服务器之间的连接异常时,确定所述IoT设备所发送设备数据的数据类型,所述数据类型包括实时数据类型和历史数据类型;
[0012] 第一存储模块,用于将属于所述实时数据类型的设备数据存储至消息中间件的第一消息队列,并将属于所述历史数据类型的设备数据存储至所述消息中间件的第二消息队列;
[0013] 第一发送模块,用于当与所述服务器之间的连接恢复正常时,通过第一MQTT通道向所述服务器发送所述第一消息队列中的设备数据,并通过第二MQTT通道向所述服务器发送所述第二消息队列中的设备数据。
[0014] 另一方面,本申请实施例提供了一种网关设备,其特征在于,所述网关设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的IoT系统中的数据传输方法。
[0015] 另一方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的IoT系统中的数据传输方法。
[0016] 本申请实施例提供的技术方案带来的有益效果至少包括:
[0017] 当网关设备与服务器连接异常时,通过将待传输数据划分为实时数据和历史数据,并分别存储在不同的消息队列中,从而在连接恢复正常时,通过不同的通道将消息队列中的设备数据上传至服务器,在保证数据完整性的同时,提高了上传实时数据的时效性,并且不需要人工干预补传断点数据,简化了操作步骤。附图说明
[0018] 图1是根据一个示例性实施例示出的实施环境的示意图;
[0019] 图2是根据一示例性实施例示出的一种IoT系统中的数据传输方法的流程图
[0020] 图3是根据一示例性实施例示出的一种IoT系统数据传输过程示意图;
[0021] 图4是根据另一示例性实施例示出的一种IoT系统中的数据传输方法的流程图;
[0022] 图5是根据另一示例性实施例示出的一种数据传输过程示意图;
[0023] 图6是根据另一示例性实施例示出的一种IoT系统中的数据传输方法的流程图;
[0024] 图7是根据另一示例性实施例示出的一种IoT系统中的数据传输方法的流程图;
[0025] 图8是根据一示例性实施例示出的一种IoT系统中的数据传输装置的结构框图
[0026] 图9是根据一示例性实施例示出的网关设备的结构示意图。

具体实施方式

[0027] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0028] 在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0029] 相关技术中,IoT系统中,网关设备与服务器之间的连接异常时,网关设备将接收到的设备数据保存至本地缓存文件中,当连接恢复正常后,经过人工干预操作,将缓存文件中的数据补传至服务器。对于一些由于短暂的网络抖动或其他原因导致的瞬时断点数据,网关设备通常直接将其丢弃。
[0030] 采用上述技术进行断点数据的补传,前者需要人工干预操作,步骤繁琐且费时,可能导致数据失去业务价值,若某一时间段内出现多次连接异常,设备数据补传也需要多次导入导出,人工操作容易失误,从而导致时间窗口的重叠、缺失或顺序错乱;并且在数据导出进行补传的过程中,需要以外部存储的方式保存数据,可能造成设备数据泄露。后者直接丢弃瞬时断点数据,导致设备数据的完整性得不到保障。
[0031] 为了解决上述问题,本申请实施例提供了一种物联网系统中的数据传输方法。请参考图1,其示出了本申请一个示例性实施例提供的实施环境的示意图。该实施环境中包括IoT设备101、网关设备102和服务器103。
[0032] IoT设备101是IoT系统中的信息采集设备,主要负责采集数据,其通常设置有传感器(如光伏传感器、速度传感器、传感器等)和执行器(如液压执行器、脉冲信号执行器等),传感器可以将设备采集的信息按一定规律变换为电信号或其他所需形式的信息输出,执行器通常用于自动化控制系统,接收来自云端或其他设备的控制信号,从而将被控量维持在要求的范围内。除了采集和传输数据之外,IoT设备还需具备数据处理和存储功能,通常应用于工业、电网、智能家居、智能交通等领域。
[0033] IoT设备101与网关设备102之间通过有线或无线网络相连。
[0034] 网关设备102是多个网络间提供数据转换服务的计算机系统或设备,在IoT系统中,网关设备102用于接收多台IoT设备上传的设备数据,并将该设备数据转化为预定的格式,上传至服务器103。
[0035] 本申请实施例中,网关设备102与服务器103之间设置有第一MQTT通道和第二MQTT通道,当网关设备102与服务器103之间的连接中断时,网关设备102将IoT设备上报的设备数据划分为历史数据和实时数据,当连接恢复时,实时数据通过第一MQTT通道上传至服务器103,历史数据通过第二MQTT通道上传,并且网关设备102通过第一MQTT通道和第二MQTT通道上传设备数据时,对历史数据的消费速率进行控制,从而在保证不影响实时数据传输的前提下,补传历史数据。
[0036] 服务器103是IoT系统中的云端,用于接收来自网关设备102的设备数据,并对设备数据进行存储、处理、分析,从而进行业务发掘,提供业务查询功能,实现物联网应用业务逻辑。
[0037] 可选的,该IoT系统中还包括监控设备,该监控设备与服务器103相连,用于向服务器103发送数据查询请求,由服务器103根据数据查询请求查询存储的设备数据,并反馈至监控设备,以便监控设备对查询到的设备数据进行显示,方便工作人员对各个IoT设备101的工作状态进行监控。
[0038] 请参考图2,其示出了本申请一个示例性实施例提供的物联网系统中的数据传输方法的流程图。本实施例以该方法用于网关设备为例进行说明,该方法包括如下步骤。
[0039] 步骤201,当与服务器之间的连接异常时,确定IoT设备所发送设备数据的数据类型,数据类型包括实时数据类型和历史数据类型。
[0040] IoT系统中,网关设备接收来自IoT设备的设备数据,并将该数据发送至云端服务器,以实现数据的统计和发掘业务价值。然而,由于网络抖动、设备故障等原因,网关设备与云端服务器之间的数据传输通道可能出现连接异常,导致数据传输中断。
[0041] 在一种可能的实施方式中,网关设备根据预先设置的判断机制,将IoT设备所发送的设备数据划分为实时数据和历史数据,当网关设备与服务器之间的连接异常时,首先确定当前的待传输数据的数据类型,以便后续对不同类型的数据做相应的处理。
[0042] 步骤202,将属于实时数据类型的设备数据存储至消息中间件的第一消息队列,并将属于历史数据类型的设备数据存储至消息中间件的第二消息队列。
[0043] 消息中间件是一种基于消息传递的通信软件,在一个分布式网络中,提供各种端到端的数据通信服务,包括实时数据传输、可靠队列、事件服务等多种功能。网关设备确定出待传输数据的数据类型后,根据数据类型将该数据存储至消息中间件的相应消息队列中。
[0044] 示意性的,请参考图3,该IoT系统采用了一种开源消息中间件(Active Message Queue,AMQ),并选用了发布/订阅模式,即网关设备301只能获取订阅之后的消息队列,并发送给服务器303,服务器303中运行有消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)协议的一个服务端实现,即MQTT Broker,AMQ在实现发布订阅功能之前,需要连接到MQTT Broker。网关设备301接收来自IoT设备302的设备数据并发送至服务器303,当网关设备301与服务器303之间的连接异常时,发布当前待传输的设备数据至AMQ的消息队列中,当连接恢复正常时,网关设备301订阅AMQ消息队列中的设备数据,并从对应的数据通道将该设备数据发送至服务器303。
[0045] 步骤203,当与服务器之间的连接恢复正常时,通过第一MQTT通道向服务器发送第一消息队列中的设备数据,并通过第二MQTT通道向服务器发送第二消息队列中的设备数据。
[0046] 在一种可能的实施方式中,网关设备与服务器间设置有两条MQTT通道。当网关设备与服务器之间数据传输状态正常时,网关设备通过第一MQTT通道向服务器发送第一消息队列中的设备数据。对于第二消息队列中存储的历史数据,网关设备首先检测第二MQTT通道是否已建立,若已建立,则通过第二MQTT通道向服务器发送第二消息队列中的设备数据,若未建立,则初始化第二MQTT通道连接,再通过第二MQTT通道向服务器发送第二消息队列中的设备数据。第二MQTT通道为只上传历史数据的通道,数据在通道内以加密的形式进行传输,降低了泄露或被窃取的险。
[0047] 综上所述,本申请实施例中,当网关设备与服务器连接异常时,通过将待传输数据划分为实时数据和历史数据,并分别存储在不同的消息队列中,从而在连接恢复正常时,通过不同的通道将消息队列中的设备数据上传至服务器,在保证数据完整性的同时,提高了上传实时数据的时效性,并且不需要人工干预补传断点数据,简化了操作步骤。
[0048] 请参考图4,其示出了本申请另一个示例性实施例提供的物联网系统中的数据传输方法的流程图。本实施例以该方法用于网关设备为例进行说明,该方法包括如下步骤。
[0049] 步401,获取设备数据的数据接收时刻,数据接收时刻指网关设备接收到设备数据的时刻。
[0050] 在一种可能的实施方式中,网关设备获取到IoT设备采集的设备数据时,将该设备数据转化为预定格式的数据结构,该数据结构中包括用于存储数据接收时刻的字段。网关设备上传设备数据前,首先从该字段中读取设备数据的数据接收时刻。
[0051] 步骤402,根据数据接收时刻、当前时刻、预期处理时长以及传输延迟阈值,确定设备数据的数据类型,预期处理时长指从当前时刻至传输完成时刻之间的预期时长,传输延迟阈值是数据接收至完成传输之间的最大延迟。
[0052] 预期处理时长是网关设备基于IoT设备的设备数据类型、数据量、网络带宽等因素判断得出的,设备数据从当前时刻至传输成功需要的时长,传输延迟阈值是网关设备基于设备数据类型以及历史传输记录得出的,数据接收至完成传输之间允许的最大延迟。网关设备接收到IoT设备的设备数据时,获取设备数据的数据接收时刻,并获取相应的预期处理时长以及传输延迟阈值,在当前时刻的基础上判断该设备数据的数据类型。
[0053] 在一种可能的实施方式中,本步骤可以包括如下步骤:
[0054] 一、根据数据接收时刻、当前时刻以及预期处理时长,确定设备数据的预期传输时长。
[0055] 可选的,该预期处理时长为预先设置,由网关设备根据当前网络状况、第一MQTT通道的数据传输速度以及数据传输队列中的设备数据数量等因素确定得到,即从当前时刻至传输完成时刻之间的预期时长。根据数据接收时刻、当前时刻以及预期处理时长,网关设备确定设备数据的预期传输时长,在一种可能的实施方式中,设备数据的预期传输时长等于当前时刻减去数据接收时刻加上预期处理时长。
[0056] 示意性的,若当前时刻是10:00:10,对于数据接收时刻为10:00:08、预期处理时长为1秒的设备数据,其预期传输时长为3秒。
[0057] 二、若预期传输时长大于传输延迟阈值,则确定设备数据属于历史数据类型。
[0058] 网关设备将设备数据的预期传输时长与传输延迟阈值进行比较,根据比较结果将设备数据的数据类型划分为历史数据类型和实时数据类型,若预期传输时长大于传输延迟阈值,则设备数据属于历史数据类型。
[0059] 示意性的,网关设备预先设置传输延迟阈值为2秒,若当前时刻是10:00:10,对于数据接收时刻为10:00:08、预期处理时长为1秒的设备数据,其预期传输时长为3秒,大于传输延迟阈值,网关设备确定该设备数据属于历史数据类型。
[0060] 三、若预期传输时长小于传输延迟阈值,则确定设备数据属于实时数据类型。
[0061] 若设备数据的预期传输时长小于传输延迟阈值,则该设备数据的预期传输时长在实时数据的范围内,即该数据属于实时数据类型。
[0062] 示意性的,网关设备预先设置传输延迟阈值为2秒,若当前时刻是10:00:10,对于数据接收时刻为10:00:10、预期处理时长为1秒的设备数据,预期传输时长为1秒,小于传输延迟阈值,网关设备确定该设备数据属于实时数据类型。
[0063] 在一种可能的实施方式中,一台网关设备接收来自多台IoT设备采集的数据并上传至服务器,由于采集设备的不同,其设备数据的数据结构、数据量以及传输时消耗的网络资源等存在差异,因此,步骤402之前,网关设备根据设备数据的数据处理难度以及预设对应关系,确定设备数据对应的预期处理时长和传输延迟阈值,相应的,后续在网关设备即根据设备数据对应的预期处理时长和传输延迟阈值,确定该设备数据属于实时数据或历史数据,预设对应关系包括数据处理难度、预期处理时长和传输延迟阈值之间的对应关系。
[0064] 示意性的,对于数据采集量大且数据结构复杂、传输耗时长的采集设备,网关设备设置其设备数据的预期处理时长为T1,传输延迟阈值为T2,对于数据采集量小或者传输耗时短的采集设备,设置其设备数据的预期处理时长为T3,传输延迟阈值为T4,后者相对于前者的数据处理难度小,则T2大于T4。
[0065] 步骤403,将属于实时数据类型的设备数据存储至消息中间件的第一消息队列,并将属于历史数据类型的设备数据存储至消息中间件的第二消息队列。
[0066] 步骤403的实施方式可以参考上述步骤202,本实施例在此不再赘述。
[0067] 步骤404,当与服务器之间的连接恢复正常时,重新确定第一消息队列中设备数据的数据类型;将第一消息队列中属于历史数据类型的设备数据转移至第二消息队列。
[0068] 由于网关设备与服务器之间的连接恢复正常需要耗费一段时间,连接异常前的实时数据可能转变为历史数据,因此当网关设备与服务器之间的连接恢复正常时,重新确定第一消息队列中设备数据的数据类型,若存在历史数据,则将属于历史数据类型的设备数据转移至第二消息队列。
[0069] 示意性的,如图5所示,网关设备预先设置传输延迟阈值为2秒,若传输通道连接异常的时刻为10:00:08,连接恢复正常的时刻为10:00:10,对于数据接收时刻为10:00:08、预期处理时长为1秒的设备数据,其在连接异常时的预期传输时长为1秒,属于实时数据类型,而在连接恢复正常时,其预期传输时长为3秒,大于传输延迟阈值,属于历史数据类型,则网关设备将该设备数据转移至第二消息队列。
[0070] 在另一种可能的实施方式中,步骤404还可替换为:每隔预定时间间隔,重新确定第一消息队列中设备数据的数据类型;将第一消息队列中属于历史数据类型的设备数据转移至第二消息队列。
[0071] 在网关设备与服务器的连接异常时,网关设备仍然能够判断设备数据的数据类型,为了使得在连接恢复正常时第一消息队列的设备数据能够从相应的通道迅速上传,每隔预定时间间隔,网关设备重新确定第一消息队列中设备数据的数据类型,将第一消息队列中属于历史数据类型的设备数据转移至第二消息队列。
[0072] 步骤405,根据第一队列消费频率,通过第一MQTT通道向服务器发送第一消息队列中的设备数据。
[0073] 第一MQTT通道连接恢复正常后,网关设备根据第一队列中实时数据的消费频率,通过第一MQTT通道向服务器发送消息中间件中第一消息队列的设备数据。
[0074] 在一种可能的实施方式中,一台网关设备连接多台IoT设备,接收的设备数据存在多种类型,因此第一消息队列的第一队列消费频率可能会时刻发生变化,例如,IoT设备A采集的设备数据集中传输时,第一队列消费频率为每小时1800个,而IoT设备B采集的设备数据集中传输时,数据量较小,第一队列消费频率为每小时1000个。
[0075] 步骤406,根据第一队列消费频率和连接带宽,确定第二消息队列的第二队列消费频率,第一队列消费频率与第二队列消费频率对应的总占用带宽小于连接带宽。
[0076] 第一MQTT通道和第二MQTT通道在同一网络环境下传输设备数据,且占用的总带宽优先,因此历史数据的传输可能会影响实时数据的传输速度,为了保证实时数据优先按照正常速度传输至服务器,网关设备根据第一队列消费频率和连接带宽,确定第二消息队列的第二队列消费频率。
[0077] 在一种可能的实施方式中,用户可以预先设置第二队列消费频率与第一队列消费频率和连接带宽的关系,使得第二队列消费频率可以随着第一队列消费频率的变化进行动态调整。
[0078] 示意性的,在当前时间段内,连接带宽允许的消息队列消费频率最高为每小时2000个,当IoT设备A采集的设备数据集中传输时,第一队列消费频率为每小时1800个,则网关设备调整第二队列消费频率不超过每小时200个;当IoT设备B采集的设备数据集中传输时,数据量较小,第一队列消费频率为每小时1000个,则网关设备调整第二队列消费频率不超过每小时1000个。
[0079] 步骤407,根据第二队列消费频率,通过第二MQTT通道向服务器发送第二消息队列中的设备数据。
[0080] 网关设备根据第一队列消费频率和连接带宽,确定出当前第二队列消费频率后,根据第二队列消费频率,通过第二MQTT通道向服务器发送第二消息队列中的历史数据,从而保证能够优先上传实时数据。
[0081] 本申请实施例中,针对不同IoT设备的设备数据,按实际需求划分历史数据和实时数据,并根据实时数据的第一队列消费频率确定第二队列消费频率,在保证优先传送实时数据的条件下,将历史数据通过第二MQTT通道发送至服务器,在保证数据的完整性和时效性的前提下,提高了数据处理和传输效率。
[0082] 上述实施例中,设备数据采用优先传输实时数据的传输模式,即在保证实时数据优先传输的前提下,上传历史数据,而对于一些对采集时间顺序要求较严格的数据来说,采用这种断点续传模式可能会导致服务器获取的设备数据的时序错乱,因此,请参考图6,在一种可能的实施方式中,步骤401之前,还包括如下步骤:
[0083] 步骤408,获取设备数据的断点续传模式。
[0084] 在一种可能的实施方式中,对于不同的IoT设备,用户可以根据实际需求设置不同的断点续传模式,网关设备在传输设备数据前,首先获取设备数据的断点续传模式。
[0085] 步骤409,当与服务器之间的连接异常,且采用第一断点续传模式时,确定IoT设备所发送设备数据的数据类型,第一断点续传模式指优先传输实时数据的传输模式。
[0086] 网关设备基于设备数据的断点续传模式,采取对应的传输方式,当网关设备与服务器之间的连接正常时,设备数据均通过第一MQTT通道发送至服务器,当网关设备与服务器之间的连接异常时,若当前设备数据采用第一断点续传模式,则确定其数据类型,并执行步骤401至407。
[0087] 步骤410,当与服务器之间的连接异常,且采用第二断点续传模式时,根据设备数据的数据接收时刻,按照先入先出原则将设备数据存储至第一消息队列,第二断点续传模式指按照接收时序上传数据的传输模式。
[0088] 当网关设备与服务器之间的连接异常时,对于一些对时间顺序要求严格的设备数据,网关设备采用第二断点续传模式进行传输,即根据设备数据的数据接收时刻,严格按照先后顺序将设备数据存储至AMQ的第一消息队列中。
[0089] 步骤411,当与服务器之间的连接恢复正常时,通过第一MQTT通道发送第一消息队列中的设备数据。
[0090] 当网关设备与服务器之间的连接恢复正常时,首先通过第一MQTT通道向服务器发送第一消息队列中的设备数据,在此期间接收的数据在传输队列中排队等候,当第一消息队列中先入先出模式的设备数据全部传输成功时,继续传输其余设备数据。
[0091] 需要说明的是,步骤409与步骤410至411之间不存在严格的先后时序,即步骤409与步骤410至411可以同步执行,本实施例对此不作限定。
[0092] 本申请实施例中,用户可以根据不同设备数据的实际需求,设置不同的断点续传模式,对于对数据完整性要求严格而不考虑数据采集时间顺序的设备数据,可以采用实时数据优先的断点续传模式,对于对数据采集时间顺序要求严格的设备数据,可以采用先入先出的断点续传模式,满足了用户需求,提高了网关设备传输数据的时效性。
[0093] 结合上述实施例,在一个示意性的例子中,IoT系统中的数据传输的流程如图7所示。
[0094] 步骤701,预处理设备数据。
[0095] 当网关设备接收到IoT设备采集的设备数据时,首先将该设备数据的结构转化为计算机设备能够处理的数据结构。
[0096] 步骤702,检测网关设备与服务器的连接是否正常。
[0097] 若连接异常,则执行步骤703;若连接异常,则执行步骤708,网关设备需要根据当前的连接状态,采取对应的数据传输方式。
[0098] 步骤703,判断断点续传模式。
[0099] 若断点续传模式为先入先出模式,则执行步骤705;若断点续传模式为实时优先模式,则执行步骤704后,再执行步骤705。对于不同的IoT设备,用户可以根据实际需求设置不同的断点续传模式,网关设备在传输设备数据前,首先获取设备数据的断点续传模式。
[0100] 步骤704,判断设备数据的数据类型。
[0101] 若断点续传模式为实时优先模式,则网关设备需要判断设备数据属于实时数据还是历史数据,并根据数据类型采取对应的传输方式。
[0102] 步骤705,将设备数据存储至消息中间件。
[0103] 网关设备根据设备数据的数据类型,将其存储至消息中间件的对应消息队列中,将属于先入先出模式的设备数据和断点续传模式中实时数据类型的设备数据存储至消息中间件的第一消息队列,并将属于历史数据类型的设备数据存储至消息中间件的第二消息队列。
[0104] 步骤706,连接恢复后将设备数据从对应通道上传。
[0105] 当网关设备与服务器的连接恢复正常后,对于第一消息队列中先入先出模式的设备数据,优先通过第一MQTT通道传送,再传送后续采集的设备数据;实时优先模式的设备数据,重新判断数据类型,历史数据从第二MQTT通道发送,实时数据从第一MQTT通道发送。
[0106] 步骤707,判断断点续传模式。
[0107] 当网关设备与服务器的连接正常时,网关设备也需要获取设备数据的断点续传模式。若断点续传模式为实时优先模式,则执行步骤708后,再执行步骤709;若断点续传模式为先入先出模式,则执行步骤709。
[0108] 步骤708,判断设备数据的数据类型。
[0109] 若断点续传模式为实时优先模式,则判断设备数据属于实时数据还是历史数据。若数据类型为历史数据,则执行步骤705;若数据类型为实时数据,则执行步骤709。
[0110] 步骤709,将设备数据从对应通道上传。
[0111] 先入先出模式的设备数据,优先传送第一消息队列中的设备数据,再传送后续采集的设备数据;实时优先模式的设备数据,历史数据从第二MQTT通道发送,实时数据从第一MQTT通道发送。
[0112] 图8是本申请一个示例性实施例提供的IoT系统中的数据传输装置的结构框图,该装置可以设置于上述实施例所述的网关设备,如图8所示,该装置包括:
[0113] 第一确定模块801,用于当与所述服务器之间的连接异常时,确定所述IoT设备所发送设备数据的数据类型,所述数据类型包括实时数据类型和历史数据类型;
[0114] 第一存储模块802,用于将属于所述实时数据类型的设备数据存储至消息中间件的第一消息队列,并将属于所述历史数据类型的设备数据存储至所述消息中间件的第二消息队列;
[0115] 第一发送模块803,用于当与所述服务器之间的连接恢复正常时,通过第一MQTT通道向所述服务器发送所述第一消息队列中的设备数据,并通过第二MQTT通道向所述服务器发送所述第二消息队列中的设备数据。
[0116] 可选的,所述第一确定模块801,包括:
[0117] 获取单元,用于获取所述设备数据的数据接收时刻,所述数据接收时刻指所述网关设备接收到所述设备数据的时刻;
[0118] 第一确定单元,用于根据所述数据接收时刻、当前时刻、预期处理时长以及传输延迟阈值,确定所述设备数据的所述数据类型,所述预期处理时长指从所述当前时刻至传输完成时刻之间的预期时长,所述传输延迟阈值是数据接收至完成传输之间的最大延迟。
[0119] 可选的,所述第一确定单元,还用于:
[0120] 根据所述数据接收时刻、所述当前时刻以及所述预期处理时长,确定所述设备数据的预期传输时长;
[0121] 若所述预期传输时长大于所述传输延迟阈值,则确定所述设备数据属于所述历史数据类型;
[0122] 若所述预期传输时长小于所述传输延迟阈值,则确定所述设备数据属于所述实时数据类型。
[0123] 可选的,所述第一确定模块801,还包括:
[0124] 第二确定单元,用于根据所述设备数据的数据处理难度以及预设对应关系,确定所述设备数据对应的所述预期处理时长和所述传输延迟阈值,所述预设对应关系包括所述数据处理难度、所述预期处理时长和所述传输延迟阈值之间的对应关系。
[0125] 可选的,所述第一发送模块803,包括:
[0126] 第一发送单元,用于根据第一队列消费频率,通过所述第一MQTT通道向所述服务器发送所述第一消息队列中的设备数据;
[0127] 第三确定单元,用于根据所述第一队列消费频率和连接带宽,确定所述第二消息队列的第二队列消费频率,所述第一队列消费频率与所述第二队列消费频率对应的总占用带宽小于所述连接带宽;
[0128] 第二发送单元,用于根据所述第二队列消费频率,通过所述第二MQTT通道向所述服务器发送所述第二消息队列中的设备数据。
[0129] 可选的,所述装置还包括:
[0130] 第二确定模块,用于当与所述服务器之间的连接恢复正常时,重新确定所述第一消息队列中所述设备数据的所述数据类型;将所述第一消息队列中属于所述历史数据类型的设备数据转移至所述第二消息队列;
[0131] 或,第三确定模块,用于每隔预定时间间隔,重新确定所述第一消息队列中所述设备数据的所述数据类型;将所述第一消息队列中属于所述历史数据类型的设备数据转移至所述第二消息队列。
[0132] 可选的,所述第一确定模块801,还包括:
[0133] 第四确定单元,用于当与所述服务器之间的连接异常,且采用第一断点续传模式时,确定所述IoT设备所发送设备数据的数据类型,所述第一断点续传模式指优先传输实时数据的传输模式;
[0134] 所述装置,还包括:
[0135] 第二存储模块模块,用于当与所述服务器之间的连接异常,且采用第二断点续传模式时,根据所述设备数据的数据接收时刻,按照先入先出原则将所述设备数据存储至所述第一消息队列,所述第二断点续传模式指按照接收时序上传数据的传输模式;
[0136] 第二发送模块,用于当与所述服务器之间的连接恢复正常时,通过所述第一MQTT通道发送所述第一消息队列中的设备数据。
[0137] 请参考图9,其示出了本申请一个示例性实施例提供的网关设备的结构方框图。本申请中的网关设备可以包括一个或多个如下部件:处理器901、存储器902和网络通信组件903。
[0138] 处理器901可以包括一个或者多个处理核心。处理器901利用各种接口和线路连接整个终端901内的各个部分,通过运行或执行存储在存储器902内的指令、程序、代码集或指令集,以及调用存储在存储器902内的数据,执行网关设备的各种功能和处理数据。可选地,处理器901可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器901可集成中央处理器(Central Processing Unit,CPU)和调制解调器等中的一种或两种的组合。其中,CPU主要处理操作系统和应用程序等;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器901中,单独通过一块通信芯片进行实现。
[0139] 存储器902可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器902包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器902可用于存储指令、程序、代码、代码集或指令集。存储器902可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令、用于实现上述各个方法实施例的指令等。存储数据区还可以存储网关设备在使用中所创建的数据等。
[0140] 网络通信组件903用于网关设备和其它设备之间有线或无线方式的通信。网关设备可以接入基于通信标准的无线网络,如Wi-Fi,或2G,或3G,或1G,或5G或它们的组合。在一个示例性实施例中,网络通信组件903经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,网络通信组件903还包括近场通信(Near Field Communication,NFC)模块,以促进短程通信。
[0141] 本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的IoT系统中的数据传输方法。
[0142] 本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的IoT系统中的数据传输方法。
[0143] 本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0144] 以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈