CN108293067A - 针对物联网设备管理通信拥塞 - Google Patents
针对物联网设备管理通信拥塞 Download PDFInfo
- Publication number
- CN108293067A CN108293067A CN201680068397.5A CN201680068397A CN108293067A CN 108293067 A CN108293067 A CN 108293067A CN 201680068397 A CN201680068397 A CN 201680068397A CN 108293067 A CN108293067 A CN 108293067A
- Authority
- CN
- China
- Prior art keywords
- message
- iot
- back pressure
- rate
- cloud
- 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.)
- Granted
Links
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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/103—Active monitoring, e.g. heartbeat, ping or trace-route with adaptive polling, i.e. dynamically adapting the polling rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- 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
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Cardiology (AREA)
- Environmental & Geological Engineering (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了用于基于拥塞水平c来控制物联网(IoT)设备的方法和装置。示例方法包括对传感器进行轮询,将测量写入文件,解析文件以创建消息,以及针对背压警报消息进行检查。如果发现背压警报消息,则将该消息保存到高速缓存,并且改变轮询间隔。
Description
相关申请的交叉引用
本申请要求Nolan等人于2015年12月23日提交的题为“Managing CommunicationCongestion for Internet of Things Devices”的美国专利申请第14/757,743号的申请日的权益,并且该申请通过引入并入本文。
技术领域
本技术总体上涉及物联网(IoT)设备。更具体地,本技术涉及可以管理通信拥塞的设备。
背景技术
据估计,到2020年物联网(IoT)可能会使500亿台设备实现互联网连接。然而,这种设备数量可能会导致IoT设备与接收数据的协调器或服务器之间的通信信道的实质拥挤,特别是在设备故障期间。通信信道的拥挤可能导致丢失来自单独的IoT设备的消息,导致数据集不完整。
附图说明
图1是与多个物联网(IoT)设备进行通信的云计算网络或云的图示,多个物联网(IoT)设备中的至少一些与服务器进行通信。
图2是可以存在于IoT设备中的可以响应背压和控制数据传送的组件的框图。
图3是可以用于收集和发送来自多个IoT设备的消息的IoT网关的框图。
图4是其中背压控制驻留在云中完成的IoT部署的示例的框图。
图5是其中背压检测扩展到IoT网关的云100中的数据处理管线。
图6是使用跟踪器消息来测量系统拥塞的背压检测系统的示意图。
图7是用于来自边缘设备的增强型消息分发的方法的过程流程图。
图8是用于重放尚未成功发送到目的地的消息的方法的过程流程图。
图9是其中基于云的数据处理管线能够编排缓存的消息如何被重放的IoT系统的示意图。
图10是用于编排消息的方法的过程流程图。
图11是FIFO缓冲器的示意图,示出了向队列添加消息以及从队列中移除消息。
图12是用于使用FIFO缓冲器从IoT网关发送数据的方法的过程流程。
图13是LIFO缓冲器的示意图,示出了向队列添加消息以及从队列中移除消息。
图14是用于使用LIFO缓冲器从IoT网关发送数据的方法的过程流程。
图15是采样缓冲器的示意图,示出了向队列添加消息以及从队列中移除消息。
图16是用于使用采样缓冲器从IoT网关发送数据的方法的过程流程。
图17是非暂时性计算机可读介质1700的框图,其包括用于引导处理器管理IoT网关与云中的设备和系统之间的通信的指令。
在整个公开内容和附图中使用相同的附图标记来指代同样的组件和特征。100系列中的附图标记是指最初在图1中找到的特征;200系列中的附图标记是指最初在图2中找到的特征;并且以此类推。
具体实施方式
物联网(IoT)是这样的概念:其中大量计算设备彼此互连并且互连到互联网,以便以非常低的级别提供功能和数据获取。例如,IoT网络可以包括商业和家庭自动化设备,例如,水分配系统、电力分配系统、管线控制系统、工厂控制系统、灯开关、恒温器、锁、照相机、警报器、运动传感器等。在本文中称为IoT设备的这些设备可以通过远程计算机、服务器和其他系统进行访问,例如,以控制系统或访问数据。另外的IoT设备可能包括IoT网关,其用于将其他IoT设备耦合到云应用。
IoT设备的全球部署通常依赖于到后端的基于云的服务的通信。鉴于数十亿IoT设备的全球部署中涉及的底层无线网络的规模,可能经常出现网络连接中断和丢失。暂时的网络连接问题可能导致丢失有价值的传感器数据,并且可能显著增加在缓存的消息被分发或重放时的网络负载和后端服务器处理要求。
本文描述的技术提供后端数据处理管线,其具有在影响已部署网络的一部分的长期网络连接中断之后保护其自身免于数据泛滥的能力。使用这些技术,数据处理管线使用备用下游消息容量来全局或单独控制IoT网关进行重放的速率和模式,以显著降低数据处理负载和管线拥塞中的大峰值的可能性。
如本文的示例描述的,系统可以计算拥塞水平并向边缘设备发送警报。如本文所使用的,边缘设备可以是与多个IoT设备以及计算云中的服务器或其他设备进行通信的IoT网关。在一些实施例中,边缘设备可以是与计算云直接通信的IoT设备。此外,计算云或云包括移动电话系统、互联网服务提供商、路由器、网络、服务器以及传送或消耗数据的其他单元。警报也可以由任何兴趣方(例如,管线统计消费者)消耗和采取动作。任何数量的通信问题都可能干扰消息向云的传送,包括基于云的设备(例如,路由器和服务器以及其他)中的故障。
本文描述的示例可以包括具有背压检测的数据处理管线,以通过拥塞识别云中的通信问题。一旦检测到拥塞,就可以基于服务可用性、吞吐量和可用资源来量化拥塞。此外,云到边缘警报系统可以用于将云中的背压状态传达给边缘设备,例如,以触发边缘设备中的行为变化。警报系统可以将背压警报消息发送给边缘设备,或者创建待由边缘设备访问的背压警报消息,或这两者。
边缘设备中的行为变化可以包括在拥塞时间期间的不同报告机制,用于一旦拥塞被解除就发送数据积压的不同方法,或这两者。例如,基于IoT网关的消息分发和重放机制可以用于实现与动态消息缓存和传感器轮询决策相关的自动自适应。
在接收到背压警报时,可以使用缓冲器使用边缘设备(例如,IoT网关或IoT设备)上的本地资源来缓存传感器测量。这可能响应于可用云资源的临时过载而自动发生。此外,发送消息的速率可以根据拥塞水平的变化而自动调整,例如,减小或增加。这些行为可以响应于来自网络本身或来自对等系统的消息来实现。例如,系统可以动态地改变传感器被轮询以测量新的数据的速率以及数据被分发到云中的数据处理管线的速率。在这些确定中可以考虑云中的拥塞速率和剩余的本地资源(例如,在边缘设备处缓存数据的能力)两者。
一旦正常操作恢复,则系统可以自动处理在背压事件期间已经本地缓存的传感器测量的任何积压。保留测量时间戳,并且系统自动回填容量问题阻止从设备实时分发测量的任何时间段。
在边缘设备上缓存的数据不一定按照与其被获得的时间相同的时间次序进行分发。该系统提供了可配置的方法来分发首先测量的最新数据,最后测量的最新数据,或分发存储数据的随机样本。这提供了优先化边缘数据(例如,时间敏感的缓存的数据)的灵活性,以便通过后端系统改进总和计算。
图1是与多个物联网(IoT)设备102进行通信的云计算网络或云100的图示,多个物联网(IoT)设备102中的至少一些与服务器104进行通信。云100可以表示互联网,或者可以是广域网,例如,公司的专有网络。IoT设备102可以包括以各种组合分组的任何数量的不同类型的设备。例如,交通控制组106可以包括沿着城市中的街道的IoT设备102。这些IoT设备可以包括停车灯、交通流量监测器、照相机等。交通控制组106或其他子组可以通过诸如局域网、无线局域网等的子网108与云100进行通信。IoT设备102可以使用另一IoT设备102作为IoT网关118来与云100进行通信。
IoT设备102的其他组可以包括远程气象站109、本地信息终端110、警报系统112、自动取款机114和警报面板116以及许多其他设备。这些IoT设备102中的每个可以与其他IoT设备102、与服务器104或这两者进行通信。
如从图1可以看出的,大量的IoT设备102可以通过云100进行通信。这些IoT设备102中的每个可以生成时间顺序的数据流,包括例如传感器数据流。例如,IoT设备102的交通控制组106可以发送交通计数、交通速度、图像、降水量、温度测量等。给定发送数据的IoT设备102的数量,网络加载可能是大量的。如果从IoT设备102、在云100中或在服务器104处在数据管线中出现任何问题,则数据可能是无序的或丢失。
如本文进一步详细描述的,可以监测网络拥塞以改变IoT设备102的功能,例如,控制数据收集和传送(本文中统称为数据传送)的速率和序列。这可以通过在云100中、在IoT网关118处或在IoT设备102处进行背压监测来执行。云100中的背压监测可以用于生成发送到IoT网关118或IoT设备102的警报以控制数据传送。
图2是可以存在于IoT设备200中的可以响应背压和控制数据传送的组件的框图。相同编号的项目如关于图1所描述的。IoT设备200可以包括这些组件的任何组合。这些组件可以实现为在IoT设备200中适配的IC或其部分、分立电子器件或其他模块、逻辑、硬件、软件、固件或其组合,或者实现为以其他方式并入较大系统的机架内的组件。图2的框图旨在示出IoT设备200的组件的高级别视图。然而,在其他实现方式中可以省略示出的组件中的一些组件,可以存在附加的组件,并且可以出现示出的组件的不同布置。IoT设备200可以是交通监测设备、远程气象站、SCADA(监督控制和数据获取)网络中的可编程逻辑控制器(PLC)或远程终端单元(RTU)、警报系统设备、智能电视、蜂窝电话或任何数量的其他IoT设备102,如关于图1所讨论的。
如图2所示,IoT设备200可以包括处理器202,处理器202可以是微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器或其他已知的处理元件。处理器202可以是片上系统(SoC)的一部分,其中处理器202和其他组件形成单个集成电路或单个封装。作为示例,处理器202可以包括基于架构CoreTM的处理器,例如,QuarkTM、AtomTM、i3、i5、i7或MCU级处理器,或者可从公司(Santa Clara,CA)获得的另一种这样的处理器。然而,可以使用其他低功率处理器,例如,可从Sunnyvale,CA的Advanced MicroDevices公司(AMD)获得的,来自Sunnyvale,CA的MIPS技术公司的基于MIPS的设计,从ARM控股公司或其客户或者其许可方或采用者许可的基于ARM的设计。这些处理器可以包括以下单元:例如,来自公司的A5/A6处理器,来自技术公司的SnapdragonTM处理器,或来自Texas Instruments公司的OMATM处理器。
处理器202可以与系统存储器204通信。可以使用任何数量的存储器设备来提供给定量的系统存储器。例如,存储器可以是根据联合电子器件工程委员会(JEDEC)基于低功率双倍数据速率(LPDDR)的设计(例如,根据JEDEC JESD 209-2E(2009年4月公布)的当前LPDDR2标准,或者将提供对LPDDR2的扩展以增加带宽的被称为LPDDR3或LPDDR4的下一代LPDDR标准)的随机存取存储器(RAM)。在各种实现方式中,单独的存储器设备可以是任何数量的不同封装类型,例如,单管芯封装(SDP)、双管芯封装(DDP)或四管芯封装(Q17P)。在一些实施例中,这些设备可以直接焊接到主板上以提供较低轮廓的解决方案,而在其他实施例中,设备被配置为一个或多个存储器模块,这些模块继而通过给定连接器耦合到主板。可以使用任何数量的其他存储器实现方式,例如,诸如不同种类的双列直插式存储器模块(DIMM)之类的其他类型的存储器模块,包括但不限于microDIMM或MiniDIMM。例如,存储器大小可以在2GB到16GB之间,并且可以配置为DDR3LM封装或LPDDR2或LPDDR3存储器,其经由球栅阵列(BGA)焊接到主板上。
为了提供诸如数据、应用、操作系统等的信息的持久存储,大容量存储装置206还可以耦合到处理器202。为了实现更薄且更轻的系统设计,大容量存储装置可以经由固态硬盘驱动器(SSDD)实现。然而,可以在一些IoT设备200中使用微型硬盘驱动器(HDD)来实现大容量存储装置。此外,除了或替代所描述的技术,可以将任何数量的新技术用于大容量存储装置206,例如,电阻变化存储器、相变存储器、全息存储器或化学存储器以及其他。例如,IoT设备200可以并入来自和的3D XPOINT存储器。
这些组件可以通过总线208进行通信。总线208可以包括任何数量的技术,包括工业标准架构(ISA)、扩展ISA(EISA)、外围组件互连(PCI)、外围组件互连扩展(PCIx)、快速PCI(PCIe)或任何数量的其他技术。总线208可以是专用总线,例如,用于基于SoC的系统中。也可以使用其他总线系统,例如I2C接口、SPI接口和点对点接口以及其他。
总线208可以将处理器202耦合到用于连接外部设备的接口210。外部设备可以包括传感器212,例如,交通传感器、雷达速度检测器、照相机、流量传感器、温度传感器、运动传感器、风速传感器、压力传感器、气压传感器等。接口210可以用于将IoT设备200连接到致动器214,例如,交通灯、闪光灯、阀门致动器、锁定螺线管、可听声音发生器、视觉警告设备等。
虽然未示出,但是各种输入/输出(I/O)设备可以存在于IoT设备200内或连接到IoT设备200。例如,可以包括显示器以显示信息,例如,传感器读数或致动器位置。可以包括输入设备(例如,触摸屏或小键盘)来接受输入。
IoT设备200可以以各种方式(包括无线地)与云100通信。在图2所示的实施例中,可以存在各种无线模块,其中的每个无线模块可以对应于针对特定无线通信协议配置的无线电。如图2所示,WLAN单元216可以用于实现根据电气和电子工程师协会(IEEE)802.11标准的Wi-FiTM通信。另外,例如根据蜂窝或其他无线广域协议的无线广域通信可以经由WWAN单元218发生。IoT设备200不限于这些类型的无线电收发机,而是可以包括任何数量的其他无线电通信设备,例如,与如由特殊兴趣组定义的标准兼容的收发机。例如,IoT设备200可以根据IEEE 802.15.4标准以及其他通过无线个域网(WPAN)进行通信。
IoT设备200可以包括网络接口控制器220,以通过以太网接口与云100通信。这可以包括通过由多个IoT设备200共享的小型有线或无线网络进行通信,该多个IoT设备200通过IoT网关118与云100通信,如关于图1所描述的。例如,IoT设备200可以是自组织网络或网状网络的一部分,其中多个设备直接在彼此之间传递通信,例如,遵循优化的链路状态路由(OLSR)协议或者移动自组织联网的更好方法(B.A.T.M.A.N.)以及其他。网状网络可以例如通过IoT网关118与云进行通信。
IoT设备200可以由本地电源(例如,电池222)供电。本地电源可以包括除了或替代电池222的任何数量的其他单元,例如,对电池222充电的太阳能电池或风力发电机,以及其他。
大容量存储装置206可以包括用于实现本文描述的数据传送功能的多个模块。这些模块可以包括数据传送控制器224,其控制从IoT设备200到云100中的协调器或服务器的数据传送。数据传送控制器224可以存储由于网络拥塞而不能发送的数据。此外,数据传送控制器224可以与系统控制器(未示出)一起工作,以例如根据可用存储空间来调整从传感器212收集数据的速率。
背压监测器226可以确定云中的背压,例如,如使用关于图6描述的跟踪器技术所确定的。在IoT设备200的情况下,背压监测器226可以被配置为从IoT网关或云100或两者中的背压监测器接收背压警报(例如,消息)。背压监测器226可以指示数据传送控制器224调整数据(例如,具有传感器读数和时间戳的消息)被发送到云100的速率。
数据存储库228可以用作本地缓冲器以保持由于云100中的网络拥塞而不能立即发送的消息。数据存储库228可以由数据传送控制器230使用。在一些实施例中,消息可以直接在数据存储库228中构建并存储,然后在数据传送控制器224的控制下从数据存储库228发送。
数据积压传送控制器230可以传送在网络容量问题期间已经在数据存储库228中建立的消息。例如,不是在恢复通信时立即尝试发送积压的消息,而是数据积压传送控制器230可以使用多种算法递增地发送消息。这些算法可以包括后进先出(LIFO)算法、先进先出(FIFO)算法或随机采样算法。
图3是可以用于收集和发送来自多个IoT设备的消息的IoT网关300的框图。相同编号的项目如关于图2所描述的。可以理解,IoT网关300不限于所示出的单元,而是可以包括任何数量的附加系统,包括例如传感器和致动器、WWAN系统等。
IoT网关300可以用作增强型分发系统。例如,IoT网关300可以使用本文描述的技术来监测云或网络容量问题。此外,控制缓存决策和轮询决策的控制算法可以在IoT网关300中实现。
关于图2的IoT设备200,IoT网关300可以包括这些组件的任何组合。这些组件可以实现为在IoT网关300中适配的IC或其部分、分立电子设备或其他模块、逻辑、硬件、软件、固件或其组合,或者实现为以其他方式并入较大系统的机架内的组件。图3的框图旨在示出IoT网关300的组件的高级别视图。然而,在其他实现方式中可以省略示出的组件中的一些组件,可以存在附加的组件,并且可以出现示出的组件的不同布置。此外,所使用的单元中的任何单元可以与图2的IoT设备200中使用的单元相同或不同。
虽然未示出,但是各种输入/输出(I/O)设备可以存在于IoT网关300内或连接到IoT网关300。例如,可以包括显示器以显示信息,例如,与网关通信的IoT设备200的状态。可以包括输入设备(例如,触摸屏或小键盘)来接受输入。
IoT网关300可以以各种方式(包括无线方式)与多个IoT设备200通信。在图3所示的实施例中,无线302模块用于与IoT设备200通信。无线302模块可以包括WLAN无线电或蓝牙无线电以及其他。例如,IoT网关300可以根据IEEE 802.15.4标准以及其他通过无线个域网(WPAN)与IoT设备200通信。
IoT网关300可以包括网络接口控制器304,以通过以太网接口与云100通信。IoT网关300可以是自组织网络或网状网络的一部分,其中多个设备直接在彼此之间传递通信,例如,遵循优化的链路状态路由(OLSR)协议或者移动自组织联网的更好方法(B.A.T.M.A.N.)以及其他。然后网状网络可以通过IoT网关300与云100中的设备进行通信。
IoT网关300可以由本地电源(例如,电池306)供电。本地电源可以包括除了或替代电池306的任何数量的其他单元,例如,对电池306充电的线路连接的电源或充电器308、太阳能电池或风力发电机以及其他。
大容量存储装置206可以包括用于实现本文描述的数据传送功能多个模块。这些模块可以包括数据传送控制器310,其控制到云100中的协调器或服务器的数据传送。数据传送控制器310可以存储来自传感器212和IoT设备200的由于网络拥塞而不能被发送的数据。此外,例如,根据IoT网关300中的可用存储空间相比IoT设备200中的可用存储空间,数据传送控制器310可以指示IoT设备200调整其向IoT网关300发送数据的速率或者从传感器212收集数据的速率。
例如,如使用关于图6描述的跟踪器技术所确定的,诸如跟踪器控制器312的背压监测器可以确定云中的背压。跟踪器控制器312可以被配置为从云100中的背压监测器接收背压警报(例如,消息)。跟踪器控制器312可以指示数据传送控制器310调整数据(例如,具有传感器读数和时间戳的消息)被发送到云100的速率。
数据存储库314或消息高速缓存可以用作本地缓冲器以保持由于云100中的网络拥塞而不能立即发送的来自IoT设备200的消息或传感器读数。数据存储库314可以由数据传送控制器310使用。在一些实施例中,数据存储库314可以使用轻量级数据库方法(例如,SQLite)来实现,其中每个新缓存的消息与索引和时间戳相关联。当消息被推入高速缓存时,索引递增。时间戳的示例是UNIX纪元时间。时间戳可以是针对以秒为单位的分辨率的10位UNIX纪元时间表示或针对毫秒分辨率的13位UNIX纪元时间戳。
数据积压传送控制器316可以传送在网络容量问题期间已经在数据存储库314中建立的消息。例如,不是在恢复通信时立即尝试发送积压的消息,而是数据积压传送控制器316可以使用多种算法递增地发送消息。这些算法可以包括后进先出(LIFO)算法、先进先出(FIFO)算法或随机采样算法。此外,数据积压传送控制器316可以被增强以优先化具有较高熵的消息。熵可以包括被认为比旧观测更有价值的近期观测。
例如,如果虚拟地实现功能的一部分,则IoT网关300可以具有比图3所示的少的功能单元。在这种类型的实现方式中,IoT网关300可以是通用设备,例如,其具有为虚拟机(VM)的操作预留的存储器量(例如,200Mb)。为虚拟机预留的RAM量可以基于给予VM的功能而进行缩放。这可以允许针对IoT网关300和IoT设备200使用更通用的计算设备,因为虚拟机的设计可以不取决于底层硬件,并且只有用于VM的硬件接口对于IoT网关300是唯一的。因此,VM可以跨多个平台实现而不需要大范围的修改。
虚拟机可以包括与用于实现背压系统的单元310-316类似的功能单元。这可以包括用于保持来自其他IoT设备200和传感器214的数据的数据存储库,用于与云中的单元交互的数据传送控制器,包括协议转换和数据传送功能以及其他。VM中的与跟踪器控制器类似的单元可以用于确定云中的背压。VM中的积压传送控制器可以实现本文描述的用于发送例如由于云中的背压已经积压的数据的功能。
虚拟机还可以用于实现虚拟传感器。这些传感器可以使用来自真实传感器的数据来实现提供计算出的值的传感器。例如,虚拟露点传感器可以使用来自温度传感器和压力传感器的测量来计算露点的测量。可以实现的其他虚拟传感器包括对其他传感器的测试和验证以及其他。
背压测量系统本身可以实现为虚拟传感器,例如,在IoT网关300、IoT设备200中的虚拟机中,或者在例如在云中的另一单元中。在这些实施例中,背压测量可以被视为从虚拟背压传感器读取的传感器读数。如本文描述的,背压测量然后可以用于控制数据传送。因此,背压测量的收集和使用可以在不实现任何消息传递系统、附加通信系统或协议的情况下集成到系统中。
图4是其中背压控制驻留在云100中完成的IoT部署的示例的框图。相同编号的项目如关于图1和图3所描述的。在该示例中,云100包括路由器402、消息总线404、管线处理应用406和存储系统408。管线处理应用406和存储系统408可以是服务器104的一部分。
针对特定示例提供下面的数字来阐明技术。然而,这仅仅是许多可能配置的一个示例。在该示例中,可以假设20000个IoT网关300跨城市分布。IoT网关300中的每个具有10个传感器,这10个传感器例如直接附接到传感器接口或作为其他IoT设备的一部分。IoT网关300可以以固定的或事件驱动的时间间隔发送来自其10个传感器中的每个传感器的一个数据观测。从每个IoT网关300发送的平均消息大小在该配置中可以是3.5Kb。每个IoT网关300都具有8GB SD卡,其中一旦安装了操作系统和应用,该SD卡大约有6GB可用。
云100中的数据路由器402具有两个节点,每个节点具有用作消息缓冲器的大约40GB的本地存储。云中的消息总线404具有两个节点,其具有用作消息缓冲器的大约40GB的本地存储。
管线处理应用406具有两个节点,而不要求缓存消息。在其上运行的管线应用(例如,数据处理应用)消耗来自消息总线404的消息,处理消息并将数据存储在存储系统408中。如果存储系统408关闭,则可以使用背压消息410来停止来自消息总线404的消息,其中消息可以在消息总线404中被缓冲。如果消息总线404关闭,则消息在数据路由器402中排队。
在该示例中,存储系统408具有跨七个节点的分布式数据库集群,其中每个实例具有大约10TB的存储,总共实现大约70TB。整个系统的消息缓冲容量大约为120160GB(20000×6GB+2×40GB+2×40GB)。然而,仅这种容量的大约0.15%在云中。
不具有本文描述的技术的系统不能利用不在云100中的资源。因此,只能通过在管线中的适当点处缓冲消息来响应中断和拥塞。此外,可能限于仅启用对缓冲组件的自动缩放并处理缩放服务的复杂性,以便对数据排队直到正常服务恢复为止。
相反,使用本文描述的技术的系统可以响应可能来自云、来自网络本身或来自允许IoT网关300和IoT设备102使用本地资源来在其资源处对消息排队或者不那么频繁地对传感器进行轮询以降低生成新数据的速率或者这两者的对等设备的拥塞消息。
本文描述的技术绑定两个域,使得能够检测到云中或其他地方(例如,网络中或对等设备中)可能存在的背压机制。这些可以用于改变更接近到达云的数据的真实源的边缘设备的操作。可以使用控制云中的数据流的消息将背压方法扩展到边缘设备。
此外,背压检测器可以在数据路由器402或消息总线404中实现为例如虚拟机(VM)。在该实施例中,背压检测可以实现为VM中的虚拟传感器,该虚拟传感器可以被诸如IoT网关300和IoT设备200之类的其他单元读取,用于对数据传送进行背压控制。
在一些实施例中,IoT网关300可以作为VM在数据路由器402或消息总线404中实现。在这些实施例中,来自IoT设备200的数据流向虚拟IoT网关以供传送到云中的其他单元。虚拟IoT网关可以实现其他类型的虚拟传感器,例如,基于来自IoT设备200的传感器读数的计算的值。
图5是其中背压检测扩展到IoT网关300的云100中的数据处理管线。相同编号的项目如关于图1、图3和图4所描述的。在该示例中,背压消息410可以从管线处理应用406发送到沿着数据管线的所有单元,包括耦合到IoT网关300的数据路由器402。此外,可以从数据路由器402将背压消息502发送到云外的IoT网关300,以实现对数据生成和消息传输速率的本地控制,允许对消息进行本地缓存。
IoT网关300可以执行多个功能。IoT网关300可以充当数据源,因为其直接对传感器进行轮询,或者充当用于IoT设备通过网络发送数据的数据聚合点或入口点。IoT网关300可以托管消息分发和重放系统,并且响应于来自云的背压消息502而采取动作。
数据路由器402使得例如来自IoT网关300的双向边缘能够进行云通信。在一个实施例中,多协议云网关(MPCG)可以充当数据路由器,实现诸如消息排队遥测传输(MQTT)和代表性状态传输(REST)之类的多种协议。
消息总线404可以是发布/订阅代理。在一个实施例中,来自Apache软件基金会的Apache Kafka执行该功能。数据流入消息总线404并由管线应用从其消耗。
管线处理应用406存储数据,执行数据分析,并且计算一些统计信息,例如,消息吞吐率。管线处理应用406还可能生成致动信息并检测管线中的拥塞。在一个实施例中,来自Typesafe公司的Akka托管该功能。管线处理组件可以检测两种类型的条件的存在:由一个或多个管线组件不可用导致的背压,以及由一个或多个管线组件的约束导致的背压。
存储系统408可以利用任何数量的服务器或云存储系统来实现。在一个实施例中,存储系统408可以利用Cloudera顶部的OpenTSDB API来实现。OpenTSDB实现Telnet和REST接口。
图6是使用跟踪器消息来测量系统拥塞的背压检测系统的示意图。相同编号的项目如关于图1和4所描述的。开始,管线处理应用406发送一批跟踪器消息602-606,向1至n个云组件中的每个云组件发送一个跟踪器消息。跟踪器是其内容和分发频率已知的特殊消息。
跟踪器消息602-606通过管线的每个组件。例如,发送到数据路由器402的跟踪器消息602被转发到消息总线404作为跟踪器消息608。从消息总线404,跟踪器消息608和604两者都被转发(例如,返回)到管线处理应用406作为跟踪器消息610。发送到存储系统408的跟踪器消息606作为跟踪器消息602被返回。管线处理应用406可以监测返回的跟踪器消息610和612或者响应,该响应可以如线614指示的作为任何其他消息存储在例如响应的存储库中。因此,可以查询存储的消息。缺少一个或多个消息指示管线组件可能关闭。
另外,发送的跟踪器消息与返回的跟踪器消息或响应之间的时间延迟允许确定管线中的拥塞水平。将拥塞水平c计算为吞吐量拥塞水平tc或缓冲器拥塞水平bc中的较小者。这些值可以通过以固定时间间隔t0、t1、t2等向云组件1至n发送多批跟踪器消息m1至mn来确定。
如果组件故障并且没有响应,则向该组件发送跟踪器消息将失败,从而引出异常。因此可以假定组件关闭。因此,c被设置为0并发送警报。否则,所有跟踪器消息得以成功发送。
在第二时间t0'、t1'、t2'(该间隔是可配置的),可以针对跟踪器消息提交查询。缺失跟踪器消息指示一个或多个组件关闭或严重受限。如果在可配置的时间段之后没有接收到跟踪器消息m1和m2,但是接收到m3至mn,则知道组件1、2或这两者有问题,并且c被设置为0,因为管线具有严重的服务可用性问题。对于每个跟踪器消息,计算发送该消息与存储该消息的时间之间的时间差。还计算每个跟踪器消息之间的相对时间差。
这些计算的结果提供了独立的系统,其能够量化每个管线组件的性能而不依赖于任一组件或特定实现方式。表1示出了可以从跟踪器消息中获得的结果。
表1:网络拥塞的跟踪器消息测量。
对于批次2、3等,重复跟踪器消息过程,维护两个计数,具有提供实时当前性能的tt值和tp值的平均值的滑动时间窗。第二计数是tt值和tp值的所有时间的平均值,其提供了基线性能。将当前性能与基线性能进行比较,以计算总体管线和每个管线组件的吞吐量拥塞率tc,其中:
tc=当前/基线
(如果当前>基线,则tc=1;tc不能>1或<0)
然后计算能够缓冲消息的管线的组件的缓冲器拥塞bc。通常,缓冲器拥塞度量可以如下表达:
其中0≤bc[n]≤1
具体地,根据空闲磁盘空间的量、消息速率、消息大小以及填充缓冲器所要求的秒数来确定缓冲器拥塞度量。填充缓冲器所要求的秒数n如下计算:
其中df是以kB为单位的当前空闲磁盘空间总数,mk表示以kB为单位的平均消息大小,并且ms表示如从处理管线确定的当前每秒消息速率。如下计算缓冲器拥塞bc[n]:
其中dp表示云组件上的空闲磁盘空间百分比,pthresh是可配置的空闲磁盘空间阈值(例如,50%),并且如下计算bcn:
其中
并且dmax表示系统可用的最大磁盘空间。
管线中的最低值c指示哪个组件是最受限的。这样的数据处理管线只执行其最慢的组件。如果c的值显著变化,则可能会将其作为警报发送到IoT网关(例如,在消息中)。在下面的样本JavaScript对象表示法(JSON)消息中,拥塞值为0.6112:
一旦IoT网关接收到拥塞警报,IoT网关就可以调整其对传感器进行轮询(例如,生成新数据)的速率,以及其将数据发送到云的速率。类似地,IoT网关可以将消息发送到使用IoT网关作为到云的连接的任何IoT设备,指示IoT设备调整发送速率或数据收集速率。在上面的示例中,IoT网关可以减慢其向云发送数据的速率,直到拥塞速率恢复到较接近一。背压警报还可以用于云中,以允许消息在适当的组件中排队,例如,在消息总线中,如果稍后的组件发生故障或拥塞。
图7是用于来自边缘设备的增强型消息分发的方法700的过程流程图。当系统启动并置于与云通信时,方法700在框702处开始。
在框704处,按照时间表对传感器和/或感测节点进行轮询。从感测节点收集的数据导致名称-值观测由传感器应用写入指定目录的文件中。
在框706处,监测指定的目录。执行此操作以检查传感器数据文件是否已经在所监测的目录内创建或更新。在框708处,关于是否存在新的传感器数据做出确定。
如果是,则在框710处,打开传感器数据文件并解析名称-值对字符串信息。在解析之后,创建JSON有效载荷以准备分发到目的地。文件名和时间戳的细节作为元数据插入到处理队列中。消息被推送到队列缓冲器上,以准备好分发到目的地。发布者从队列中弹出消息。
在框712处,关于是否已经接收到背压警报做出确定。如果是,并且存在背压条件,则不会发送该消息。该消息保留在队列中,并且过程流程前进至框714。
在框714处,调整轮询间隔。轮询间隔如下初始化:
pi=max(r,b)
其中r表示当前速率,而b表示背压速率。背压速率是针对当前拥塞c调整的速率,其可以计算为c×r。轮询间隔pi然后可以如下优化:
其中mk表示以kB为单位来表达的消息大小,d表示以kB为单位来表达的边缘设备上的空闲磁盘空间的量,r表示当前消息传递速率,并且b表示背压速率。
如果在框712处没有检测到背压条件,则过程流程前进至框716。在框716处,将消息718分发到目的地。
在框720处,关于消息是否被成功分发做出确定。如果是,则过程流程前进至框722。在框722处,提取消息元数据(例如,文件名和时间戳)。使用元数据信息,原始传感器消息文件从所监测的目录移至用于经处理的信息的目录。
如果在框720处确定消息未成功分发,则其保留在所监测目录中(例如,在积压上),以便在稍后阶段例如使用图8的方法800进行重放。过程流程然后返回至框706。
图8是用于重放尚未成功发送到目的地的消息的方法800的过程流程图。在方法800中,分析积压并且计算分发或重放速率r,使得如果云处于背压状态则降低到云系统的消息的总体流量,或者如果云不受限则增加该总体流量。方法800在框802处开始,此时检测到消息尚未成功分发。
在框804处,通过检查是否存在背压警报来检查背压状态。在框806处,如果不存在背压警报,则IoT网关或设备请求背压警报。如果最近接收到背压警报消息,则可能无需联系云。该时段可以被配置。获得警报的通信可以是MQTT订阅、REST或web套接字调用以及其他。
如果存在更新的背压警报,则在框808处,可以计算更新的重放速率r'。操作模式可以根据重放速率值来确定。在正常操作期间,r==1,如果r<1则发生拥塞场景,并且当r>1时则系统处于重放模式。一般的信息分发频率f是可配置的常量,例如其可以是每分钟一次。重放速率可以如下计算:
r'=r·f
其中r'表示新的重放速率,并且f表示消息分发频率。
在框810处,关于是否重放速率>0做出确定。如果是,则尝试发送消息,并且过程流程前进至框812。在框812处,可以对缓存的消息执行熵分析以确定应该重放哪些消息。例如,消息可以在LIFO队列中排序(后进先出),使得最先发送最新的观测。这可能是重要的,因为近期的观测可能具有比旧信息更高的熵,例如,对当前状态更重要。可选地,LIFO队列然后可以基于熵分析进一步分类。这可以对缓存的消息执行以确定应该重放哪些消息。分析过程的示例是根据所看到的值或度量或者看到这些值范围或度量名称的频率来计算超出正常范围的观测。不那么频繁出现的范围或度量名称具有潜在较高的熵(例如,信息值)。
在框814处,将消息推送到消息分发系统处理队列。在框816处,例如使用图7的消息分发方法将消息发送到云。
在框818处,关于积压是否为空做出确定,例如,所有剩余的缓存消息已经被成功地分发。如果是,则过程流程在框820处结束。如果否,则过程流程返回至框804以继续方法800。如果在重放过程期间发生进一步的网络连接中断,则重放机制也将结束并返回至网络连接监测状态。
出于说明的目的,示例拥塞消息如下所示,拥塞值为0.6112。该消息可以来自任何源以任何格式,只要该消息包含针对拥塞水平的数值。在基本实现方式中,值可以简单地为0以指示存在拥塞,或值可以为1以指示不存在拥塞。在更复杂的系统中,拥塞水平可以以特定方式计算,并且可以表示可以实现对IoT网关进行更精细粒度的决策的拥塞水平:
这为编排IoT网关如何将数据分发到后端数据管线系统提供了技术解决方案。其为后移延迟和消息传递策略提供细粒度的支持,例如,最新消息最先,最旧消息最先或采样消息。IoT网关消息传递编排由后端管线系统驱动,并且除了基于全网关外还可以对每个网关进行操作。
图9是IoT系统900的示意图,其中基于云的数据处理管线902能够编排如何重放缓存的消息。描述了三个示例,先进先出(FIFO)、后进先出(LIFO)和随机消息选择。在图9中,多个IoT端点(例如,本示例中的传感器904)连接到IoT网关906-910。IoT网关906-910继而连接到基于云的数据处理管线902。
IoT网关906-910中的每个具有不同大小的消息高速缓存912-916。这些缓存的消息可能是由于暂时的网络中断而导致的,网络中断阻止传感器消息的正常分发,并且不得不将传感器消息存储在IoT网关906、908或910上直到网络连接恢复为止。
通常,在恢复网络连接时,IoT网关906-910将开始以高速缓存中最旧的消息开始来重放缓存的消息,并前进至最新的缓存消息,直到高速缓存耗尽为止。另外,正常的目标可以是尽快重放这些缓存的消息。然而,这可能对基于云的数据处理管线902造成问题,例如,导致大的处理负载峰值、拥塞和高网络业务负载的数据泛滥。
在本文描述的技术中,基于云的数据处理管线902可以编排如何重放缓存的网关消息。可以使用三个系统,其中指示不同的IoT网关906、908或910通过不同的方法发送消息。例如,可以指示第一IoT网关906按照先进先出(FIFO)重放来自消息高速缓存912的消息。这是默认行为,因为端点消息以它们被缓存的相同时间次序进行重放。
可以指示第二IoT网关908按照后进先出(LIFO)重放来自消息高速缓存914的消息。这可以用于时间敏感的缓存消息,例如用于管线、业务等的控制系统。在恢复网络连接时,最新的消息首先重放,以便使对时间敏感的IoT应用的影响最小化。
可以指示第三IoT网关910通过随机消息选择和分发(采样)来重放来自消息高速缓存916的消息。由于缓存的消息的数量可以扩展到数千,所以这种技术可以在数据丢失的时段期间提供时段的更准确的图片。这种策略使得能够重放时间采样的消息,以便为后端应用提供足够的数据点,以在受网络中断影响的时段内开展综合分析。随着重放策略前进,中间消息然后被重放,以最终回填整个时间段。
在所有重放策略中,消息重放事件之间的间隔可以由基于云的数据处理管线902配置。这对于最小化由于数据泛滥导致的大处理工作负载峰值的可能性尤其有用。如果有必要,则可以针对每个IoT网关对重放速率进行精细调整。
这个系统可以支持这三个示例模式的附加模式和变型。基于云的数据处理管线902可以使用两种方法来配置IoT网关消息传递策略,通过向每个连接的网关广播全局控制消息以用于全体消息传递策略改变,或者通过向IoT网关906、908或910发送控制消息的针对性分发。控制消息可以不是协议特定的。在示例中,消息可以包括JavaScript对象表示法(JSON)消息、MQTT主题或有效载荷、或REST消息(例如,HTTP POST)以及其他。
这可以通过描述数据存储和流的示例来进一步解释。至于先前的示例,可以理解,所使用的数字仅仅代表单个情况。在这个示例中,10000个IoT网关可以跨大城市和郊区分布。每个网关可以负责十个IoT端点,例如,传感器或IoT设备。IoT网关每分钟从十个端点中的每个分发一个观测消息,导致每小时600条消息。在本示例中,从每个网关发送的平均消息大小可能约为3kB。整个部署的每小时消息的总数量约为600万,并且整个消息传递工作负载的总大小约为17.16GB/小时。
如果网络连接中断在2小时时段内影响10%的网关,则涉及的1000个网关必须在这2小时时段内各自缓存其600条消息/小时,直到连接恢复为止。总共有1200万条消息在网关上被缓存,表示约3.43GB。
在恢复网络连接之后,如果缓存的消息全部在恢复网络连接之后的一小时时段内重放,则消息传递有效载荷的总大小可以暂时增加至约20.59GB。这表示后端数据管线处理工作负载增加了20%。
然而,如果数据处理管线使用采样数据的组合来编排重放过程,例如指示所涉及的IoT网关采取每第10次测量,使发送重放的消息减少十倍,并且将LIFO用于时间严格的应用,后端数据管线处理工作负载将增加约为2%。因此,额外的工作负载减少十倍。
图10是用于编排消息的方法的过程流程图。该方法在框1002处开始,例如,当对IoT网关供电时。在框1004处,建立IoT网关与后端数据处理管线之间的通信。在框1006处,如果端点消息是未决的,则网关开始分发消息。
在框1008处,IoT网关针对来自后端的下游配置消息进行检查。在框1010处,关于是否已经接收到请求的模式改变做出确定。如果否,则过程流程返回至框1006以继续进行消息分发。
如果已经接收到后端请求,则过程流程前进至框1012,其中对消息进行解析。在框1014处,关于是否选择LIFO模式做出确定。如果是,则在框1016处配置LIFO模式。然后,过程流程返回至框1006。
在框1014处,关于是否选择LIFO模式做出确定。如果是,则在框1016处配置LIFO模式。然后,过程流程返回至框1006。
在框1018处,关于是否选择采样模式做出确定。如果是,则在框1020处配置采样模式。然后,过程流程返回至框1006。
如果没有选择其他模式,则在框1022处选择FIFO模式。然后在框1024处配置FIFO模式。然后,过程流程返回至框1006。
下面的图中提供了这三种模式中的每种模式的示例。这些示例包括以JSON格式包含重放策略指令的后端到网关控制消息。在每个示例中,消息的值字段中包含显著信息,其中陈述了期望的操作模式和重放事件之间的以秒为单位表达的间隔两者。在这些示例情况中,模式为FIFO、LIFO和SAMPLED(采样)(重放间隔为12秒)。
图11是FIFO缓冲器的示意图,示出了向队列1100添加消息并且从队列1100中移除消息。在该示意图中,时间1102向上前进。因此,新创建的消息1104被添加到队列1100的顶部,而较旧的消息1106被从队列1100的底部分发。
下面示出了可以用于激活该行为的JSON消息:
图12是用于使用FIFO缓冲器从IoT网关发送数据的方法1200的过程流程。方法1200在框1202处开始,此时已经选择FIFO,并且缓冲器包括尚未成功分发的消息。在框1204处,方法1200暂停以等待下一重放事件,例如,当拥塞已经下降指示可以发送所存储的消息时。在这个示例中,使用SQLite数据库,尽管可以使用任何小型脚本数据库。
当重放事件被触发时,在框1206处,使用SELECT语句来获得选定消息的索引。对于FIFO操作,消息重放操作选择队列中最旧的消息(例如,具有MAX(索引)),或与行的最大索引相关联的消息。在框1208处,分发消息。在框1210处,关于发送是否成功做出确定。如果否,则过程流程返回至框1204以等待下一重放事件。
如果在框1210处确定分发成功,则过程流程前进至框1212。在框1212处,将成功分发的消息从高速缓存中移除,并且过程流程返回至框1204以等待下一重放事件。
在下一重放事件中,然后可以选择、分发下一最旧的消息,并且在成功分发后将其从数据库中移除。该过程继续直到高速缓存已耗尽或直到发生另一网络连接中断为止。
图13是LIFO缓冲器的示意图,示出了向队列1300添加消息并从队列1300中移除消息。在该示意图中,时间1302向上前进。因此,新创建的消息1304被添加到队列1300的底部,较旧的消息上移。更新的消息1306也从队列1300的底部分发,优先于较旧的消息。以这种方式,时间关键的消息可以优先于较旧的、可能不那么相关的消息而发送和接收。
下面示出了可以用于激活该行为的JSON消息:
图14是用于使用LIFO缓冲器从IoT网关发送数据的方法1400的过程流程。方法1400在框1402处开始,此时已经选择LIFO模式,并且缓冲器包括尚未成功分发的消息。在框1404处,方法1400暂停以等待下一重放事件,例如,当拥塞已经下降指示可以发送所存储的消息时。关于FIFO方法,使用SQLite数据库,尽管可以使用任何小型脚本数据库。
当重放事件被触发时,在框1406处,使用SELECT语句来获得选定消息的索引。对于LIFO操作,消息重放操作选择队列中最旧的消息(例如,其具有MIN(索引)),或与行的最小索引相关联的消息。在框1408处,分发消息。在框1410处,关于发送是否成功做出确定。如果否,则过程流程返回至框1404以等待下一重放事件。
如果在框1410处确定分发成功,则过程流程前进至框1412。在框1412处,将成功分发的消息从高速缓存中移除,并且过程流程返回至框1404以等待下一重放事件。
在下一重放事件中,然后可以选择、分发下一最新的消息,并且在成功分发后将其从数据库中移除。该过程继续直到高速缓存已耗尽或直到发生另一网络连接中断为止。
图15是采样缓冲器的示意图,示出了向队列1500添加消息并且从队列1500中移除消息。在该示意图中,时间1502向上前进。新创建的消息1504被添加到队列1500的底部,较旧的消息上移,但是新创建的消息可以被添加到队列1500的任一端。使用随机采样技术从队列1500中选择用于分发的消息1506。以这种方式,后端处理应用可以在读数之间插入或以其他方式预测值。随着更多的读数到达,预测变得更准确,直到其已经赶上当前值为止。
下面示出了可以用于激活该行为的JSON消息:
图16是用于使用采样缓冲器从IoT网关发送数据的方法1600的过程流程。方法1600在框1602处开始,此时已经选择采样模式,并且缓冲器包括尚未成功分发的消息。在框1604处,方法1600暂停以等待下一重放事件,例如,当拥塞已经下降指示可以发送所存储的消息时。关于上面的方法,可以使用SQLite数据库,尽管可以使用任何小型脚本数据库。
当重放事件被触发时,在框1606处,可以首先分发最新和最旧的消息以包围测量集合。生成随机数,其中随机数以高速缓存范围的MIN值和MAX值为边界。在框1608处,使用SELECT语句来获得选定消息的索引。对于采样操作,消息重放操作选择队列中的具有随机索引的消息。在框1610处,分发消息。在框1612处,关于发送是否成功做出确定。如果否,则过程流程返回至框1604以等待下一重放事件。
如果在框1612处确定分发成功,则过程流程前进至框1614。在框1614处,将成功分发的消息从高速缓存中移除,并且过程流程返回至框1404以等待下一重放事件。
在下一重放事件中,然后可以选择、分发下一最新的消息,并且在成功分发后将其从数据库中移除。该过程继续直到高速缓存已耗尽或直到发生另一网络连接中断为止。
图17是包括用于引导处理器1702管理IoT网关与云中的设备和系统之间的通信的指令的非暂时性计算机可读介质1700的框图。处理器1702可以通过总线1704访问计算机可读介质,例如,如关于图2和图3所描述的。指令可以包括用于引导处理器1702针对云中的网络拥塞进行检查的代码块1706。这可以包括指示处理器针对来自云中的系统的拥塞警报进行检查的代码。在一些实施例中,指令可以包括引导处理器1702发送跟踪器消息以发现并测量网络拥塞的代码。代码块1708可以引导处理器1702向云分发消息。这可以包括用于引导处理器1702根据云中的拥塞的量来调整发送消息的速率、收集数据的速率或这两者的代码。此外,代码可以引导处理器1702确定消息是否被成功分发,并且从高速缓存中移除消息。代码块1710可以引导处理器1702基于在云中测量并通过警报发送的拥塞来计算发送消息的速率。代码块1712可以引导处理器1702改变发送重放的消息的方法,例如,FIFO、LIFO或采样。代码块1714可以引导处理器1702基于网络拥塞和选定的方法来重放消息。
示例
示例1提供了一种用于针对物联网(IoT)设备管理通信拥塞的装置,包括管线处理应用。该管线处理应用被配置为将跟踪器消息发送到云中的多个组件中的每个,通过响应与跟踪器消息之间的时间差来确定拥塞水平c,并且生成背压警报消息。该装置包括:IoT设备,其包括数据传送控制器,该数据传送控制器被配置为将消息分发到云中的管线处理应用;以及背压监测器,其被配置为接受背压警报消息并调整对来自数据传送控制器的消息的分发。
示例2包括示例1的主题,其中响应包括转发的跟踪器消息。
示例3包括示例1或2中任一个的主题,其中IoT设备包括耦合到多个IoT设备的IoT网关,并且其中IoT网关被配置为将消息从多个IoT设备传递到管线处理应用。
示例4包括示例1至3中任一个的主题,其中IoT设备包括耦合到多个传感器的IoT网关。
示例5包括示例1至4中任一个的主题,包括在云中与IoT设备相接合的数据路由器,其中该数据路由器被配置为向IoT设备发送背压警报消息。
示例6包括示例1至5中任一个的主题,包括存储设备,其中存储设备包括对跟踪器消息的响应的存储库,并且其中查询响应的存储库以确定消息之间的时间差。
示例7包括示例1至6中任一个的主题,其中IoT设备包括被配置为测量参数的传感器,以及用于分发包括该参数的消息的网络接口。
示例8提供了一种用于测量计算云中的背压的方法。该方法包括向云中的多个组件发送跟踪器消息,监测来自多个组件的响应消息,将接收到的响应消息存储在存储系统中,以及查询响应消息以确定云中的网络状况。创建警报消息,以向物联网(IoT)设备报告网络状况。
示例9包括示例8的主题,包括通过缺失的响应消息来识别组件已经故障。
示例10包括示例8或9中任一个的主题,包括确定发送跟踪器消息与存储对应的响应消息之间的时间差。
示例11包括示例8至10中任一个的主题,包括将拥塞水平c计算为在0和1之间的数字,其中c的较低值表示云中的较慢数据传送。
示例12包括示例8至11中任一个的主题,包括将c设置为吞吐量拥塞水平tc或缓冲器拥塞水平bc中的较低值。
示例13包括示例8至12中任一个的主题,包括将组件的tc计算为响应的当前时间除以来自组件的响应的基线时间的比率。
示例14包括示例8至13中任一个的主题,包括根据空闲磁盘空间的量、消息速率、消息的大小或填充缓冲器所要求的秒数或者其任何组合来计算bc。
示例15包括示例8至14中任一个的主题,包括通过使用以下等式计算填充缓冲器所要求的秒数n来计算bc:
在该等式中,df是以kB为单位的当前空闲磁盘空间总数,mk表示以kB为单位的平均消息大小,并且ms表示如根据数据处理管线确定的每秒当前消息速率。使用以下公式计算缓冲器拥塞水平be[n]:
在该等式中,dp表示云组件上的空闲磁盘空间百分比,pthresh是可配置的空闲磁盘空间阈值,例如,50%。使用以下公式来计算项bcn:
其中:
并且dmax表示系统可用的最大磁盘空间。
示例16包括示例8至15中任一个的主题,包括将c设置为针对数据处理管线中的组件确定的最低值。
示例17包括示例8至16中任一个的主题,包括生成包括c的警报消息。
示例18包括示例8至17中任一个的主题,包括生成包括c的Java script对象表示法(JSON)消息。
示例19包括示例8至18中任一个的主题,包括将警报消息发送到IoT设备。
示例20包括示例8至19中任一个的主题,包括存储警报消息以用于由IoT设备访问。
示例21提供了一种包括代码的非暂时性计算机可读介质,该代码用于引导处理器向云中的多个组件发送跟踪器消息,监测来自多个组件的响应消息,将接收到的响应消息存储在存储系统中,以及查询响应消息以确定云中的网络状况。包括代码以引导处理器创建警报消息,以向物联网(IoT)设备报告网络状况。
示例22包括示例21的主题,包括用于引导处理器通过缺失的响应消息来识别组件故障的代码。
示例23包括示例21或22中任一个的主题,包括用于引导处理器将拥塞水平c计算为在0和1之间的数字的代码,其中c的较低值表示云中的较慢数据传送,其中c被设置为吞吐量拥塞水平tc或缓冲器拥塞水平bc中的较低值。
示例24包括示例21至23中任一个的主题,包括用于引导处理器将组件的tc计算为响应的当前时间除以来自组件的响应的基线时间的比率的代码。
示例25包括示例21至24中任一个的主题,包括用于引导处理器根据空闲磁盘空间的量、消息速率、消息的大小或填充缓冲器所要求的秒数或者其任何组合来计算bc的代码。
示例26提供了一种用于针对物联网(IoT)设备管理通信拥塞的装置,包括管线处理应用,其中管线处理应用被配置为:将跟踪器消息发送到云中的多个组件中的每个;通过响应与跟踪器消息之间的时间差来确定拥塞水平c;以及针对IoT设备生成背压警报消息。
示例27包括示例26的主题,其中响应包括转发的跟踪器消息。
示例28包括示例26或27中任一个的主题,包括IoT设备。IoT设备包括:数据传送控制器,其被配置为将消息分发到云中的管线处理应用;以及背压监测器,其被配置为接受背压警报消息并调整对来自数据传送控制器的消息的分发。
示例29包括示例26至28中任一个的主题,其中IoT设备包括耦合到多个IoT设备的IoT网关,并且其中IoT网关被配置为将消息从多个IoT设备传递到管线处理应用。
示例30包括示例26至29中任一个的主题,包括在云中与IoT设备相接合的数据路由器,其中数据路由器被配置为向IoT设备发送背压警报消息。
示例31包括示例26至30中任一个的主题,包括存储设备,其中存储设备包括对跟踪器消息的响应的存储库,并且其中查询响应的存储库以确定消息之间的时间差。
示例32提供了一种用于针对物联网(IoT)设备管理通信拥塞的装置,包括管线处理应用,其中管线处理应用包括用于确定云中的拥塞水平c的单元。
示例33包括示例32的主题,包括IoT设备,其包括用于至少部分地基于拥塞水平来调整消息分发的单元。
示例34包括示例32或33的主题,其中IoT设备包括用于将消息从多个IoT设备传递到管线处理应用的单元。
示例35包括示例32至34中任一个的主题,其中管线处理应用包括用于向IoT设备发送背压警报消息的单元。
示例36提供了一种用于针对物联网(IoT)设备管理通信拥塞的装置。该装置包括IoT设备,该IoT设备包括数据传送控制器,其被配置为创建传感器消息并将传感器消息分发到云中的管线处理应用。IoT设备包括背压监测器,其被配置为接受背压警报消息,其中背压监测器被配置为调整对来自数据传送控制器的传感器消息进行分发的速率、用于对传感器进行轮询的轮询间隔、或这两者。数据存储库被配置为缓冲由于通信问题而无法发送的消息。
示例37包括示例36的主题,其中背压警报消息包括拥塞水平c。
示例38包括示例36或37中任一个的主题,其中IoT设备包括耦合到多个IoT设备的IoT网关,并且其中IoT网关被配置为将消息从多个IoT设备传递到管线处理应用。
示例39包括示例36至38中任一个的主题,其中IoT设备包括耦合到多个传感器的IoT网关。
示例40包括示例36至39中任一个的主题,其中背压监测器被配置为计算轮询间隔。
示例41包括示例36至40中任一个的主题,其中背压监测器被配置为计算重放速率。
示例42提供了一种用于基于拥塞水平c来控制物联网(IoT)设备的方法。该方法包括对传感器进行轮询,将测量写入文件,解析文件以创建消息,以及针对背压警报消息进行检查。如果发现背压警报消息,则将该消息保存到高速缓存并且改变轮询间隔。
示例43包括示例42的主题,包括将轮询间隔pi初始化为当前速率r或背压速率b中的最大值。
示例44包括示例42或43中任一个的主题,包括如果没有发现背压警报消息,则将消息分发给消费者,并且确定分发是否成功。如果分发成功,则将文件移至经处理的目录。
示例45包括示例42至44中任一个的主题,包括如果分发不成功,则将消息保存到高速缓存。
示例46包括示例42至45中任一个的主题,包括使用以下等式来计算新的轮询间隔pi:
在该等式中,mk表示以kB为单位的消息大小,d表示以kB为单位的边缘设备上的空闲磁盘空间的量,r表示当前消息传递速率,并且b表示背压速率。
示例47包括示例42至46中任一个的主题,包括从高速缓存重放消息。重放消息包括检查IoT设备处是否存在背压警报,并且如果否,则从云请求背压警报消息。计算重放速率r。如果重放速率为零,则迭代针对背压警报进行检查。
示例48包括示例42至47中任一个的主题,包括通过以下等式来计算更新的重放速率:
r'=r*f
在该等式中,r'表示更新的重放速率,并且f表示消息分发频率。用更新的重放速率来替换重放速率。
示例49包括示例42至48中任一个的主题,其中f是每分钟一次。
示例50包括示例42至49中任一个的主题,包括如果重放速率大于零,则从高速缓存选择消息,并将该消息分发到云。
示例51包括示例42至50中任一个的主题,包括检查高速缓存是否为空,并且如果否,则从高速缓存重放消息。
示例52提供了一种包括指令的非暂时性计算机可读介质,该指令引导处理器针对网络拥塞进行检查,调整重放速率以及将消息分发到云。
示例53包括示例52的主题,包括用于引导处理器调整轮询间隔的指令。
示例54包括示例52或53中任一个的主题,包括用于引导处理器重放来自队列的消息的指令。
示例55包括示例52至54中任一个的主题,包括用于引导处理器请求背压警报消息的指令。
示例56包括示例52至55中任一个的主题,包括用于引导处理器创建消息的指令。
示例57提供了一种用于管理通信拥塞的物联网(IoT)设备,包括数据传送控制器,该数据传送控制器被配置为创建传感器消息并将传感器消息分发到云中的管线处理应用。IoT设备包括背压监测器,其被配置为接受背压警报消息,其中背压监测器被配置为调整对来自数据传送控制器的传感器消息进行分发的速率、用于对传感器进行轮询的轮询间隔、或这两者。IoT设备还包括数据存储库,其被配置用于缓冲由于通信问题而无法发送的消息。
示例58包括示例57的主题,其中背压警报消息包括拥塞水平c。
示例59包括示例57或58中任一个的主题,其中背压监测器被配置为计算轮询间隔。
示例60包括示例57至59中任一个的主题,其中背压监测器被配置为计算重放速率。
示例61提供了一种用于针对物联网(IoT)设备管理通信拥塞的装置,包括用于调整对来自IoT设备的传感器消息进行分发的速率、用于对传感器进行轮询的轮询间隔、或这两者的单元。
示例62包括示例61的主题,包括用于计算拥塞水平c的单元。
示例63包括示例61或62中任一个的主题,包括用于计算轮询间隔的单元。
示例64包括示例61至63中任一个的主题,包括用于计算重放速率的单元。
示例65提供了一种用于针对物联网(IoT)设备管理通信拥塞的装置,包括IoT设备,该IoT设备包括数据传送控制器,该数据传送控制器被配置为创建传感器消息并将传感器消息分发到云中的管线处理应用。IoT设备包括:数据存储库,其被配置为如果传感器消息由于通信问题而无法发送则将传感器消息存储在高速缓存中;以及数据积压传送控制器,其被配置为发送来自数据存储库的传感器消息。
示例66包括示例65的主题,其中数据积压传送控制器被配置为使用先进先出模式、后进先出模式或者采样模式来发送来自高速缓存的传感器消息。
示例67包括示例65或66中任一个的主题,其中数据积压传送控制器被配置为接受改变用于发送传感器消息的模式的控制消息。
示例68包括示例65至67中任一个的主题,其中IoT设备包括耦合到多个IoT设备的IoT网关,并且其中IoT网关被配置为将来自多个IoT设备的传感器消息发送到管线处理应用。
示例69包括示例65至68中任一个的主题,其中IoT设备包括耦合到多个传感器的IoT网关。
示例70包括示例65至69中任一个的主题,包括背压监测器,该背压监测器被配置为接受背压警报消息,其中背压监测器被配置为调整对来自高速缓存的传感器消息进行分发的速率。
示例71提供了一种用于控制来自物联网(IoT)设备的通信的方法。该方法包括使用用于从高速缓存选择消息的选定模式将消息分发到云中的数据处理应用,并且针对来自云的改变模式的请求进行检查。
示例72包括示例71的主题,其中,如果接收到请求,则解析改变模式的请求。关于请求是否为改变为后进先出(LIFO)模式做出确定,并且如果是,则配置LIFO模式。关于请求是否为改变为采样模式做出确定,并且如果是,则配置采样模式。关于请求是否为改变为先进先出(FIFO)模式做出确定,并且如果是,则配置FIFO模式。
示例73包括示例71或72中任一个的主题,包括使用LIFO模式来分发消息。使用LIFO模式分发消息包括从队列中选择消息,其中消息是添加到队列的最后一条消息。该消息被分发给消费者,并且关于分发是否成功做出确定。如果成功,则将消息从队列中删除。
示例74包括示例71至73中任一个的主题,包括使用FIFO模式来分发消息。使用FIFO模式分发消息包括从队列中选择消息,其中消息是添加到队列的第一条消息。该消息被分发给消费者,并且关于分发是否成功做出确定。如果成功,则将消息从队列中删除。
示例75包括示例71至74中任一个的主题,包括使用采样模式来分发消息。使用采样模式分发消息包括从队列中选择消息,其中消息是从队列中随机选择的。该消息被分发给消费者,并且关于分发是否成功做出确定。如果成功,则将消息从队列中删除。
示例76包括示例71至75中任一个的主题,其中分发消息包括检查在IoT设备处是否存在背压警报。如果背压警报不存在,则从云组件请求背压警报消息。计算重放速率r,并且如果重放速率为零,则迭代针对背压警报进行检查。
示例77包括示例71至76中任一个的主题,包括通过以下等式来计算更新的重放速率:
r'=r*f。
在该等式中,r'表示更新的重放速率,并且f表示消息分发频率;并且用更新的重放速率来替换当前重放速率。
示例78包括示例71至77中任一个的主题,其中f是每分钟一次。
示例79包括示例71至78中任一个的主题,包括检查队列是否为空,并且如果否,则从队列中选择另一传感器消息。
示例80提供了一种包括指令的非暂时性计算机可读介质,该指令用于引导处理器调整重放模式,其中重放模式是从后进先出(LIFO)模式、先进先出(FIFO)模式或采样模式中选择的。包括指令以引导处理器调整重放速率,使用重放模式从队列中选择消息,并且将消息分发到云。
示例81包括示例80的主题,包括用于引导处理器请求背压警报消息的指令。
示例82包括示例80或81中任一个的主题,包括用于引导处理器至少部分地基于背压警报消息来调整重放速率的指令。
示例83包括示例80至82中任一个的主题,包括用于确定消息是否已被成功分发的指令,并且如果是,则从队列中删除消息。
示例84包括示例80至83中任一个的主题,包括用于引导处理器创建消息的指令。
示例85提供了一种用于管理通信拥塞的物联网(IoT)设备。该IoT设备包括数据传送控制器,该数据传送控制器被配置为创建传感器消息并将传感器消息分发到云中的管线处理应用。数据存储库被配置为如果传感器消息由于通信问题而无法发送则将传感器消息存储在高速缓存中。数据积压传送控制器被配置为当通信问题不存在时发送来自数据存储库的传感器消息。
示例86包括示例85的主题,其中数据积压传送控制器被配置为使用先进先出模式、后进先出模式或采样模式来发送来自高速缓存的传感器消息。
示例87包括示例85或86中任一个的主题,其中数据积压传送控制器被配置为接受改变用于发送传感器消息的模式的控制消息。
示例88包括示例85至87中任何一个的主题,其包括耦合到多个IoT设备的IoT网关,并且其中IoT网关被配置为将传感器消息从多个IoT设备发送到管线处理应用。
示例89包括示例85至88中任一个的主题,包括耦合到多个传感器的IoT网关。
示例90包括示例85至89中任一个的主题,包括背压监测器,该背压监测器被配置为接受背压警报消息,其中背压监测器被配置为调整对来自高速缓存的传感器消息进行分发的速率。
示例91提供了一种用于针对物联网(IoT)设备管理通信拥塞的装置,包括用于发送来自高速缓存的积压消息的单元。
示例92包括示例91的主题,包括用于使用先进先出模式、后进先出模式或者采样模式来发送传感器消息的单元。
示例93包括示例91或92中任一个的主题,包括用于改变用于发送传感器消息的模式的单元。
示例94包括示例91至93中任一个的主题,包括用于调整对来自高速缓存的消息进行分发的速率的单元。
一些实施例可以以硬件、固件和软件之一或其组合来实现。一些实施例还可以被实现为存储在机器可读介质上的指令,其该指令可以被计算平台读取并执行以执行本文描述的操作。机器可读介质可以包括用于存储或传输以机器(例如,计算机)可读形式的信息的任何机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪速存储器设备;或电、光、声或其他形式的传播信号,例如,载波、红外信号、数字信号或发送和/或接收信号的接口以及其他。
实施例是实现方式或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”、“各种实施例”或“其他实施例”的引用意味着结合实施例描述的特定特征、结构或特性包括在技术的至少一些实施例中,但不一定是所有实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定都指代相同的实施例。来自实施例的元素或方面可以与另一实施例的元素或方面组合。
并非本文描述和示出的所有组件、特征、结构、特性等都需要包括在特定实施例或多个实施例中。如果说明书陈述了“可能”、“可以”、“能够”或“能”包括组件、特征、结构或特性,则不一定要求包括该特定组件、特征、结构或特性。如果说明书或权利要求引用“一(a)”或“一个(an)”元素,则并不意味着只有一个元素。如果说明书或权利要求引用“附加”元素,则不排除存在多于一个附加元素。
应该注意,虽然已经参考特定实现方式描述了一些实现方式,但是根据一些实施例,其他实现方式也是可能的。另外,在附图中示出和/或在本文中描述的电路元件或其他特征的布置和/或次序不一定以所示出和描述的特定方式布置。根据一些实施例,许多其他布置是可能的。
在图中所示的每个系统中,元素在一些情况下可以各自具有相同的附图标记或不同的附图标记,以暗指所表示的元素可以是不同的和/或相似的。然而,元素可以足够灵活以具有不同的实现方式并且与本文中所示出或描述的系统中的一些或全部一起工作。图中所示的各种元素可以相同或不同。哪一个元素被称为第一元素以及哪一个元素被称为第二元素是任意的。
这些技术不限于本文列出的特定细节。事实上,受益于本公开的本领域技术人员将认识到,可以在本技术的范围内做出来自前述说明书和附图的许多其他变化。因此,包括任何对其的修改的所附权利要求限定技术的范围。
Claims (25)
1.一种用于针对物联网(IoT)设备管理通信拥塞的装置,包括:
IoT设备,其包括:
数据传送控制器,其被配置为创建传感器消息并将所述传感器消息分发到云中的管线处理应用;
背压监测器,其被配置为接受背压警报消息,其中,所述背压监测器被配置为调整:对来自所述数据传送控制器的传感器消息进行分发的速率、用于对传感器进行轮询的轮询间隔、或这两者;以及
数据存储库,其被配置为缓冲由于通信问题而无法被发送的消息。
2.根据权利要求1所述的装置,其中,所述背压警报消息包括拥塞水平c。
3.根据权利要求1或2中任一项所述的装置,其中,所述IoT设备包括耦合到多个IoT设备的IoT网关,并且其中,所述IoT网关被配置为将消息从所述多个IoT设备传递到所述管线处理应用。
4.根据权利要求1或2中任一项所述的装置,其中,所述IoT设备包括耦合到多个传感器的IoT网关。
5.根据权利要求1或2中任一项所述的装置,其中,所述背压监测器被配置为计算所述轮询间隔。
6.根据权利要求1或2中任一项所述的装置,其中,所述背压监测器被配置为计算重放速率。
7.一种用于基于拥塞水平c来控制物联网(IoT)设备的方法,包括:
对传感器进行轮询;
将测量写入文件;
解析所述文件以创建消息;以及
针对背压警报消息进行检查,并且如果发现所述背压警报消息,则进行以下操作:
将所述消息保存到高速缓存;以及
改变轮询间隔。
8.根据权利要求7所述的方法,包括:将轮询间隔pi初始化为当前速率r或背压速率b中的最大值。
9.根据权利要求7所述的方法,包括:如果未发现所述背压警报消息,则进行以下操作:
将所述消息分发给消费者;以及
确定所述分发是否成功,并且如果所述分发成功,则将所述文件移至经处理的目录。
10.根据权利要求7至9中任一项所述的方法,包括:如果所述分发不成功,则将所述消息保存到高速缓存。
11.根据权利要求7至9中任一项所述的方法,包括使用以下等式来计算新的轮询间隔pi:
其中,mk表示以kB为单位来表达的消息大小,d表示以kB为单位来表达的边缘设备上的空闲磁盘空间的量,r表示当前消息传递速率,并且b表示背压速率。
12.根据权利要求7至9中任一项所述的方法,包括从高速缓存重放消息,所述方法包括:
检查在所述IoT设备处是否存在背压警报,并且如果不存在所述背压警报,则从云请求所述背压警报消息;
计算重放速率r;
如果所述重放速率为零,则迭代针对所述背压警报的检查。
13.根据权利要求12所述的方法,包括:
通过以下等式来计算更新的重放速率:
r'=r*f,
其中,r'表示所述更新的重放速率,并且f表示消息分发频率;以及
用所述更新的重放速率来替换所述重放速率。
14.根据权利要求13所述的方法,其中,f是每分钟一次。
15.根据权利要求12所述的方法,其中,如果所述重放速率大于零,则进行以下操作:
从所述高速缓存选择所述消息;以及
将所述消息分发到所述云。
16.根据权利要求15所述的方法,包括检查所述高速缓存是否为空,并且如果所述高速缓存不为空,则从所述高速缓存重放所述消息。
17.一种包括指令的非暂时性计算机可读介质,所述指令用于引导处理器进行以下操作:
针对网络拥塞进行检查;
调整重放速率;以及
将消息分发到云。
18.根据权利要求17所述的非暂时性计算机可读介质,包括用于引导所述处理器调整轮询间隔的指令。
19.根据权利要求17或18中任一项所述的非暂时性计算机可读介质,包括用于引导所述处理器请求背压警报消息的指令。
20.一种用于管理通信拥塞的物联网(IoT)设备,包括:
数据传送控制器,其被配置为创建传感器消息并将所述传感器消息分发到云中的管线处理应用;
背压监测器,其被配置为接受背压警报消息,其中,所述背压监测器被配置为调整:对来自所述数据传送控制器的传感器消息进行分发的速率、用于对传感器进行轮询的轮询间隔、或这两者;以及
数据存储库,其被配置为缓冲由于通信问题而无法被发送的消息。
21.根据权利要求20所述的IoT设备,其中,所述背压警报消息包括拥塞水平c。
22.根据权利要求20至21中任一项所述的IoT设备,其中,所述背压监测器被配置为计算所述轮询间隔。
23.根据权利要求20至21中任一项所述的IoT设备,其中,所述背压监测器被配置为计算重放速率。
24.一种用于针对物联网(IoT)设备管理通信拥塞的装置,包括用于调整对来自所述IoT设备的传感器消息进行分发的速率、用于对传感器进行轮询的轮询间隔、或这两者的单元。
25.根据权利要求24所述的装置,包括用于计算拥塞水平c的单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/757,743 | 2015-12-23 | ||
US14/757,743 US9923821B2 (en) | 2015-12-23 | 2015-12-23 | Managing communication congestion for internet of things devices |
PCT/US2016/063909 WO2017112366A1 (en) | 2015-12-23 | 2016-11-29 | Managing communication congestion for internet of things devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108293067A true CN108293067A (zh) | 2018-07-17 |
CN108293067B CN108293067B (zh) | 2021-06-25 |
Family
ID=59088530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680068397.5A Active CN108293067B (zh) | 2015-12-23 | 2016-11-29 | 针对物联网设备管理通信拥塞 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9923821B2 (zh) |
EP (1) | EP3395048A4 (zh) |
CN (1) | CN108293067B (zh) |
WO (1) | WO2017112366A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125648A (zh) * | 2018-11-01 | 2020-05-08 | 大唐移动通信设备有限公司 | 一种设备变更方法和装置 |
CN111343700A (zh) * | 2018-12-19 | 2020-06-26 | 南宁富桂精密工业有限公司 | 无线传感网络通信方法 |
CN111913861A (zh) * | 2020-07-31 | 2020-11-10 | 中国建设银行股份有限公司 | 物联网系统的性能测试方法、装置、设备及介质 |
CN112469087A (zh) * | 2020-11-30 | 2021-03-09 | 广东美的制冷设备有限公司 | 空调设备通信速率的调整方法、终端及存储介质 |
CN112650694A (zh) * | 2019-10-12 | 2021-04-13 | 北京达佳互联信息技术有限公司 | 一种数据读取方法、装置、缓存代理服务器及存储介质 |
CN114513463A (zh) * | 2020-10-28 | 2022-05-17 | 华为技术有限公司 | 拥塞识别方法及装置 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10545466B2 (en) | 2016-01-19 | 2020-01-28 | Honeywell International Inc. | System for auto-adjustment of gateway poll rates |
US10083055B2 (en) * | 2016-02-12 | 2018-09-25 | At&T Intellectual Property I, L.P. | Management of IoT devices in a virtualized network |
US11039225B2 (en) | 2016-12-15 | 2021-06-15 | Microsoft Technology Licensing, Llc | Declarative IoT data control |
US10917706B2 (en) * | 2016-12-15 | 2021-02-09 | Microsoft Technology Licensing, Llc | Configurable IoT device data collection |
US10594585B2 (en) * | 2017-03-20 | 2020-03-17 | Comcast Cable Communications, Llc | Methods and systems for polling devices |
JP6749281B2 (ja) * | 2017-03-23 | 2020-09-02 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | IoTデバイス、シグナリングサーバ、メッセージバス管理サーバ、コネクション形成方法、及びプログラム |
KR101997986B1 (ko) * | 2017-11-06 | 2019-07-08 | 한국과학기술원 | 상호 작용하는 IoT 어플리케이션을 위한 클라우드-포그-클라이언트 삼각 컴퓨팅 방법 및 장치 |
US11689414B2 (en) | 2017-11-10 | 2023-06-27 | International Business Machines Corporation | Accessing gateway management console |
US10700926B2 (en) * | 2017-11-10 | 2020-06-30 | International Business Machines Corporation | Accessing gateway management console |
US10652107B2 (en) | 2017-11-10 | 2020-05-12 | International Business Machines Corporation | Accessing gateway management console |
US10644961B2 (en) | 2018-01-12 | 2020-05-05 | Intel Corporation | Self-adjusting data processing system |
US10713935B2 (en) | 2018-02-23 | 2020-07-14 | Nokia Technologies Oy | Control service for controlling devices with body-action input devices |
EP3611894A1 (en) * | 2018-08-13 | 2020-02-19 | Thales Dis France SA | Method of managing the connectivity of a security element to a cellular telecommunications network |
US11411832B2 (en) * | 2018-12-28 | 2022-08-09 | Intel Corporation | Methods and apparatus to generate optimized models for internet of things devices |
JP7283103B2 (ja) * | 2019-02-13 | 2023-05-30 | 日本電信電話株式会社 | ゲートウェイ、通信システム及び通信方法 |
JP7271986B2 (ja) * | 2019-02-13 | 2023-05-12 | 日本電信電話株式会社 | ゲートウェイ、通信システム及び通信方法 |
US10931563B2 (en) * | 2019-03-22 | 2021-02-23 | Microsoft Technology Licensing, Llc | Adaptive routing pipelines for variable endpoint performance |
US10979496B2 (en) | 2019-04-08 | 2021-04-13 | Microsoft Technology Licensing, Llc | IoT partition management and load balancing |
US11823016B2 (en) | 2019-05-29 | 2023-11-21 | Bank Of America Corporation | Optimized IoT data processing for real-time decision support systems |
US11508375B2 (en) | 2019-07-03 | 2022-11-22 | Samsung Electronics Co., Ltd. | Electronic apparatus including control command identification tool generated by using a control command identified by voice recognition identifying a control command corresponding to a user voice and control method thereof |
CN111355638A (zh) * | 2020-03-07 | 2020-06-30 | 深圳市中天网景科技有限公司 | 物联网卡连接管理平台的运维系统、计算机设备及存储介质 |
JP7147807B2 (ja) * | 2020-06-26 | 2022-10-05 | 株式会社安川電機 | エンジニアリング装置、上位制御装置、エンジニアリング方法、処理実行方法、及びプログラム |
CN111935153B (zh) * | 2020-08-11 | 2022-04-26 | 北京天融信网络安全技术有限公司 | 基于can总线的目标报文提取方法、装置及存储介质 |
DE102020213145A1 (de) * | 2020-10-19 | 2022-04-21 | Festo Se & Co. Kg | Gateway, System und Verfahren zum Betreiben eines Gateways |
US11818046B2 (en) * | 2021-01-26 | 2023-11-14 | Samsung Electronics Co., Ltd. | Coordinated congestion control in network-attached devices |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173323B1 (en) * | 1997-12-24 | 2001-01-09 | Lucent Technologies Inc. | Adaptive polling rate algorithm for SNMP-based network monitoring |
CN102238486A (zh) * | 2010-04-28 | 2011-11-09 | 中兴通讯股份有限公司 | 物联网终端组的管理方法和物联网平台设备 |
CN102307235A (zh) * | 2011-08-25 | 2012-01-04 | 江苏合成物联网科技有限公司 | 一种物联网内实时数据传输方法 |
CN102546437A (zh) * | 2012-02-20 | 2012-07-04 | 南京邮电大学 | 一种面向物联网平台的套接字实现方法 |
CN103365711A (zh) * | 2013-07-03 | 2013-10-23 | 南京邮电大学 | 应用于物联网业务平台的任务调度机制和方法 |
CN103404194A (zh) * | 2011-01-03 | 2013-11-20 | 三星电子株式会社 | 用于在移动通信系统中控制拥塞的方法 |
CN103701932A (zh) * | 2014-01-09 | 2014-04-02 | 北京交通大学 | 一种物联网中数据传输的方法 |
US20140095170A1 (en) * | 2012-10-01 | 2014-04-03 | 2220213 Ontario Inc. | User programmable monitoring system, method and apparatus |
US20150134954A1 (en) * | 2013-11-14 | 2015-05-14 | Broadcom Corporation | Sensor management system in an iot network |
US20150334030A1 (en) * | 2014-05-13 | 2015-11-19 | Cisco Technology, Inc. | Probing available bandwidth along a network path |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070008884A1 (en) | 2003-10-08 | 2007-01-11 | Bob Tang | Immediate ready implementation of virtually congestion free guarantedd service capable network |
US8443072B1 (en) | 2004-07-21 | 2013-05-14 | Avaya Inc. | Method and apparatus for managing network congestion due to automatic configuration procedures |
US20160321480A1 (en) | 2005-12-09 | 2016-11-03 | Tego, Inc. | Methods and systems for rf communications in blood-extraction procedures |
JP4562694B2 (ja) | 2006-06-20 | 2010-10-13 | 富士通株式会社 | 再送制御方法及び装置 |
TR200805998A2 (tr) | 2008-08-12 | 2009-12-21 | Kodalfa B�Lg� Ve �Let���M Teknoloj�Ler� Sanay� Ve T�Caret A.�. | Seralar için uzaktan kablosuz iklim gözlemleme ve kontrol sistemi |
US8588245B2 (en) | 2009-02-17 | 2013-11-19 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and systems for frame generation in communication networks |
US8351465B2 (en) | 2009-12-04 | 2013-01-08 | Cable Television Laboratories, Inc. | System and method of decoupling media access control (MAC) and physical (PHY) operating layers |
US8787202B2 (en) | 2010-06-22 | 2014-07-22 | George W. Kuriyan | Method and system using wireless packet data networks architecture for remote process control and process monitoring applications |
CN103828324B (zh) * | 2011-06-10 | 2017-11-28 | 茨特里克斯系统公司 | 用于自适应比特率管理的方法、设备和系统 |
WO2013087610A1 (de) | 2011-12-13 | 2013-06-20 | Siemens Aktiengesellschaft | Vorrichtung und verfahren zum dynamischen lastmanagement von cloud services |
US10222926B2 (en) | 2012-03-19 | 2019-03-05 | Citrix Systems, Inc. | Systems and methods for providing user interfaces for management applications |
US8914537B2 (en) | 2012-08-07 | 2014-12-16 | Intel Mobile Communications GmbH | Methods and apparatuses for rate adaptation of quality of service based application |
US20140275888A1 (en) | 2013-03-15 | 2014-09-18 | Venture Gain LLC | Wearable Wireless Multisensor Health Monitor with Head Photoplethysmograph |
US9369391B2 (en) | 2013-03-21 | 2016-06-14 | Nec Corporation | Flow management for data streams over cellular networks |
US8914551B2 (en) * | 2013-04-09 | 2014-12-16 | Analog Devices, Inc. | Sensor polling unit for microprocessor integration |
US9350635B2 (en) * | 2013-07-18 | 2016-05-24 | Cisco Technology, Inc. | Efficient network probing for deterministic wireless networks |
US9072050B2 (en) | 2013-10-03 | 2015-06-30 | Qualcomm Incorporated | Power saving with adaptive inactivity time out |
KR20150066335A (ko) | 2013-12-06 | 2015-06-16 | 가온미디어 주식회사 | 무선통신에서 패킷 손실을 줄이기 위한 방법 및 장치 |
US10827410B2 (en) | 2014-04-01 | 2020-11-03 | Umm-Al-Qura University | System, apparatus and method for robust transmission of visual data through visual sensor network |
WO2016007563A1 (en) | 2014-07-07 | 2016-01-14 | Symphony Teleca Corporation | Remote Embedded Device Update Platform Apparatuses, Methods and Systems |
US9294476B1 (en) | 2015-02-18 | 2016-03-22 | Keeper Security, Inc. | User-defined identity verification system |
US10526763B2 (en) | 2015-05-21 | 2020-01-07 | Aquadation Llc | Structural foundation monitoring sensor system |
US9684457B2 (en) | 2015-05-21 | 2017-06-20 | Intel Corporation | Gathering sensed data from devices to manage host command transmission and cooling of the devices |
US10333905B2 (en) | 2015-10-16 | 2019-06-25 | Orock Technologies, Inc. | System for providing end-to-end protection against network-based attacks |
US11621900B2 (en) | 2015-12-23 | 2023-04-04 | Intel Corporation | Selective measurement reporting from internet of things devices |
-
2015
- 2015-12-23 US US14/757,743 patent/US9923821B2/en active Active
-
2016
- 2016-11-29 CN CN201680068397.5A patent/CN108293067B/zh active Active
- 2016-11-29 WO PCT/US2016/063909 patent/WO2017112366A1/en unknown
- 2016-11-29 EP EP16879841.1A patent/EP3395048A4/en not_active Ceased
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173323B1 (en) * | 1997-12-24 | 2001-01-09 | Lucent Technologies Inc. | Adaptive polling rate algorithm for SNMP-based network monitoring |
CN102238486A (zh) * | 2010-04-28 | 2011-11-09 | 中兴通讯股份有限公司 | 物联网终端组的管理方法和物联网平台设备 |
CN103404194A (zh) * | 2011-01-03 | 2013-11-20 | 三星电子株式会社 | 用于在移动通信系统中控制拥塞的方法 |
CN102307235A (zh) * | 2011-08-25 | 2012-01-04 | 江苏合成物联网科技有限公司 | 一种物联网内实时数据传输方法 |
CN102546437A (zh) * | 2012-02-20 | 2012-07-04 | 南京邮电大学 | 一种面向物联网平台的套接字实现方法 |
US20140095170A1 (en) * | 2012-10-01 | 2014-04-03 | 2220213 Ontario Inc. | User programmable monitoring system, method and apparatus |
CN103365711A (zh) * | 2013-07-03 | 2013-10-23 | 南京邮电大学 | 应用于物联网业务平台的任务调度机制和方法 |
US20150134954A1 (en) * | 2013-11-14 | 2015-05-14 | Broadcom Corporation | Sensor management system in an iot network |
CN103701932A (zh) * | 2014-01-09 | 2014-04-02 | 北京交通大学 | 一种物联网中数据传输的方法 |
US20150334030A1 (en) * | 2014-05-13 | 2015-11-19 | Cisco Technology, Inc. | Probing available bandwidth along a network path |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125648A (zh) * | 2018-11-01 | 2020-05-08 | 大唐移动通信设备有限公司 | 一种设备变更方法和装置 |
CN111125648B (zh) * | 2018-11-01 | 2022-03-29 | 大唐移动通信设备有限公司 | 一种设备变更方法和装置 |
CN111343700A (zh) * | 2018-12-19 | 2020-06-26 | 南宁富桂精密工业有限公司 | 无线传感网络通信方法 |
CN112650694A (zh) * | 2019-10-12 | 2021-04-13 | 北京达佳互联信息技术有限公司 | 一种数据读取方法、装置、缓存代理服务器及存储介质 |
CN112650694B (zh) * | 2019-10-12 | 2024-01-12 | 北京达佳互联信息技术有限公司 | 一种数据读取方法、装置、缓存代理服务器及存储介质 |
CN111913861A (zh) * | 2020-07-31 | 2020-11-10 | 中国建设银行股份有限公司 | 物联网系统的性能测试方法、装置、设备及介质 |
CN114513463A (zh) * | 2020-10-28 | 2022-05-17 | 华为技术有限公司 | 拥塞识别方法及装置 |
CN112469087A (zh) * | 2020-11-30 | 2021-03-09 | 广东美的制冷设备有限公司 | 空调设备通信速率的调整方法、终端及存储介质 |
CN112469087B (zh) * | 2020-11-30 | 2023-02-21 | 广东美的制冷设备有限公司 | 空调设备通信速率的调整方法、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3395048A1 (en) | 2018-10-31 |
US9923821B2 (en) | 2018-03-20 |
US20170187625A1 (en) | 2017-06-29 |
CN108293067B (zh) | 2021-06-25 |
WO2017112366A1 (en) | 2017-06-29 |
EP3395048A4 (en) | 2019-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108293067A (zh) | 针对物联网设备管理通信拥塞 | |
US20170187642A1 (en) | Managing communication congestion for internet of things devices | |
US11375250B2 (en) | Dynamic load balancing for video analytics pipelines | |
WO2017112364A1 (en) | Managing communication congestion for internet of things devices | |
US20200357259A1 (en) | Alert system for internet of things (iot) devices | |
CN107390650B (zh) | 一种基于物联网的数据采集系统及基于该系统的数据压缩方法 | |
CN109219942B (zh) | 控制消息模式的方法及装置 | |
CN103973815A (zh) | 一种跨数据中心存储环境统一监控方法 | |
US10764219B2 (en) | Message schema control | |
CN102724330A (zh) | 农业无线传感器网络系统 | |
CN107463476A (zh) | 信息的获取方法及装置 | |
Said | Performance evaluation of WSN management system for QoS guarantee | |
CN103973489B (zh) | 一种异构设备集中监控系统 | |
Sheltami et al. | A publish/subscribe middleware cost in wireless sensor networks: A review and case study | |
CN117424638A (zh) | 基于星地融合的网络切片管理方法、装置及存储介质 | |
CN103249064B (zh) | 一种无线传感器网络数据收集方法及系统 | |
KR20190078677A (ko) | 원격 검침 시스템, 그 시스템에 적용되는 원격검침단말장치 및 원격검침단말장치의 동작 방법 | |
CN112367395A (zh) | 一种报警阈值的修改方法、设备及计算机可读存储介质 | |
JP5271737B2 (ja) | データ収集システム,及び伝送制御装置 | |
WO2018083710A2 (en) | An improved management and internetworking of devices to collect and exchange data without requiring interaction | |
Giannopoulos et al. | Design guidelines for building a wireless sensor network for environmental monitoring | |
CN111641969B (zh) | 基于边缘计算的无线多跳自组网数据分发方法及装置 | |
De et al. | Advances in real-world sensor network system | |
Yang et al. | Featherlight information network with delay-endurable RFID support (FINDERS) | |
Lee et al. | Middleware integration for ubiquitous sensor networks in agriculture |
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 |