CN115470011A - 资源受限设备的消息格式指示器 - Google Patents
资源受限设备的消息格式指示器 Download PDFInfo
- Publication number
- CN115470011A CN115470011A CN202110861395.4A CN202110861395A CN115470011A CN 115470011 A CN115470011 A CN 115470011A CN 202110861395 A CN202110861395 A CN 202110861395A CN 115470011 A CN115470011 A CN 115470011A
- Authority
- CN
- China
- Prior art keywords
- data format
- message
- determining
- identifier
- modified
- 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
Links
Images
Classifications
-
- 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/546—Message passing systems or structures, e.g. queues
-
- 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/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- 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/565—Conversion or adaptation of application format or content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- 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/55—Push-based network services
-
- 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/562—Brokering proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
总体描述了用于资源受限设备之间的消息格式通信的系统和方法。在一些示例中,可以接收由边缘计算设备发送的第一消息。可以确定第一消息包括第一数据格式标识符。可以确定第一消息包括第一数据格式补丁。可以确定第一数据格式标识符先前与第一数据格式相关联地存储在数据结构中。在各种示例中,可以使用第一数据格式补丁来修改第一数据格式,以生成第一修改数据格式。第一修改数据格式可以与第一数据格式标识符相关联地存储在数据结构中。在一些示例中,可以使用第一修改数据格式来读取第一消息的有效载荷。
Description
技术领域
本公开总体上涉及计算机通信系统中使用的消息传递协议。
背景技术
例如,表示状态转移(REST)应用编程接口(API)使用同步通信范例,其中,在做出新请求之前,发送消息并等待响应。REST API调用通常被称为“同步”API调用,指示代码执行和用户交互停止,直到调用返回所请求的信息。其他消息传递架构可能是异步的,因为代码执行和/或用户交互不需要停止来等待响应。事件驱动架构(EDA)采用异步通信。在EDA中,消息由“发布者”(生成数据的实体)发送给消息代理。消息代理可以是存储消息并将消息递送给“订户”(已注册以从特定发布者接收特定消息的应用)的架构。本文描述的各种技术通常可以指消息传递协议,无论是同步的还是异步的。
发明内容
本公开提供了用于在基于消息的计算机通信架构中更新和/或识别消息格式的新的且新颖的系统、方法和装置。在一个示例中,设备可以包括与至少一个处理器通信的非暂时性计算机可读存储器。在一些进一步的示例中,该设备可以包括用于接收消息的接收器。非暂时性计算机可读存储器可以存储指令,当由所述至少一个处理器执行时,指令被配置为由接收器接收由边缘计算设备发送的第一消息。在一些进一步的示例中,指令可以进一步被配置为确定第一消息包括第一数据格式标识符。在各种示例中,指令可以进一步被配置为确定第一消息包括第一数据格式补丁。在一些其他情况下,指令可以进一步被配置为确定第一数据格式标识符先前存储在与第一数据格式相关联的数据结构中。在其他示例中,指令可以进一步被配置为使用第一数据格式补丁来修改第一数据格式,以生成第一修改数据格式。在进一步的示例中,指令可以被配置为将第一修改数据格式与第一数据格式标识符相关联地存储在数据结构中。在一些进一步的示例中,指令可以进一步被配置为使用第一修改数据格式来读取第一消息的有效载荷。
在另一示例中,更新消息格式的方法可以包括接收由边缘计算设备发送的第一消息。在一些示例中,该方法可以进一步包括确定第一消息包括第一数据格式标识符。在一些示例中,该方法可以进一步包括确定第一消息包括第一数据格式补丁。在其他示例中,该方法可以包括确定第一数据格式标识符先前与第一数据格式相关联地存储在数据结构中。在一些进一步的示例中,该方法可以包括使用第一数据格式补丁来修改第一数据格式,以生成第一修改数据格式。在其他示例中,该方法可以包括将第一修改数据格式与第一数据格式标识符相关联地存储在数据结构中。在一些情况下,该方法可以包括使用第一修改数据格式来读取第一消息的有效载荷。
在又一示例中,提供更新的消息格式的方法可以包括建立与接收器设备的通信信道。在一些示例中,该方法可以包括生成第一类型的第一消息。在一些示例中,第一消息可以包括第一数据格式定义和与第一数据格式定义相关联的第一数据格式标识符。在各种示例中,该方法可以包括使用通信信道向接收器设备发送第一消息。在一些示例中,该方法可以包括生成第一类型的第二消息。在一些情况下,第二消息可以包括第一数据格式标识符和补丁。在各种情况下,补丁可以包括有效修改第一数据格式定义以生成第一修改数据格式定义的可执行指令。在一些示例中,该方法可以包括使用通信信道向接收器设备发送第一类型的第二消息。
所公开的方法、设备和/或系统的附加特征和优点在下面的详细描述和附图中描述,并且将从下面的详细描述和附图中显而易见。
附图说明
图1是根据本公开的各种示例的计算机消息传递架构的框图。
图2是示出根据本公开的各种示例的由接收器设备更新消息数据格式的框图。
图3是示出根据本公开的示例的由接收器设备更新消息格式的示例过程的流程图。
图4是示出根据本公开的示例的由发送器设备提供更新的消息格式的示例的流程图。
图5A和5B示出了根据本公开的各个方面的发送器设备和接收器设备之间的消息数据格式通信的示例的流程图。
图6示出了根据本公开的各个方面的确定不同类型的消息的数据格式的示例的流程图。
图7是根据本公开的示例的边缘计算设备和另一计算设备之间的消息数据格式通信的框图。
具体实施方式
许多应用和/或计算机系统使用消息架构进行通信,其中在发送器和接收器之间发送约定格式的消息。但是,由于各种原因,格式可能会随着时间的推移而改变。例如,软件更新可能发生,系统集成更新可能发生,需要更新数据格式的新事件可能发生,以便在消息有效载荷中表示这些事件,等等。示例消息传递架构将在下面详细描述。
在各种示例中,可以在发送器和接收器之间发送的每个消息的有效载荷中指定数据格式(例如,定义格式的数据),使得接收器可以直接确定数据格式,以便正确解析消息有效载荷。在这样的实现中,当数据格式被更新时,更新的格式可以在消息有效载荷中指定。然而,将数据格式与每个消息一起发送会导致更大的消息大小和增加的资源消耗。这对于可能资源受限的边缘计算设备来说尤其成问题。例如,边缘计算设备可能具有最小的处理能力,可能具有有限的带宽,和/或可以由电池供电。在这样的边缘计算设备中,将数据格式与每个消息一起提供可能导致电池寿命更快地耗尽和/或可能导致CPU使用增加。边缘计算将在下面详细描述。
在本文描述的各种示例中,发送器(例如,发送消息的设备和/或应用)可以在每个消息传递会话中仅发送一次完整数据格式定义,而不是与每个消息一起发送完整数据格式定义。例如,发送器可以在消息通信会话开始时将完整数据格式定义与数据格式标识符数据一起发送一次。此后,如果消息根据该相同的数据格式被格式化,则发送器可以只发送数据格式标识符,而不在每个消息的有效载荷中包括完整数据格式定义。接收器可以使用数据格式标识符来查找从较早的消息中提取并存储在与数据格式标识符相关联的数据结构中的数据格式定义。
此外,当数据格式被更新时,发送器可以发送包括可执行指令的补丁数据,以配置为修改先前的数据格式定义以及相关数据格式定义的数据格式标识符。接收器可以检测包括在消息中的补丁,并且可以使用数据格式标识符来查找要应用补丁的适当的数据格式定义。接收器可以使用补丁来修改数据格式定义,并且可以丢弃数据格式定义的先前版本。此后,当消息包括相关数据格式标识符时,修改的数据格式定义可用于读取消息。
在边缘计算系统中,计算资源通常在不同的层和不同的地理分布节点上提供。在这样的系统中,为了优化计算占用空间和/或性能,在边缘网络的不同层级部署不同的计算资源可能是有利的。在边缘网络中跨多个集群部署计算服务可以允许更有效地使用计算资源,并且相对于单个集中式集群内的部署,可以提供更好的服务和/或更低的等待时间。然而,位于此类系统边缘的设备(即所谓的“边缘”设备)远离架构的数据中心,通常是资源受限的设备。例如,边缘计算设备可以包括电池供电的传感器、包括最小计算硬件的物联网设备等。这种设备的计算负载和/或功耗的最小化通常是高度优先的。因此,使用本文描述的用于更新和/或确定消息格式数据的各种技术可以降低功耗、消息大小、等待时间和/或CPU使用。
消息传递架构的示例包括异步事件驱动架构以及同步消息传递协议。本文描述的用于修改和/或确定消息数据格式的各种技术可以用在任何消息传递协议中。在EDA中,生成数据的实体被称为“发布者”,而这些数据的接收者/消费者被称为“订户”。EDA中的通信被称为异步的,因为发布者在生成/发布附加数据之前不需要等待来自任何订户的响应。相比之下,在诸如REST API提供的同步消息传递架构中,发送器在发送附加数据之前等待来自接收者的响应。
EDA通常采用称为“消息代理”的架构,其从发布者那里接收消息(数据),并将消息递送给已注册接收此类消息的订户。消息代理的示例包括RabbitMQ、Apache Kafka、JBossMessaging、Solace等。因此,发布者可以是向消息代理发送消息的数据生成软件/硬件。例如,发布者可以是向消息代理发送温度数据的智能恒温器、向消息代理发送新订户数据的社交媒体网络、向消息代理发送关于冰箱中存储的食物的数据的智能冰箱等。发布者可以是使用EDA生成和发送数据的任何类型的应用和/或嵌入式系统。订户可以是这样的应用,该应用连接到消息代理,表现出对某一类型的消息(例如,分配给特定“主题”的消息)的兴趣,并保持与消息代理的连接以便消息代理能够将消息推送给订户。各种其他消息传递协议可以以点对点方式从发送器设备直接向接收器设备发送消息,而无需中间设备。
消息是在两个设备和/或应用之间发送的数据。例如,消息可以从发送器设备发送到接收器设备。在另一个示例中,消息可以由发布者发送到消息代理,然后由消息代理推送到相关订户(例如接收器)。消息的内容可以是任何数据。此类消息通常被描述为事件或命令。事件通信事实(例如,由恒温器检测到的温度),而命令提供可执行指令以使订户应用采取特定动作。
可以使用各种不同的协议从发送器发送消息。这种协议的示例可以包括但不限于消息队列遥测传输(MQTT)、受限应用协议(CoAP)、高级消息队列协议(AMQP)、超文本传输协议(HTTP)等。因此,异步应用编程接口(API)(例如,AsyncAPI)可能类似于同步API(例如,OpenAPI),但可能包括不同的数据格式。在本文所用的各种说明性示例中,描述了EDA。然而,本文描述的各种数据格式修改和/或识别技术适用于任何消息传递架构,无论是同步的还是异步的。
图1是根据本公开的各种示例的包括计算机消息传递架构124的系统100的框图。消息传递架构124可以使用软件、硬件和/或它们的某种组合来实现。在各种示例中,消息传递架构124可以包括一个或多个发送器121和一个或多个接收器123。发送器121可以是可以经由网络104向接收器123发送消息的硬件和/或软件(例如,应用)。图1描绘了可以包括在发送器121和/或接收器123的各种实现中的示例组件。例如,发送器121和/或接收器123可以包括一个或多个物理主机,包括物理主机110A。物理主机110A又可以包括一个或多个物理处理器(例如,CPU 112A),其通信耦合到一个或多个存储器设备(例如,MD 114A-B)和一个或多个输入/输出设备(例如,I/O 116A)。如本文所使用的,一个或多个物理处理器112A是指能够执行编码算法、逻辑和/或I/O操作的指令的设备。在一个说明性示例中,处理器可以遵循冯·诺依曼架构模型,并且可以包括算术逻辑单元(ALU)、控制单元和多个寄存器。在一个示例中,处理器可以是通常能够一次执行一个指令(或者处理单个指令流水线)的单核处理器,或者是可以同时执行多个指令和/或线程的多核处理器。在另一个示例中,处理器可以被实现为单个集成电路、两个或更多个集成电路,或者可以是多芯片模块的组件(例如,其中各个微处理器裸芯被包括在单个集成电路封装中,因此共享单个插座)。处理器也可以被称为中央处理单元(“CPU”)。
如本文所讨论的,存储器设备114A-B指易失性或非易失性存储器设备,诸如RAM、ROM、EEPROM或能够存储数据的任何其他设备。在一个示例中,存储器设备114A可以是永久存储设备,例如硬盘驱动器(“HDD”)、固态驱动器(“SSD”)和/或永久存储器(例如,非易失性双列直插式存储器模块(“NVDIMM”)。存储器设备114A-B可以另外包括数据复制,以防止由于任何一个设备中的故障而导致的数据丢失。这种复制可以通过例如独立磁盘冗余阵列(“RAID”)设置来实现。RAID阵列可以设计为提高性能、提供实时数据备份或两者结合。如本文所讨论的,(多个)I/O设备116A是指能够在一个或多个处理器引脚和外部设备之间提供接口的设备,其操作基于处理器输入和/或输出二进制数据。(多个)CPU 112A可以使用各种技术互连,从点对点处理器互连到系统区域网络,诸如基于以太网的网络。物理主机110A内的本地连接,包括处理器112A和存储器设备114A-B之间以及处理器112A和I/O设备116A之间的连接,可以由合适架构的一个或多个本地总线提供,例如外围组件互连(PCI)。
在一个示例中,物理主机110A可以运行一个或多个孤立的客户,例如VM 155,其进而可以托管附加的虚拟环境(例如,VM和/或容器)。在一个示例中,容器(例如,存储容器160、服务容器150A-B)可以是使用任何形式的操作系统级虚拟化的孤立的客户,例如,容器、chroot、-VServer、FreeBSD Jails、容器(SRP)、VMware等。存储容器160和/或服务容器150A-B可以直接在主机操作系统(例如,主机操作系统118)上运行,或者在另一层虚拟化中运行,例如在虚拟机(例如,VM 155)中运行。在一个示例中,执行统一功能的容器可以在一起部署的容器集群中分组在一起(例如,在容器集(pod)中)。在一个示例中,给定的服务可能需要在多个物理位置部署多个VM、容器和/或容器集。在一个示例中,VM 155可以是在物理主机110A上执行的VM。
发送器121和/或接收器123可以通过在硬件之上和VM 155之下执行软件层(例如,管理程序120)来运行一个或多个VM(例如,VM 155),如图1示意性所示。在一个示例中,管理程序120可以是在物理主机110A上执行的相应主机操作系统118的组件,例如,实现为主机操作系统118的基于内核的虚拟机功能。在另一个示例中,管理程序120可以由运行在主机操作系统118A上的应用提供。在一个示例中,管理程序120可以直接在物理主机110A上运行,而不需要管理程序120下面的操作系统。管理程序120可以虚拟化物理层,包括处理器、存储器和I/O设备,并将该虚拟化作为设备呈现给VM 155,包括虚拟中央处理单元(“VCPU”)190A、虚拟存储器设备(“VMD”)192A、虚拟输入/输出(“VI/O”)设备194A和/或客户存储器195A。在一个示例中,另一个虚拟客户(例如,VM或容器)可以直接在主机OS 118上执行,而没有虚拟化的中间层。
在一个示例中,VM 155可以是虚拟机,并且可以执行可以利用底层VCPU 190A、VMD192A和VI/O 194A的客户操作系统196A。处理器虚拟化可以通过管理程序120在物理CPU112A上调度时隙来实现,使得从客户操作系统的角度来看,这些时隙被调度在虚拟处理器190A上。VM 155可以运行在底层硬件和主机操作系统118上的任何类型的从属、独立、兼容和/或不兼容的应用上。管理程序120可以管理主机操作系统118的存储器以及分配给VM155和客户操作系统196A的存储器,诸如提供给客户OS 196A的客户存储器195A。在一个示例中,存储容器160和/或服务容器150A、150B被类似地实现。
在一个示例中,除了由存储容器160提供的分布式存储之外,存储控制器142还可以管理专用存储节点(例如,NAS、SAN等)中的存储。在一个示例中,存储控制器142可以在具有预配置性能特性的大型逻辑单元(例如,存储节点170A)中部署存储。在一个示例中,对给定存储节点(例如,存储节点170A)的访问可以在帐户和/或租户级别上被控制。在一个示例中,服务容器(例如,服务容器150A-B)可能需要用于应用数据的持久存储,并且可能向编排器140请求具有持久存储声明的持久存储。在该示例中,存储控制器142可以通过持久存储卷形式的存储节点(例如,存储节点170A)将存储分配给服务容器150A-B。在一个示例中,服务容器150A-B的持久存储卷可以被分配给给定存储节点(例如,存储节点170A)的存储容量和吞吐量的一部分。在各种示例中,存储容器160和/或服务容器150A-B可以部署作为分布在多个集群(图1中未示出)上的计算服务的一部分的计算资源(例如,存储、缓存等)。
各种虚拟化计算系统(例如,服务容器150A、150B、VM 155)可以是计算环境的示例,这些计算环境可以部署本文描述的用于发送、存储、确定和/或修改消息141的消息数据格式的一种或多种技术。例如,服务容器150A可以解析接收的消息141以确定数据格式标识符。服务容器150B可以检测和/或应用补丁到先前存储的数据格式(例如,存储在数据结构106中)。VM155可以接收消息141,并且可以使用包括的数据格式标识符来查找与数据格式标识符相关联的数据格式。此后,VM 155可以使用数据格式来读取接收到的消息。前述示例仅仅是消息传递架构124的一种可能的实现。消息传递架构124的各种服务和/或系统的实际部署是特定于实现的细节,并且可以根据本公开根据需要进行修改。取决于期望的实现,消息传递架构124可以跨任何数目的物理计算设备和/或虚拟化计算环境来部署。
在一个示例中,接收器123可以从发送器121接收消息141。接收器123可以包括有效解析消息141并确定包括在消息141中(例如,在消息141的报头中)的数据格式标识符的逻辑。接收器123可以使用数据格式标识符来查找与数据格式标识符相关联地存储在数据结构106中的数据格式(例如,数据格式定义)。下面是称为“光测量(lightMeasured)”的消息的数据格式的示例。在该示例中,数据格式标识符可以是“lightMeasured”,尽管在其他示例中,可以使用数字标识符和/或从其他消息格式中识别消息格式的任何其他类型的数据。
lightMeasured消息的示例数据格式可以是:
87 消息:
88 lightMeasured:
89 名称:lightMeasured
90 标题:光测量
91 概要:告知特定路灯的环境照明条件.
92 内容类型:应用/json
93 特点:
94 -$ref:'#/组件/消息特点/公共报头'
95 有效载荷:
96 $ref:"#/组件/模式/光测量有效载荷"
在这个示例中,lightMeasured消息的数据格式包括对其他源的引用(例如,第94、96行),在这些源处数据格式定义的部分是可用的。这样的源可以在消息的有效载荷的内部和/或可以存在于外部位置。
在确定这样的数据格式之后(例如,使用包括在消息141中的数据格式标识符),接收器123可以包括使用数据格式解析包括在消息141的有效载荷中的数据的逻辑。数据格式有时被称为消息“模式(schemas)”。在下面进一步详细描述的各种示例中,一些消息141可以包括有效修改数据结构106中接收器123先前存储的数据格式定义的补丁。在这样的示例中,接收器123可以解析消息141以检测补丁,并且可以使用包括在消息141中的数据格式标识符来查找存储在数据结构106中的要应用补丁的适当数据格式。补丁可以包括有效修改存储的数据格式的可执行指令。接收器123可以使用补丁来修改存储的数据格式,并且可以将修改的数据格式存储在数据结构中。包括相同数据格式标识符的后续消息141可用于检索修改的数据格式,该修改的数据格式进而可用于解析和/或读取后续消息141的有效载荷。
图2是示出根据本公开的各种示例由接收器设备更新消息数据格式的框图200。如图2所示,接收器223可以接收多个接收的消息201。在一个示例中,接收器223可以使用EDA的消息代理来订阅这些消息。在其他示例中,接收到的消息201可以直接从发送器设备接收。
接收到的消息201的消息202可以包括数据格式ID1和数据格式定义A。在这个示例中,消息202可以是与发送器的通信会话的初始消息。在一些示例中,接收器223可以解析消息202,并且可以检测包括在消息202中的数据格式ID 1。接收器223可以在查找操作中使用数据格式ID 1作为查询来搜索数据结构206。在一个示例中,在数据结构206中可能找不到数据格式ID 1。接收器223可以将数据格式ID 1与消息202中包括的数据格式定义A相关联地存储在数据结构206中。因此,动作240可以包括接收器223接收新类型的消息202。新类型的消息202可以包括数据格式标识符(例如,数据格式ID 1)和数据格式定义(例如,数据格式定义A)两者。因为数据格式定义先前没有被接收器223存储在数据结构206中,所以接收器可以通过将数据格式定义A与数据格式ID 1相关联地存储在数据结构206中来在数据结构206中创建新条目。
随后,接收器223可以接收消息205。消息205可以被解析以确定其内容。接收器223可以确定包括数据格式ID 1,但是不包括补丁或数据格式定义。接收器223可以使用数据格式ID 1来搜索数据结构206,以确定数据格式定义(在此有时称为“数据格式”)是否先前存储在数据结构206中。在当前示例中,数据格式定义A先前与数据格式ID 1相关联地存储(例如,在动作240)。因此,在动作242,接收器223可以检索数据格式定义A,并且可以使用数据格式定义A来解析和/或读取消息205的有效载荷。
在图2所示的示例中,可以接收消息208。消息208可以由接收器223解析以确定其内容。接收器223可以确定消息208包括数据格式ID 1和补丁220,但是消息208不包括数据格式定义。接收器223可以使用数据格式ID 1搜索数据结构206,以确定数据格式定义(例如,“数据格式”)是否先前存储在数据结构206中。在当前示例中,数据格式定义A先前与数据格式ID 1相关联地存储(例如,在动作240)。然而,在该示例中,因为消息208还包括补丁220,所以接收器223可以在读取消息208之前使用补丁220来修改数据格式定义A。因此,接收器223可以执行补丁220中包括的指令,以便修改先前存储的数据格式定义A。在动作244,接收器223可以用修改的数据格式定义A覆盖旧的数据格式定义A。此后,接收器223可以使用修改的数据格式定义A来读取包括数据格式ID 1的消息。
这样,发送器设备(例如,图1的发送器121)可以只需要在消息通信会话开始时发送初始消息来发送完整数据格式。此后,发送器设备可以仅发送数据格式标识符,接收器223可以使用该数据格式标识符来查找与数据格式标识符相关联的先前发送和存储的数据格式。另外,当格式要被更新时,发送器可以发送可被接收器223用来修改先前存储的数据格式的补丁。发送器可以发送不同类型的消息,并且每个不同的消息类型可以与从其他消息类型中识别该消息类型的它自己的数据格式标识符相关联,并且与它自己的数据格式定义相关联。相应地,在图2中,数据格式ID 1标识数据格式A,数据格式ID 2标识数据格式B,数据格式3标识数据格式C,数据格式4标识数据格式D,等等。
允许边缘计算设备和/或其他资源受限设备仅发送数据格式标识符数据和/或补丁更新,同时最小化发送完整数据格式定义的需要,节省了这些设备的计算资源和/或电池寿命。此外,为了更新先前建立的数据格式定义,发送器设备可以发送标识该数据格式定义的数据格式ID以及补丁,而不需要再次发送完整数据格式定义。
图3是示出了根据本公开的示例的用于由接收器设备更新消息格式的示例过程300的流程图。尽管参考图3所示的流程图描述了示例过程300,但是应当理解,可以使用执行与过程300相关联的动作的许多其他方法。例如,一些框的顺序可以改变,某些框可以与其他框组合,框可以重复,并且所描述的一些框可以是可选的。过程300可以由处理逻辑来执行,该处理逻辑包括硬件(电路、专用逻辑等)、软件或者两者的组合。在一些示例中,过程300的框中描述的动作可以表示一系列指令,这些指令包括可由一个或多个计算设备的一个或多个处理单元执行的计算机可读机器代码。在各种示例中,计算机可读机器代码可以包括从一个或多个计算设备的本地指令集和/或(多个)操作系统中选择的指令。
示例过程300包括接收由边缘计算设备发送的第一消息(框310)。如本文所使用的,边缘计算设备可以是资源受限的和/或部署在分布式计算网络边缘的设备。这种设备的示例可以包括电池供电的传感器、集成的物联网设备等。第一消息可以包括报头和/或有效载荷。
在一个示例中,过程300可以包括确定第一消息包括第一数据格式ID(框315)。例如,接收器设备的逻辑可以用于解析消息,以确定数据格式ID被包括(例如,在消息的报头中)。
在一个示例中,过程300可以包括确定第一消息包括第一数据格式补丁(框320)。例如,接收器的逻辑可以有效地解析第一消息以确定包括在第一消息中的补丁。在各种示例中,补丁可适用于修改由接收器与第一数据格式标识相关联地存储在数据结构中的先前存储的数据格式。
在一个示例中,过程300可以包括确定第一数据格式ID先前与第一数据格式相关联地存储(框325)。例如,接收器可以使用第一数据格式ID来查询数据结构,并且可以确定第一数据格式ID先前与第一数据格式相关联地存储在数据结构中。在各种示例中,第一数据格式可能已经在先前消息中被接收,该先前消息还可能已经包括第一数据格式ID。
在一个示例中,过程300可以包括使用第一数据格式补丁来修改第一数据格式,以生成第一修改数据格式(框330)。在各种示例中,第一数据格式补丁可以包括计算机可执行指令,该计算机可执行指令配置为修改第一数据格式。接收器可以执行计算机可执行指令,从而可以修改第一数据格式并生成第一修改数据格式。
在一个示例中,过程300可以包括与第一数据格式标识符相关联地存储第一修改数据格式(框335)。例如,接收器可以用使用第一数据格式补丁生成的第一修改数据格式来覆盖数据结构中先前的第一数据格式。因此,第一数据格式ID现在可以与数据结构中的第一修改数据格式相关联。包括第一数据格式ID的后续消息现在可以用于检索第一修改数据格式,该第一修改数据格式进而可以用于读取这样的消息。
在一个示例中,过程300可以包括使用第一修改数据格式来读取第一消息的有效载荷(框340)。第一修改数据格式可用于解析和读取第一消息的有效载荷。例如,第一修改数据格式可以定义第一消息的各种数据字段和/或字节结构。
图4是示出根据本公开的示例的由发送器设备提供更新的消息格式的示例过程400的流程图。尽管参考图4所示的流程图描述了示例过程400,但是应当理解,可以使用执行与过程400相关联的动作的许多其他方法。例如,一些框的顺序可以改变,某些框可以与其他框组合,框可以重复,并且所描述的一些框可以是可选的。过程400可以由处理逻辑来执行,该处理逻辑可以包括硬件(电路、专用逻辑等)、软件或两者的组合。在一些示例中,过程400的框中描述的动作可以表示一系列指令,这些指令包括可由一个或多个计算设备的一个或多个处理单元执行的计算机可读机器代码。在各种示例中,计算机可读机器代码可以包括从一个或多个计算设备的本地指令集和/或(多个)操作系统中选择的指令。
示例过程400包括建立与接收器设备的通信信道(框410)。例如,消息传递协议可以被建立并被用于定义发送器和接收器设备之间的通信标准。在各种示例中,认证和/或加密协议可以用于发送器和接收器设备彼此认证和/或定义用于经由通信信道发送的数据的加密标准。
示例过程400可以包括生成第一类型的第一消息。在各种情况下,第一消息可以包括第一数据格式定义和与第一数据格式定义相关联的第一数据格式标识符(框415)。在各种示例中,发送器设备(例如边缘计算设备,诸如电池供电的图像传感器和/或其他传感器)可以生成第一消息,该第一消息包括属于第一消息的第一数据格式定义和从其他数据格式定义中识别该第一数据格式定义的第一数据格式标识符。
示例过程400可以包括使用通信信道向接收器设备发送第一类型的第一消息(框420)。在各种示例中,第一类型的第一消息可以经由消息代理发送。在一些其他示例中,第一类型的第一消息可以直接从发送器发送到接收器。
示例过程400可以包括生成第一类型的第二消息。在各种示例中,第二消息可以包括第一数据格式标识符和补丁。补丁可以包括可执行指令,该可执行指令被配置为修改第一数据格式定义,以生成修改的数据格式定义(框425)。在各种示例中,补丁可以是用于修改先前发送的第一数据格式定义的补丁。接收器可以使用第一数据格式标识符来检索要应用补丁的正确数据格式定义。
示例过程400可以包括使用通信信道向接收器设备发送第一类型的第二消息(框430)。在各种示例中,第一类型的第二消息可以经由消息代理或通过直接的设备到设备通信来发送,这取决于期望的实现和/或所使用的特定消息传递协议。
图5A和5B示出了根据本公开的各个方面的发送器设备502和接收器设备504之间的消息数据格式通信的示例的流程图500。尽管下面的示例是参考图5A和5B中所示的流程图来描述的,但是应当理解,可以使用执行与图5A和5B相关联的动作的许多其他方法。例如,一些框的顺序可以改变,某些框可以与其他框组合,并且所描述的一些框是可选的。这些方法可以由处理逻辑来执行,该处理逻辑可以包括硬件(电路、专用逻辑等)、软件或者两者的组合。
在图5A所示的示例中,发送器设备502可以生成第一类型的第一消息(框506)。第一消息可以包括标识第一数据格式定义的第一数据格式标识符。另外,第一消息可以包括第一数据格式定义(例如,在第一消息的有效载荷中)。发送器设备502可以向接收器设备504发送第一类型的第一消息(框508)。如前所述,第一消息可以通过网络被发送到接收器设备504和/或可以经由消息代理被发送到接收器设备504(例如,诸如发送器设备502是否是EDA的发布者设备以及接收器设备504是否是订户设备)。
接收器设备504可以接收第一类型的第一消息(框510)。在各种示例中,接收器设备504可以确定第一数据格式ID先前没有存储在被配置与接收器设备504通信的数据结构中(框512)。因此,接收器设备504可以将第一数据格式定义与第一数据格式ID相关联地存储在数据结构中(框514)。在各种示例中,接收器设备504可以使用第一数据格式定义来解析和/或读取第一类型的第一消息的有效载荷(框516)。然而,在一些示例中,第一类型的第一消息可以仅包括第一数据格式ID和第一数据格式定义。
在接收器设备504使用第一数据格式定义读取第一类型的第一消息之后,可能会过去一段时间(框518)。此后,发送器设备502可以生成第一类型的第二消息。第一类型的第二消息可以包括第一数据格式ID和补丁数据(框520)。补丁数据可以包括可执行指令,该可执行指令被配置为修改第一格式定义。发送器设备502可以向接收器设备504发送第一类型的第二消息(框522)。
接收器设备504可以接收第一类型的第二消息(框524)。接收器设备504的逻辑可用于解析第一类型的第二消息,以识别包括在第一类型的第二消息中的补丁(框526)。处理可以在图5B继续。例如,接收器设备504可以使用补丁数据修改第一数据格式以生成第一修改数据格式(框528)。在各种示例中,接收器设备504可以使用包括在第一类型的第二消息中的第一数据格式ID来查找与第一数据格式ID相关联地存储在数据结构中的第一数据格式。接收器设备504可以用使用补丁修改的第一修改数据格式来覆盖先前存储在数据结构中的第一数据格式(框530)。接收器设备504可以使用第一修改数据格式来读取第一类型的第二消息(框532)。此后,可能经过一段时间(框534)。
发送器设备502可以生成包括第一数据格式ID的第一类型的第三消息(框536)。发送器设备502可以向接收器设备504发送第一类型的第三消息(框538)。接收器设备504可以接收第一类型的第三消息(框540)。接收器设备504可以解析第三消息以识别第一数据格式ID,并且可以使用第一数据格式ID执行查找操作以识别存储在数据结构中的第一修改数据格式(框542)。此后,接收器设备504可以使用第一修改数据格式来读取第一类型的第三消息(框544)。
图6示出了根据本公开的各个方面的确定不同类型的消息的数据格式的示例的流程图600。尽管下面的示例是参考图6中所示的流程图来描述的,但是应当理解,可以使用执行与图6相关联的动作的许多其他方法。例如,一些框的顺序可以改变,某些框可以与其他框组合,并且所描述的一些框是可选的。这些方法可以由处理逻辑来执行,该处理逻辑包括硬件(电路、专用逻辑等)、软件或者两者的组合。
在图示的示例流程图600中,发送器设备602可以生成包括第一数据格式ID的第一类型的第一消息(框606)。在各种示例中,发送器设备602可以是传感器、嵌入式系统、边缘计算设备、物联网设备、资源受限设备等中的一个或多个。在一个示例中,第一类型的第一消息可以是EDA的第一主题的消息。例如,发送器设备可以是照相机设备,并且可以向订户设备发送视频数据。视频数据可以根据由第一数据格式ID标识的第一数据格式来格式化。发送器设备602可以向接收器设备604发送第一类型的第一消息(框608)。
接收器设备604可以接收第一类型的第一消息(框610)。接收器设备604可以识别包括在第一类型的第一消息中的第一数据格式ID。接收器设备可以使用第一数据格式ID来查找第一数据格式定义,以查询数据结构(框612)。接收器设备604可以解析第一类型的第一消息,以确定第一类型的第一消息中不包括补丁(框614)。因此,在处理的当前阶段不执行第一数据格式定义的更新。接收器设备604可以使用第一数据格式定义来读取第一类型的第一消息(例如,第一类型的第一消息的有效载荷)(框616)。例如,第一数据格式定义可以是机器可读数据,该机器可读数据提供如何解析和/或解释第一类型的消息的指令。此后,可能会过去一段时间(框618)。
发送器设备602可以生成第二类型的第一消息。第二类型的第一消息可以包括不同于第一数据格式ID的第二数据格式ID(框620)。在各种示例中,第二数据格式ID可以标识相对于由第一数据格式ID标识的第一数据格式定义不同的数据格式定义。在发送器设备602是照相机设备的上述示例中,第二类型的第一消息可以是音频数据、遥测数据等。音频数据、遥测数据等可以根据由第二数据格式ID标识的第二数据格式来格式化。发送器设备602可以向接收器设备604发送第二类型的第一消息(框622)。
接收器设备604可以接收第二类型的第一消息(框624)。接收器设备604可以使用第二数据格式ID来查找第二数据格式定义(框626)。例如,接收器设备604可以使用第二数据格式ID作为查询来搜索其中第二数据格式ID与第二数据格式定义相关联地存储的数据结构。接收器设备604可以解析第二类型的第一消息,以确定第二类型的第一消息中不包括补丁(框628)。因此,在处理的当前阶段不执行第二数据格式定义的更新。接收器设备604可以使用第二数据格式定义来读取第二类型的第一消息(框630)。
因此,如图6的示例所示,发送器设备可以发送不同类型的消息,并且发送器设备只需要在给定类型的第一消息中包括完整的数据格式定义。此后,一旦数据格式定义已经存储在接收器侧的存储器中,发送器设备只需要发送数据格式ID就可以正确读取消息。另外,发送器设备可以通过切换包括在不同类型的消息中的数据格式ID,在与不同数据格式相关联的不同消息类型之间进行切换——前提是先前已经向接收器设备提供了完整的数据格式定义。
在一些示例中,本文描述的接收器和/或接收器设备相对于发送器设备可能较少受到资源限制。因此,在一些示例中,为了提供容错,接收器设备可以保存从发送器设备接收的消息的日志。在这样的日志中,接收器设备可以保存由发送器发送的数据格式定义、数据格式ID和补丁的记录。因此,如果接收器设备的数据结构被破坏,则可以查阅日志来确定和/或重建包括任何适用补丁的适当数据格式定义。
图7是根据本公开的示例的系统700的框图,其中消息数据格式信息在边缘计算设备712和第一计算设备702(例如,接收器设备)之间通信。系统700可以包括被配置与边缘计算设备712通信的第一计算设备702。在各种示例中,第一计算设备702可以是接收器设备,其包括至少一个处理器704、接收器706(例如,无线电的接收器电路)和与至少一个处理器704通信的非暂时性计算机可读存储器708。非暂时性计算机可读存储器708可以存储指令710,当由至少一个处理器704执行时,指令710可以被配置为执行本文描述的各种技术中的一种或多种。第一计算设备702可以包括数据结构718。在至少一些示例中,数据结构718可以是非暂时性计算机可读存储器708的一部分,而在其他示例中,数据结构718可以是单独的组件。
边缘计算设备712可以向第一计算设备702发送第一消息714。在各种示例中,第一计算设备702的接收器706可以接收第一消息714。第一消息714可以包括第一数据格式ID716(例如,第一数据格式标识符)、第一数据格式补丁720和/或有效载荷730。第一数据格式ID 716可用于搜索数据结构718,以确定第一数据格式ID 716’先前与第一数据格式722相关联地存储在数据结构718中。第一数据格式722可以是用于解释、解析和/或读取由第一计算设备702接收的消息的数据格式定义。在各种示例中,指令710可以被配置为使得至少一个处理器704确定第一消息714包括第一数据格式补丁720。指令710可以进一步被配置为使得至少一个处理器704修改第一数据格式722以生成第一修改数据格式724。指令710可以进一步被配置为使得至少一个处理器704将第一修改数据格式724与第一数据格式ID 716”相关联地存储在数据结构中。指令710可以进一步被配置为使得至少一个处理器704使用第一修改数据格式724来读取第一消息714的有效载荷730。
应当理解,本文描述的所有公开的方法和过程可以使用一个或多个计算机程序或组件来实现。这些组件可以作为任何常规计算机可读介质或机器可读介质上的一系列计算机指令来提供,包括易失性或非易失性存储器,诸如RAM、ROM、闪存、磁盘或光盘、光学存储器或其他存储介质。指令可以作为软件或固件来提供,和/或可以全部或部分地在硬件组件中实现,诸如ASIC、FPGA、DSP或任何其他类似的设备。这些指令可以由一个或多个处理器执行,当执行该系列计算机指令时,这些处理器执行或促进所公开的方法和过程的全部或部分的执行。
本文描述的主题的各方面可以单独使用或者与本文描述的一个或多个其他方面结合使用。在本公开的第一示例方面,设备包括至少一个处理器、接收器和非暂时性计算机可读存储器。非暂时性计算机可读存储器存储指令,当指令由至少一个处理器执行时,被配置为由接收器接收由边缘计算设备发送的第一消息。指令还可以被配置为确定第一消息包括第一数据格式标识符。指令还可以被配置为确定第一消息包括第一数据格式补丁。在一些示例中,指令还可以被配置为确定第一数据格式标识符先前与第一数据格式相关联地存储在数据结构中。在一些情况下,指令还可以被配置为使用第一数据格式补丁来修改第一数据格式,以生成第一修改数据格式。在一些示例中,指令还可以被配置为将第一修改数据格式与第一数据格式标识符相关联地存储在数据结构中。在各种示例中,指令可以进一步被配置为使用第一修改数据格式来读取第一消息的有效载荷。
根据本公开的第二示例方面,该第二示例方面可以与本文描述的任何一个或多个其他方面(例如,第一方面)结合使用,其中非暂时性计算机可读存储器存储进一步的指令,当由至少一个处理器执行时,该进一步的指令被进一步配置为:从接收器接收由边缘计算设备发送的第二消息;确定第二消息包括第一数据格式标识符;确定第一数据格式标识符与第一修改数据格式相关联地存储在数据结构中;并且使用第一修改数据格式来读取第二消息的有效载荷。
根据本公开的第三示例方面,该第三示例方面可以与本文描述的任何一个或多个其他方面(例如,第一方面)结合使用,其中非暂时性计算机可读存储器存储进一步的指令,当由至少一个处理器执行时,该进一步的指令被进一步配置为从接收器接收由边缘计算设备发送的第二消息,确定第二消息包括第二数据格式标识符,确定第二数据格式标识符没有存储在数据结构中,确定第二消息包括定义第二数据格式的数据,将定义第二数据格式的数据与第二数据格式标识符相关联地存储在数据结构中,以及使用第二数据格式来读取第二消息的有效载荷。
根据本公开的第四示例方面,该第四示例方面可以与本文描述的任何一个或多个其他方面(例如,第一方面)结合使用,其中非暂时性计算机可读存储器存储进一步的指令,当由至少一个处理器执行时,该进一步的指令被进一步被配置为从接收器接收由边缘计算设备发送的第二消息,解析第二消息以确定在第二消息中是否包括补丁,并且确定第二消息不包括补丁。
根据本公开的第五示例方面,该第五示例方面可以与本文描述的任何一个或多个其他方面(例如,第四方面)结合使用,其中非暂时性计算机可读存储器存储进一步的指令,当由至少一个处理器执行时,该进一步的指令被进一步配置为确定第二消息包括第一数据格式标识符,确定第一数据格式标识符与第一修改数据格式相关联地存储在数据结构中,并且使用第一修改数据格式来读取第二消息的有效载荷。
根据本公开的第六示例方面,该第六示例方面可以与本文描述的任何一个或多个其他方面(例如,第一方面)结合使用,其中非暂时性计算机可读存储器存储进一步的指令,当由至少一个处理器执行时,该进一步的指令被进一步配置为从接收器接收由边缘计算设备发送的第二消息,解析第二消息以确定第二消息中是否包括补丁,确定第二消息包括第一修改数据格式补丁,确定第二消息包括第一数据格式标识符,确定第一数据格式标识符先前与第一修改数据格式相关联地存储在数据结构中,使用第一修改数据格式补丁来修改第一修改数据格式以生成第二修改数据格式,以及在数据结构中用第二修改数据格式覆盖第一修改数据格式。
根据本公开的第七示例方面,该第七示例方面可以与本文描述的任何一个或多个其他方面(例如,第六方面)结合使用,其中非暂时性计算机可读存储器存储进一步的指令,当由至少一个处理器执行时,该进一步的指令被进一步配置为使用第二修改数据格式来读取第二消息的有效载荷。
根据本公开的第八示例方面,该第八示例方面可以与本文所述的任何一个或多个其他方面(例如,第一方面)结合使用,其中第一消息使用异步消息传递协议来发送。
根据本公开的第九示例方面,该第九示例方面可以与本文描述的任何一个或多个其他方面(例如,第一方面)结合使用,其中第一消息由电池供电的边缘计算设备使用异步消息传递协议来发送。
根据本公开的第十示例方面,该第十示例方面可以与本文描述的任何一个或多个其他方面(例如,第一方面)结合使用,其中非暂时性计算机可读存储器存储进一步的指令,当由至少一个处理器执行时,该进一步的指令被进一步配置为从接收器接收由边缘计算设备发送的第二消息,确定第二消息包括第二数据格式标识符,确定与第二数据格式标识符相关联地存储在数据结构中的第二数据格式,并使用第二数据格式来读取第二消息的有效载荷。
本文描述的主题的各方面可以单独使用或者与本文描述的一个或多个其他方面结合使用。在本公开的第十一示例方面,一种方法包括接收由边缘计算设备发送的第一消息,确定第一消息包括第一数据格式标识符,确定第一消息包括第一数据格式补丁,确定第一数据格式标识符先前与第一数据格式相关联地存储在数据结构中,使用第一数据格式补丁来修改第一数据格式以生成第一修改数据格式,将第一修改数据格式与第一数据格式标识符相关联地存储在数据结构中,以及使用第一修改数据格式来读取第一消息的有效载荷。
根据本公开的第十二示例方面,该第十二示例方面可以与本文描述的任何一个或多个其他方面(例如,第十一方面)结合使用,接收由边缘计算设备发送的第二消息,确定第二消息包括第一数据格式标识符,确定第一数据格式标识符与第一修改数据格式相关联地存储在数据结构中,以及使用第一修改数据格式来读取第二消息的有效载荷。
在本公开的第十三示例方面中,该第十三示例方面可以与本文描述的任何一个或多个其他方面(例如,第十一方面)结合使用,接收由边缘计算设备发送的第二消息,确定第二消息包括第二数据格式标识符,确定第二数据格式标识符没有存储在数据结构中,确定第二消息包括定义第二数据格式的数据,将定义第二数据格式的数据与第二数据格式标识符相关联地存储在数据结构中,并使用第二数据格式来读取第二消息的有效载荷。
在本公开的第十四示例方面中,该第十四示例方面可以与本文描述的任何一个或多个其他方面(例如,第十一方面)结合使用,接收由边缘计算设备发送的第二消息,解析第二消息以确定第二消息中是否包括补丁,并且确定第二消息不包括补丁。
在本公开的第十五示例方面中,该第十五示例方面可以与本文描述的任何一个或多个其他方面(例如,第十四方面)结合使用,确定第二消息包括第一数据格式标识符,确定第一数据格式标识符与第一修改数据格式相关联地存储在数据结构中,以及使用第一修改数据格式来读取第二消息的有效载荷。
在本公开的第十六示例方面中,该第十六示例方面可以与本文描述的任何一个或多个其他方面(例如,第十一方面)结合使用,接收由边缘计算设备发送的第二消息,解析第二消息以确定在第二消息中是否包括补丁,确定第二消息包括第一修改数据格式补丁,确定第二消息包括第一数据格式标识符,确定第一数据格式标识符先前与第一修改数据格式相关联地存储在数据结构中,使用第一修改数据格式补丁来修改第一修改数据格式以生成第二修改数据格式,以及在数据结构中用第二修改数据格式覆盖第一修改数据格式。
根据本公开的第十七示例方面,该第十七示例方面可以与本文描述的任何一个或多个其他方面(例如,第十六方面)结合使用,使用第二修改数据格式来读取第二消息的有效载荷。
根据本公开的第十八示例方面,该第十八示例方面可以与本文描述的任何一个或多个其他方面(例如,第十一方面)结合使用,其中使用异步消息传递协议来发送第一消息。
根据本公开的第十九示例方面,该第十九示例方面可以与本文描述的任何一个或多个其他方面(例如,第十一方面)结合使用,其中第一消息由电池供电的边缘计算设备使用异步消息传递协议来发送。
根据本公开的第二十示例方面,该第二十示例方面可以与本文描述的任何一个或多个其他方面(例如,第十一方面)结合使用,接收由边缘计算设备发送的第二消息,确定第二消息包括第二数据格式标识符,确定与第二数据格式标识符相关联地存储在数据结构中的第二数据格式,以及使用第二数据格式来读取第二消息的有效载荷。
本文描述的主题的各方面可以单独使用或者与本文描述的一个或多个其他方面结合使用。在本公开的第二十一示例方面,一种方法包括建立与接收器设备的通信信道,生成第一类型的第一消息,第一消息包括第一数据格式定义和与第一数据格式定义相关联的第一数据格式标识符,使用通信信道向接收器设备发送第一消息,生成第一类型的第二消息,第二消息包括第一数据格式标识符和补丁,补丁包括可执行指令,该可执行指令有效地修改所述第一数据格式定义以生成第一修改数据格式定义,并且使用所述通信信道向接收器设备发送第一类型的第二消息。
根据本公开的第二十二示例方面,该第二十二示例方面可以与本文描述的任何一个或多个其他方面(例如,第二十一方面)结合使用,还包括:生成第一类型的第三消息,第三消息包括第一数据格式标识符,其中接收器设备被配置为:解析第三消息以识别第一数据格式标识符;以及使用第一数据格式标识符来查找第一修改数据格式定义。
根据本公开的第二十三个示例方面,该第二十三个示例方面可以与本文描述的任何一个或多个其他方面(例如,第二十二方面)结合使用,其中接收器设备还被配置为使用第一修改数据格式定义来读取第三消息的有效载荷。
根据本公开的第二十四示例方面,该第二十四示例方面可以与本文描述的任何一个或多个其他方面(例如,第二十一方面)结合使用,还包括向接收器设备发送第二类型的第一消息,第二消息包括第二数据格式定义和与第二数据格式定义相关联的第二数据格式标识符。
根据本公开的第二十五示例方面,该第二十五示例方面可以与本文描述的任何一个或多个其他方面(例如,第二十四方面)结合使用,其中接收器设备有效地:解析第二类型的第一消息以确定第二数据格式定义和与第二数据格式定义相关联的第二数据格式标识符;并将第二数据格式定义与第二数据格式标识符相关联地存储在数据库中。
根据本公开的第二十六示例方面,该第二十六示例方面可以与本文描述的任何一个或多个其他方面(例如,第二十五方面)结合使用,还包括:生成第二类型的第二消息,该第二消息包括第二数据格式标识符并且排除任何数据格式定义;以及使用通信信道向接收设备发送第二类型的第二消息。
本文描述的主题的各方面可以单独使用或者与本文描述的一个或多个其他方面结合使用。在本公开的第二十七示例方面,一种设备包括:至少一个处理器;发送机;和存储指令的非暂时性计算机可读存储器,当由至少一个处理器执行时,指令被配置为:建立与接收器设备的通信信道;生成第一类型的第一消息,该第一消息包括第一数据格式定义和与第一数据格式定义相关联的第一数据格式标识符;使用发送机向接收器设备发送第一类型的第一消息;生成第一类型的第二消息,该第二消息包括第一数据格式标识符和补丁,该补丁包括有效修改第一数据格式定义以生成第一修改数据格式定义的可执行指令;以及使用发送机向接收器设备发送第一类型的第二消息。
根据本公开的第二十八示例方面,该第二十八示例方面可以与本文描述的任何一个或多个其他方面(例如,第二十七方面)结合使用,其中非暂时性计算机可读存储器存储进一步的指令,当由至少一个处理器执行时,该进一步的指令被进一步配置为:生成第一类型的第三消息,第三消息包括第一数据格式标识符,其中接收器设备被配置为:解析第三消息以识别第一数据格式标识符;以及使用第一数据格式标识符来查找第一修改数据格式定义。
根据本公开的第二十九示例方面,该第二十九示例方面可以与本文描述的任何一个或多个其他方面(例如,第二十八方面)结合使用,其中接收器设备还被配置为使用第一修改数据格式定义来读取第三消息的有效载荷。
根据本公开的第三十示例方面,该第三十示例方面可以与本文描述的任何一个或多个其他方面(例如,第二十七方面)结合使用,其中非暂时性计算机可读存储器存储进一步的指令,当由至少一个处理器执行时,该进一步的指令被进一步配置为:使用发送机使用通信信道向接收器设备发送第二类型的第一消息,第二消息包括第二数据格式定义和与第二数据格式定义相关联的第二数据格式标识符。
根据本公开的第三十一示例方面,该第三十一示例方面可以与本文描述的任何一个或多个其他方面(例如,第三十方面)结合使用,其中接收器设备有效地:解析第二类型的第一消息以确定第二数据格式定义和与第二数据格式定义相关联的第二数据格式标识符;并将第二数据格式定义与第二数据格式标识符相关联地存储在数据库中。
根据本公开的第三十二示例方面,该第三十二示例方面可以与本文描述的任何一个或多个其他方面(例如,第三十一方面)结合使用,其中非暂时性计算机可读存储器存储进一步的指令,当由至少一个处理器执行时,该进一步的指令被进一步配置为:生成第二类型的第二消息,第二消息包括第二数据格式标识符并且排除任何数据格式定义;以及使用发送机经由通信信道向接收器设备发送第二类型的第二消息。
本文描述的主题的各方面可以单独使用或者与本文描述的一个或多个其他方面结合使用。在本公开的第三十三示例方面,一种系统包括:用于接收由边缘计算设备发送的第一消息的部件;用于确定第一消息包括第一数据格式标识符的部件;用于确定第一消息包括第一数据格式补丁的部件;用于确定第一数据格式标识符先前与第一数据格式相关联地存储在数据结构中的部件;用于使用第一数据格式补丁来修改第一数据格式以生成第一修改数据格式的部件;用于将第一修改数据格式与第一数据格式标识符相关联地存储在数据结构中的部件;以及用于使用第一修改数据格式来读取第一消息的有效载荷的部件。
根据本公开的第三十四示例方面,该第三十四示例方面可以与本文描述的任何一个或多个其他方面(例如,第三十三方面)结合使用,该系统还包括:用于接收由边缘计算设备发送的第二消息的部件;用于确定第二消息包括第一数据格式标识符的部件;用于确定第一数据格式标识符与第一修改数据格式相关联地存储在数据结构中的部件;以及用于使用第一修改数据格式来读取第二消息的有效载荷的部件。
根据本公开的第三十五示例方面,该第三十五示例方面可以与本文描述的任何一个或多个其他方面(例如,第三十三方面)结合使用,该系统还包括:用于接收由边缘计算设备发送的第二消息的部件;用于确定第二消息包括第二数据格式标识符的部件;用于确定第二数据格式标识符尚未存储在数据结构中的部件;用于确定第二消息包括定义第二数据格式的数据的部件;用于将定义第二数据格式的数据与第二数据格式标识符相关联地存储在数据结构中的部件;以及用于使用第二数据格式来读取第二消息的有效载荷的部件。
就这些方面中的任何一个相互排斥而言,应该理解,这种相互排斥不应以任何方式限制这种方面与任何其他方面的组合,无论这种方面是否被明确叙述。这些方面中的任何一个都可以作为系统、方法、装置、设备、介质等来要求保护,而没有限制。
应当理解,对于本领域技术人员来说,对本文描述的示例实施例的各种改变和修改是显而易见的。在不脱离本主题的精神和范围并且不减少其预期优点的情况下,可以进行这样的改变和修改。因此,预期所附权利要求涵盖了这些变化和修改。
Claims (20)
1.一种设备,包括:
至少一个处理器;
接收器;和
存储指令的非暂时性计算机可读存储器,当由所述至少一个处理器执行时,所述指令被配置为:
由所述接收器接收由边缘计算设备发送的第一消息;
确定所述第一消息包括第一数据格式标识符;
确定所述第一消息包括第一数据格式;
将所述第一数据格式与所述第一数据格式标识符相关联地存储在数据结构中;
由所述接收器接收由所述边缘计算设备发送的第二消息;
确定所述第二消息包括所述第一数据格式标识符;
使用所述第一数据格式标识符从所述数据结构中检索所述第一数据格式;和
使用所述第一数据格式来读取所述第二消息的有效载荷。
2.根据权利要求1所述的设备,其中所述非暂时性计算机可读存储器存储进一步的指令,当由所述至少一个处理器执行时,所述进一步的指令被进一步配置为:
由所述接收器接收由所述边缘计算设备发送的第三消息;
确定所述第三消息包括所述第一数据格式标识符;
确定所述第三消息包括第一数据格式补丁;
确定所述第一数据格式标识符先前与所述第一数据格式相关联地存储在所述数据结构中;
使用所述第一数据格式补丁来修改所述第一数据格式,以生成第一修改数据格式;
将所述第一修改数据格式与所述第一数据格式标识符相关联地存储在所述数据结构中;和
使用所述第一修改数据格式来读取所述第三消息的有效载荷。
3.根据权利要求2所述的设备,其中所述非暂时性计算机可读存储器存储进一步的指令,当由所述至少一个处理器执行时,所述进一步的指令被进一步配置为:
从所述接收器接收由所述边缘计算设备发送的第四消息;
确定所述第四消息包括所述第一数据格式标识符;
确定所述第一数据格式标识符与所述第一修改数据格式相关联地存储在所述数据结构中;和
使用所述第一修改数据格式来读取所述第四消息的有效载荷。
4.根据权利要求2所述的设备,其中所述非暂时性计算机可读存储器存储进一步的指令,当由所述至少一个处理器执行时,所述进一步的指令被进一步配置为:
从所述接收器接收由所述边缘计算设备发送的第四消息;
确定所述第四消息包括第二数据格式标识符;
确定所述第二数据格式标识符没有存储在所述数据结构中;
确定所述第四消息包括定义第二数据格式的数据;
将定义所述第二数据格式的所述数据与所述第二数据格式标识符相关联地存储在所述数据结构中;和
使用所述第二数据格式来读取所述第四消息的有效载荷。
5.根据权利要求2所述的设备,其中所述非暂时性计算机可读存储器存储进一步的指令,当由所述至少一个处理器执行时,所述进一步的指令被进一步配置为:
从所述接收器接收由所述边缘计算设备发送的第四消息;
解析所述第四消息以确定所述第四消息中是否包括补丁;和
确定所述第四消息不包括补丁。
6.根据权利要求5所述的设备,其中所述非暂时性计算机可读存储器存储进一步的指令,当由所述至少一个处理器执行时,所述进一步的指令被进一步配置为:
确定所述第四消息包括所述第一数据格式标识符;
确定所述第一数据格式标识符与所述第一修改数据格式相关联地存储在所述数据结构中;和
使用所述第一修改数据格式来读取所述第四消息的有效载荷。
7.根据权利要求2所述的设备,其中所述非暂时性计算机可读存储器存储进一步的指令,当由所述至少一个处理器执行时,所述进一步的指令被进一步配置为:
从所述接收器接收由所述边缘计算设备发送的第四消息;
解析所述第四消息以确定所述第四消息中是否包括补丁;
确定所述第四消息包括第一修改数据格式补丁;
确定所述第四消息包括所述第一数据格式标识符;
确定所述第一数据格式标识符先前与所述第一修改数据格式相关联地存储在所述数据结构中;
使用所述第一修改数据格式补丁来修改所述第一修改数据格式,以生成第二修改数据格式;和
在所述数据结构中用所述第二修改数据格式覆盖所述第一修改数据格式。
8.根据权利要求7所述的设备,其中所述非暂时性计算机可读存储器存储进一步的指令,当由所述至少一个处理器执行时,所述进一步的指令被进一步配置为使用所述第二修改数据格式来读取所述第四消息的有效载荷。
9.根据权利要求1所述的设备,其中所述非暂时性计算机可读存储器存储进一步的指令,当由所述至少一个处理器执行时,所述进一步的指令被进一步配置为:
从所述接收器接收由所述边缘计算设备发送的第三消息;
确定所述第三消息包括第二数据格式标识符;
确定与所述第二数据格式标识符相关联地存储在所述数据结构中的第二数据格式;和
使用所述第二数据格式来读取所述第三消息的有效载荷。
10.根据权利要求1所述的设备,其中,所述第一消息由电池供电的边缘计算设备使用异步消息传递协议来发送。
11.一种方法,包括:
接收由边缘计算设备发送的第一消息;
确定所述第一消息包括第一数据格式标识符;
确定所述第一消息包括第一数据格式补丁;
确定所述第一数据格式标识符先前与第一数据格式相关联地存储在数据结构中;
使用所述第一数据格式补丁来修改所述第一数据格式,以生成第一修改数据格式;
将所述第一修改数据格式与所述第一数据格式标识符相关联地存储在所述数据结构中;和
使用所述第一修改数据格式来读取所述第一消息的有效载荷。
12.根据权利要求11所述的方法,还包括:
接收由所述边缘计算设备发送的第二消息;
确定所述第二消息包括所述第一数据格式标识符;
确定所述第一数据格式标识符与所述第一修改数据格式相关联地存储在所述数据结构中;和
使用所述第一修改数据格式来读取所述第二消息的有效载荷。
13.根据权利要求11所述的方法,还包括:
接收由所述边缘计算设备发送的第二消息;
确定所述第二消息包括第二数据格式标识符;
确定所述第二数据格式标识符没有存储在所述数据结构中;
确定所述第二消息包括定义第二数据格式的数据;
将定义所述第二数据格式的所述数据与所述第二数据格式标识符相关联地存储在所述数据结构中;和
使用所述第二数据格式来读取所述第二消息的有效载荷。
14.根据权利要求11所述的方法,还包括:
接收由所述边缘计算设备发送的第二消息;
解析所述第二消息以确定在所述第二消息中是否包括补丁;和
确定所述第二消息不包括补丁。
15.根据权利要求14所述的方法,还包括:
确定所述第二消息包括所述第一数据格式标识符;
确定所述第一数据格式标识符与所述第一修改数据格式相关联地存储在所述数据结构中;和
使用所述第一修改数据格式来读取所述第二消息的有效载荷。
16.根据权利要求11所述的方法,还包括:
接收由所述边缘计算设备发送的第二消息;
解析所述第二消息以确定在所述第二消息中是否包括补丁;
确定所述第二消息包括第一修改数据格式补丁;
确定所述第二消息包括所述第一数据格式标识符;
确定所述第一数据格式标识符先前与所述第一修改数据格式相关联地存储在所述数据结构中;
使用所述第一修改数据格式补丁来修改所述第一修改数据格式,以生成第二修改数据格式;和
在所述数据结构中用所述第二修改数据格式覆盖所述第一修改数据格式。
17.根据权利要求16所述的方法,还包括使用所述第二修改数据格式来读取所述第二消息的有效载荷。
18.一种方法,包括:
建立与接收器设备的通信信道;
生成第一类型的第一消息,所述第一消息包括第一数据格式定义和与所述第一数据格式定义相关联的第一数据格式标识符;
使用所述通信信道向接收器设备发送所述第一消息;
生成所述第一类型的第二消息,所述第二消息包括所述第一数据格式标识符和补丁,所述补丁包括有效修改所述第一数据格式定义以生成第一修改数据格式定义的可执行指令;和
使用所述通信信道向所述接收器设备发送所述第一类型的第二消息。
19.根据权利要求18所述的方法,还包括:
生成所述第一类型的第三消息,所述第三消息包括所述第一数据格式标识符,其中所述接收器设备被配置为:
解析所述第三消息以识别所述第一数据格式标识符;和
使用所述第一数据格式标识符来查找所述第一修改数据格式定义。
20.根据权利要求19所述的方法,其中所述接收器设备还被配置为使用所述第一修改数据格式定义来读取所述第三消息的有效载荷。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/344,306 | 2021-06-10 | ||
US17/344,306 US12015684B2 (en) | 2021-06-10 | 2021-06-10 | Message format indicator for resource-constrained devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115470011A true CN115470011A (zh) | 2022-12-13 |
Family
ID=77103926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110861395.4A Pending CN115470011A (zh) | 2021-06-10 | 2021-07-29 | 资源受限设备的消息格式指示器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12015684B2 (zh) |
EP (1) | EP4102367A1 (zh) |
CN (1) | CN115470011A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11722470B2 (en) * | 2018-08-29 | 2023-08-08 | International Business Machines Corporation | Encrypted data according to a schema |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2641365B1 (en) | 2010-11-16 | 2019-07-24 | Tibco Software Inc. | Compression of message information transmitted over a network |
US20160294614A1 (en) * | 2014-07-07 | 2016-10-06 | Symphony Teleca Corporation | Remote Embedded Device Update Platform Apparatuses, Methods and Systems |
US9929772B2 (en) * | 2016-02-05 | 2018-03-27 | Apana Inc. | Low power, high resolution automated meter reading and analytics |
WO2018090386A1 (zh) * | 2016-11-21 | 2018-05-24 | 华为技术有限公司 | 一种nf组件异常的处理方法、设备及系统 |
-
2021
- 2021-06-10 US US17/344,306 patent/US12015684B2/en active Active
- 2021-07-28 EP EP21188113.1A patent/EP4102367A1/en active Pending
- 2021-07-29 CN CN202110861395.4A patent/CN115470011A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4102367A1 (en) | 2022-12-14 |
US20220400158A1 (en) | 2022-12-15 |
US12015684B2 (en) | 2024-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853142B2 (en) | Stateless instance backed mobile devices | |
US9313139B2 (en) | Physical port sharing in a link aggregation group | |
US9531775B2 (en) | Mobile application migration to cloud computing platform | |
US10733019B2 (en) | Apparatus and method for data processing | |
US10728179B2 (en) | Distributed virtual switch configuration and state management | |
US9565095B2 (en) | Take-over of network frame handling in a computing environment | |
US9262222B2 (en) | Lazy initialization of operator graph in a stream computing application | |
US20190294328A1 (en) | Virtualizing non-volatile storage at a peripheral device | |
US9135050B2 (en) | Extensible network configuration management | |
US8725800B1 (en) | Mobile photo application migration to cloud computing platform | |
US10728169B1 (en) | Instance upgrade migration | |
US9021120B2 (en) | Optimized video streaming using cloud computing platform | |
US20240111549A1 (en) | Method and apparatus for constructing android running environment | |
US20200259902A1 (en) | Filesystem i/o scheduler | |
US11467835B1 (en) | Framework integration for instance-attachable accelerator | |
CN115470011A (zh) | 资源受限设备的消息格式指示器 | |
CN116257471A (zh) | 一种业务处理方法及装置 | |
US11861425B2 (en) | Runtime mapping of asynchronous application programming interface messaging topics and schemas | |
US11526286B1 (en) | Adaptive snapshot chunk sizing for snapshots of block storage volumes | |
US11669365B1 (en) | Task pool for managed compute instances | |
US20240040017A1 (en) | Adaptive compression for idempotent data stores in computer messaging | |
US11392433B1 (en) | Generation of asynchronous application programming interface specifications for messaging topics | |
CN112041817A (zh) | 用于管理借助于加速器装置的硬件加速的请求的方法和节点 | |
US11113087B2 (en) | Techniques of discovering VDI systems and synchronizing operation information of VDI systems by sending discovery messages and information messages | |
CN117687738A (zh) | 一种缓存控制方法、装置和计算机设备 |
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 |