一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于物联网的数据同步方法及系统与流程

2022-03-05 05:47:52 来源:中国专利 TAG:


1.本技术涉及物联网数据处理技术领域,特别是涉及基于物联网的数据同步方法及系统。


背景技术:

2.随着物联网(iot,internet of things)技术的发展,“万物互联”正在逐步从科学研究变为成熟的应用技术。以智能家居为例,不管是电视机、洗衣机、冰箱等大家电,还是台灯、摄像头、扫地机、健身器材等小家电,都可以成为一个独立可控的物联网通信节点。用户可以借助智能终端,对设备进行远程定位、操控,甚至可以将物联网设备分享给其他用户,实现多个用户共享操作同一台设备,提高硬件产品的利用价值。
3.分布式计算(distributed computing)是所有物联网系统的共同特征,也就是说,一个物联网系统由多个具有计算依赖关系,且实现异地部署的软件模块构建而成。当用户通过前端服务(如app/web)发起某个功能调用时,存在计算依赖的软件模块之间会触发一系列的服务请求与响应通信过程,整个数据链路从前端服务节点开始,贯穿多个后端服务节点。在上述介绍的分布式物联网系统中,往返时延(rtt,round-trip time)是指用户从通过前端服务节点发起功能请求,到成功获取后端节点响应的数据内容所需要的总时间。在实际物联网产品开发中,系统设计阶段就要重视往返时延参数是否符合用户期望,两者之间的一致性是衡量物联网产品性能的重要技术指标之一,降低往返时延(rtt)是提升物联网系统性能的关键技术和主要难点。
4.在实现过程中,发明人发现传统技术中至少存在如下问题:在弱网环境中,即数据调用链存在一个或多个服务节点的网络通信出现不稳定时,且当一台设备被分享给多个用户使用时,各个节点间往返时延不一致,导致不同智能终端出现数据显示不同步。


技术实现要素:

5.基于此,有必要针对上述传统的在弱网环境中,即数据调用链存在一个或多个服务节点的网络通信出现不稳定时,且当一台设备被分享给多个用户使用时,各个节点间往返时延不一致,导致不同智能终端出现数据显示不同步的问题,提供一种基于物联网的数据同步方法及系统。
6.为了实现上述目的,本发明实施例基于服务请求节点提供了一种基于物联网的数据同步方法,包括以下步骤:
7.获取对应当前服务请求的用户类型,并初始化共享标签;
8.在用户类型为共享用户时,将共享标签重置为数据调用链的追踪标识符;
9.基于当前服务请求,将用户标签与共享标签进行绑定,得到服务请求数据包,并将服务请求数据包传输给服务响应节点,以使服务响应节点根据服务请求数据包,反馈更新后的响应数据包。
10.在其中一个实施例中,获取对应当前节点服务请求的用户类型,并初始化共享标
签的步骤包括:
11.申请占用往返时延中的发送时延阶段,通过访问数据调用链中的服务响应节点,获取得到对应当前服务请求的用户类型;
12.初始化共享标签为空数据指针。
13.在其中一个实施例中,初始化共享标签的步骤之后包括:
14.在用户类型为非共享用户时,共享标签保留为空数据指针。
15.在其中一个实施例中,基于当前服务请求,将用户标签与共享标签进行绑定,得到服务请求数据包的步骤之后包括:
16.申请结束占用往返时延中的发送时延阶段。
17.本发明实施例基于服务响应节点提供了一种基于物联网的数据同步方法,包括以下步骤:
18.获取服务请求节点传输的服务请求数据包;
19.对服务请求数据包进行处理,得到共享标签和用户标签,并初始化共享用户计数器;
20.在共享标签有效时,读取用户标签,并更新共享用户计数器;
21.在服务请求节点的共享标签无效或共享用户计数器更新时,更新响应模式为全量数据或增量数据,得到更新后的响应数据包,并将更新后的响应数据包传输给服务请求节点。
22.在其中一个实施例中,更新共享用户计数器的步骤包括:
23.基于关系表,在设定的时间周期内更新共享用户计数器;其中,关系表包括服务名称、共享标签、用户标签、字段服务请求最近时间。
24.在其中一个实施例中,基于关系表,在设定的时间周期内更新共享用户计数器的步骤包括:
25.若共享标签为非空数据指针,且用户标签在关系表中不存在,则创建共享请求记录;
26.若共享标签为非空数据指针,且用户标签在关系表中存在,则更新共享请求记录;其中,更新共享请求记录为:将对应用户标签的字段服务请求最近时间更新为申请占用往返时延中的发送时延阶段的时间;
27.若关系表中的字段服务请求最近时间超过设定的时间周期,则删除共享请求记录。
28.在其中一个实施例中,还包括步骤:
29.当执行创建共享请求记录的操作时,共享用户计数器的值增加第一设定值,且更新响应模式为全量数据;
30.当执行删除共享请求记录的操作时,共享用户计数器的值减小第一设定值,且更新响应模式为增量数据;
31.当执行更新共享请求记录的操作时,共享用户计数器的值保持不变,且更新响应模式为增量数据。
32.在其中一个实施例中,在服务请求节点的共享标签无效或共享用户计数器更新时,更新响应模式为全量数据或增量数据,得到更新后的响应数据包的步骤,包括:
33.申请占用往返时延中的调度时延阶段,读取响应模式;
34.若响应模式为全量数据,则调用后端子服务节点,获取全量数据;若响应模式为增量数据,则调用后端子服务节点,获取增量数据;
35.将全量数据或增量数据更新至响应数据包,得到更新后的响应数据包;
36.申请结束占用往返时延中的调度时延阶段。
37.本发明实施例还提供了一种基于物联网的数据同步系统,包括:服务请求节点和服务响应节点;
38.服务请求节点用于执行上述基于服务请求节点的基于物联网的数据同步方法;
39.服务响应节点用于执行上述基于服务响应节点的基于物联网的数据同步方法。
40.上述技术方案中的一个技术方案具有如下优点和有益效果:
41.上述基于物联网的数据同步方法的各实施例中,可应用在多个服务请求节点共享同一个服务响应节点时,至少一个服务请求节点可获取对应当前服务请求的用户类型,并初始化共享标签;在用户类型为共享用户时,将共享标签重置为数据调用链的追踪标识符;基于当前服务请求,将用户标签与共享标签进行绑定,得到服务请求数据包,并将服务请求数据包传输给服务响应节点,以使服务响应节点根据服务请求数据包,反馈更新后的响应数据包,进而在一台设备被分享给多个用户使用时,能够实现数据同步显示。当分布式物联网系统处于弱网环境,即某个计算服务节点的网络信号稳定性出现较大波动,而且一台设备被分享给多个用户使用时,能够解决在不增加后端节点处理时延的前提下,多个前端节点对高频率、大规模数据通信保持实时在线,避免因为各个节点间往返时延不一致所导致的不同智能终端出现数据显示不同步的问题,从而降低存在计算依赖关系的分布式物联网系统的往返时延。
附图说明
42.图1为物联网系统的分布式计算特征示意图的示意图;
43.图2为一个实施例中基于物联网的数据同步方法的应用环境示意图;
44.图3为一个实施例中服务请求节点侧的基于物联网的数据同步方法的第一流程示意图;
45.图4为一个实施例中服务请求节点侧的基于物联网的数据同步方法的第二流程示意图;
46.图5为一个实施例中服务请求节点侧的基于物联网的数据同步方法的第三流程示意图;
47.图6为一个实施例中服务响应节点侧的基于物联网的数据同步方法的第一流程示意图;
48.图7为一个实施例中服务响应节点侧的共享用户计数器更新步骤的流程示意图;
49.图8为一个实施例中服务响应节点侧的响应数据更新步骤的流程示意图;
50.图9为一个实施例中基于物联网的数据同步方法的应用示意图;
51.图10为一个实施例中基于物联网的数据同步系统的结构示意图。
具体实施方式
52.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
53.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
54.另外,术语“多个”的含义应为两个以及两个以上。
55.分布式计算(distributed computing)是所有物联网系统的共同特征,也就是说,一个物联网系统由多个具有计算依赖关系,且实现异地部署的软件模块构建而成。当用户通过前端服务(如app/web)发起某个功能调用时,存在计算依赖的软件模块之间会触发一系列的服务请求与响应通信过程,整个数据链路从前端服务节点开始,贯穿多个后端服务节点(如图1所示)。后端服务节点的计算架构没有限制,可以是静止的计算单元,也可以是运动的机器人。
56.在上述介绍的分布式物联网系统中,往返时延(rtt,round-trip time)是指用户从通过前端服务节点发起功能请求,到成功获取后端节点响应的数据内容所需要的总时间。在实际物联网产品开发中,系统设计阶段就要重视往返时延参数是否符合用户期望,两者之间的一致性是衡量物联网产品性能的重要技术指标之一。假如某个服务数据调用链由n对存在计算依赖的软件模块所构成,ti为第i对存在相互依赖关系的软件模块所产生的时延(包括发送时延、传播时延、调度时延、处理时延四个串行阶段,分别用参数si、ti、di、pi表示各个阶段所需时间),则上述数据调用链的往返时延的计算公式可表示为示各个阶段所需时间),则上述数据调用链的往返时延的计算公式可表示为
57.降低往返时延(rtt)是提升物联网系统性能的关键技术和主要难点,常用的降低往返时延的方式主要有两类。第一中方式是利用轻量、可靠的网络通信协议降低传播时延ti。第二种方式是通过优化后端服务节点的调度算法,改善存在计算依赖关系的软件模块之间的调度时延参数di。两种方式均有助于改善数据调用链的整体往返时延。目前,大多数物联网平台提供的服务调度算法可进一步划分为两类,即异步方法(asynchronous)和同步方法(synchronous)。
58.异步方法:发起调用的软件模块(caller)通过物联网云端发起服务请求后,不等待被调用的软件模块(callee)的响应;云端执行调用后直接返回结果。
59.同步方法:发起调用的软件模块(caller)通过物联网云端发起服务请求后,会等待被调用的软件模块(callee)的响应;云端执行调用后在设定时间内(如6秒),如果没有收到被调用的软件模块的响应,则向发起调用的软件模块反馈本次调用超时。
60.然而,现有物联网平台提供的两种服务调度方法存在缺陷,具体而言:在弱网环境中,即数据调用链存在一个或多个服务节点的网络通信出现不稳定时,同步调度方法会导致服务请求频繁地收到网络调用超时异常,从而影响物联网产品的用户体验。在弱网环境中,采用异步调度方法可以有效地降低同步方法出现网络调用异常的概率,但是当请求/响应数据包规模相对较大,而且一个被多人共享的后端节点需要进行数据同步显示时,现有的异步服务调度方法只能进行无差别数据响应,使得后端服务节点的处理时延参数变大,最终导致整个服务数据调用链的往返时延性能变差。
61.本技术提供的基于物联网的数据同步方法,可以应用于如图2所示的应用环境中。其中,多个服务请求节点102分别连接服务响应节点104,服务请求节点102的应用对象可以是智能终端,智能终端可以但不限于是智能手机、智能平板、笔记本电脑、智能穿戴设备等。服务响应节点104的应用对象可以是具有物联网功能的家用电器,例如家用电器可以但不限于是电视机、洗衣机、冰箱、台灯、扫地机、摄像头等。至少一服务请求节点102可用来执行以下步骤:获取对应当前服务请求的用户类型,并初始化共享标签;在用户类型为共享用户时,将共享标签重置为数据调用链的追踪标识符;基于当前服务请求,将用户标签与共享标签进行绑定,得到服务请求数据包,并将服务请求数据包传输给服务响应节点104,以使服务响应节点104根据服务请求数据包,反馈更新后的响应数据包。服务响应节点104可用来执行以下步骤:获取服务请求节点102传输的服务请求数据包;对服务请求数据包进行处理,得到共享标签和用户标签,并初始化共享用户计数器;在共享标签有效时,读取用户标签,并更新共享用户计数器;在服务请求节点的共享标签无效或共享用户计数器更新时,更新响应模式为全量数据或增量数据,得到更新后的响应数据包,并将更新后的响应数据包传输给服务请求节点102。
62.在一个实施例中,如图3所示,提供了一种基于物联网的数据同步方法,以该方法应用于图2中的服务请求节点102为例进行说明,包括以下步骤:
63.步骤s310,获取对应当前服务请求的用户类型,并初始化共享标签。
64.其中,当前服务请求指的是服务请求节点发起的服务请求。用户类型可包括共享用户和非共享用户。服务请求节点可获取对应当前服务请求的用户类型,服务请求节点还可根据当前服务请求,初始化共享标签,如清除共享标签中原有的信息,并重新对共享标签设置默认信息。
65.示例性的,多个服务请求节点(如智能终端)分别与同一个服务响应节点(如智能家用电器)通信连接,服务请求节点通过访问服务响应节点的方式,获取对应当前服务请求的用户类型,并初始化共享标签。
66.步骤s320,在用户类型为共享用户时,将共享标签重置为数据调用链的追踪标识符。
67.其中,数据调用链指的是在系统完成一次业务调用的过程中,把服务之间的调用信息(时间、接口、层次、结果)打点到日志中,然后将所有的打点数据连接为一个树状链条就产生了一个调用链。跟踪系统把过程中产生的日志信息进行分析处理,将业务端到端的执行完整的调用过程进行还原,根据不同维度进行统计分析;从而标识出有异常的服务调用,能够快速分析定界到出异常的服务;同时可根据数据统计分析系统性能瓶颈。追踪标识符又称跟踪标识符,追踪标识符可以是数据调用链中的全链路调用追踪标识符。
68.服务请求节点对获取到用户类型进行判断处理,在用户类型为共享用户时,将共享标签重置为数据调用链的追踪标识符。
69.步骤s330,基于当前服务请求,将用户标签与共享标签进行绑定,得到服务请求数据包,并将服务请求数据包传输给服务响应节点,以使服务响应节点根据服务请求数据包,反馈更新后的响应数据包。
70.其中,服务请求节点可根据获取到的用户类型,得到用户标签;服务请求节点可基于当前服务请求,将用户标签与重置后的共享标签进行绑定,得到服务请求数据包,并将处理得到的服务请求数据包传输给服务响应节点,进而服务响应节点可根据服务请求数据包,并对服务请求数据包进行处理,根据处理的结果,反馈更新后的响应数据包,进而实现实现降低存在计算依赖关系的分布式物联网系统的往返时延,使得各个服务请求节不存在因为服务节点间往返时延不一致所导致的数据显示不同步。
71.具体而言,可应用在多个服务请求节点共享同一个服务响应节点时,至少一个服务请求节点可获取对应当前服务请求的用户类型,并初始化共享标签;在用户类型为共享用户时,将共享标签重置为数据调用链的追踪标识符;基于当前服务请求,将用户标签与共享标签进行绑定,得到服务请求数据包,并将服务请求数据包传输给服务响应节点,以使服务响应节点根据服务请求数据包,反馈更新后的响应数据包,进而在一台设备被分享给多个用户使用时,能够实现数据同步显示。
72.上述实施例中,当分布式物联网系统处于弱网环境,即某个计算服务节点的网络信号稳定性出现较大波动,而且一台设备被分享给多个用户使用时,能够解决在不增加后端节点处理时延的前提下,多个前端节点对高频率、大规模数据通信保持实时在线,避免因为各个节点间往返时延不一致所导致的不同智能终端出现数据显示不同步的问题,从而降低存在计算依赖关系的分布式物联网系统的往返时延。
73.需要说明的是,在计算物联网系统的数据调用链的往返时延指标时,服务请求节点和服务响应节点是存在计算依赖关系的一对通信节点。
74.在一个实施例中,如图4所示,提供了一种基于物联网的数据同步方法,以该方法应用于图2中的服务请求节点102为例进行说明,包括以下步骤:
75.步骤s410,申请占用往返时延中的发送时延阶段,通过访问数据调用链中的服务响应节点,获取得到对应当前服务请求的用户类型。
76.其中,往返时延可包括发送时延阶段和调用时延阶段。服务请求节点在获取用户类型之前需要先申请占用往返时延中的发送时延阶段,进而服务请求节点可通过访问数据调用链中提供公共服务的后端节点,即访问数据调用链中的服务响应节点,进而获取得到对应当前服务请求的用户类型,从而便于后续步骤判断用户类型是否属于共享用户,即判断当前节点所代表的服务请求类型是否属于共享数据请求,并将获取到用户类型作为判断当前服务请求节点访问后端服务节点的类型标志。
77.步骤s420,初始化共享标签为空数据指针。
78.其中,服务请求节点在获取到用户类型之后,对共享标签进行初始化处理,将共享标签赋值为空数据指针。
79.步骤s430,在用户类型为共享用户时,将共享标签重置为数据调用链的追踪标识符。
80.步骤s440,基于当前服务请求,将用户标签与共享标签进行绑定,得到服务请求数据包,并将服务请求数据包传输给服务响应节点,以使服务响应节点根据服务请求数据包,反馈更新后的响应数据包。
81.其中,上述的步骤s430和步骤s440的具体说明请参照上述实施例的描述,在此不再赘述。
82.上述实施例中,当分布式物联网系统处于弱网环境,即某个计算服务节点的网络信号稳定性出现较大波动,而且一台设备被分享给多个用户使用时,能够解决在不增加后端节点处理时延的前提下,多个前端节点对高频率、大规模数据通信保持实时在线,避免因为各个节点间往返时延不一致所导致的不同智能终端出现数据显示不同步的问题,从而降低存在计算依赖关系的分布式物联网系统的往返时延。
83.在一个实施例中,如图5所示,提供了一种基于物联网的数据同步方法,以该方法应用于图2中的服务请求节点102为例进行说明,包括以下步骤:
84.步骤s510,申请占用往返时延中的发送时延阶段,通过访问数据调用链中的服务响应节点,获取得到对应当前服务请求的用户类型。
85.步骤s520,初始化共享标签为空数据指针。
86.步骤s530,在用户类型为非共享用户时,共享标签保留为空数据指针。
87.步骤s540,在用户类型为共享用户时,将共享标签重置为数据调用链的追踪标识符。
88.步骤s550,基于当前服务请求,将用户标签与共享标签进行绑定,得到服务请求数据包,并将服务请求数据包传输给服务响应节点,以使服务响应节点根据服务请求数据包,反馈更新后的响应数据包。
89.步骤s560,申请结束占用往返时延中的发送时延阶段。
90.具体而言,服务请求节点申请占用往返时延中的发送时延阶段,访问数据调用链中提供公共服务的后端节点,获取判断当前节点所代表的服务请求类型是否属于共享数据请求的用户类型。服务请求节点将获取到的用户类型作为判断当前服务请求节点访问后端服务节点的类型标志,并初始化共享标签为空数据指针。服务请求节点判断当前节服务请求节点访问后端服务节点的类型标志为共享用户时,将共享标签重置为数据调用链的追踪标识符(具有全局唯一性);否则,共享标签保留为空数据指针。服务请求节点在服务请求数据包中绑定共享标签和用户标签(具有全局唯一性),并申请结束占用往返时延中的发送时延阶段,进而在一台设备被分享给多个用户使用时,能够实现数据同步显示。当分布式物联网系统处于弱网环境,即某个计算服务节点的网络信号稳定性出现较大波动,而且一台设备被分享给多个用户使用时,能够解决在不增加后端节点处理时延的前提下,多个前端节点对高频率、大规模数据通信保持实时在线,避免因为各个节点间往返时延不一致所导致的不同智能终端出现数据显示不同步的问题,从而降低存在计算依赖关系的分布式物联网系统的往返时延。
91.在一个实施例中,如图6所示,提供了一种基于物联网的数据同步方法,以该方法应用于图2中的服务响应节点104为例进行说明,包括以下步骤:
92.步骤s610,获取服务请求节点传输的服务请求数据包。
93.其中,服务请求数据包可包括共享标签和用户标签,服务请求数据包还包括用于
请求服务数据的服务请求指令。服务响应节点可获取服务请求节点传输的服务请求数据包。需要说明的是,服务响应节点可主动向服务请求节点获取服务请求数据包;在其他实施例中,服务请求节点还可主动向服务响应节点发送服务请求数据包,进而服务响应节点接收得到该服务请求数据包。
94.步骤s620,对服务请求数据包进行处理,得到共享标签和用户标签,并初始化共享用户计数器。
95.其中,服务响应节点可对服务请求数据包进行解析处理,进而可得到相应的共享标签和用户标签;服务响应节点还可根据服务请求数据包,对初始化共享用户计数器进行初始化处理,例如对共享用户计数器初始化赋值为0。
96.步骤s630,在共享标签有效时,读取用户标签,并更新共享用户计数器。
97.服务响应节点可对处理得到的共享标签进行有效性判断处理,根据处理的结果,在共享标签有效时,读取用户标签,并根据用户标签对共享用户计数器进行更新。
98.步骤s640,在服务请求节点的共享标签无效或共享用户计数器更新时,更新响应模式为全量数据或增量数据,得到更新后的响应数据包,并将更新后的响应数据包传输给服务请求节点。
99.服务响应节点可以在检测到服务请求节点的共享标签无效时,更新响应模式为全量数据或增量数据,得到更新后的响应数据包,并将更新后的响应数据包传输给服务请求节点。服务响应节点还可以在共享用户计数器更新时,将响应模式更新为全量数据或增量数据,得到更新后的响应数据包,并将更新后的响应数据包传输给服务请求节点。
100.上述实施例中,基于分布式数据调用链原理,通过优化服务响应节点(即后端节点)服务调度算法,降低物联网系统的整体往返时延。分布式物联网系统处于弱网环境,即某个计算服务节点的网络信号稳定性出现较大波动,而且一台设备被分享给多个用户使用时,能够解决在不增加后端节点处理时延的前提下,多个服务请求节点(即前端节点)对高频率、大规模数据通信保持实时在线,避免因为各个节点间往返时延不一致所导致的不同智能终端出现数据显示不同步的问题,从而降低存在计算依赖关系的分布式物联网系统的往返时延。
101.在一个示例中,步骤s630中,更新共享用户计数器的步骤包括:
102.基于关系表,在设定的时间周期内更新共享用户计数器;其中,关系表包括服务名称、共享标签、用户标签、字段服务请求最近时间。
103.具体地,关系表可用来记录服务功能与共享请求的登入、退出信息。关系表维护的主要字段包括服务名称(fl)、共享标签(sl)、用户标签(ul)、服务请求最近时间(frlt)。字段服务名称(fl)为s2所代表的物模型所定义的功能标识符,字段共享标签(sl)与字段用户标签(ul)同s1中所描述的内容。字段服务请求最近时间(frlt)为服务请求节点s1到达服务响应后端节点s2时,由s2根据字段共享标签与字段用户标签的合法性,决定是否更新为s2申请占用往返时延中的发送时延阶段的时间。
104.示例性的,物联网系统产品设计根据应用场景的实际业务需求,在设定的时间周期内(如3秒)更新共享用户计数器的值。
105.在其中一个实施例中,如图7所示,基于关系表,在设定的时间周期内更新共享用户计数器的步骤包括:
106.步骤s710,若共享标签为非空数据指针,且用户标签在关系表中不存在,则创建共享请求记录。
107.步骤s720,若共享标签为非空数据指针,且用户标签在关系表中存在,则更新共享请求记录;其中,更新共享请求记录为:将对应用户标签的字段服务请求最近时间更新为申请占用往返时延中的发送时延阶段的时间。
108.步骤s730,若关系表中的字段服务请求最近时间超过设定的时间周期,则删除共享请求记录。
109.具体而言,关系表存在三种基本操作,分别为创建共享请求记录、更新共享请求记录、删除共享请求记录。三种基本操作均在服务响应节点申请占用往返时延中的发送时延阶段内完成,所对应的算法处理逻辑为:当服务请求节点到达服务响应节点时,由服务响应节点解析服务请求对应的服务请求数据包,获取绑定的共享标签和用户标签。如果共享标签为非空数据指针,且用户标签在关系表中不存在,则创建记录。如果共享标签为非空数据指针,且用户标签在关系表中存在,则更新该用户标签所对应字段服务请求最近时间(frlt),并重置为s2申请占用往返时延中的发送时延阶段的时间。如果关系表中某条记录的字段服务请求最近时间(frlt)已经过期且超出物联网系统产品设计所设定的时间周期(如3秒),则删除该记录。
110.进一步的,基于物联网的数据同步方法还包括步骤:
111.当执行创建共享请求记录的操作时,共享用户计数器的值增加第一设定值,且更新响应模式为全量数据。
112.当执行删除共享请求记录的操作时,共享用户计数器的值减小第一设定值,且更新响应模式为增量数据。
113.当执行更新共享请求记录的操作时,共享用户计数器的值保持不变,且更新响应模式为增量数据。
114.具体而言,在完成关系表三种基本操作过程中,服务响应节点在申请占用往返时延中的发送时延阶段内,还需要完成的重要操作包括:当执行创建记录操作时,本地维护共享用户计数器的值增加1,且更新服务响应节点在本地维护的响应模式为全量数据。当执行删除记录操作时,本地维护共享用户计数器的值减小1,且更新服务响应节点在本地维护的响应模式为增量数据。当执行更新记录操作时,本地维护共享用户计数器的值保持不变,且更新服务响应节点在本地维护的响应模式为增量数据。
115.在一个实施例中,如图8所示,在服务请求节点的共享标签无效或共享用户计数器更新时,更新响应模式为全量数据或增量数据,得到更新后的响应数据包的步骤,包括:
116.步骤s810,申请占用往返时延中的调度时延阶段,读取响应模式。
117.步骤s820,若响应模式为全量数据,则调用后端子服务节点,获取全量数据;若响应模式为增量数据,则调用后端子服务节点,获取增量数据。
118.步骤s830,将全量数据或增量数据更新至响应数据包,得到更新后的响应数据包。
119.步骤s840,申请结束占用往返时延中的调度时延阶段。
120.具体而言,在服务响应节点申请结束占用往返时延中的发送时延阶段后,服务响应节点还检测物联网系统产品设计所设定的时间周期(如3秒)是否到期。如果到期,申请占用往返时延中的调度时延阶段,读取在发送时延内设置的本地维护响应模式;若还没到期,
则退出。服务响应节点根据读取到的响应模式,若响应模式为全量数据,则调用后端子服务节点,获取全量数据。若响应模式为增量数据,则调用后端子服务节点,获取增量数据。使用从后端子服务节点所获取的数据(全量数据或增量数据)更新至响应数据包。申请结束往返时延中的调度时延阶段。
121.上述实施例中,当多个服务请求节点共享同一个服务响应节点,获取数据进行同步显示时,服务响应节点在调度时延阶段只需要调用一次后端子服务节点获取数据,克服了现有物联网技术存在的服务请求与服务响应必须一一对应的缺陷。降低了单个数据调用链的往返时延,也减少了后端响应节点在处理时延阶段所消耗的时间;服务请求处于弱网环境下具有极强的容错能力。服务节点利用本地维护的共享用户计数器,可自动感知某个服务请求是否因为网络故障而终止,是否因为网络恢复正常而重新上线。当某个服务请求终止时,后端响应节点继续上报增量数据;反之,当某个服务请求重新上线时,后端响应节点再次上报全量数据,对所有请求节点进行高精度同步。
122.在一个示例中,如图9所示,以多个智能终端(如手机)与扫地机器人进行交互的应用场景为例进行说明。
123.在扫地机器人场景中,实时定位与地图构建(slam,simultaneous localization and mapping)是用户操作频次较高、计算规模相对较大的软件功能。为了保证较好的用户体验,当用户手机在线,且slam人机交互功能开启时,智能终端会以较高频率同步地图数据。以3秒钟作为地图数据的请求周期,则扫地机器人在一分钟内需要响应20次。考虑到扫地机器人本身的计算资源极为有限,频繁响应前端节点的数据请求会牺牲地图的建图质量,甚至影响机器人的运动控制。
124.为了提高产品的利用价值,扫地机器的共享功能成为了扫地机器人的基本功能,也就是一台扫地机器人可被多个家庭成员使用智能手机终端进行共享操作。当扫地机器人被多个家庭成员同时使用智能手机终端在线操作slam功能时,现有分布式物联网平台提供的服务调度方法均无法达到满足产品功能要求的往返时延(rtt)技术指标。其原因在于,多个前端节点重复、异步请求地图数据,后端设备节点不仅容易造成计算过载,而且弱网环境下的分布式物联网高频数据传输会造成通信阻塞。
125.如图9中,该物联网示例系统由三对存在计算依赖关系的软件模块构成,分别为s1:app(user1)、s2:robot;s1:app(user2)、s2:robot;s1:app(user3)、s2:robot。其中s1用来指示服务请求节点,s2用来指示服务响应节点。假定s1:app(user2)、s2:robot两节点的网络不稳定,物联网数据通信处于弱网状态下。尽管三个前端节点都采用异步调度方法,但是在一个设定的时间周期内(如3秒),后端机器节点的响应频率始终保持恒定,且不随前端请求节点数量增加而变化。此外,后端节点可自动感知前端节点的网络状态。当前端节点的网络中断后,物联网系统的数据调用链可正常工作,不会出现同步调用方法存在的通信堵塞问题。当s1出现网络中断时,数据调用链没有受到任何影响。只有在s1网络恢复正常是,s2需要调整一次数据响应策略。s2:robot节点可利用本地维护的共享用户计数器,自适应地调整响应的数据类型。当共享用户计数器的值增大时,响应数据类型为全量地图数据;否则为增量地图数据。
126.上述示例中,当分布式物联网系统处于弱网环境,即某个计算服务节点的网络信号稳定性出现较大波动,而且一台设备被分享给多个用户使用时,解决在不增加后端节点
处理时延的前提下,多个前端节点对高频率、大规模数据通信保持实时在线,避免因为各个节点间往返时延不一致所导致的不同智能终端出现数据显示不同步的问题,降低了存在计算依赖关系的分布式物联网系统的往返时延。
127.应该理解的是,虽然图3-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
128.在一个实施例中,如图10所示,还提供了一种基于物联网的数据同步系统,包括:服务请求节点10和服务响应节点20。
129.其中,服务请求节点10的数量可以是多个,多个服务请求节点10分别连接服务响应节点20,服务请求节点10的应用对象可以是智能终端,智能终端可以但不限于是智能手机、智能平板、笔记本电脑、智能穿戴设备等。服务响应节点20的应用对象可以是具有物联网功能的家用电器,例如家用电器可以但不限于是电视机、洗衣机、冰箱、台灯、扫地机、摄像头等。
130.示例性的,本技术中不限定服务请求节点10与服务响应节点20之间所采用的网络通信协议,优选的,在物联网系统的实际工程开发中,若服务请求节点10与服务响应节点20之间的数据通信规模较大,或者可提前预知两者之间的网络通信环境较弱时,服务请求节点10与服务响应节点20之间的网络通信采用轻巧、对不稳定网络本身具有一定容错机制的mqtt(message queuing telemetry transport)协议。mqtt协议的实现过程采用的是一种基于发布/订阅模式的轻量级数据通讯协议。也就是说,当多个用户账号共享同一台设备时,物联网平台为所有用户账号订阅了相同的主题消息;当设备向平台发送某个数据时,由平台主动通过该主题发布对应的数据,自动完成所有用户的一次数据同步,不需要通过额外编程进行代码补偿。
131.服务请求节点10用于执行上述基于服务请求节点的基于物联网的数据同步方法。例如服务请求节点10可用于执行以下步骤:
132.获取对应当前服务请求的用户类型,并初始化共享标签;在用户类型为共享用户时,将共享标签重置为数据调用链的追踪标识符;基于当前服务请求,将用户标签与共享标签进行绑定,得到服务请求数据包,并将服务请求数据包传输给服务响应节点20,以使服务响应节点20根据服务请求数据包,反馈更新后的响应数据包。
133.服务响应节点20用于执行上述基于服务响应节点的基于物联网的数据同步方法。例如服务响应节点20可用于执行以下步骤:
134.获取服务请求节点10传输的服务请求数据包;对服务请求数据包进行处理,得到共享标签和用户标签,并初始化共享用户计数器;在共享标签有效时,读取用户标签,并更新共享用户计数器;在服务请求节点的共享标签无效或共享用户计数器更新时,更新响应模式为全量数据或增量数据,得到更新后的响应数据包,并将更新后的响应数据包传输给服务请求节点10。
135.当多个服务请求节点共享同一个后端响应节点,获取数据进行同步显示时,后端响应节点在调度时延阶段只需要调用一次后端子服务节点获取数据,克服了现有物联网技术存在的服务请求与服务响应必须一一对应的缺陷。因此,新方案不仅降低了单个数据调用链的往返时延,也减少了后端响应节点在处理时延阶段所消耗的时间。对服务请求处于弱网环境下具有极强的容错能力。后端响应节点利用本地维护的共享用户计数器,可自动感知某个服务请求是否因为网络故障而终止,是否因为网络恢复正常而重新上线。当某个服务请求终止时,后端响应节点继续上报增量数据;反之,当某个服务请求重新上线时,后端响应节点再次上报全量数据,对所有请求节点进行高精度同步。
136.上述实施例中,在物联网系统中,当一个后台设备节点被多个前端节点共享时,基于分布式数据调用链原理,通过优化后端节点的数据服务调度算法,降低物联网系统的整体往返时延,实现前端节点不存在因为服务节点间往返时延不一致所导致的数据显示不同步。后端节点自动感知网络中断与恢复,自适应调整服务响应的数据类型。后端节点的计算规模和通信压力基本保持恒定,与前端数据请求节点的数量无关。
137.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
138.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
139.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献