CN111480329B - 从源装置到数据请求器的数据 - Google Patents
从源装置到数据请求器的数据 Download PDFInfo
- Publication number
- CN111480329B CN111480329B CN201780097493.7A CN201780097493A CN111480329B CN 111480329 B CN111480329 B CN 111480329B CN 201780097493 A CN201780097493 A CN 201780097493A CN 111480329 B CN111480329 B CN 111480329B
- Authority
- CN
- China
- Prior art keywords
- data
- source device
- data provider
- mode
- provider
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/70—Services for machine-to-machine communication [M2M] or machine type communication [MTC]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/288—Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2895—Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种用于从源装置向数据请求器提供装置数据的方法。该方法在数据提供器中执行,并且包括以下步骤:基于直通模式和高速缓存模式中的每个的估计资源使用,确定操作模式是直通模式还是高速缓存模式;从数据请求器接收读取请求;当数据提供器处于直通模式时,将对应的读取请求传送到源装置,并将读取响应从源装置转发到数据请求器;当数据提供器处于高速缓存模式时,从数据提供器的存储设备中检索装置数据,并向数据请求器传送读取响应,该读取响应包括来自存储设备的装置数据;以及用从源装置接收到的装置数据来填充数据提供器的存储设备。
Description
技术领域
本发明涉及一种用于从源装置向数据请求器提供装置数据的方法、数据提供器、计算机程序和计算机程序产品。
背景技术
由于对所谓的物联网(IoT)的兴趣增加,受约束装置的使用当前处于大规模扩展阶段,在物联网中使过多的环境中的小型装置能够使用无线和/或有线网络进行通信。受约束装置在功率使用(例如,由于仅由电池供电(operate))、处理能力、网络连接性等中的一个或多个方面被约束。受约束装置可以例如是报告数据的传感器和/或从远程装置控制的致动器。
受约束应用协议(CoAP)是一种类似于超文本传输协议(HTTP)的应用协议,但是更简单,并且涉及更小的开销。CoAP协议特别适用于低功率装置,诸如IoT装置。
LWM2M(开放式移动联盟轻量级机器到机器)是来自开放式移动联盟的一种协议,其目标是管理表示为LWM2M客户端的受约束装置。它利用了CoAP协议,并创建了用于管理的公用接口的集合。它还创建了可重用的对象模型,该模型定义了在LWM2M客户端和LWM2M服务器之间发送的数据。
LWM2M提供两种操作来访问来自LWM2M客户端的数据:读取和观察-通知。读取是数据请求器(诸如服务器上的应用)从源装置拉取(pull)要求的数据所通过的操作。观察-通知利用基于推送(push)的操作:当数据请求器周期性地或基于事件需要数据时,它发出观察命令,并且源装置然后或周期性地或在事件发生时向数据请求器通知数据。
LWM2M服务器独立地为每个数据请求器处理读取/观察请求并将其转发到客户端。LWM2M读取操作练习LWM2M协议两次:一次在正向请求路径(服务器到客户端到源装置)上,并且一次在反向数据路径(源装置到客户端到服务器)上。
当存在相当大量的读取请求时,切换到观察-通知模式是有意义的。然而,如果存在较少数量的读取请求,则使用观察-通知可能是浪费的,因为所通知的数据可能不会被数据请求器使用。
对于LWM2M服务器而言,知道在源装置的资源使用方面何时使用读取请求更有效以及何时使用观察-通知更有效,这是微妙的平衡。
发明内容
一个目的是改进从源装置获得数据的效率,其中该效率与源装置的资源使用相关。
根据第一方面,提供了一种用于从源装置向数据请求器提供装置数据的方法。该方法在数据提供器中执行,并且包括以下步骤:基于直通(pass-through)模式和高速缓存模式中的每个的估计资源使用,确定数据提供器关于源装置的操作模式,该操作模式或者是直通模式或者是高速缓存模式;从数据请求器接收读取请求,该读取请求向源装置请求装置数据;当数据提供器处于直通模式时,将对应的读取请求传送到源装置,并将包括装置数据的读取响应从源装置转发到数据请求器;当数据提供器处于高速缓存模式时,从数据提供器的存储设备中检索装置数据,并向数据请求器传送读取响应,该读取响应包括来自存储设备的装置数据;以及当数据提供器处于高速缓存模式时,用从源装置接收到的装置数据来填充(populate)数据提供器的存储设备。
在确定操作模式的步骤中,资源使用可以包括计算成本。
可以基于从数据请求器向源装置的预测的未来读取请求的密度来估计资源使用。
在接收读取请求的步骤中,读取请求可以包括可接受装置数据年龄的指示符,该可接受装置数据年龄定义了对于数据请求器可接受的装置数据的最大年龄。在这种情况下,填充的步骤包括确保装置数据被足够频繁地填充,以总是满足可接受装置数据年龄。
填充的步骤可以包括向源装置发送观察命令,使源装置重复地向数据提供器通知当前装置数据。
填充的步骤可以包括发送最小等待时间,指示在来自源装置的通知之后的最小持续时间(time duration),在最小持续时间期间源装置将不再向数据提供器执行通知动作。
填充的步骤可以包括发送最大等待时间,指示在来自源装置的通知之后的最大持续时间,在最大持续时间之后,即使当装置数据与之前的通知动作相比保持不变时,源装置也必须执行通知动作以发送当前装置数据。
读取请求和读取响应可以根据LWM2M轻量级机器到机器规范版本1.0或更高版本来传送。
填充数据提供器的存储设备的步骤可以在与从存储设备检索装置数据的步骤分开的执行序列中执行。
根据第二方面,提供了一种用于从源装置向数据请求器提供装置数据的数据提供器。数据提供器包括:处理器;以及存储指令的存储器,所述指令当由处理器执行时,使数据提供器:基于直通模式和高速缓存模式中的每个的估计资源使用,确定数据提供器关于源装置的操作模式,该操作模式或者是直通模式或者是高速缓存模式;从数据请求器接收读取请求,该读取请求向源装置请求装置数据;当数据提供器处于直通模式时,将对应的读取请求传送到源装置,并将包括装置数据的读取响应从源装置转发到数据请求器;当数据提供器处于高速缓存模式时,从数据提供器的存储设备中检索装置数据,并向数据请求器传送读取响应,该读取响应包括来自存储设备的装置数据;以及当数据提供器处于高速缓存模式时,用从源装置接收到的装置数据来填充数据提供器的存储设备。
资源使用可以包括计算成本。
可以基于从数据请求器向源装置的预测的未来读取请求的密度来估计资源使用。
读取请求可以包括可接受装置数据年龄的指示符,该可接受装置数据年龄定义了对于数据请求器可接受的装置数据的最大年龄。在这种情况下,用于填充的指令包括当由处理器执行时使数据提供器确保装置数据被足够频繁地填充以总是满足可接受装置数据年龄的指令。
用于填充的指令可以包括当由处理器执行时使数据提供器向源装置发送观察命令使源装置重复地向数据提供器通知当前装置数据的指令。
用于填充的指令可以包括当由处理器执行时使数据提供器发送最小等待时间的指令,该最小等待时间指示在来自源装置的通知之后的最小持续时间,在最小持续时间期间源装置将不再向数据提供器执行通知动作。
用于填充的指令可以包括当由处理器执行时使数据提供器发送最大等待时间的指令,该最大等待时间指示在来自源装置的通知之后的最大持续时间,在最大持续时间之后,即使当装置数据与之前的通知动作相比保持不变时,源装置也必须执行通知动作以发送当前装置数据。
读取请求和读取响应可以根据LWM2M轻量级机器到机器规范版本1.0或更高版本来传送。
用于填充数据提供器的存储设备的指令可以在与用于从存储设备检索装置数据的指令分开的执行序列中执行。
根据第三方面,提供了一种数据提供器,其包括:用于基于直通模式和高速缓存模式中的每个的估计资源使用来确定数据提供器关于源装置的操作模式的部件,该操作模式或者是直通模式或者是高速缓存模式;用于从数据请求器接收读取请求的部件,该读取请求向源装置请求装置数据;用于当数据提供器处于直通模式时将对应的读取请求传送到源装置并将包括装置数据的读取响应从源装置转发到数据请求器的部件;用于从数据提供器的存储设备中检索装置数据并向数据请求器传送读取响应的部件,该读取响应包括来自存储设备的装置数据;以及用于当数据提供器处于高速缓存模式时用从源装置接收到的装置数据来填充数据提供器的存储设备的部件。
根据第四方面,提供了一种用于从源装置向数据请求器提供装置数据的计算机程序。计算机程序包括计算机程序代码,所述计算机程序代码当在数据提供器上运行时,使数据提供器:基于直通模式和高速缓存模式中的每个的估计资源使用,确定数据提供器关于源装置的操作模式,该操作模式或者是直通模式或者是高速缓存模式;从数据请求器接收读取请求,该读取请求向源装置请求装置数据;当数据提供器处于直通模式时,将对应的读取请求传送到源装置,并将包括装置数据的读取响应从源装置转发到数据请求器;当数据提供器处于高速缓存模式时,从数据提供器的存储设备中检索装置数据,并向数据请求器传送读取响应,该读取响应包括来自存储设备的装置数据;以及当数据提供器处于高速缓存模式时,用从源装置接收到的装置数据来填充数据提供器的存储设备。
根据第五方面,提供了一种计算机程序产品,其包括根据第三方面的计算机程序和在其上存储计算机程序的计算机可读部件。
通常,除非在本文中另有明确定义,否则权利要求中使用的所有术语都要根据它们在本技术领域中的普通意义来解释。除非另有明确声明,否则对“一/一个/该元件、设备、组件、部件、步骤等”的所有提及都要被开放地解释为指的是该元件、设备、组件、部件、步骤等中的至少一个实例。除非明确声明,否则本文中公开的任何方法的步骤都不必按所公开的精确顺序执行。
附图说明
现在参考附图,通过示例描述本发明,在附图中:
图1是图示在其中能应用本文中呈现的实施例的环境的示意图;
图2A-2D是图示能应用于图1的环境中的实施例的各种实体之间的通信的序列图;
图3是图示在图1的数据提供器中执行的用于从源装置向数据请求器提供数据的方法的实施例的流程图;
图4是图示根据一个实施例的图1的数据提供器的组件的示意图;
图5是示出图1的数据提供器的功能模块的示意图;以及
图6示出了包括计算机可读部件的计算机程序产品的一个示例。
具体实施方式
现在将在下文中参考附图更全面地描述本发明,附图中示出了本发明的某些实施例。然而,本发明可以以许多不同的形式体现,并且不应该被理解为限于本文中阐明的实施例;而是,这些实施例通过示例来提供,使得本公开将是彻底并且完整的,并且将向本领域技术人员充分传达本发明的范围。相似的数字在整个描述中指的是相似的元件。
图1是图示在其中能应用本文中呈现的实施例的环境的示意图。数据请求器11想要从源装置10检索装置数据。数据请求器11可以是受益于由源装置10提供的装置数据的任何计算机应用。例如,数据请求器11可以形成运行在服务器、台式计算机、膝上型计算机、平板计算机或智能电话或任何其它合适装置上的应用程序的部分。虽然图1中仅示出一个数据请求器11,但是数据提供器可以向多个数据请求器11提供特定源装置10的装置数据。
源装置10可以是物联网(IoT)的上下文中的受约束装置。因此,源装置10在功率使用(例如,由于仅由电池供电)、处理能力、网络连接性等方面可能非常受限。虽然图1中仅示出一个源装置10,但是数据提供器1能被实现成从多个源装置10提供装置数据。
数据提供器1位于数据请求器11和源装置10之间。数据提供器1可以作为计算机(例如服务器)的部分来提供,以便促进数据请求器和源装置10之间的通信,并减少源装置10的功率使用。
数据请求器11和数据提供器10可以使用任何合适的协议进行通信,并且可以例如基于因特网协议(IP),通过任何合适的承载,包括以太网、WiFi、任何蜂窝网络、蓝牙等中的任何一个或多个。在IP层的顶部,数据请求器能使用UDP(用户数据报协议)和/或TCP(传输控制协议)和例如HTTP(超文本传输协议)和/或COAP(受约束应用协议)。类似地,数据提供器1和源装置10可以使用所提到的协议中的任何一个或多个进行通信。
数据提供器1还有权访问数据存储设备66,数据存储设备66可以形成数据提供器的部分,或者能与数据提供器分开地提供。
当应用LWM2M时,数据请求器是LWM2M服务器,并且源装置是LWM2M客户端。LWM2M提供两种操作来访问来自LWM2M客户端的装置数据:读取和观察-通知。读取是数据请求器从源装置拉取要求的装置数据所通过的操作。观察-通知是基于推送的操作:当数据请求器周期性地或基于事件需要装置数据时,它向源装置发出观察命令,由此源装置或者周期性地或者在事件发生时向数据请求器通知装置数据。由于数据提供器1在数据请求器11和源装置之间,所以数据提供器1充当数据请求器11的LWM2M客户端,并且数据提供器充当源装置10的LWM2M服务器。
LWM2M读取操作练习LWM2M协议两次:一次在正向请求路径(服务器到客户端到装置)上,并且一次在反向数据路径(装置到客户端到服务器)上。LWM2M协议是LWM2M服务器和LWM2M客户端之间的应用层通信协议。
使用本文中呈现的实施例,通过在源装置10的读取和观察-通知模式之间进行适当的切换,减少了对于从源装置10提供装置数据所要求的总计算能力。如下文更详细说明的,这通过针对特定源装置10以两种模式——直通模式或高速缓存模式中的一个设置数据提供器1来实现。
图2A-2D是图示能应用于图1的环境中的实施例的各种实体之间的通信的序列图。
首先来看图2A,这图示了当数据提供器针对特定源装置10处于直通模式时的通信。
数据请求器11向数据提供器1发送读取请求20a。数据提供器将对应的读取请求20b传给源装置10。一旦源装置10向数据提供器1发送包含装置数据的读取响应21b,数据提供器1就向数据请求器11转发对应的读取响应21a,包含来自源装置10的读取响应21b的装置数据。
在该直通模式中,数据提供器1因此将来自数据请求器11的读取请求转发到源装置10,并将来自源装置10的读取响应转发到数据请求器11。换句话说,直通模式是一种基于拉取的数据检索的形式。
现在来看图2B,这图示了当数据提供器1针对特定源装置10处于高速缓存模式时的通信。在该序列开始之前,存储设备66已经被填充有装置数据(例如,如图2C和2D中所图示的)并且在下面被说明。
如在图2A中,数据请求器11向数据提供器1传送读取请求20a。然而,这里,数据请求器11向存储设备66传送提取22命令,以从存储设备66而不是从源装置10获得装置数据。存储设备66用适用的装置数据23进行响应,在此之后,数据提供器1构成包括装置数据的读取响应21a,并将其传送到数据请求器11。
在高速缓存模式中,数据请求器11接收适用的装置数据,但是源装置10不需要对这个特定读取请求进行任何通信或任何处理,从而节省了大量功率。
然而,为了数据提供器1能够从存储设备66提取装置数据,存储设备66必须已经被填充有装置数据。这在图2C和2D中被图示。
在图2C中,数据提供器1首先向源装置10传送具有两个参数——最小等待时间(Pmin)和最大等待时间(Pmax)的命令25。这些参数的功能将在下面说明。
数据提供器还向源装置10传送观察命令26。观察命令26使源装置10重复地向数据提供器1通知当前装置数据。要从源装置10传送的装置数据的类型在观察命令26中规定。在某一时刻,源装置10向数据提供器1传送第一通知消息27a。第一通知消息27a包含当前装置数据。数据提供器1然后将接收到的装置数据存储28a在存储设备66中。在稍后阶段,源装置10向数据提供器1传送第二通知消息27b。第二通知消息27b包含当前装置数据。数据提供器1再次将接收到的装置数据存储28b在存储设备66中。该过程以相同的方式继续,直到该过程被数据提供器1或源装置10停止为止。
在该上下文中,Pmin指示在来自源装置10的通知之后的最小持续时间,在最小持续时间期间源装置10将不再向数据提供器1执行通知动作。此外,Pmax指示在来自源装置10的通知之后的最大持续时间,在最大持续时间之后,即使当装置数据与之前的通知动作相比保持不变时,源装置10也必须执行通知动作以发送当前装置数据。换句话说,Pmin和Pmax指示两个连续通知消息之间的最小和最大时间。
图2C中所示的序列类似于图2D。然而,这里,观察命令26包括源装置10应该将装置数据发送到存储设备66的指示。因此,在观察命令26之后,源装置10将其通知消息27a、27b、…直接发送到存储设备66。这缓解了数据提供器1中的一些处理。
图3是图示在图1的数据提供器1中执行的用于从源装置10向数据请求器11提供装置数据的方法的实施例的流程图。如上面所说明的,数据请求器11可以是向源装置10请求装置数据的一个或多个应用。
在确定操作模式步骤40中,数据提供器1确定数据提供器1关于源装置10的操作模式。操作模式或者是直通模式(见图2A)或者是高速缓存模式(见图2B)。基于直通模式和高速缓存模式中的每个的估计资源使用来确定操作模式。资源使用可以例如包括计算成本。计算成本是例如在处理器(CPU)使用方面所要求的计算能力的量。此外,可以基于从数据请求器11向源装置的预测的未来读取请求的密度来估计资源使用。换句话说,可以基于预测每时间单位(例如,秒)许多这样的读取请求要被接收来估计资源使用。
现在将描述根据一个实施例的确定操作模式的方式。该确定基于使用读取模式或观察模式从源装置10获得装置数据是否更有效。当读取模式更有效时,操作模式被设置成直通。当观察模式更有效时,操作模式被设置成高速缓存。
现在来看源装置10的读取模式:
c(读取)=2*(c(数据提供器)+c(CoAP)+c(源装置))=2*C1
t(读取)=2*(t(数据提供器)+t(源装置))
其中c()是在特定节点(在这种情况下或者是数据提供器1或者是源装置)中产生的计算成本,t()是每个节点用于执行所要求的任务以供通信发生所花费的时间,并且C1是这里定义的c(数据提供器)+c(CoAP)+c(源装置)的单位成本,其唯一目的是简化本文中的符号。
换句话说,c(读取)等于用于数据提供器1中的通信的计算成本加上用于CoAP协议使用的计算成本加上用于源装置10中的通信的计算成本,全都乘以2。在那里乘以2是因为读取意味着读取请求和读取响应两者,两者都意味着数据提供器1和源装置10之间的通信。
现在说明t(读取),t(读取)等于用于数据提供器1中的通信的时间加上用于源装置10中的通信的时间,全都乘以2。用于CoAP信号传播的时间可忽略不计。在那里乘以2是因为读取意味着读取请求和读取响应两者,两者都意味着数据提供器1和源装置10之间的通信。
另一方面,当源装置10处于观察模式时,存在一个用于注册通知的观察-通知请求,并且对于改变的值的每个后续通知,避免数据提供器->CoAP->源装置路径。
c(通知)=c(观察)=c(数据提供器)+c(CoAP)+c(源装置)=C1
c(存储)=c(插入在数据库中)
c(提取)=c(从数据库中抽取)
t(提取)~=t(从数据库中抽取)
考虑时间间隔T,其中观察频率为f,并且来自数据请求器11的读取请求的数量为N。观察频率定义从源装置10发送观察多久一次(平均)。那么:
浪费(T)=N*c(读取)-[c(观察)+T/f*c(通知)+N*c(提取)]=N*C1–[C1+T/f*C1+N*c(提取)]
如果浪费(T)为正,则它意味着读取成本多于观察-通知-存储-抽取。因此,通过(例如使用机器学习)估计来自数据请求器11语义和/或历史的读取数量,预测未来时间段的浪费,导致选择源装置10的读取模式或观察模式,分别对应于数据提供器1的直通模式和高速缓存模式。
要注意,步骤40能在与该方法的其它步骤分开的执行序列中执行。可以使用分开的线程或分开的进程来实现分开的执行序列。步骤40能以一定间隔和/或当确定操作模式的需要出现时重复。
在接收读取请求步骤42中,数据提供器1从数据请求器11接收读取请求。读取请求向源装置10请求装置数据。可选地,读取请求包括可接受装置数据年龄的指示符,该可接受装置数据年龄定义了对于数据请求器11可接受的装置数据的最大年龄。例如,数据请求器11上的时间关键的应用将具有比数据请求器11上的不是时间关键的应用短得多的可接受装置数据年龄。时间关键的应用的示例是警报传感器,而不是时间关键的应用的示例是天气传感器。
在有条件的模式步骤43中,数据提供器1取决于当前操作模式来使方法分叉(fork)。当步骤40在分开的执行序列中发生时,该模式例如使用线程间通信或进程间通信从步骤40的执行序列被传递到步骤43的执行序列。当数据提供器1(针对讨论中的源装置10)处于直通模式时,该方法继续到传送读取请求并转发响应步骤44。当数据提供器1(针对讨论中的源装置10)处于高速缓存模式时,该方法继续到从存储设备检索装置数据并传送 读取响应步骤46。
在传送读取请求并转发响应步骤44中,数据提供器1向源装置10传送读取请求(对应于在接收读取请求步骤42中接收到的读取请求)。数据提供器1将包括装置数据的读取响应从源装置10转发到数据请求器11。这在图2A中被图示。
在从存储设备检索装置数据并传送读取响应步骤46中,数据提供器1从数据提供器1的存储设备66中检索装置数据,并向数据请求器11传送读取响应。读取响应然后包括已经从存储设备66检索的装置数据。这在图2B中被图示。
读取请求和读取响应能根据LWM2M轻量级机器到机器规范版本1.0或更高版本来传送。
在填充存储设备步骤48中,当数据提供器处于高速缓存模式时,数据提供器用从源装置接收到的装置数据来填充数据提供器的存储设备。不管当前操作模式是直通模式还是高速缓存模式,都可能执行填充存储设备步骤48,但是至少在数据提供器处于高速缓存模式时执行它,而在当前操作模式是直通模式时不一定执行它。要注意,即使填充存储设备步骤48被示为发生在步骤44和步骤46之后,填充存储设备步骤48也能在与该方法的其它步骤并且特别是步骤46分开的执行序列中执行。换句话说,不需要每次执行步骤46时都执行步骤48。
在一个实施例中,这种填充确保装置数据被足够频繁地填充,以总是满足可接受装置数据年龄。换句话说,存储设备被足够经常地填充,使得满足读取请求中的可接受装置数据年龄。当已经接收到若干不同的可接受装置数据年龄时,最短的可接受装置数据年龄是最严格的要求,并且从而需要被遵守。这能通过向源装置10发送观察命令来实现。观察命令使源装置10重复地向数据提供器1(或直接地存储设备66)通知当前装置数据。
可选地,这包括发送最小等待时间(Pmin)。最小等待时间指示在来自源装置10的通知之后的最小持续时间,在最小持续时间期间源装置10将不再向数据提供器1执行通知动作。
另外,这能包括发送最大等待时间(Pmax)。最大等待时间指示在来自源装置10的通知之后的最大持续时间,在最大持续时间之后,即使当装置数据与之前的通知动作相比保持不变时,源装置10也必须执行通知动作以发送当前装置数据。
当数据提供器1切换到高速缓存模式以降低在某一持续时间内源装置10中的计算要求时,它然后还可以在执行观察动作之前设置有关源装置10的Pmin和Pmax属性,如图2C和2D中所示。
这里使用一个典型的读取请求作为基线,并将高速缓存模式的语义与其进行比较。T用于表示读取请求在用其已知的装置数据回复之前通常花费的预期时间。该思想是,处于高速缓存模式的数据提供器1在用已知的装置数据回复之前应该——在最坏的情况下——等待T。数据提供器1的这种动作解决了在高速缓存模式下服务来自其本身层的读取请求时对装置数据的请求的时延考虑。数据提供器还确保它没有正在服务旧的装置数据,或者至少符合该请求的任何期望的陈旧性(可接受装置数据年龄)语义,如果有的话。上面参考填充存储设备步骤48描述了如何实现这点。Pmin和Pmax属性对这种行为有一定的影响,并且数据提供器1对这种属性使用以下方法。
设置Pmin=0导致在源装置10中观察到的装置数据的任何改变都被通知给数据提供器1的行为,并且从而确保数据提供器1它得到了典型的直通读取请求将会获得的装置数据。为了使这点成立,数据提供器1接收通知所花费的典型时间必须不大于T/2,这又意味着从源装置10到数据提供器1的通知响应以及其处理具有与从源装置10到数据提供器1的读取响应类似的成本/时延。在向数据提供器1通知的情况下,唯一的额外成本/时延是用于存储装置数据的动作,因此如果这与T相比相对小或者具有较小的数量级,那么它不会显著影响上面描述的语义。
将Pmin设置成非零值意味着从源装置10开始的通知中更多的时延,并且从而导致观察到的装置数据的改变没有被立即通知给数据提供器1的更大可能性,并且因此由数据提供器1直接以高速缓存模式服务的读取请求可以返回稍微更旧的装置数据——实质上是数据提供器1已知的最后已知的装置数据。在Pmin窗口到期之后,新的装置数据将被通知给数据提供器1。
然而,这种方法具有在该Pmin窗口期间节省源装置10上的计算/功率的优点,在该Pmin窗口中源装置10不需要向数据提供器1“通知”改变。
如上所述,解决装置数据的潜在陈旧性的一种方法是要允许读取请求包括用于可接受装置数据年龄的参数,即该请求规定它能容忍多旧的装置数据。进行读取请求的数据请求器11能根据它们自己的要求来利用这种能力。数据提供器1又将基于来自多个读取请求的可接受装置数据年龄的这种值来设置Pmin。
由于数据提供器1基于读取请求的预测数量/量(volume)/密度切换到高速缓存模式,因此预测可能的非零Pmin值以便使用也可能是有用的。这种预测可以基于从读取请求的历史中学习。例如,如果存在大量读取请求的明显模式,其中可接受装置数据年龄的一些值在一天期间的特定时间到来,则这可能是由于若干数据请求器11大约在相同时间开始了它们的周期性每日活动。
当数据提供器1处于高速缓存模式、并且读取请求以比预测和配置的Pmin值更高的可接受装置数据年龄值到达时,那么预测的Pmin值就足够了。但是,如果读取请求以比由数据提供器1配置的Pmin值更低的可接受装置数据年龄值到达,那么数据提供器1将把它作为读取请求直接传递到源装置10,如果它是一次性请求的话。如果数据提供器1在最近历史中注意到这种请求为周期性模式,那么数据提供器1将学习并适于相应地降低其预测的Pmin值。
类似地,数据提供器1将基于在数据提供器1层等待的读取请求的可接受装置数据年龄值的周期性探索,来根据要求增加Pmin。
尽管可能值得考虑将Pmax设置成尽可能高的值(这将有益于源装置10处的功率和计算使用),但是要注意,Pmax还用作源装置10的心跳机制。这将取决于数据请求器11检查资源的实时状态的需要。在缺乏任何其它确定的情况下,Pmax能被设置成2*Pmin。注意,LWM2M标准规定Pmax>Pmin。
使用本文中呈现的方法,数据提供器1取决于在资源使用方面对于源装置10而言什么是最佳的来在高速缓存模式和直通模式之间切换,同时遵守来自数据请求器11的请求。这显著减少了源装置10的资源使用。
图4是图示根据一个实施例的图1的数据提供器的组件的示意图。使用能够执行存储在存储器64中的软件指令67的合适的中央处理单元(CPU)、多处理器、微控制器、数字信号处理器(DSP)、专用集成电路等中的一个或多个的任何组合来提供处理器60,存储器64从而可以是计算机程序产品。处理器60可以被配置成执行参考上面图3描述的方法。
存储器64可以是随机存取存储器(RAM)和只读存储器(ROM)的任意组合。存储器64还包括永久存储设备,永久存储设备例如可以是磁存储器、光存储器、固态存储器或甚至远程安装的存储器中的任何单个或组合。
还提供了数据存储器66,用于在处理器60中执行软件指令期间读取和/或存储数据。数据存储器66可以是随机存取存储器(RAM)和只读存储器(ROM)的任意组合。数据存储器66可以是磁存储器、光存储器、固态存储器或甚至远程安装的存储器中的任何单个或组合。
数据提供器1进一步包括用于与诸如数据请求器和源装置10之类的外部实体进行通信的I/O接口62。可选地,I/O接口62还包括用户接口。
数据提供器1的其它组件被省略,以便不使本文中呈现的概念模糊不清。
图5是示出根据一个实施例的图1的数据提供器1的功能模块的示意图。模块使用诸如在数据提供器1中执行的计算机程序之类的软件指令来实现。备选地或附加地,模块使用诸如ASIC(专用集成电路)、FPGA(现场可编程门阵列)或分立逻辑电路中的任何一个或多个之类的硬件来实现。模块对应于在图3中图示的方法中的步骤。
模式确定器70对应于步骤40。读取请求接收器72对应于步骤42。模式评估器73对应于步骤43。直通提供器74对应于步骤44。高速缓存提供器76对应于步骤46。存储设备填充器78对应于步骤48。
图6示出了包括计算机可读部件的计算机程序产品的一个示例。在这个计算机可读部件上,可以存储计算机程序91,该计算机程序可以使处理器执行根据本文中描述的实施例的方法。在该示例中,计算机程序产品是光盘,诸如CD(致密盘)或DVD(数字通用盘)或蓝光盘。如上面所说明的,计算机程序产品也可能被体现在装置的存储器(诸如图4的计算机程序产品64)中。虽然计算机程序91在此被示意性地示为所描绘的光盘上的轨道,但是计算机程序可以以适合于计算机程序产品(诸如可移除固态存储器,例如通用串行总线(USB)驱动器)的任何方式来存储。
上面参考几个实施例已经主要地描述了本发明。然而,如本领域技术人员容易领会的,除了上面公开的实施例之外的其它实施例在如由所附专利权利要求定义的本发明的范围内同样有可能。
Claims (20)
1.一种用于从源装置(10)向数据请求器(11)提供装置数据的方法,所述方法在数据提供器(1)中执行,并且包括以下步骤:
基于直通模式和高速缓存模式中的每个的估计资源使用,确定(40)所述数据提供器(1)关于所述源装置(10)的操作模式,所述操作模式或者是所述直通模式或者是所述高速缓存模式;
从所述数据请求器接收(42)读取请求,所述读取请求向所述源装置(10)请求装置数据;
当所述数据提供器(1)处于所述直通模式时,将对应的读取请求传送(44)到所述源装置,并将包括装置数据的读取响应从所述源装置转发到所述数据请求器;
当所述数据提供器(1)处于所述高速缓存模式时,从所述数据提供器(1)的存储设备中检索(46)装置数据,并向所述数据请求器传送读取响应,所述读取响应包括来自存储设备的所述装置数据;以及
当所述数据提供器处于所述高速缓存模式时,用从所述源装置接收到的装置数据来填充(48)所述数据提供器(1)的所述存储设备。
2.根据权利要求1所述的方法,其中在确定(40)操作模式的步骤中,所述资源使用包括计算成本。
3.根据权利要求1或2所述的方法,其中基于从数据请求器向所述源装置(10)的预测的未来读取请求的密度来估计所述资源使用。
4.根据权利要求1或2所述的方法,其中在接收(42)读取请求的步骤中,所述读取请求包括可接受装置数据年龄的指示符,所述可接受装置数据年龄定义了对于所述数据请求器可接受的装置数据的最大年龄,并且其中填充(48)的步骤包括确保所述装置数据被足够频繁地填充以总是满足所述可接受装置数据年龄。
5.根据权利要求4所述的方法,其中所述填充(48)的步骤包括向所述源装置(10)发送观察命令,使所述源装置(10)重复地向所述数据提供器(1)通知当前装置数据。
6.根据权利要求5所述的方法,其中所述填充(48)的步骤包括发送最小等待时间(Pmin),指示在来自所述源装置的通知之后的最小持续时间,在所述最小持续时间期间所述源装置将不再向所述数据提供器执行通知动作。
7.根据权利要求5或6所述的方法,其中所述填充(48)的步骤包括发送最大等待时间(Pmax),指示在来自所述源装置的通知之后的最大持续时间,在所述最大持续时间之后,即使当所述装置数据与之前的通知动作相比保持不变时,所述源装置也必须执行通知动作以发送当前装置数据。
8.根据权利要求1或2所述的方法,其中所述读取请求和所述读取响应根据LWM2M轻量级机器到机器规范版本1.0或更高版本来传送。
9.根据权利要求1或2所述的方法,其中填充(48)所述数据提供器的所述存储设备的步骤在与从存储设备检索装置数据的步骤分开的执行序列中执行。
10.一种用于从源装置(10)向数据请求器(11)提供装置数据的数据提供器(1),所述数据提供器(1)包括:
处理器(60);以及
存储器(64),所述存储器(64)存储指令(67),所述指令(67)当由所述处理器执行时使所述数据提供器(1):
基于直通模式和高速缓存模式中的每个的估计资源使用,确定所述数据提供器(1)关于所述源装置(10)的操作模式,所述操作模式或者是所述直通模式或者是所述高速缓存模式;
从所述数据请求器接收读取请求,所述读取请求向所述源装置(10)请求装置数据;
当所述数据提供器(1)处于所述直通模式时,将对应的读取请求传送到所述源装置,并将包括装置数据的读取响应从所述源装置转发到所述数据请求器;
当所述数据提供器(1)处于所述高速缓存模式时,从所述数据提供器(1)的存储设备中检索装置数据,并向所述数据请求器传送读取响应,所述读取响应包括来自存储设备的所述装置数据;以及
当所述数据提供器处于所述高速缓存模式时,用从所述源装置接收到的装置数据来填充所述数据提供器(1)的所述存储设备。
11.根据权利要求10所述的数据提供器(1),其中所述资源使用包括计算成本。
12.根据权利要求10或11所述的数据提供器(1),其中基于从数据请求器向所述源装置(10)的预测的未来读取请求的密度来估计所述资源使用。
13.根据权利要求10或11所述的数据提供器(1),其中所述读取请求包括可接受装置数据年龄的指示符,所述可接受装置数据年龄定义了对于所述数据请求器可接受的装置数据的最大年龄,并且其中用于填充的指令包括当由所述处理器执行时使所述数据提供器(1)确保所述装置数据被足够频繁地填充以总是满足所述可接受装置数据年龄的指令(67)。
14.根据权利要求13所述的数据提供器(1),其中所述用于填充的指令包括当由所述处理器执行时使所述数据提供器(1)向所述源装置(10)发送观察命令使所述源装置(10)重复地向所述数据提供器(1)通知当前装置数据的指令(67)。
15.根据权利要求14所述的数据提供器(1),其中所述用于填充的指令包括当由所述处理器执行时使所述数据提供器(1)发送最小等待时间(Pmin)的指令(67),所述最小等待时间指示在来自所述源装置的通知之后的最小持续时间,在所述最小持续时间期间所述源装置将不再向所述数据提供器执行通知动作。
16.根据权利要求14或15所述的数据提供器(1),其中所述用于填充的指令包括当由所述处理器执行时使所述数据提供器(1)发送最大等待时间(Pmax)的指令(67),所述最大等待时间指示在来自所述源装置的通知之后的最大持续时间,在所述最大持续时间之后,即使当所述装置数据与之前的通知动作相比保持不变时,所述源装置也必须执行通知动作以发送当前装置数据。
17.根据权利要求10或11所述的数据提供器(1),其中所述读取请求和所述读取响应根据LWM2M轻量级机器到机器规范版本1.0或更高版本来传送。
18.根据权利要求10或11所述的数据提供器(1),其中用于填充所述数据提供器的所述存储设备的指令在与用于从存储设备检索装置数据的指令分开的执行序列中执行。
19.一种数据提供器(1),包括:
用于基于直通模式和高速缓存模式中的每个的估计资源使用来确定所述数据提供器(1)关于源装置(10)的操作模式的部件,所述操作模式或者是所述直通模式或者是所述高速缓存模式;
用于从数据请求器接收读取请求的部件,所述读取请求向所述源装置(10)请求装置数据;
用于当所述数据提供器(1)处于所述直通模式时将对应的读取请求传送到所述源装置并将包括装置数据的读取响应从所述源装置转发到所述数据请求器的部件;
用于当所述数据提供器(1)处于所述高速缓存模式时从所述数据提供器(1)的存储设备中检索装置数据并向所述数据请求器传送读取响应的部件,所述读取响应包括来自存储设备的所述装置数据;以及
用于当所述数据提供器处于所述高速缓存模式时用从所述源装置接收到的装置数据来填充所述数据提供器(1)的所述存储设备的部件。
20.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,所述计算机程序代码当在数据提供器(1)上运行时使所述数据提供器(1):
基于直通模式和高速缓存模式中的每个的估计资源使用,确定所述数据提供器(1)关于源装置(10)的操作模式,所述操作模式或者是所述直通模式或者是所述高速缓存模式;
从数据请求器接收读取请求,所述读取请求向所述源装置(10)请求装置数据;
当所述数据提供器(1)处于所述直通模式时,将对应的读取请求传送到所述源装置,并将包括装置数据的读取响应从所述源装置转发到所述数据请求器;
当所述数据提供器(1)处于所述高速缓存模式时,从所述数据提供器(1)的存储设备中检索装置数据,并向所述数据请求器传送读取响应,所述读取响应包括来自存储设备的所述装置数据;以及
当所述数据提供器处于所述高速缓存模式时,用从所述源装置接收到的装置数据来填充所述数据提供器(1)的所述存储设备。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IN2017/050569 WO2019111266A1 (en) | 2017-12-04 | 2017-12-04 | Data from a source device to a data requester |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111480329A CN111480329A (zh) | 2020-07-31 |
CN111480329B true CN111480329B (zh) | 2023-07-11 |
Family
ID=66751336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780097493.7A Active CN111480329B (zh) | 2017-12-04 | 2017-12-04 | 从源装置到数据请求器的数据 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11050838B2 (zh) |
EP (1) | EP3721349B1 (zh) |
CN (1) | CN111480329B (zh) |
WO (1) | WO2019111266A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020241661A1 (ja) * | 2019-05-30 | 2020-12-03 | 京セラ株式会社 | 通信機器、通信機器の制御方法、通信方法、サーバ、及び通信システム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015187068A1 (en) * | 2014-06-02 | 2015-12-10 | Telefonaktiebolaget L M Ericsson (Publ) | Merging proxy |
WO2017004373A1 (en) * | 2015-07-02 | 2017-01-05 | Convida Wireless, Llc | Resource-driven dynamic authorization framework |
CN106330398A (zh) * | 2016-08-29 | 2017-01-11 | 中国联合网络通信集团有限公司 | 一种确定物联网业务的数据传输模式的方法及装置 |
CN106465049A (zh) * | 2014-05-14 | 2017-02-22 | 瑞典爱立信有限公司 | 物联网的周期性管理稳定化 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003101A1 (en) * | 2002-06-26 | 2004-01-01 | Roth David J. | Caching control for streaming media |
US8447837B2 (en) * | 2005-12-30 | 2013-05-21 | Akamai Technologies, Inc. | Site acceleration with content prefetching enabled through customer-specific configurations |
US9071545B2 (en) | 2012-11-03 | 2015-06-30 | Netronome Systems, Incorporated | Network appliance that determines what processor to send a future packet to based on a predicted future arrival time |
US20150019686A1 (en) * | 2013-07-12 | 2015-01-15 | Seven Networks, Inc. | Distributed caching systems with configurable extended caching optimization |
CN106233695B (zh) * | 2014-04-25 | 2020-04-03 | 瑞典爱立信有限公司 | 用于管理客户端设备的装置和方法 |
EP3178205B1 (en) | 2014-08-07 | 2020-04-29 | Telefonaktiebolaget LM Ericsson (publ) | Data transfer in a system of connected things |
-
2017
- 2017-12-04 CN CN201780097493.7A patent/CN111480329B/zh active Active
- 2017-12-04 WO PCT/IN2017/050569 patent/WO2019111266A1/en unknown
- 2017-12-04 EP EP17933977.5A patent/EP3721349B1/en active Active
- 2017-12-04 US US16/764,922 patent/US11050838B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106465049A (zh) * | 2014-05-14 | 2017-02-22 | 瑞典爱立信有限公司 | 物联网的周期性管理稳定化 |
WO2015187068A1 (en) * | 2014-06-02 | 2015-12-10 | Telefonaktiebolaget L M Ericsson (Publ) | Merging proxy |
WO2017004373A1 (en) * | 2015-07-02 | 2017-01-05 | Convida Wireless, Llc | Resource-driven dynamic authorization framework |
CN106330398A (zh) * | 2016-08-29 | 2017-01-11 | 中国联合网络通信集团有限公司 | 一种确定物联网业务的数据传输模式的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20200304590A1 (en) | 2020-09-24 |
EP3721349A4 (en) | 2020-12-30 |
WO2019111266A1 (en) | 2019-06-13 |
CN111480329A (zh) | 2020-07-31 |
US11050838B2 (en) | 2021-06-29 |
EP3721349A1 (en) | 2020-10-14 |
EP3721349B1 (en) | 2022-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8930521B2 (en) | Method, apparatus, and computer program product for enabling monitoring of a resource | |
US11425209B2 (en) | Communication system | |
EP3720094B1 (en) | Information processing method, apparatus, device and system | |
EP2896168B1 (en) | Apparatus and method for delivery control of application data to a mobile device in a communication network | |
US9596190B2 (en) | Method, apparatus and system for addressing resources | |
KR20140026398A (ko) | 편의적 네트워크 업데이트 | |
US10609534B2 (en) | Feed service engine | |
US20180183897A1 (en) | A Method A Server And A Client For Policy Based Control Of M2M Devices | |
Chang et al. | A middleware for discovering proximity-based service-oriented industrial internet of things | |
EP3143781B1 (en) | Periodic management stabilization for internet of things | |
EP3501188B1 (en) | Method for enabling a communication device to receive a partial modification of a resource | |
Han et al. | Extending the devices profile for web services standard using a REST proxy | |
CN111480329B (zh) | 从源装置到数据请求器的数据 | |
Blondia | A queueing model for a wireless sensor node using energy harvesting | |
US10628079B1 (en) | Data caching for time-series analysis application | |
EP3373608A1 (en) | Method and apparatus for acquiring resources | |
US10812390B2 (en) | Intelligent load shedding of traffic based on current load state of target capacity | |
Reetz et al. | Towards global smart spaces: Merge wireless sensor networks into context-aware systems | |
EP3725107A1 (en) | Communications with constrained devices | |
US20160099997A1 (en) | Method and system for managing application data in a communication device | |
US20180227245A1 (en) | Method, apparatus and system for addressing resources | |
US12028403B2 (en) | Observation of resources by a CoAP client | |
WO2023030664A1 (en) | Configuring one or more iot devices | |
da Silva et al. | Energy Consumption in Mobile Devices Considering Communication Protocols | |
US20230353627A1 (en) | Observation of resources by a coap client |
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 |