CN117981281A - 延迟容忍边缘计算协议 - Google Patents

延迟容忍边缘计算协议 Download PDF

Info

Publication number
CN117981281A
CN117981281A CN202280054949.2A CN202280054949A CN117981281A CN 117981281 A CN117981281 A CN 117981281A CN 202280054949 A CN202280054949 A CN 202280054949A CN 117981281 A CN117981281 A CN 117981281A
Authority
CN
China
Prior art keywords
network
endpoint
data
devices
implementations
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.)
Pending
Application number
CN202280054949.2A
Other languages
English (en)
Inventor
L·J·B·卢瓦索
G·E·金斯曼
M·A·贝诺利尔
E·Q·E·泰松尼尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nord Technologies
Original Assignee
Nord Technologies
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nord Technologies filed Critical Nord Technologies
Publication of CN117981281A publication Critical patent/CN117981281A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y30/00IoT infrastructure

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种用于通信的方法包括经由第一网络向第一设备传输代码。该代码被配置为在与第一设备相关联的虚拟环境上执行。当在虚拟环境上执行时,该代码使得第一设备经由第二网络与第二设备通信。第一网络基于第一网络协议,第二网络基于与第一网络协议不同的第二网络协议。

Description

延迟容忍边缘计算协议
相关申请的交叉引用
该美国专利申请根据35U.S.C.§119(e)要求2021年6月11日提交的美国临时申请63/209,955的优先权。该在先申请的公开内容被认为是本申请公开内容的一部分,并且通过引用将其全部内容并入本文。
技术领域
本公开涉及分散式联网和延迟容忍边缘计算协议。
背景技术
物联网(IoT)—通过互联网无缝通信的互联“智能”设备网络—正扩展到人类生活的各个方面。IoT设备越来越多地被用于医院的医疗保健、以及医疗设备和药物制造。在城市中,IoT设备帮助跟踪和监视污染。IoT设备也可以由政府、军队、公司和个人用于资产跟踪和管理。尽管这些应用服务于不同的目的,但是它们都共享一个特性—对强连接性的依赖。不久,常规网络将不能处理数十亿IoT设备的带宽要求。
本文要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的实施方式。相反,提供该背景仅是为了示出可以实践本文描述的一些实施方式的一个示例技术领域。
发明内容
本公开的一个方面提供了一种用于通信的方法。该方法包括经由第一网络向第一设备传输代码。该代码被配置为在与第一设备相关联的虚拟环境上执行。当在虚拟环境上执行时,该代码使得第一设备经由第二网络与第二设备通信。第一网络基于第一网络协议,第二网络基于不同于第一网络协议的第二网络协议。
本公开的实施方式可以包括以下可选特征中的一个或多个。在一些实施方式中,虚拟环境是容器化环境。在一些实施方式中,虚拟环境是虚拟化环境。在一些实施方式中,代码是容器化程序。在一些实施方式中,代码是能够在虚拟机上执行的指令。
可选地,第一网络包括蜂窝网络,并且第二网络包括短程无线网络。在一些实施方式中,通信包括经由第二网络向第二设备提供热点服务。在一些实施方式中,通信包括经由第二网络从第二设备请求数据。该数据由与第二设备互联的物联网(IoT)设备生成。在一些实施方式中,通信包括经由第二网络从第二设备接收数据。该数据由与第二设备互联的物联网(IoT)设备生成。
本公开的另一方面提供了一种用于通信的网络系统。该网络系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,当在数据处理硬件上执行所述指令时,所述指令使数据处理硬件执行包括经由第一网络向第一设备传输代码的操作,所述代码被配置为在与第一设备互联的虚拟环境上执行。当在虚拟环境上执行时,该代码使得第一设备经由第二网络与第二设备通信。第一网络基于第一网络协议,第二网络基于不同于第一网络协议的第二网络协议。
本公开的实施方式可以包括以下可选特征中的一个或多个。在一些实施方式中,虚拟环境是容器化环境。在一些实施方式中,虚拟环境是虚拟化环境。在一些实施方式中,代码是容器化程序。在一些实施方式中,代码是能够在虚拟机上执行的指令。
可选地,第一网络包括蜂窝网络,并且第二网络包括短程无线网络。在一些实施方式中,通信包括经由第二网络向第二设备提供热点服务。在一些实施方式中,通信包括经由第二网络从第二设备请求数据。该数据由与第二设备互联的物联网(IoT)设备生成。在一些实施方式中,通信包括经由第二网络从第二设备接收数据。该数据由与第二设备互联的物联网(IoT)设备生成。
本公开的另一方面提供了一种用于资产跟踪的网络系统。该网络系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,当在数据处理硬件上执行所述指令时,所述指令使数据处理硬件执行操作,所述操作包括:接收丢失或被盗项目的报告,将丢失或被盗项目的标识符添加到监视列表;接收信标,基于监视列表确定所接收的信标源自丢失或被盗项目;以及当中继服务器确定所接收的信标源自监视列表上的丢失或被盗项目时,由中继服务器通知找到丢失或被盗项目。
本公开的实施方式可以包括以下可选特征中的一个或多个。在一些实施方式中,标识符包括分配给丢失或被盗项目的唯一标识,或者丢失或被盗项目的地理位置。例如,唯一标识包括媒体访问控制(MAC)地址或通用唯一标识符(UUID)中的至少一个。在一些实施方式中,从配置有虚拟机的中间设备接收信标,以监视从端点设备传输的信标。在一些实施方式中,中间设备包括第一网络控制器,其被配置为经由第一网络与端点设备通信;以及第二网络控制器,被配置为经由第二网络与中继服务器通信。例如,第一网络包括低功率网络,并且第二网络包括蜂窝网络、无线保真(WI-FI)网络或互联网网络中的至少一个。在一些实施方式中,中间设备包括个人计算机、膝上型计算机、智能电话、上网本、电子阅读器、个人数字助理(PDA)、蜂窝电话、移动电话、平板电脑、车辆、无人机、汽车、卡车、可穿戴设备、路由器、电视机或机顶盒中的至少一个。
在一些实施方式中,中继服务器包括被配置为从中间设备接收信标的计算设备。在一些实施方式中,中继服务器包括数据存储装置,该数据存储装置包括与所接收的信标有关的数据。
本公开的另一方面提供了一种用于资产跟踪的方法。该方法包括的系统包括接收丢失或被盗项目的报告,将丢失或被盗项目的标识符添加到监视列表;接收信标,基于监视列表确定所接收的信标源自丢失或被盗项目;以及当中继服务器确定所接收的信标源自监视列表上的丢失或被盗项目时,由中继服务器通知找到丢失或被盗项目。
本公开的实施方式可以包括以下可选特征中的一个或多个。在一些实施方式中,标识符包括分配给丢失或被盗项目的唯一标识,或者丢失或被盗项目的地理位置。例如,唯一标识包括媒体访问控制(MAC)地址或通用唯一标识符(UUID)中的至少一个。在一些实施方式中,从配置有虚拟机的中间设备接收信标,以监视从端点设备传输的信标。在一些实施方式中,中间设备包括第一网络控制器,其被配置为经由第一网络与端点设备通信;以及第二网络控制器,被配置为经由第二网络与中继服务器通信。例如,第一网络包括低功率网络,并且第二网络包括蜂窝网络、无线保真(WI-FI)网络或互联网网络中的至少一个。在一些实施方式中,中间设备包括个人计算机、膝上型计算机、智能电话、上网本、电子阅读器、个人数字助理(PDA)、蜂窝电话、移动电话、平板电脑、车辆、无人机、汽车、卡车、可穿戴设备、路由器、电视机或机顶盒中的至少一个。
在一些实施方式中,中继服务器包括被配置为从中间设备接收信标的计算设备。在一些实施方式中,中继服务器包括数据存储装置,该数据存储装置包括与所接收的信标有关的数据。
附图说明
图1是根据本公开的一些实施方式的包括一个或多个端点设备、一个或多个中间设备、一个或多个中继服务器以及一个或多个端点管理器服务器的网络架构的示意图。
图2a-e是示出根据本公开的一些实施方式的使用网络架构进行延迟容忍通信的方法的示意图。
图3是根据本公开的一些实施方式的边缘节点设备的虚拟环境的示意图。
图4是用于延迟容忍通信的方法的操作的示例布置的流程图。
图5是示出了计算设备的示例形式的机器的示意图。
具体实施方式
物联网(IoT)正在扩展到人类生活的各个方面。到2025年,预期将部署超过750亿台IoT设备,因此需要一种更高效的新网络基础设施来使这些设备联网并彼此连接。
IoT设备存在许多连接解决方案。不幸的是,所有这些都存在带宽有限、连接性降低、功耗高和/或成本高的问题。例如,蜂窝连接可能在设备中消耗大量功率并且也可能是昂贵的。低功率解决方案(诸如,低功率广域网(LPWAN))可以比蜂窝连接消耗更少的功率。然而,LPWAN可能受到有限带宽的约束,并且可能不能传输足够的数据来完全满足分布式网络的需要。常规系统可能不消耗相对低的功率量,同时仍提供高带宽。
具体地,当今将小型设备连接至互联网的现有解决方案包括:(a)使用现有无线网络,例如,通过将蜂窝模块与用户识别模块(SIM)卡或软件SIM(例如,eSIM)合并到设备中以给予其蜂窝连接;(b)通过并入定制无线电芯片组和建立固定基础设施以支持这一网络,建立一个新的替代无线网络;以及(c)使用远程网络技术(例如,来自LoRa联盟的网络技术)。LoRa在IoT设备和工业、科学和医疗(ISM)频谱带上的“中央网络服务器”之间使用网关和网桥复杂的“星型”拓扑。
这些方法中的每一种都具有显著的缺点。例如,这些方法中的每一种都需要相当大的功率量,这通常是移动设备中电池消耗的主要原因。此外,方法(a)需要昂贵的蜂窝模块,并且另外需要为无线运营商的服务订阅和数据两者支付无线蜂窝服务的月费。方法(b)和(c)也是昂贵的,因为它们需要构建新的固定基础设施,并且除了流行的蓝牙芯片组之外还经常需要购买用于无线电传输的(单独的)芯片组。传输范围越长,功率需求越大,因此这些方法中的每一种都需要相当大的功率。类似地,由于距离较长,蜂窝设备和全球定位系统(GPS)使能设备需要高功率来与蜂窝塔或卫星通信。
本公开的各方面通过提供用于分布式网络中的数据交换的协议来解决常规联网的这些和其他问题。在一些方面,本公开提供了将众包基础设施变成异步可编程网络的系统和方法,该异步可编程网络可以接进在每个边缘节点上可用的资源。在一些方面,分散式网络可以使用低功率来连接多个设备,同时提供更高的连接性和/或带宽。一种实施方式包括用于将数据从IoT设备传输或发送到不依赖于固定基础设施的服务器(例如,云服务器)的基于众包的方法。另一实施方式包括用于服务器(例如,云服务器)向不依赖于固定基础设施的IoT设备传输数据以及从其接收数据的众包方法。另一实施方式包括用于将信标信号中的数据从多个IoT设备上的多个服务路由到适当的设备制造商服务器(例如,云服务器)的方法。又一实施方式包括一种减少用于收集数据或与远程IoT设备交换数据的移动设备上的能耗的方法。又一实施方式包括触发或执行与设备的各种交互的方法。又一实施方式包括提供一种机制,以允许任何人基于任何条件编写程序,以使用延迟容忍分散网络与任何设备交互。
在一个方面,本公开描述的系统和技术通过使用众包技术,使得无需单独的固定基础设施,从而对现有技术作出了改进。一些方面提供了用于IoT设备与服务器通信的方法,该方法具有低功耗特征并且不需要大规模固定硬件基础设施。本公开的其他益处在于能够降低互联网接入的成本以及创建用于IoT领域中新创的平台,包括能够向任何人提供创建和发布用于IoT设备的程序以及设置可执行程序的条件。
本公开内容对于使用基于网络的通信的几乎每个领域都是有用的。可以从本公开受益的示例各方包括但不限于智能电话制造商、自行车和骑乘共享公司、户外广告商、环境分析公司、资产跟踪实体、分布式计算公司等。示例应用可以包括用于污染跟踪、资产跟踪、发现丢失的设备、工业预测维护、分布式网络路由、分布式计算等。此外,本公开的各方面可以不依赖于使用SIM或LPWAN调制解调器的连接,这使得设备能够更小且更高效。
例如,在设备和资产的位置跟踪场景中,大多数低成本跟踪设备制造商依赖于应用用户来定位设备,并且不具有足够的应用密度来提供全球覆盖。增加蜂窝模块和GPS模块是昂贵的并且耗电。本公开的各方面可以提供一种解决方案,该解决方案不需要端点设备包括全球互操作的蜂窝或GPS模块,并且降低了成本。
一些方面还可用于固件更新、更新设备的日期和时间、创建可穿戴设备网络、数据IP连接性、测量人口密度(诸如通过检测给定位置中的蓝牙设备的数目)、检查保险公司的特定设备的存在、检测市场分析公司、对冲基金和私募股权公司等的特定设备的销售趋势。
此外,诸如位置更新和环境/健康数据的延迟容忍使用情况也可以从本公开受益。例如,许多情况不需要立即的云或互联网连接。在这种情况下,本公开利用智能电话的各种联网能力,诸如蓝牙连接性及其Wi-Fi卸载能力,以提供与LPWAN相比显著增强的带宽。
参考图1,在一些实施方式中,示例网络架构100、100a可以包括一个或多个端点设备105、105a-d、一个或多个中间设备115、115a-d、一个或多个中继服务器125、125a-b以及一个或多个端点管理器服务器135、135a。在一些实施方式中,网络架构100a能够通过可以被实现为网络客户端的众包中间设备115和一个或多个中继服务器125在一个或多个端点设备105和各种端点管理器服务器135之间移动或传输数据(例如,消息、期望的信息、期望的测量数据)。在至少一个实施方式中,一个或多个端点设备105可以被称为边缘设备(“ED”)。在至少一个实施方式中,一个或多个端点设备105和一个或多个中间设备115可以统称为边缘设备(“ED”)。在一些实施方式中,网络架构100能够直接或间接地向一个或多个边缘设备ED提供“热点”服务。在一些实施方式中,网络架构100能够使用短程无线网络向端点设备105中的一个或多个提供“热点”服务。
在一些实施方式中,端点设备105包括一个或多个物联网(IoT)设备111。为了支持IoT设备111、111a-d的操作,端点设备105可包括电源112、112a-d、数据收集设备113、113a-d(例如,传感器、仪表、能够感测环境或人的设备)、以及网络设备114、114a-d。电源112可以包括电池和/或与电网的连接。附加地或替代地,电源112可以包括能量收集装置,诸如太阳能电池板、太阳能电池、太阳能光伏电池、电磁电池等。在至少一些实施方式中,端点设备105不包括电源,而是使用环境反向散射或其他合适的技术来操作端点设备105。端点设备105中的数据收集设备113可以包括一个或多个传感器。一个或多个传感器可以被配置为检测任何类型的状况(例如,环境状况、人类状况),并且基于检测到的状况生成电子数据。例如,端点设备105可以包括具有心率监视器(配置有心率传感器)的智能手表,该心率监视器被配置为基于由心率传感器收集的心率状况来生成心率数据。在至少一个实施方式中,端点设备105不具有通过互联网通信的能力,并且仅包括能够使用一个短程无线协议或短程无线协议的组合与诸如附近的中间设备115的附近设备通信的硬件和/或软件。在一些实施方式中,端点设备105包括用于存储状况测量数据的数据存储装置。在一些实施方式中,端点设备105被配置为当端点设备105与设备(例如,中间设备115)进行数据通信时将所存储的数据传输到该设备。
端点设备105的网络设备114可以包括能够经由网络与另一设备(例如,中间设备115)通信的任何合适的硬件、软件或其组合。在至少一个实施方式中,网络设备114包括被配置成经由短程网络来通信的网络控制器116、116a-d,短程网络诸如用蓝牙协议实现的网络或任何其他合适类型的短程网络。在至少一个实施方式中,网络设备114可包括被配置成经由低功率网络(例如,支持从0.01mW到100mW的传输功率的合适网络)来通信的网络控制器116。在一些实施方式中,网络控制器116被配置成经由低功率和短程网络(例如,蓝牙网络)来通信。示例端点设备105包括但不限于工业设备、住宅电器、商业设备、库存跟踪器、智能手表、可穿戴设备、心率监视器、物流跟踪器、环境传感器、收银机、信用卡读取器、销售点(POS)、自行车、电动踏板车、电动滑板、汽车、电动汽车、卫星或任何设备(包括无线电接口的移动和非移动的设备)。根据本公开的一些实施方式,网络架构100包括任何数量的端点设备105,并且网络架构100a中的端点设备105可以是任何类型的端点设备105,包括任何类型的具有网络能力的设备。端点设备105在网络架构100中可以是固定的或相对静止的,诸如POS或污染感测设备。另外或替代地,端点设备105可以是移动的,诸如智能手表,或任何车辆类别(例如,汽车、卡车、自行车、脚踏板)。
如图1所示,在一些实施方式中,一个或多个端点设备105可以被配置为经由至少一个第一无线网络110、110a-d与网络中的其他设备(例如,中间设备115)通信。例如,图1中的端点设备105a可以经由第一无线网络110a与中间设备115a进行电子通信(例如,数据通信)。一个或多个中间设备115可以包括能够经由第一无线网络110与端点设备105通信并且经由第二网络120、120a-b与中继服务器125通信的任何种类的设备。在至少一个实施方式中,中间设备115包括两个网络控制器:经由第一无线网络110通信的第一网络控制器117、117a-d,以及经由第二网络120通信的第二网络控制器118、118a-d。示例中间设备115包括个人计算机(PC)、膝上型计算机、智能电话、上网本、电子阅读器、个人数字助理(PDA)、蜂窝电话、移动电话、平板电脑、车辆、无人机、汽车、卡车、可穿戴设备、路由器、电视机或机顶盒等。
如图1所示,在一些实施方式中,第一端点设备105a可以经由第一无线网络110a(例如,范围在10米和100米之间的短程网络)与第一中间设备115a进行电子通信。此外,端点设备105b可以经由第一无线网络110b与中间设备115b进行电子通信。端点设备105c可以经由第一无线网络110c与中间设备115c进行电子通信。端点设备105d可以经由第一无线网络110d与中间设备115d进行电子通信。
在一些实施方式中,第一无线网络110可以是消耗或需要相对少量功率(例如,0.01mW和100mW之间的功率)的任何网络。第一无线网络110的至少一些示例包括蓝牙网络(例如,蓝牙低功耗(BLE)、蓝牙4.0、蓝牙5.0、蓝牙长程)、窄带-IoT(NB-IoT)网络、长期演进(LTE)直接网络、机器LTE(LTE-M)网络、LTE机器对机器(LTE M2M)网络、5G网络、无线保真(Wi-Fi)网络、Wi-Fi感知网络、或任何低功率网络和/或短程网络。
如图1所示,在一些实施方式中,一个或多个端点设备105使用不同类型的第一无线网络110连接到各种中间设备115。例如,第一端点设备105a可以经由利用BLE实现的第一无线网络110a与第一中间设备115a进行电子通信(例如,数据通信),并且第二端点设备105b可以经由利用其他类型的短程无线网络实现的第一无线网络110b与第二中间设备115b进行电子通信。
在一些实施方式中,第一无线网络110和第二网络120是不同类型的网络。例如,第一无线网络110可以是蓝牙网络,第二网络120可以是蜂窝网络、Wi-Fi或互联网。例如,第二网络120可以包括公共网络(例如,互联网)、专用网络(例如,局域网(LAN)或广域网(WAN))、有线网络(例如,以太网)、无线网络(例如,802.xx网络或Wi-Fi网络)、蜂窝网络(例如,长期演进(LTE)或高级LTE网络、1G网络、2G网络、3G网络、4G网络、5G网络等)、路由器、集线器、交换机、服务器计算机,和/或其组合。
在一些实施方式中,将中继服务器125连接到端点管理器服务器135的第三网络130,包含公共网络(例如,互联网),专用网络(例如,局域网(LAN)或广域网(WAN),有线网络(例如,以太网),无线网络(例如,802.xx网络或Wi-Fi网络),蜂窝网络(例如,长期演进(LTE)或高级LTE网络、1G网络、2G网络、3G网络、4G网络、5G网络等)、路由器、集线器、交换机、服务器计算机,和/或其组合。在至少一个实施方式中,第二网络120和第三网络130是相同的网络或包括至少一些重叠的部件。在一些实施方式中,中继服务器125、第三网络130、端点管理器服务器135的至少一部分是云网络200(例如,分布式计算网络)。例如,中继服务器125、第三网络130、以及端点管理器服务器135可以形成与中间设备113和端点设备105交互的分布式计算网络。在一些实施方式中,边缘设备ED(例如,中间设备115)被包括在云网络200中,因为边缘设备ED能够收集和/或处理期望的数据。
端点设备105、中间设备115或两者可以是固定的、相对静止的或可移动的。根据一些实施方式,当端点设备105和中间设备115进入彼此的无线范围(例如,10米)时,端点设备105和中间设备115可以执行握手和/或认证以发起端点设备105和中间设备115之间的数据交换。例如,中间设备115被配置为在认证之后向端点设备105提供“热点”服务。在一些实施方式中,通过在中间设备115的虚拟环境202(图2a中所示)上执行代码(例如,图2a中所示的程序204)来向端点设备105提供“热点”服务。稍后将在本公开中讨论关于代码和虚拟环境202的更多细节。
在一些实施方式中,端点设备105被配置为经由第一无线网络110周期性地或随机地发送或传输信标信号140或包括数据(例如,识别传输端点设备105的数据、由传输端点设备105测量或接收的数据)的信标信号140。端点设备105可以包括可以在端点设备105上运行的各种服务。例如,智能手表可以包括时钟服务、心率监视器服务、运动检测服务、音乐服务等。可以为这些服务中的每一个生成单独的信标信号140,或者可以生成单个信标信号以包括用于一些或所有服务的数据。
在一些实施方式中,服务可以执行按需蓝牙低功耗(BLE)会话,以便从/向端点设备105(例如,端点设备105中的IoT设备111)读/写信息。这通过在边缘设备ED(端点设备105和/或中间设备115)上运行的虚拟环境202(例如,虚拟机、容器)上运行定制代码(例如,能够在虚拟化环境和/或容器化环境上运行的指令或代码,诸如字节码和容器化程序)来工作。在本公开中,该代码(例如,字节码、容器化程序)也被称为“智能eXchange”或“SX”。在一些实施方式中,虚拟环境202公开了某些操作码,其允许诸如BLE读/写、http获取/发布或dtn发送的基本网络操作。由于虚拟环境202是图灵完备的,因此可以运行任何种类(或版本)的BLE协议。
在至少一个实施方式中,边缘设备ED(例如,端点设备105和/或中间设备115)包括被配置为本地执行代码(在本公开中也称为“程序204”)的电路(例如,硬件、软件或其组合)。在至少一个实施方式中,电路包括代码在其上运行的虚拟环境202。虚拟环境202可包括解释器340(图3中示出),它可执行以任何编程语言(诸如以Nodle汇编(NASM))编写的程序204(例如,字节码、容器化程序)。虚拟环境202驻留在边缘设备ED(例如,端点设备105和/或中间设备115)内部的益处可以包括能够响应于一个或多个预定状况(例如,触发事件)而选择性地执行程序204。虚拟环境202驻留在边缘设备ED内部的附加益处可以包括程序204可以选择性地从云服务器200推送到边缘设备ED-绕过常规应用商店(例如,谷歌的Play商店、苹果的应用商店)。此外,相同的程序204可以被推送并安装到不同的边缘设备ED上,而不管安装在边缘设备ED上的操作系统的版本和/或类型(例如,安卓、安卓或IOS的版本)。然而,本公开不限制程序204的形式。在一些实施方式中,程序204被包括在可在应用商店处获得的常规应用中。在一些实施方式中,程序204被包括到边缘设备ED的操作系统。在一些实施方式中,通过执行程序204,边缘设备ED的所有者可以从程序的分发者或操作者(例如,程序204的作者)接收奖励(例如,加密货币)。
以这种方式,虚拟环境202可以使用众包基础设施或将众包基础设施转换成异步可编程网络,该异步可编程网络可以接进在每个边缘设备ED(例如,端点设备105和/或中间设备115)上可用的资源。例如,程序204的执行可以在某些状况下被触发。例如,边缘设备ED(例如,中间设备115)可以包括具有到互联网的间歇性连接的设备(例如,智能电话)并且也是移动的。更具体地,用例可包括查询来自诸如蓝牙设备(例如,端点设备105)的“难以连接”的IoT设备的数据。难以连接的设备可以包括很少连接到(或从不连接到)互联网的设备。在至少一个实施方式中,程序204可被写入并分发(诸如经由系统100)到一个或多个中间设备115,该一个或多个中间设备将(仅)在那些中间设备115处于目标端点设备105(例如,配置有目标IoT设备111的端点设备105)的范围内的情况下执行。在此状况下,程序204可执行,其可包含与目标设备(例如,端点设备105)的交互以获取特定数据片段(例如,当端点设备115配备有污染传感器时,诸如污染数据的期望信息),且每当中间设备115(例如,智能电话)具有连接性(例如,到第二网络120的连接性)时,可接着将所请求的数据的输出(例如,期望的信息)移动或传输到中继服务器125和/或端点管理器服务器135。在该实施方式中,被选择安装程序204的一组边缘设备ED可以被认为是分布式计算网络,因为安装了程序204的每个边缘设备ED被配置为收集和/或处理特定数据片段(例如,查询特定数据、接收特定数据、确定所接收的数据包括特定数据、传输特定数据)。
在一些实施方式中,程序204被配置为使得一个边缘设备ED(端点设备105和/或中间设备115)使用短程无线网络(例如,第一无线网络110)与附近的另一边缘设备ED(端点设备105和/或中间设备115)通信(例如,共享、中继、路由数据或消息)。在特定示例中,选择一组边缘设备ED以安装程序204(在该示例中为中继服务程序)。基于程序204,边缘设备ED被配置为提供数据和/或消息中继服务。例如,端点管理器服务器135(在该示例中为端点管理器服务器135a)向配置有程序204的边缘设备ED之一(在该示例中为中间设备115a)发送或传输消息150(例如,广告、公告、信息、数据、固件、程序204)。在一些实施方式中,从端点管理器服务器135接收到消息150的边缘设备ED(中间设备115a)经由短程无线网络(例如,第一无线网络100)将消息150中继或传输到附近配置有程序204的其他边缘设备ED(在该示例中为中间设备115b)。类似地,消息150从中间设备115b经由短程无线网络(例如,第一无线网络110)中继或传播到中间设备115c,然后从中间设备115c经由短程无线网络(例如,第一无线网络110)中继或传播到中间设备115d。在一些实施方式中,类似地,消息150可以被传输或传播到安装有程序204的附近的端点设备105(在该示例中为端点设备105a-d)。例如,消息150可以在附近的端点设备105之间被中继或传输。换句话说,来自端点管理器服务器135的消息150可以使用短程无线网络(例如,第一无线网络110)被递送到特定区域中的配置有程序204的边缘设备ED。在一些实施方式中,接收到消息150的中间设备115中的每一个可以经由短程无线网络(例如,第一无线网络110)将消息150中继或传输到附近的端点设备105。以这种方式,可以创建设备的本地自组织网络。
例如,服务器可以推送可以由至少一个设备接收的指令。该设备可以建立网络,并且可以将指令转发到范围内的任何其他设备。这些设备可以加入网络,并且可以将指令再次转发到它们各自范围内的其他设备。以这种方式,可以传播用于创建网络的指令。在一些示例中,指令可以包括网络限制器,其可以是基于地理的、基于大小的、基于加入设备数量的、基于时间等。例如,在网络的基于地理的限制中,指令可以包括网络的中心点的标识,诸如GPS位置、纬度/经度坐标等,以及允许网络的距该中心点的距离。例如,体育场可以被选择为中心点、距该中心点的距离,诸如基本上包围体育场的边界、以及网络可能期满的时间,诸如在体育赛事之后。对于接收加入网络的指令的设备,这些设备可以首先执行检查以查看是否满足标准,并且如果是,则这些设备可以加入网络。如果不满足至少一个标准(例如,超出范围、超出时限等),则设备可以不加入网络。例如,潜在加入设备可以检查其自身的位置(例如,实际位置、距中心点的距离等)以查看其是否在范围内。例如,加入网络的设备可以将数据附加到所转发的指令。例如,加入的设备的数量可以是包括在指令中的数据,并且潜在的加入设备可以对照网络上设备的总允许数量来检查该数量。如果还有设备可用的热点,则该潜在加入设备可以加入网络,而如果没有更多可用的热点,则该潜在加入设备可以不加入网络。当设备离开网络时,其他设备可以加入,并且甚至可以接收网络现在可用于加入的通知。
在一些实施方式中,中间设备115和端点设备105(其配置有程序204)可以使用短程无线网络(例如,第一无线网络110)形成一个网状网络,因此可以使用短程无线网络(例如,第一无线网络)在网状网络内的设备(例如,端点设备105、中间设备115)之间传输信息(例如,数据140、消息150)。
在另一示例中,从端点设备105(在该示例中为端点设备105a)接收数据208(例如,从IoT设备/端点设备收集的数据)的边缘设备ED(在该示例中为中间设备115a)可以将数据208中继或传输到附近的其他中间设备115/端点设备105,类似于以上的消息150(例如,使用网状网络、使用中间设备到中间设备网络、使用端点设备到端点设备网络、使用中间设备到端点设备网络)。当中间设备115(中间设备115a)不能接入第二网络120时(在该示例中在第二网络120a的覆盖范围之外),该方法是有帮助的。使用该方法,数据208可以经由各种路由被中继到中间设备115d,并且经由第二网络120(在该示例中为第二网络120b)被传输到端点服务器135。换言之,在一些实施方式中,可以基于短程无线网络(例如,第一无线网络110)使用程序204向边缘设备ED(在该示例中为端点设备105a和中间设备115a)提供“热点”服务。任何类型的数据都可以被发送到网络并经由网络发送,包括基于时间的并且也可以是基于兴趣的定向广告。例如,继续上面的体育赛事示例,可以发送更适用于当时看台观众的广告,诸如商品广告,或者可以是体育场特许摊位的优惠券广告。
网络还可以用于创建社交网络,其可以基于网络中的设备的邻近社交图以及基于那些设备的用户。这种邻近社交网络可以由在设备上执行的任何代码利用。对于体育赛事示例,可以为体育场中的爱好者创建接近的和时间的社交网络。还可以在地理范围内创建多个邻近社交网络,诸如针对在体育赛事中进行比赛的每个团队以及针对任何数目的其他兴趣群组的邻近社交网络。在一些实施例中,社交网络是预定义的。附加地或替换地,可以基于经由设备中的一个或多个设备接收的输入来创建社交网络。在一些实施例中,基于用户输入创建的社交网络可以经由一个或多个过滤器处理,该过滤器可以防止创建某些类型的社交网络。
在另一个示例中,要发送到本地网络上的特定设备的数据可以通过最终目的设备的标识符或地址寻址到网络本身。当数据到达网络上的任何设备时,它然后可以将数据转发或路由到最终目的地设备,该最终目的地设备可以以一跳或多跳到达最终目的地设备。在特定示例中,虚拟环境202可以被提供在诸如智能眼镜的可穿戴设备中。在虚拟环境202上执行的程序204可以使用智能眼镜上的设备或传感器,诸如无线接收器或图像传感器,来收集数据。条件可以包括使用无线接收器或图像传感器对特定项目或对象的识别。例如,无线接收器可以从由智能眼镜的佩戴者拥有的车辆接收信标信号140。当满足条件时,在虚拟环境202上执行的程序204可以促进车辆操作,诸如解锁车辆的门(例如,通过传输命令)。对于图像传感器,当智能眼镜的图像传感器捕获特定对象(例如,加油站)时,图像传感器(例如,配置有图像传感器的边缘设备ED)可以捕获汽油价格,并且可以通过网络(例如,第二网络120、第三网络130)将它们传输到收集(并且可以引起发布)这样的汽油价格的计算设备(例如,中继服务器125、端点管理器服务器135)。条件的示例和基于这些条件的相关动作是众多的,并且通过本公开使得其成为可能。图2a-d提供了另一个示例。
参考图2a-e,在一些实施方式中,示例网络架构100、100b包括配置有IoT设备111e以收集期望数据(在该示例中为空气污染数据)的端点设备105e。如上所述,为了支持IoT设备111的操作,端点设备105可包括数据收集设备113。在示例网络架构100中,端点设备105e的数据收集设备113e包括空气污染传感器(例如,在该示例中,可以测量一氧化碳、铅、氮氧化物、地面臭氧或空气中的颗粒中的至少一个的传感器或仪表)。如图2a所示,示例网络架构100包括云服务器200(例如,端点管理器服务器135b、中继服务器125c、中继服务器125d),其被配置为经由互联网或其他合适的网络(例如,第二网络120、第三网络130)将程序204分发到一个或多个目标中间设备115(在该示例中为中间设备115e),以在满足预定条件时在中间设备115e处执行程序204。在该实施方式中,程序204被配置为当期望端点设备105e在附近时从期望端点设备105e收集期望的数据(例如,空气污染数据)。
如图2a所示,在一些实施方式中,示例网络架构100包括配置有虚拟环境202e(例如,虚拟化环境、容器化环境)的中间设备115e。一旦中间设备115e接收到程序204,程序204就准备好在虚拟环境202e上执行或运行以履行特定任务。举例来说,在此实例中,程序204的特定任务是提供从期望端点装置105e检索空气污染数据的服务。在一些实施方式中,程序204包括期望端点设备105e的至少一个唯一标识(例如,与期望端点设备105e相关联的媒体访问控制(MAC)地址、与期望端点设备105e相关联的通用唯一标识符(UUID)),以确定触发程序204的执行的事件(例如,确定中间设备115e在期望端点105e的通信范围内,检测来自端点设备115e的信标信号)。
参考图2b,在一些情况下,中间设备115e是可移动的。在中间设备115e移动的同时,中间设备115e周期性地或随机地监听或检测来自附近端点设备105的信标信号(例如,监听模式)。在一些实施方式中,基于所接收的信标信号140(例如,具有期望端点设备105e的唯一标识符的信标信号),中间设备115e确定中间设备115e是否经由第一网络110e在期望端点设备105e的通信范围内。在一些实施方式中,中间设备115e将信标信号140转发到中继服务器125c-d和/或端点管理器服务器135b,并且等待来自中继服务器125c-d和/或端点管理器服务器135b的(确认)消息150。在一些实施方式中,基于消息150,中间设备115e确定中间设备115e是否在期望的端点设备105e的通信范围内。在一些实施方式中,程序204被提供给一个以上的中间设备115。在一些实施方式中,当存在多于一个目标端点设备105时,期望端点105e的多于一个唯一标识符被包括在程序204中。在一些实施方式中,端点设备105被配置为在从中间设备115接收到某种信号(例如,信标信号、查询信号)时传输信标信号140。
参考图2c,在一些实施方式中,当中间设备115e确定中间设备115e在期望端点105e的通信范围内时(例如,将信标信号140中的唯一标识符与程序204中的唯一标识进行匹配和/或接收消息150),执行中间设备115e上的程序204以传输请求206,以从期望端点设备105e获得期望数据(例如,空气污染数据)。响应于来自中间设备115e的请求206,期望端点105e将空气污染数据208传输到中间设备115e。在一些实施方式中,中间设备115e被配置为将数据存储在其存储装置中。在一些实施方式中,中间设备115e被配置为当第二网络120c(例如,WI-FI,蜂窝网络)可用于中间设备115e时,将数据传输到云服务器200。
参考图2d和2e,在一些实施方式中,当互联网或合适的网络连接(例如,第二网络120、第三网络130)可用于中间设备115e时,中间设备115e将期望的数据传输到云服务器200。
参考图3,在一些实施方式中,虚拟环境202被提供在可以安装程序204的边缘设备ED(例如,端点设备105和/或中间设备115)中。在该示例中,由云服务器200推送的程序204被安装到中间设备115的虚拟环境202上。如上所述,虚拟环境202可包括解释器340,其可执行以任何编程语言(诸如以Nodle汇编(NASM))编写的程序204(例如,字节码、容器化程序)。虚拟环境202驻留在边缘设备ED(例如,端点设备105和/或中间设备115)内部的益处可以包括能够响应于一个或多个预定条件而选择性地执行程序204的能力。虚拟环境202驻留在边缘设备ED内部的附加益处可以包括程序204可以选择性地从云服务器200推送到边缘设备ED-绕过常规应用商店(例如,谷歌的Play商店、苹果的应用商店)。此外,相同的程序204可以被推送并安装到不同的边缘设备ED上,而不管安装在边缘设备ED上的操作系统的版本和/或类型(例如,安卓、安卓或IOS的版本)。而且,程序204需要较少的资源(例如,计算资源),并且多个程序204可以被安装到一个边缘设备ED,使得边缘设备ED可以提供各种服务(例如,捕获污染数据并且同时寻找或跟踪资产)。
如图3所示,在一些实施方式中,云服务器200能够选择性地将程序204推送到边缘设备ED(在该示例中为中间设备115)。在一些实施方式中,程序204包括若干信息,其包括清单310、字节码320和气体330。例如,清单310可以包括状况或事件(例如,触发目标边缘设备ED发现事件的目标边缘设备ED唯一标识符)或者与条件或事件相关的数据。在一些实施方式中,清单310可以描述计算周围的某些参数。例如,清单310可以包括目标信息(例如,端点设备105的标识符)。在目标信息中,目标被定义为一个或多个约束,诸如设备BLE MAC地址、地理区域、所公告的服务通用唯一标识符(UUID)。在一些实施方式中,当发现目标设备(例如,检测到具有匹配MAC地址的端点设备105)时,BLE连接被建造或建立并且事件“BleDeviceConnected”被激发。因此,执行字节码。在一些实施方式中,清单310可以包括许可-特定操作码,其包括许可的诸如位置、BLE读取或http请求的数据。在一些实施方式中,为了使虚拟环境202执行这些操作码,必须在清单310中设置许可,而该许可又必须由操作员(例如,nodle操作员)签名。在一些实施方式中,清单310可以包括需要被分配用于计算的资源的量(例如,存储器、随机存取存储器)。在一些实施方式中,字节码320包括被配置为在虚拟环境202上运行的代码。在该示例中,通过执行代码,中间设备115可以提供各种服务(例如,从配备有IoT设备的目标端点设备105获得数据,跟踪被盗项目)并提供输出结果350(例如,来自目标端点设备105的数据,诸如污染数据、跟踪报告)。在一些实施方式中,气体330指示边缘设备ED的所有者将接收的用于执行字节码320的加密货币的最大量(例如,在NODL中)或奖励。如上所述,在一些实施方式中,字节码320的执行由在清单310(例如,清单文件)上声明的事件触发。在一些实施方式中,在开始执行之前,字节码320被完全复制到虚拟环境202的存储器(例如,虚拟机存储器)。
在一些实施方式中,字节码320的结构可以包括报头、事件段、文本段、数据段、RAM段、堆栈和存储器。在一些实施方式中,报头可以是16字节,并且可以包括4个连续的uint32值,按照以下顺序对不同的段进行编码偏移:eventOffset、textOffset、dataOffset、ramOffset。这些值是绝对真实地址(字节码二进制内的直接偏移)。在一些实施方式中,事件段包含指向不同事件回调的指针。它被编码为一对用于编码eventId的uint8和用于编码callbackOffset的uint32的简单列表。callbackOffset值可与文本段的开始有关,因此其在0x00处开始。在一些实施方式中,文本段包含实际字节码。除了PUSH操作码采用1到8的立即uint8值作为参数外,每个操作码被编码为单个uint8。所有操作码从堆栈的顶部弹出其操作数并推送其结果。在一些实施方式中,数据段包含初始化的数据,诸如字符串。字节码可以使用存储器的这一部分作为只读存储器。在一些实施方式中,RAM段可以由字节码自由地使用,以在程序204的执行期间存储任何数据。其大小在清单中被设置减去字节码本身的大小。在一些实施方式中,虚拟环境202(例如,虚拟机)维护用于保存本地变量、函数调用参数或本地地址的int64的堆栈。在一些实施方式中,存储器是uint8的连续阵列,其用于在执行会话时保持瞬态数据。如上所述,字节码可以在执行开始之前被复制到存储器中。
在一些实施方式中,当被触发时,程序204执行。在至少一个实施方式中,指令可以花费金钱(例如,在NODL中),因此气罐根据执行而下降。在一些实施方式中,气罐信息360由代码输出。如果罐是空的,则执行不能继续,并且这产生执行错误。否则,执行可以自然地停止。在一些实施方式中,当罐是空的时,执行可以继续,但是不向边缘设备ED的所有者提供用于执行字节码320的加密货币或奖励。在一些实施方式中,为执行字节码320,向边缘设备ED的所有者提供一定比例的加密货币或奖励,并且该一定比例的加密货币或奖励基于气罐中的气体水平。
在一些实施方式中,被终止的每次执行,无论有无错误,都产生另一束返回到目的地的发射。该束被本地高速缓存,直到边缘设备ED具有传输机会,这可以提供延迟容忍网络机制。这一新的束包含执行输出(例如,来自污染传感设备的期望数据)以及随后可兑换的剩余气体量。
返回参考图1,在一些实施方式中,中间设备115中的每一个被配置为监听或检测从周围端点设备105传输的信标信号140。根据一些实施方式,响应于接收到信标信号140,检测到信标信号140的中间设备115经由第二网络120将信标信号140发送或转发到(对应的和/或附近的)中继服务器125。在至少一个实施方式中,第一无线网络110和第二网络120是不同的网络(例如,不同的网络类型、不同的覆盖范围)。例如,第一无线网络110可以是蓝牙网络或短程网络,第二网络120可以是蜂窝网络、Wi-Fi或互联网(其可以提供比短程网络更宽的覆盖)。
在一些实施方式中,中继服务器125中的每一个被配置为从经由第二网络120连接的边缘设备ED(在该示例中为中间设备115)接收信标信号140。在一些实施方式中,中继服务器125中的每一个被配置为经由第三网络130向端点管理器服务器135发送或转发信标信号140(例如,从中间设备115和/或端点设备105接收的信标信号140),和/或与信标信号140(例如,从中间设备115和/或端点设备105接收的信标信号140中的唯一标识)有关的信息(例如,期望的数据)。在至少一个实施方式中,第二网络120和第三网络130是相同的网络或至少包括一些重叠的部件。
在一些实施方式中,中继服务器125中的每一个包括一个或多个计算设备(诸如机架式安装服务器、路由器计算机、服务器计算机、个人计算机、大型计算机、膝上型计算机、平板计算机、台式计算机、智能电话、汽车、无人机、机器人、具有操作系统的任何移动设备等)、数据存储装置(例如,硬盘、存储器、数据库)、网络、软件部件和/或硬件部件。
如图1所示,在一些实施方式中,每个中继服务器125被配置为从端点管理器服务器135接收消息150、150a。在一些实施方式中,中继服务器125中的每一个还被配置为将消息150从端点管理器服务器135发送或转发到中间设备115。在至少一些实施方式中,中间设备115中的每一个被配置为接收消息150并且将消息150转发到端点设备105。
在一些实施方式中,端点管理器服务器135包括一个或多个计算设备(诸如机架式安装服务器、路由器计算机、服务器计算机、个人计算机、大型计算机、膝上型计算机、平板计算机、台式计算机、智能电话、汽车、无人机、机器人、具有操作系统的任何移动设备等)、数据存储装置(例如,硬盘、存储器、数据库)、网络、软件部件和/或硬件部件。端点管理器服务器135可与一个或多个端点设备105相关联。例如,特定公司、个人或制造商可以出售端点设备105,并且可以使用端点管理器服务器135来与端点设备105通信和/或控制端点设备105。
在一些实施方式中,端点管理器服务器135被配置为发送或传输与特定端点设备105或一组端点设备105相关联的消息150。例如,端点管理器服务器135被配置为向特定端点设备105或一组端点装置105发送或传输更新(例如,如上所述的固件、软件、程序204)。端点管理器服务器135可向端点设备105发送其它通信,诸如对来自特定端点设备105生成的信标信号140的请求的响应。
在一些实施方式中,每个中继服务器125包括消息管理器142、142a-b。消息管理器142可以使用包括处理器、微处理器(例如,以执行或控制一个或多个操作的执行)、现场可编程门阵列(FPGA)或专用集成电路(ASIC)的硬件来实现。在一些其它实例中,消息管理器142可使用硬件与软件的组合来实施。软件实现可以包括一个或多个晶体管或晶体管元件的快速激活和去激活,诸如可以包括在计算系统的硬件(例如,中继服务器135)中。另外,软件定义的指令可以对晶体管元件内的信息进行操作。软件指令的实现可以至少临时重新配置电子路径并转换计算硬件。
在一些实施方式中,中继服务器125中的每一个包括数据存储装置145、145a-b。数据存储装置145可以包括任何存储器或数据存储装置。在一些实施方式中,数据存储装置145包括用于承载或具有存储在其上的计算机可执行指令或数据结构的计算机可读存储介质。计算机可读存储介质可以包括可由通用或专用计算机(诸如处理器)访问的任何可用介质。例如,数据存储装置145可以包括计算机可读存储介质,其可以是有形的或非暂时性计算机可读存储介质,包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)或其他光盘存储装置、磁盘存储装置或其他磁存储设备、闪存设备(例如,固态存储器设备)、或可以用于承载或存储计算机可执行指令或数据结构形式的期望的程序代码并且可以由通用或专用计算机访问的任何其他存储介质。上述各项的组合可以包括在数据存储装置145中。
如图1所示,在一些实施方式中,数据存储装置145是中继服务器125的一部分。在一些实施方式中,数据存储装置145与中继服务器125分离,并且可以经由合适的网络访问数据存储装置145。在至少一个实施方式中,数据存储装置145包括多个数据存储装置。
数据存储装置145可以包括与端点设备105、中间设备115和端点管理器服务器135以及端点设备105、中间设备115和端点管理器服务器135之间的关系相关的数据。例如,数据存储装置145可以包括与特定端点管理器服务器135相关联的端点设备105的表或列表。数据存储装置145可以包括与从端点设备105接收的信标信号140有关的数据,诸如信标信号140的接收时间戳、与信标信号140的创建相关联的时间戳、与信标信号140和/或创建或传输信标信号140的端点设备105相关联的地理位置、与端点设备105相关联的传感器数据、关于如何和/或在哪里在端点管理器服务器135和端点设备105之间发送数据的路由信息、中间设备105和端点设备之间的连接强度、端点设备105与中间设备115的接近度、连接中间设备115和端点设备105的第一无线网络110的类型、中间设备115和端点设备105之间的连接成本、中间设备115的当前电池水平、中间设备115的类型等。
在一些实施方式中,消息管理器142处理端点设备105、中间设备115和(一个或多个)端点管理器服务器135之间的通信。在示例中,消息管理器142可以经由第二网络120从中间设备115接收信标信号140。信标信号140可能已经由端点设备105经由第一无线网络110发送到中间设备115。在一些实施方式中,信标信号140包含关于端点设备105的特性,包括端点设备105的标识符(例如,MAC地址、唯一标识)、端点设备105的地理位置、以及其支持的服务的UUID的公告等。消息管理器142可标识信标信号140的特性,诸如通过分析信标信号140以标识与信标信号140相关的信息。消息管理器142可访问数据存储装置145以基于信标信号140的特性来标识与信标信号140相关联的端点管理器服务器135。例如,端点设备105的标识符可以与操作特定端点管理器服务器135的特定制造商相关联。消息管理器142可以识别数据存储装置145中的该特定端点管理器服务器135以及地址和/或路径以发送信标信号140,以便到达端点管理器服务器135。在至少一些实施方式中,消息管理器142可经由第三网络130向端点管理器服务器135发送信标信号140或信标消息。信标消息可以包括信标信号140,可以不包括信标信号140,或者可以包括与信标信号140相关的信息。
在至少一个实施方式中,信标信号140包括来自与端点设备105相关联的多个服务的数据。附加地或替代地,来自单个端点设备105的多个信标信号140可经由第一无线网络110来生成和广播。例如,这些多个信标信号140中的每一个可以与关联于端点设备105的不同服务相关联。消息管理器142可以标识服务,并且基于用于服务的信息,标识应当接收信标信号140的适当的端点管理器服务器135。
在一些实施方式中,端点管理器服务器135被配置成从中继服务器125接收信标信号140(例如,消息)。端点管理器服务器135可存储信标信号140、处理信标信号140、基于信标信号140生成报告、可基于信标信号140生成通知或响应、或任何其他动作。例如,端点管理器服务器135可生成与信标信号140相关的响应消息150。响应消息150可以包括针对中继服务器125、中间设备115、生成信标信号140的端点设备105或没有生成信标信号140的另一个端点设备105中的一个或多个的消息150。端点管理器服务器135可将响应消息发送到将信标信号140发送到端点管理器服务器135的相同中继服务器125,或发送到不将信标消息发送到端点管理器服务器135的不同中继服务器125。
中继服务器125可从端点管理器服务器135接收与信标信号140相关的响应消息150。中继服务器125可以处理响应消息150,诸如通过在中继服务器125处执行操作、向另一设备(例如,用户设备)发送数据、向端点设备105发送数据等。
网络架构100可用于以不同于互联网上的常规通信的方式在能够进行基于网络通信的任何设备之间交换数据。
在示例中,网络架构100可利用现有智能电话基础设施来创建延迟容忍连接。网络架构100可以以初始延迟容忍的方式将数据移动到云,这对于诸如固件更新、状态更新、日志文件存储和微支付的许多类型的IoT通信可能是有用的。中间设备115可以包括在智能电话上运行的软件(例如,如上所述的应用程序、程序204),以周期性地扫描其他设备(例如,终端设备105),如工业设备、智能手表、可穿戴设备、物流跟踪器和环境传感器。这些端点设备105可以与在智能电话上运行的软件客户端连接以创建用于将数据移动到云和在云内移动的大规模区域范围网络。
此外,据估计,95%的人口被某种蜂窝服务覆盖。网络架构100可以部署在世界上的任何地方,并且使得低连通性区域能够增加其连通性。此外,例如,网络架构100可以通过使用在支持蓝牙的智能电话上运行的软件来提供常规蜂窝网络无法达到的覆盖范围。用户可行进到有限或无蜂窝连接性的区域,但仍可经由无线网络110从端点装置105接收信标信号140。使用网络架构100,例如,电信运营商现在可以容易地将软件更新部署到他们的用户设备以开始与如本文所述的端点设备105通信,以便甚至向世界的遥远地区提供更高延迟的IoT连接性。
在特定示例中,网络架构100可用于资产跟踪和管理。例如,网络架构100可用于寻找被配置为端点设备105的丢失项目,诸如具有无线电芯片组的滑板、附连的跟踪信标、膝上型计算机等。例如,用户可以指示项目丢失,诸如通过使用移动应用或网站向端点管理器服务器135或中继服务器125指示项目丢失。在第一示例中,端点管理器服务器135可向一个或多个中继服务器125发送消息150以监视丢失的项目。中继服务器125可将丢失项目的标识符添加到丢失项目监视列表。当中间设备115移动到不同的地理位置时,它们可以诸如使用虚拟机来执行程序204(例如,资产跟踪程序)以监视信标信号140。在该示例中,中间设备115可以从不同的端点设备105接收信标信号140。中间设备115然后将信标信号140转发到中继服务器125。当中继服务器125接收到信标信号140时,中继服务器125可以分析信标信号以确定信标信号140是否源自监视列表上的端点设备105。当中继服务器125标识出源自监视列表上的端点设备105的信标信号时,中继服务器125可以通知端点管理器服务器135已经找到丢失的项目。在至少一些实施方式中,中继服务器125可以发送丢失项目已经被发现作为推送通知或作为拉取通知的通知(即,响应于来自端点管理器服务器135的请求)。在至少一些实施方式中,中继服务器125可以向用户设备发送已经发现丢失项目的通知,该通知被用户用来指示项目丢失。
在不脱离本公开的范围的情况下,可以对网络架构100进行修改、添加或省略。本公开更一般地应用于包括一个或多个端点设备105、一个或多个无线网络、一个或多个中间设备115、一个或多个第二网络120、一个或多个中继服务器125、一个或多个第三网络130、以及一个或多个端点管理器服务器135或其任何组合的网络架构100。
此外,在本文描述的实施方式中的各种部件的分离并不意味着指示分离发生在所有实施方式中。此外,受益于本公开可以理解,所描述的部件可以一起集成在单个部件中或分离成多个部件。
图4是用于延迟容忍通信的方法的操作的示例布置的流程图400。方法400可以由处理逻辑执行,该处理逻辑可以包括硬件(电路、专用逻辑等)、软件(诸如在通用计算机系统或专用机器上运行的软件)或两者的组合,该处理逻辑可以包括在任何计算机系统或设备中。为了解释的简单,本文描述的方法被描绘和描述为一系列动作。然而,根据本公开的动作可以以各种顺序和/或同时发生,并且与本文未呈现和描述的其他动作一起发生。此外,并非所有示出的动作都可用于实现根据所公开的主题的方法。此外,本领域技术人员将理解和明白,这些方法可另选地通过状态图或事件被表示为一系列相互关联的状态。另外,本说明书中公开的方法能够被存储在诸如非瞬态计算机可读介质的制品上,以便于将这样的方法传输和转移到计算设备。如本文所使用的术语制品旨在涵盖可从任何计算机可读设备或存储介质访问的计算机程序。尽管被图示为离散的块,但是取决于期望的实施方式,各种块可以被划分为附加的块、被组合成更少的块、或者被消除。
在操作402处,该方法包括从服务器(例如,云服务器200)向边缘节点设备ED(例如,中间设备115和/或端点设备105)传输代码。如上所述,代码(在本公开中也称为程序204)可以是能够在虚拟化环境和/或容器化环境上运行的指令或代码,诸如字节码和容器化程序。
在操作404,方法400包括将代码(即,程序204)安装或插入到边缘设备ED的虚拟环境202上。如上所述,在一些实施方式中,虚拟环境202可以是虚拟化环境(例如,虚拟机)。在一些实施方式中,虚拟环境202可以是容器化环境。
在操作406,方法400包括执行代码。如上所述,在一些实施方式中,代码(即,程序204)被配置为基于触发事件执行以提供各种服务。例如,当确定边缘设备ED在目标端点设备105(配备有目标IoT设备111)附近时,触发运行该代码,以便经由第一无线网络110从IoT设备111获得期望的数据。
在操作408,方法400包括存储来自代码执行的输出。在一些实施方式中,所存储的输出可以是来自IoT设备111的期望数据,诸如污染数据。在一些实施方式中,当边缘设备ED保持输出时,直到边缘设备ED可以经由第二网络120向服务器传输输出。
在操作408处,在一些实施方式中,方法400包括,当第二网络120可用于边缘设备ED时,经由第二网络120将输出传输到服务器(例如,云服务器)。
图5是示出了计算设备500的示例形式的机器的示意图,其中可以执行用于使机器执行本文所讨论的方法中的任何一个或多个方法的指令集。计算设备500可以包括移动电话、智能电话、上网本计算机、机架安装服务器、路由器计算机、服务器计算机、个人计算机、大型计算机、膝上型计算机、平板计算机、台式计算机或具有至少一个处理器的任何计算设备等,在其中可以执行用于使机器执行本文讨论的方法中的任何一个或多个的指令集。在可替代实施方式中,机器可连接(例如,联网)到LAN、内联网、外联网或互联网中的其它机器。该机器可以在客户端-服务器网络环境中以服务器机器的能力操作。该机器可以包括个人计算机(PC)、机顶盒(STB)、服务器、网络路由器、交换机或网桥、或者能够执行指定该机器要采取的动作的一组指令(顺序的或其他方式的)的任何机器。此外,虽然仅示出了单个机器,但是术语“机器”还可以包括单独地或联合地执行一组(或多组)指令以执行本文所讨论的方法中的任何一个或多个的机器的任何集合。
示例计算设备500包括处理设备(例如,处理器)502、主存储器504(例如,只读存储器(ROM)、闪存、诸如同步DRAM(SDRAM)的动态随机存取存储器(DRAM))、静态存储器506(例如,闪存、静态随机存取存储器(SRAM))和数据存储设备516,它们经由总线508彼此通信。
处理设备502表示一个或多个通用处理设备,诸如微处理器、中央处理单元等。更具体地说,处理设备502可包含复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器或实施指令集的组合的处理器。处理设备802还可包括一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备502被配置成执行用于执行本文所讨论的操作和步骤的指令526。
计算设备500还可以包括可以与网络518通信的网络接口设备522。计算设备500还可以包括显示设备510(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备512(例如,键盘)、光标控制设备514(例如,鼠标)和信号生成设备520(例如,扬声器)。在至少一个实施方式中,显示设备510、字母数字输入设备512和光标控制设备514可以被组合到单个部件或设备(例如,LCD触摸屏)中。
数据存储设备516可以包括计算机可读存储介质524,其上存储了体现本文所述的方法或功能中的任何一个或多个的一组或多组指令526。指令526在其由计算设备500执行期间还可以完全或至少部分地驻留在主存储器504内和/或处理设备502内,主存储器504和处理设备502也构成计算机可读介质。指令还可以经由网络接口设备522通过网络518传输或接收。
虽然在示例实施方式中将计算机可读存储介质526示出为单个介质,但是术语“计算机可读存储介质”可以包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还可以包括能够存储、编码或携带用于由机器执行并且使机器执行本公开的方法中的任何一个或多个的指令集的任何介质。术语“计算机可读存储介质”可以相应地被认为包括但不限于固态存储器、光学介质和磁介质。
本文中使用的术语,尤其是在所附权利要求(例如,所附权利要求的主体)中使用的术语,通常旨在作为“开放式”术语(例如,术语“包括(including)”可以解释为“包括但不限于”,术语“具有”可以解释为“至少具有”,术语“包括(includes)”可以解释为“包括但不限于”等)。
此外,如果引入的权利要求中的特定数字是意向性的,那么这种意向将在权利要求中明确叙述,如果没有这种叙述,则不存在这种意向。例如,为了帮助理解,以下所附权利要求可以包含使用引导性短语“至少一个”和“一个或多个”来引入权利要求叙述。然而,这种短语的使用不能被解释为暗示着由不定冠词“一”或“一个”引入的权利要求特征将包含这种引入的权利要求特征的任何特定权利要求限制为仅包含一个这种特征的实施方式,即使当同一权利要求包括引导短语“一个或多个”或“至少一个”以及诸如“一”或“一个”的不定冠词时(例如,“一”和/或“一个”可以被解释为意指“至少一个”或“一个或多个”);这同样适用于使用定冠词来引入权利要求叙述。
另外,即使明确地叙述了所引入的权利要求叙述的特定数量,本领域技术人员将认识到,这样的叙述可以被解释为意味着至少所叙述的数量(例如,没有其他修饰语的“两个叙述”的无修饰叙述意味着至少两个叙述、或者两个或更多个叙述)。此外,在使用类似于“A、B和C等中的至少一个”或“A、B和C等中的一个或多个”的实例时,一般来说,这种解释意在包括单独A、单独B、单独C、A和B一起、A和C一起、B和C一起或A、B和C一起等。例如,术语“和/或”的使用就是要以这种方式来解释。
此外,无论是在说明书、权利要求书还是附图中,任何表示两个或多个替代术语的分离性词语或短语均可理解为考虑了包括术语之一、术语中的任一或两个术语的可能性。例如,短语“A或B”可以理解为包括“A”或“B”或“A和B”的可能性。
本文描述的实施方式可以使用用于承载或具有存储在其上的计算机可执行指令或数据结构的计算机可读介质来实现。这种计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括非瞬态计算机可读存储介质,包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)或其他光盘存储、磁盘存储或其他磁存储设备、闪存设备(例如,固态存储器设备)、或可用于携带或存储计算机可执行指令或数据结构形式的所需程序代码且可由通用或专用计算机访问的任何其他存储介质。以上的组合也可被包括在计算机可读介质的范围内。
计算机可执行指令可以包括,例如使通用计算机、专用计算机或专用处理设备(例如,一个或多个处理器)执行特定功能或功能组的指令和数据。尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式来公开的。
如本文所使用的,术语“模块”或“部件”可以指被配置为执行模块或部件的操作的特定硬件实现和/或可以存储在计算系统的通用硬件(例如,计算机可读介质、处理设备等)上和/或由计算系统的通用硬件执行的软件对象或软件例程。在一些实施方式中,本文描述的不同部件、模块、引擎和服务可以被实现为在计算系统上执行的对象或进程(例如,作为单独的线程)。虽然本文描述的一些系统和方法通常被描述为以软件(存储在通用硬件上和/或由通用硬件执行)实现,但是特定硬件实现或软件和特定硬件实现的组合也是可能的和预期的。在本说明书中,“计算实体”可以是如本文先前定义的任何计算系统,或者在计算系统上运行的任何模块或模块组合。
本文所述的所有示例和条件语言旨在用于教学目的,以帮助读者理解本发明和发明人为促进本领域发展而贡献的概念,并应理解为不限于此类具体列举的示例和条件。尽管已经详细描述了本公开的实施方式,但是可以理解,在不脱离本公开的精神和范围的情况下,可以对其进行各种改变、替换和变更。

Claims (20)

1.一种用于通信的方法,所述方法包括:
经由第一网络向第一设备传输代码,所述代码被配置为在与所述第一设备相关联的虚拟环境上执行,
其中当在所述虚拟环境上执行时,所述代码使所述第一设备经由第二网络与第二设备通信,
其中所述第一网络基于第一网络协议,所述第二网络基于不同于所述第一网络协议的第二网络协议。
2.如权利要求1所述的方法,其中所述通信包括经由所述第二网络从所述第二设备请求数据,所述数据由与所述第二设备相关联的物联网IoT设备生成。
3.如权利要求1所述的方法,其中所述通信包括经由所述第二网络从所述第二设备接收数据,所述数据由与所述第二设备相关联的物联网IoT设备生成。
4.如权利要求1所述的方法,其中所述虚拟环境是容器化环境。
5.如权利要求1所述的方法,其中所述虚拟环境是虚拟化环境。
6.如权利要求1所述的方法,其中所述代码是容器化程序。
7.如权利要求1所述的方法,其中所述代码是能够在虚拟机上执行的指令。
8.如权利要求1所述的方法,其中所述第一网络包括蜂窝网络。
9.如权利要求1所述的方法,其中所述第二网络包括短程无线网络。
10.如权利要求1所述的方法,其中所述通信包括经由所述第二网络向所述第二设备提供热点服务。
11.一种用于通信的网络系统,所述网络系统包括:
数据处理硬件;以及
存储器硬件,其与所述数据处理硬件通信,所述存储器硬件存储指令,所述指令当在所述数据处理硬件上执行时使所述数据处理硬件执行操作,所述操作包括:
经由第一网络向第一设备传输代码,所述代码被配置为在与所述第一设备相关联的虚拟环境上执行,
其中当在所述虚拟环境上执行时,所述代码使所述第一设备经由第二网络与第二设备通信,
其中所述第一网络基于第一网络协议,所述第二网络基于不同于所述第一网络协议的第二网络协议。
12.如权利要求11所述的网络系统,其中所述通信包括经由所述第二网络从所述第二设备请求数据,所述数据由与所述第二设备相关联的物联网IoT设备生成。
13.如权利要求11所述的网络系统,其中所述通信包括经由所述第二网络从所述第二设备接收数据,所述数据由与所述第二设备相关联的物联网IoT设备生成。
14.如权利要求11所述的网络系统,其中所述虚拟环境是容器化环境。
15.如权利要求11所述的网络系统,其中所述虚拟环境是虚拟化环境。
16.如权利要求11所述的网络系统,其中所述代码是容器化程序。
17.如权利要求11所述的网络系统,其中所述代码是能够在虚拟机上执行的指令。
18.如权利要求11所述的网络系统,其中所述第一设备和所述第二设备被配置为形成分布式计算网络以执行一个或多个分布式操作。
19.如权利要求11所述的网络系统,其中所述第二网络包括短程无线网络。
20.如权利要求19所述的网络系统,其中所述第二网络包括邻近社交网络。
CN202280054949.2A 2021-06-11 2022-06-10 延迟容忍边缘计算协议 Pending CN117981281A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163209955P 2021-06-11 2021-06-11
US63/209,955 2021-06-11
PCT/US2022/072889 WO2022261677A1 (en) 2021-06-11 2022-06-10 Delay tolerant edge compute protocol

Publications (1)

Publication Number Publication Date
CN117981281A true CN117981281A (zh) 2024-05-03

Family

ID=84390220

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280054949.2A Pending CN117981281A (zh) 2021-06-11 2022-06-10 延迟容忍边缘计算协议

Country Status (5)

Country Link
US (1) US20220398121A1 (zh)
EP (1) EP4352923A1 (zh)
KR (1) KR20240019291A (zh)
CN (1) CN117981281A (zh)
WO (1) WO2022261677A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130107754A1 (en) * 2011-10-26 2013-05-02 Viagenie Method for configuring a delay/disruption-tolerant network node and configurable node operable in a delay/disruption-tolerant network
US9847961B2 (en) * 2013-02-25 2017-12-19 Qualcomm Incorporated Automatic IoT device social network expansion
CN111357303B (zh) * 2017-06-07 2022-05-24 诺得技术公司 容迟去中心化网络

Also Published As

Publication number Publication date
WO2022261677A1 (en) 2022-12-15
KR20240019291A (ko) 2024-02-14
EP4352923A1 (en) 2024-04-17
US20220398121A1 (en) 2022-12-15

Similar Documents

Publication Publication Date Title
JP7502521B2 (ja) 遅延耐性分散ネットワーク
JP7359372B2 (ja) 分散型ネットワーク内の検証
KR102282313B1 (ko) 비콘 발견 서비스
US10205505B2 (en) Communications methods and apparatus
CN102369740B (zh) 用于基于对等和广域网的组合发现的方法和装置
JP2017525042A (ja) M2m−iotサービスのパブリケーションおよび発見
US20150341241A1 (en) Method and apparatus for specifying machine identifiers for machine-to-machine platform support
US20160358189A1 (en) Data acquisition and analytics reporting
WO2021041279A1 (en) Anonymization and randomization of device identities
Ogawa et al. Toward seamless indoor-outdoor applications: Developing stakeholder-oriented location-based services
US20220398121A1 (en) Delay tolerant edge compute protocol
US20230336957A1 (en) Systems and methods for emergency broadcast using delegated discovery
KR101349773B1 (ko) 위치 추적 서비스 제공방법 및 이를 적용한 위치 추적 시스템
Li et al. Massive IoT Connections
WO2023114789A1 (en) Activity assignment and completion verification

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