CN113760347B - 数据处理 - Google Patents
数据处理 Download PDFInfo
- Publication number
- CN113760347B CN113760347B CN202110034096.3A CN202110034096A CN113760347B CN 113760347 B CN113760347 B CN 113760347B CN 202110034096 A CN202110034096 A CN 202110034096A CN 113760347 B CN113760347 B CN 113760347B
- Authority
- CN
- China
- Prior art keywords
- data processing
- data
- component
- components
- topic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开涉及数据处理。一种数据处理系统包括处理器和存储器并在其上运行操作系统。用于实现控制嵌入式系统的控制应用的计算机程序可执行文件被加载到存储器中,该计算机程序可执行文件控制操作系统在操作系统存储器中实例化多个数据处理组件和通信组件。通信组件被配置成使用发布‑订阅消息传递模式来促进数据处理组件之间的数据通信。通信组件和数据处理组件在单个存储器地址空间中被实例化。
Description
技术领域
本发明涉及用于对嵌入式系统,特别地使用数据处理组件(例如微服务(microservice)组件)在其中实现控制应用的嵌入式系统进行控制的技术。
背景
分布式计算技术的发展使得在许多不同的领域中能够远程控制和监视包含联网计算设备的对象、装备和过程(通常被称为物联网(IoT))。
然而,与通过大型网络(例如互联网)传送数据相关联的延迟和抖动意味着,对于某些应用来说,传统的IoT方法(其中一个计算设备由另一个计算设备通过互联网控制)是不合适的。
示例包括控制工业过程的嵌入式系统。这是因为这种嵌入式系统通常要求输入数据(例如,传感器数据或本地控制数据)以最大的时延进行传送、处理并生成响应。如果对该数据的处理需要通过互联网将某些数据传送到远程计算设备或从远程计算设备传送某些数据,则该最大时延可能无法实现。
然而,使IoT技术能够用于控制和监视这些类型的工业过程仍然是有利的。出于这个原因,“边缘计算(edge computing)”技术,例如由诸如“EdgeX Foundry”的开源平台推动的技术,正变得越来越流行。边缘计算技术寻求使系统的尽可能多的时延敏感数据处理和数据存储功能能够在网络中相关计算活动发生的点附近实现,从而减少延迟和抖动,同时使时间要求不那么严格的功能(例如系统监视和高级控制功能)能够远程执行。
虽然将计算组件定位在网络中数据处理发生的点附近减少了数据延迟和抖动的影响,但是为了实现使用边缘计算的可靠且安全的嵌入式系统(其中许多监视和控制可以远程执行),仍然希望提高这些系统的数据处理可预测性(predictability)。这种数据处理可预测性是确信执行某些处理任务所花费的时间不会超过预定的最大时间段能力。
许多边缘计算系统基于传统的计算系统,而传统的计算系统不一定被优化来提供这种可预测性。例如,大多数边缘计算技术,特别是在嵌入式系统中实现的那些边缘计算技术,使用这样的操作系统,其中不同的数据处理组件(例如根据“松散耦合(loosely-coupled)”软件体系结构开发的微服务组件)在不同的操作系统地址空间中实现,并且使用操作系统实现的网络堆栈,经由进程间通信(IPC)在这些地址空间中相互通信。这种类型的实现使得更难确信数据处理任务将在预定的最大时间段内完成。
本发明的某些实施例的目的是提供这样的技术,该技术提高在诸如边缘计算系统的计算系统中执行某些处理任务的可预测性。
发明概述
根据本发明的第一方面,提供了一种数据处理系统,包括处理器和存储器,并且在数据处理系统上运行有操作系统。用于实现控制嵌入式系统的控制应用的计算机程序可执行文件被加载到存储器中,该计算机程序可执行文件控制操作系统在操作系统存储器中实例化多个(a plurality of)数据处理组件和通信组件。通信组件被配置成使用发布-订阅消息传递模式(publish-subscribe messaging pattern)来促进数据处理组件之间的数据通信。通信组件和数据处理组件在单个存储器地址空间中被实例化。
可选地,操作系统是实时操作系统。
可选地,通信组件维护多个主题(topic),并且数据处理组件被配置成:通过将数据发布到多个主题中的一个主题来传输要由其他数据处理组件处理的数据,并且通过订阅多个主题中的至少一个主题来从其他数据处理组件接收数据。
可选地,数据处理组件被配置成通过将主题标识符附加到数据并将附带有主题标识符的数据传送到通信组件来将数据发布到给定主题。
可选地,数据处理组件被配置成借助于由通信组件维护的订阅数据来订阅给定主题,该订阅数据将主题与一个或更多个数据处理组件链接。
可选地,通信组件被配置成将接收到的与一个主题相关联的数据传送到订阅数据指示链接到该主题的每个数据处理组件。
可选地,通信组件被配置成:为每个主题分配通信优先级,并且根据与数据相关联的主题的通信优先级,优先将该数据传送到数据处理组件。
可选地,数据处理系统是多核数据处理系统,并且计算机程序可执行文件被配置成通过请求操作系统将与一个或更多个特定主题相关联的处理任务绑定到一个或更多个特定处理器核来实现基于主题的处理器亲和力(processor affinity)技术。
可选地,数据处理组件和通信组件是微服务组件。
可选地,数据处理组件和通信组件是松散耦合的微服务组件。
根据本发明的第二方面,提供了一种在数据处理系统上实现用于控制嵌入式系统的控制应用的方法。该方法包括:将用于实现控制应用的计算机可执行文件加载到数据处理系统的存储器中;在该计算机可执行文件的控制下,由数据处理系统的操作系统在操作系统的操作系统存储器的单个存储器地址空间中实例化多个数据处理组件和通信组件,并且由通信组件使用发布-订阅消息传递模式来促进数据处理组件之间的数据通信。
可选地,操作系统是实时操作系统。
可选地,该方法还包括:由通信组件维护多个主题;由数据处理组件通过将数据发布到该多个主题中的一个主题来传输要由其他数据处理组件处理的数据,并且由数据处理组件通过订阅该多个主题中的至少一个主题来接收来自其他数据处理组件的数据。
可选地,该方法还包括由数据处理组件通过以下操作来将数据发布到给定主题:将主题标识符附加到数据,并将附带有主题标识符的数据传送到通信组件。
可选地,该方法还包括:由数据处理组件借助于通信组件维护的订阅数据来订阅给定主题,该订阅数据将主题与一个或更多个数据处理组件链接。
可选地,该方法还包括由通信组件将接收到的与一个主题相关联的数据传送到订阅数据指示链接到该主题的每个数据处理组件。
可选地,该方法还包括由通信组件:为每个主题分配通信优先级,并且根据与数据相关联的主题的通信优先级来优先将该数据传送到数据处理组件。
可选地,数据处理系统是多核数据处理系统,所述方法包括:由计算机程序可执行文件通过请求操作系统将与一个或更多个特定主题相关联的处理任务绑定到一个或更多个特定处理器核,来实现基于主题的处理器亲和力技术。
可选地,数据处理组件和通信组件是微服务组件。
可选地,数据处理组件和通信组件是松散耦合的微服务组件。
根据本发明的第三方面,提供了一种用于实现控制嵌入式系统的控制应用的计算机可执行文件,所述计算机可执行文件包括计算机可读代码,该计算机可读代码被配置成在被加载到计算设备上时,控制该计算设备:控制数据处理系统的操作系统,以在操作系统的操作系统存储器的单个存储器地址空间中实例化多个数据处理组件和通信组件,以及使用通信组件,使用发布-订阅消息传递模式来促进数据处理组件之间的数据通信。
根据本发明的某些方面,提供了一种用于提高在数据处理系统(特别是在形成分布式计算系统(例如“IoT系统”)的一部分的“边缘”计算设备中实现的那种类型的数据处理系统)中数据可能在预定时间段内被处理的确定性的技术。
根据本发明的某些实施例,实现例如软件应用(例如用于嵌入式系统的控制应用)的计算机程序可执行文件被加载到数据处理系统上并在其上运行,使得被实现的计算机程序可执行文件的数据处理组件(通常是微服务)与通信组件一起在相同的存储器地址空间中被实例化。通信组件使得存储器组件能够使用发布-订阅消息传递模式相互传送数据。
由于使用了发布-订阅消息传递模式,并且被实现的计算机程序可执行文件的所有组件(包括通信组件)都在相同的存储器空间中实现,因此提高了数据被软件应用以保证的可预测性水平处理的可能性(例如,在保证的最大时间段内响应异步输入,例如与传感器读数相关联的数据)。
相对于传统嵌入式系统中的类似技术,这种改进尤其明显,在传统嵌入式系统中,计算机程序可执行文件的不同组件通常分布在不同的地址空间中,并且使用集中式操作系统网络堆栈来实现这些不同存储器空间之间的数据通信。以这种方式在组件之间传送数据所花费的时间本质上是不太可预测的,因为很难确定来自其他进程的哪些其他组件可能正在使用中央操作系统网络堆栈,或者操作系统可能如何对服务不同地址空间确定优先级排序。相比之下,通过将单个通信组件设置在与计算机程序可执行文件的数据处理组件相同的地址空间中,数据处理组件之间的数据通信所花费的时间更可预测,并且能够使开发者更确信某些数据处理操作将在保证的时间段内被执行。
方便地,在某些实施例中,当在数据处理系统上运行的操作系统是实时操作系统时,与发布-订阅消息传递模式相关联的基于“主题”的消息传递可以用于通过向不同主题分配优先级和通过向特定主题分配数据来对数据处理组件之间的数据通信确定优先级排序。
权利要求中定义了本发明的各种进一步的特征和方面。
附图简述
本发明的实施例现在将仅以举例的方式参考附图来加以描述,在附图中为相似的部件提供相应的参考标记,并且其中:
图1提供了一种简化示意图,描绘了包括根据边缘计算技术实现的嵌入式系统的物联网系统的示例;
图2提供了一种示意图,描绘了根据本发明某些实施例实现的控制应用;以及
图3提供了一种示意图,描绘了根据本发明某些实施例的用于生成应用代码的开发环境。
详细描述
图1提供了描绘“物联网”系统的说明性示例的示意图,其示出了可以实现本发明的示例的典型设置。
系统包括控制系统101,控制系统101包括由温度传感器提供的传感设备102、由阀控制器提供的控制器设备103和嵌入式计算机系统104。
嵌入式计算机系统104包括处理器单元105、存储器106和输入/输出数据接口107。
外部控制设备108经由数据接口107直接连接到控制系统101。
远程信息技术(IT)系统(“IT端点”)109经由例如由互联网提供的数据网络110连接到数据接口。
图1中描绘的系统是典型的“物联网”系统的简化示例,物联网系统被配置成使远程IT系统能够监视嵌入式计算机系统,该嵌入式计算机系统又被配置成控制工业过程。
在图1所描绘的说明性示例中,嵌入式计算机系统104被配置成响应于由连接到温度传感器102的温度探针113生成的温度读数,经由连接到阀控制器103的阀112控制通过导管111的流体流动。
以这种方式配置的嵌入式计算机系统104是边缘计算系统的示例,其中与工业过程的控制相关联的计算机操作在工业过程附近执行,而不是经由网络从与工业过程分离的网络节点远程地执行。
嵌入式计算机系统104上运行有操作系统。通常,操作系统是“实时操作系统(RTOS)”。RTOS是被配置成根据时间限制来承担和完成处理任务的操作系统,该时间限制规定了操作必须在其内被执行的时间段。
在操作系统的控制下,嵌入式计算机系统在其上运行计算机程序(被称为“嵌入式系统控制应用”),该计算机程序的形式是控制控制系统101的操作的编译的计算机程序可执行文件的形式。
嵌入式系统控制应用被配置成处理经由数据接口107从温度传感器102接收的传感器数据,并且响应于此,生成用于经由数据接口107传送到阀控制设备103的控制数据。
嵌入式系统控制应用还被配置成处理经由数据接口107从外部控制设备108接收的命令数据,并根据命令数据修改控制系统101的操作。
嵌入式系统控制应用还被配置成生成与控制系统101的操作相关的报告数据,用于经由数据接口107和数据网络110传送到远程IT系统109。
这样,在使用中,运行在控制系统101上的嵌入式系统控制应用响应于由温度传感器102检测到的温度传感器数据来控制阀112的操作。控制系统101的操作可以由外部控制设备108修改。与阀和温度传感器的操作相关的报告数据被传送到远程信息技术系统109。
图2提供了示意图,示出了根据本发明的实施例可以如何实现参考图1描述的那种类型的嵌入式系统控制应用。特别地,图2示出了当被加载到嵌入式计算机系统104的操作系统存储器中时,嵌入式系统控制应用的数据处理组件的布置。
与传统的嵌入式系统软件一致,嵌入式系统控制应用被划分成作为嵌入式系统控制应用的逻辑组件的多个数据处理组件(例如,“微服务”组件),每个组件通常负责由嵌入式系统控制应用提供的功能的离散方面,并且每个组件通常在操作系统存储器中被分配一个存储器位置。
如图2所示,根据本发明的某些实施例,嵌入式系统控制应用的组件在被加载到存储器中时,提供多个分立的微服务组件201、202、203、204、205,它们共同位于操作系统存储器的单个地址空间206中。如本领域中已知的,单个地址空间是操作系统存储器中有效地址的连续范围,操作系统将该有效地址的连续范围分配给嵌入式系统控制应用。
微服务组件通常是“松散耦合的”,也就是说,它们以这样一种方式开发,即每个微服务组件与任何其他微服务组件的实现不是相互依赖的(co-dependent)。也就是说,给定的微服务组件不依赖于任何其他微服务组件来正常工作。
在图2所示的示例中,微服务组件包括发布/订阅数据总线201。发布/订阅数据总线201被配置成实现发布/订阅通信机制,该机制使得微服务组件202、203、204、205能够使用发布/订阅通信协议来相互传送数据。
发布/订阅总线在本领域中是众所周知的,并且技术人员将熟悉它们如何提供通信机制,该机制使得数据能够根据发布-订阅消息传递模式进行传送。
在图2所示的示例中,第二微服务组件202提供了一种设备代理服务,用于控制与从外部控制设备108接收数据和向外部控制设备108发送数据相关联的操作。
在图2所示的示例中,第三微服务组件203提供了一种控制器设备服务,用于控制与对控制器设备103的操作进行控制相关联的操作。
在图2所示的示例中,第四微服务组件204提供了一种传感器设备服务,用于控制与从传感器设备102接收数据相关联的操作。
在图2所示的示例中,第五微服务组件205提供了一种数据导出(data export)服务,用于控制与向IT端点109传送数据相关联的操作。
发布/订阅数据总线201管理多个“主题”,这些“主题”提供了多个逻辑信道,经由这些逻辑信道,数据可以在微服务组件202、203、204、205之间进行传送。
为了在给定的信道上传输数据,微服务组件将数据“发布”到相应的主题。为了接收在给定信道上传输的数据,微服务组件“订阅”相应的主题。
将数据发布到主题是通过微服务组件将附带有主题标识符的数据传送到发布/订阅数据总线201来实现的。
订阅主题是通过发布/订阅数据总线201维护订阅每个主题的所有微服务组件的记录(订阅数据)来实现的。当接收到附带有相应主题标识符的数据时,发布/订阅数据总线201将数据转发给订阅主题的所有微服务组件。
微服务组件订阅的主题通常是在开发(编写)嵌入式系统控制应用代码时定义或在运行时通过配置定义。
例如,温度传感器102可以被配置成生成两种类型的传感器数据。第一种类型的数据对应于传感器的故障状态,例如指示传感器是正在检测温度还是已经停止检测温度并因此处于故障状况。第二种类型的传感器数据对应于检测到的温度。
因此,发布/订阅数据总线201被配置成建立与故障数据相关的数据的第一“主题”(传感器输出数据1),以及与检测到的温度相关的数据的第二“主题”(传感器输出数据2)。发布/订阅数据总线201被配置成建立与从外部控制设备108接收的命令相关的数据的第三“主题”(外部节点命令数据)。
控制器设备服务203和数据导出服务205被配置成订阅第一主题(传感器输出数据1)、第二主题(传感器输出数据2)和第三主题(外部节点命令数据)。设备代理服务202被配置成订阅第一主题(传感器输出数据1)。这些关系由发布/订阅数据总线201来维护,作为存储在适当存储器位置的“订阅数据”207。
设备代理服务202被配置成将与从外部控制设备108接收到的命令相关的数据发布到第三主题(外部节点命令数据)。
传感器设备服务204被配置成将与温度传感器的故障状态相关的数据发布到第一主题(传感器输出数据1),并将与检测到的温度相关的数据发布到第二主题(传感器输出数据2)。
在该说明性示例中,嵌入式系统控制应用被配置成控制阀112的操作,使得其打开或关闭的程度取决于由温度传感器检测到的温度。在检测到温度传感器有故障的情况下,嵌入式系统控制应用被配置成关闭阀。该功能被实现,因为控制设备服务203(其控制与对阀控制器103进行控制相关联的操作)订阅传感器输出数据1主题和传感器输出数据2主题,因此接收由传感器设备服务204发布的与温度传感器的检测到的故障状态相关的数据和由传感器设备服务204发布的与温度传感器102检测到的温度相关的数据。相应地,控制器设备服务203可以根据温度传感器的检测到的故障状态和温度传感器102检测到的温度来控制阀。
此外,在该说明性示例中,嵌入式系统控制应用控制阀的方式(例如,检测到的温度与阀打开程度之间的关系)的改变可以通过操作员将相应控制信息输入到外部控制设备108中来实现。该功能是借助于这样一个事实来实现的,即控制设备服务203订阅外部节点命令数据主题并因此接收由设备代理服务202发布的与用户输入到控制设备108中的命令相关的数据。相应地,控制器设备服务203可以根据用户输入的命令更新控制阀的方式。
此外,在该说明性示例中,与控制系统101的操作相关的数据(即检测到的温度、与温度传感器故障相关的数据以及与从外部控制设备接收的命令数据相关的数据)从控制系统101传送到IT端点109。该功能是借助于这样一个事实来实现的,即控制与向IT端点109传送数据相关联的操作的数据导出服务205订阅传感器输出数据1主题和传感器输出数据2主题以及外部节点命令数据主题。
在某些实施例中,发布/订阅数据总线201被配置成基于用于确保根据系统需要以何种优先级处理数据来传送数据的主题,对嵌入式系统控制应用的微服务之间的数据传输确定优先级排序。
例如,在一个说明性的示例中,如果温度传感器发生故障,阀尽可能快地关闭可能是重要的。此外,根据用户输入的命令更新控制系统101的操作可以被认为比根据检测到的温度控制阀的操作具有更低的优先级。
因此,故障数据(传感器输出数据1)到控制设备服务203的传送优先于与检测到的温度相关的数据(传感器输出数据2)和与从外部控制设备108接收的命令相关的数据(外部节点命令数据)的传送。此外,与检测到的温度相关的数据(传感器输出数据2)的传送优先于与从外部控制设备108接收到的命令相关的数据(外部节点命令数据)。
为了实现这种数据传输优先级机制,发布/订阅数据总线201维护主题优先级配置208,该配置将优先级与每个主题相关联。发布/订阅数据总线201将以反映该优先级的顺序将数据转发到微服务。
例如,与第一主题(传感器输出数据1)相关的数据一旦被微服务发布到该主题,将由发布/订阅数据总线201转发给该主题的订阅者,而不考虑与其他两个主题相关的、等待转发给相关订阅者的任何待定数据(pending data)。如果没有与第一主题(传感器输出数据1)相关的待定数据要转发,则与第二主题(传感器输出数据2)相关的数据将由发布/订阅数据总线201转发给该主题的订阅者。如果既没有与第一主题(传感器输出数据1)相关的待定数据要转发,也没有与第二主题(传感器输出数据2)相关的待定数据要转发,则与第三主题(外部节点命令数据)相关的数据将由发布/订阅数据总线201转发给该主题的订阅者。
在某些实施例中,嵌入式系统控制应用可以被配置成使得当在具有多核处理器的嵌入式系统上运行时,使用主题作为将特定处理任务绑定到特定处理器核的基础来实现基于主题的处理器亲和力技术。具体地,控制应用在运行时请求操作系统将多处理器核的一个或更多个特定处理器分配给与特定主题相关联的处理任务(即计算进程)。
例如,参考图2所示的示例,在包括两个处理器核的嵌入式系统中,控制应用可以指定与第一主题(传感器输出数据1)相关联的处理任务和与第二主题(传感器输出数据2)相关联的处理任务在第一处理器核上运行,而与第三主题(外部节点命令数据)相关联的处理任务在第一处理器核或第二处理器核上运行。
以这种方式,与较高优先级主题(例如,第一主题(传感器输出数据1)和第二主题(传感器输出数据2))相关联的处理任务可以通过确保它们由专用处理器核处理来由嵌入式系统优先处理。而与较低优先级主题(例如,第三主题(外部节点命令数据))相关联的较低优先级的处理任务,可以通过使它们由任何可用的处理器核或跨多个处理器核来处理而不太优先地被处理。
参考图2描述的嵌入式系统控制应用的实现是本发明实施例的简单示例,其中有限数量的微服务组件实现非常简单的控制应用,用于控制仅包括两个组件的非常简单的系统:温度传感器和阀。其他实施例可以包括更多的微服务组件,这些组件执行许多其他不同的功能,用于控制更复杂的系统,例如工业系统。
在嵌入式系统上运行的应用通常使用专门为此目的开发的特定软件工具来开发。嵌入式系统控制应用(图2中描绘了其实现)可以以任何合适的方式生成,但是通常使用这种嵌入式系统软件开发工具来生成。
这种开发工具通常在开发者的计算设备(例如,个人计算机)上运行,并使开发者能够通过创建应用代码、编译应用代码、然后导出编译的代码(通常是计算机程序可执行文件的形式)以加载到嵌入式计算系统上来生成嵌入式系统应用。
这种开发工具通常包括代码编辑器,使得能够编写原始代码。它们通常还提供对包含预开发代码的代码库的访问,使开发者能够将预开发的代码段合并到正在编写的新代码中。这种工具通常被配置成使得开发者能够以特定语言(例如,C或C++)编写代码,但是也可以提供这样的功能,即,使得某些功能能够首先以诸如MATLAB或Simulink的高级语言开发,然后转换成诸如C的合适的“低级”语言。
在本发明的上下文中,提供了一种传统的嵌入式软件开发平台,其被配置成使得开发者能够生成上述类型的嵌入式系统应用。也就是在被加载到合适的嵌入式计算机系统上时包括在操作系统的同一单个地址空间中被实例化的微服务组件(包括发布/订阅数据总线微服务组件)的应用。为了实现这一点,提供了嵌入式软件平台。
图3提供了一种简化示意图,描绘了在其中实现这种开发工具的系统。
提供了在其上运行嵌入式系统开发工具302的开发者计算设备301,例如个人计算机。如上所述,除了其他功能,嵌入式系统开发工具302包括能够编写代码的代码编辑器303。嵌入式系统开发工具302还包括用于从代码库304下载预开发代码的接口,使得这种预开发的代码可以与使用代码编辑器303开发的代码结合。嵌入式系统开发工具302包括编译引擎305,用于编译代码并输出用于加载到嵌入式系统上的计算机程序可执行文件。在图3所示的示例中,开发者计算设备301还具有在其上运行的软件,该软件提供高级开发工具306,使得代码能够最初以高级语言开发。
为了生成根据本发明实施例的嵌入式系统控制应用计算机程序可执行文件,开发者使用开发工具302来生成定义多个微服务组件和发布/订阅数据总线组件的代码。开发者可以通过使用代码编辑器303编写代码,结合从代码库304下载的预开发代码,并通过使用高级开发工具306生成高级代码,然后将其转译(transpile)为低级代码(在其中编写代码的其余部分)来生成这样的代码。当代码完成时(例如,在错误检查、测试和调试等之后),代码由编译引擎305编译,编译引擎305生成输出控制应用计算机程序可执行文件。该输出控制应用计算机程序可执行文件然后可以通过任何合适的方式被加载到嵌入式计算系统的存储器中,然后由嵌入式计算系统执行。
如上所述,由开发工具生成的输出控制应用计算机程序可执行文件使得当其在嵌入式计算系统的操作系统的监督下运行时,微服务组件在操作系统的单个存储器地址空间中被实例化,并且数据通过提供发布/订阅数据总线的微服务组件在微服务组件之间进行传送。
如上所述,根据本发明的某些实施例,提供了实现嵌入式系统控制应用的计算机程序可执行文件,该计算机程序可执行文件在被加载到嵌入式计算机系统的操作系统的存储器中时,提供了包括发布/订阅微服务组件的多个微服务组件。然而,在替代方案中,数据组件可以不由微服务组件(即根据“微服务”软件设计原理开发的数据处理组件)提供,而是可以由使用等效或类似设计原理开发的数据处理组件提供。
在本说明书(包括任何所附权利要求、摘要和附图)中公开的所有特征和/或如此公开的任何方法或过程的所有步骤可以以任何组合被组合,除了其中这类特征和/或步骤中的至少某些是相互地排他的组合之外。除非另外明确声明,否则本说明书(包括任何所附权利要求、摘要和附图)中公开的每个特征可以被用于相同目的、等效目的或类似目的的可选择特征所替换。因此,除非另外明确说明,否则所公开的每个特征仅是通用系列的等效或类似特征中的一个示例。本发明不限于前述实施例的细节。本发明扩展至在本说明书(包括任何所附权利要求、摘要和附图)中公开的特征中的任何新颖的特征或任何新颖的特征组合,或扩展至如此公开的任何方法或过程的步骤中的任何新颖的步骤或任何新颖的步骤组合。
关于本文中基本上任何复数和/或单数术语的使用,本领域技术人员可以根据上下文和/或应用将复数转换成单数和/或将单数转换成复数。为了清楚起见,本文可以明确阐述各种单数/复数排列。
本领域技术人员应当理解,一般来说,在本文和特别是在所附权利要求中使用的术语通常打算作为“开放”术语(例如,术语“包括(including)”应被解释为“包括但不限于”,术语“具有”应被解释为“至少具有”,术语“包括(includes)”应被解释为“包括但不限于”等)。本领域技术人员还应当理解,如果特定数量的所引入的权利要求陈述被预期,那么这种意图将在权利要求中被明确陈述,并且在没有这种陈述的情况下没有这种意图存在。例如,作为对理解的帮助,所附权利要求可以包含引导性短语“至少一个”和“一个或更多个”的用法,以引入权利要求陈述。然而,这种短语的使用不应被解释为暗示由不定冠词“一(a)”或“一(an)”对权利要求陈述的引入将包含这样引入的权利要求陈述的任何特定权利要求限制到仅包含一个这样的陈述的实施例,即使同一权利要求包括引导性短语“一个或更多个”或“至少一个”和不定冠词例如“一(a)”或“一(an)”(例如,“一(a)”和/或“一(an)”应被解释为意指“至少一个”或“一个或更多个”);同理对用于引入权利要求陈述的定冠词的使用成立。此外,即使明确列举了特定数量的所引入的权利要求陈述,本领域技术人员将认识到,这种陈述应该被解释为至少意味着所列举的数量(例如,没有其他修饰语的“两个陈述”的简单陈述,意味着至少两个陈述,或者两个或更多陈述)。
应当理解,本文出于说明的目的已经描述了本公开的各种实施例,并且可以在不脱离本公开的范围的情况下进行各种修改。因此,本文公开的各种实施例不旨在进行限制,真正的范围由权利要求来指示。
Claims (23)
1.一种数据处理系统,其包括处理器和存储器,并且在所述数据处理系统上运行有操作系统,
其中用于实现控制嵌入式系统的控制应用的计算机程序可执行文件被加载到所述存储器中,该计算机程序可执行文件控制所述操作系统在操作系统存储器中实例化多个数据处理组件和通信组件,其中:
所述通信组件被配置成使用发布-订阅消息传递模式来促进所述数据处理组件之间的数据通信,并且其中,所述通信组件还被配置成:
为每个主题分配通信优先级,和
根据与数据相关联的主题的通信优先级,优先将数据传送到所述数据处理组件;以及
所述通信组件和数据处理组件在单个存储器地址空间中被实例化。
2.根据权利要求1所述的数据处理系统,其中,所述操作系统是实时操作系统。
3.根据权利要求2所述的数据处理系统,其中,所述通信组件维护多个主题,并且所述数据处理组件被配置成:
通过将数据发布到所述多个主题中的一个主题来传输要由其他数据处理组件处理的数据,以及
通过订阅所述多个主题中的至少一个主题来从其他数据处理组件接收数据。
4.根据权利要求3所述的数据处理系统,其中,所述数据处理组件被配置成通过将主题标识符附加到数据并将附带有所述主题标识符的数据传送到所述通信组件来将数据发布到给定主题。
5.根据权利要求4所述的数据处理系统,其中,所述数据处理组件被配置成借助于由所述通信组件维护的订阅数据来订阅给定主题,所述订阅数据将主题与一个或更多个数据处理组件链接。
6.根据权利要求5所述的数据处理系统,其中,所述通信组件被配置成将接收到的与一个主题相关联的数据传送到所述订阅数据指示链接到该主题的每个数据处理组件。
7.根据权利要求3至6中任一项所述的数据处理系统,其中,所述数据处理系统是多核数据处理系统,并且所述计算机程序可执行文件被配置成通过请求所述操作系统将与一个或更多个特定主题相关联的处理任务绑定到一个或更多个特定处理器核来实现基于主题的处理器亲和力技术。
8.根据权利要求1至6中任一项所述的数据处理系统,其中,所述数据处理组件和通信组件是微服务组件。
9.根据权利要求7所述的数据处理系统,其中,所述数据处理组件和通信组件是微服务组件。
10.根据权利要求8所述的数据处理系统,其中,所述数据处理组件和通信组件是松散耦合的微服务组件。
11.根据权利要求9所述的数据处理系统,其中,所述数据处理组件和通信组件是松散耦合的微服务组件。
12.一种在数据处理系统上实现用于控制嵌入式系统的控制应用的方法,所述方法包括:
将用于实现所述控制应用的计算机可执行文件加载到所述数据处理系统的存储器中;
在所述计算机可执行文件的控制下,由所述数据处理系统的操作系统在所述操作系统的操作系统存储器的单个存储器地址空间中实例化多个数据处理组件和通信组件,以及
由所述通信组件:使用发布-订阅消息传递模式来促进所述数据处理组件之间的数据通信,为每个主题分配通信优先级,以及根据与数据相关联的主题的通信优先级,优先将数据传送到所述数据处理组件。
13.根据权利要求12所述的方法,其中,所述操作系统是实时操作系统。
14.根据权利要求13所述的方法,包括:
由所述通信组件维护多个主题;
由所述数据处理组件通过将数据发布到所述多个主题中的一个主题来传输要由其他数据处理组件处理的数据,以及
由所述数据处理组件通过订阅所述多个主题中的至少一个主题来从其他数据处理组件接收数据。
15.根据权利要求14所述的方法,包括由所述数据处理组件通过以下操作来将数据发布到给定主题:
将主题标识符附加到数据,以及
将附带有所述主题标识符的数据传送到所述通信组件。
16.根据权利要求15所述的方法,包括:
由所述数据处理组件借助于由所述通信组件维护的订阅数据来订阅给定主题,所述订阅数据将主题与一个或更多个数据处理组件链接。
17.根据权利要求16所述的方法,包括:
由所述通信组件将接收到的与一个主题相关联的数据传送到所述订阅数据指示链接到该主题的每个数据处理组件。
18.根据权利要求14至17中任一项所述的方法,其中,所述数据处理系统是多核数据处理系统,所述方法包括:
由所述计算机可执行文件通过请求所述操作系统将与一个或更多个特定主题相关联的处理任务绑定到一个或更多个特定处理器核来实现基于主题的处理器亲和力技术。
19.根据权利要求12至17中任一项所述的方法,其中,所述数据处理组件和通信组件是微服务组件。
20.根据权利要求18所述的方法,其中,所述数据处理组件和通信组件是微服务组件。
21.根据权利要求19所述的方法,其中,所述数据处理组件和通信组件是松散耦合的微服务组件。
22.根据权利要求20所述的方法,其中,所述数据处理组件和通信组件是松散耦合的微服务组件。
23.一种计算机可读存储介质,所述介质上存储用于实现控制嵌入式系统的控制应用的计算机可执行文件,所述计算机可执行文件包括计算机可读代码,所述代码被配置成在被加载到计算设备上时,使得所述计算设备被控制来:
控制数据处理系统的操作系统,以在所述操作系统的操作系统存储器的单个存储器地址空间中实例化多个数据处理组件和通信组件,以及
使用所述通信组件:使用发布-订阅消息传递模式来促进所述数据处理组件之间的数据通信,为每个主题分配通信优先级,以及根据与数据相关联的主题的通信优先级,优先将数据传送到所述数据处理组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310089377.8A CN116048606A (zh) | 2020-06-05 | 2021-01-12 | 数据处理 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2008488.5A GB2586913B (en) | 2020-06-05 | 2020-06-05 | Data processing |
GB2008488.5 | 2020-06-05 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310089377.8A Division CN116048606A (zh) | 2020-06-05 | 2021-01-12 | 数据处理 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113760347A CN113760347A (zh) | 2021-12-07 |
CN113760347B true CN113760347B (zh) | 2023-03-24 |
Family
ID=71615951
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310089377.8A Pending CN116048606A (zh) | 2020-06-05 | 2021-01-12 | 数据处理 |
CN202110034096.3A Active CN113760347B (zh) | 2020-06-05 | 2021-01-12 | 数据处理 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310089377.8A Pending CN116048606A (zh) | 2020-06-05 | 2021-01-12 | 数据处理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210382766A1 (zh) |
EP (1) | EP3920030A1 (zh) |
CN (2) | CN116048606A (zh) |
GB (1) | GB2586913B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116126549A (zh) * | 2021-11-15 | 2023-05-16 | 北京图森智途科技有限公司 | 通信方法及相关的通信系统和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108353090A (zh) * | 2015-08-27 | 2018-07-31 | 雾角系统公司 | 边缘智能平台和物联网传感器流系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2002365037A1 (en) * | 2001-11-12 | 2003-06-23 | Worldcom, Inc. | System and method for implementing frictionless micropayments for consumable services |
US9325585B1 (en) * | 2012-07-10 | 2016-04-26 | The Boeing Company | Mission-driven autonomous and adaptive resource management |
US9503548B2 (en) * | 2013-10-28 | 2016-11-22 | International Business Machines Corporation | Subscriber based priority of messages in a publisher-subscriber domain |
US20160210313A1 (en) * | 2015-01-16 | 2016-07-21 | Futurewei Technologies, Inc. | System for high-throughput handling of transactions in a data-partitioned, distributed, relational database management system |
US10007513B2 (en) * | 2015-08-27 | 2018-06-26 | FogHorn Systems, Inc. | Edge intelligence platform, and internet of things sensor streams system |
US10382395B2 (en) * | 2016-07-25 | 2019-08-13 | Honeywell International Inc. | Industrial process control using IP communications with publisher subscriber pattern |
US20180189303A1 (en) * | 2016-12-29 | 2018-07-05 | Ca, Inc. | Publisher-subscriber system with publisher based taxonomy for multi-data source publisher |
US11323519B2 (en) * | 2017-04-19 | 2022-05-03 | Microsoft Technology Licensing, Llc | Internet of things pub-sub data publisher |
US10841256B2 (en) * | 2017-05-05 | 2020-11-17 | ShieldX Networks, Inc. | Upgrading components of a messaging system used by a microservice-based application |
US11409719B2 (en) * | 2017-07-27 | 2022-08-09 | Sap Se | Co-locating microservice persistence containers within tenant-specific database |
US11637918B2 (en) * | 2017-11-16 | 2023-04-25 | Intel Corporation | Self-descriptive orchestratable modules in software-defined industrial systems |
US11209997B2 (en) * | 2017-11-22 | 2021-12-28 | Blackberry Limited | Method and system for low latency data management |
CN111147534B (zh) * | 2018-11-05 | 2022-12-16 | 中兴通讯股份有限公司 | 一种微服务架构下的通信方法及系统 |
CN110008044B (zh) * | 2019-04-11 | 2021-03-23 | 北京航空航天大学 | 一种嵌入式rtos上分布式实时通信中间件的构建方法 |
-
2020
- 2020-06-05 GB GB2008488.5A patent/GB2586913B/en active Active
- 2020-12-18 US US17/126,217 patent/US20210382766A1/en active Pending
-
2021
- 2021-01-06 EP EP21150416.2A patent/EP3920030A1/en active Pending
- 2021-01-12 CN CN202310089377.8A patent/CN116048606A/zh active Pending
- 2021-01-12 CN CN202110034096.3A patent/CN113760347B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108353090A (zh) * | 2015-08-27 | 2018-07-31 | 雾角系统公司 | 边缘智能平台和物联网传感器流系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3920030A1 (en) | 2021-12-08 |
US20210382766A1 (en) | 2021-12-09 |
CN116048606A (zh) | 2023-05-02 |
CN113760347A (zh) | 2021-12-07 |
GB202008488D0 (en) | 2020-07-22 |
GB2586913A (en) | 2021-03-10 |
GB2586913B (en) | 2021-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8521359B1 (en) | Application-independent and component-isolated system and system of systems framework | |
CN110365751B (zh) | 网关系统的业务处理方法、装置及设备 | |
JP6679758B2 (ja) | 制御装置を駆動するための方法及び装置 | |
Atmojo et al. | A service-oriented programming approach for dynamic distributed manufacturing systems | |
US7721278B2 (en) | Modular server architecture for multi-environment HTTP request processing | |
Khamespanah et al. | Modeling and analyzing real-time wireless sensor and actuator networks using actors and model checking | |
CN113760347B (zh) | 数据处理 | |
CN110519092B (zh) | 边缘网关、配置工具和软plc功能的脚本化实现方法 | |
WO2020075351A1 (ja) | コントロール装置 | |
JP4820553B2 (ja) | ルールに基づいてデータの決定的なディスパッチを実行する方法、コンピュータプログラムおよびコンピューティングシステム | |
JP2005108082A (ja) | デバイスドライバのインターフェース方法 | |
CN115335807A (zh) | 用于管理工业自动化平台的自动化程序的方法和装置 | |
Wood et al. | Triton: a domain specific language for cyber-physical systems | |
CN113961232A (zh) | 提供集成开发环境的终端、方法和平台服务器 | |
JPH11249873A (ja) | ドライバ機能の動的管理方式及び動的管理方法 | |
CN110018959B (zh) | 一种嵌入式应用调试的方法以及系统 | |
Anthony et al. | A middleware approach to dynamically configurable automotive embedded systems | |
CN114879593B (zh) | 实时系统运行plc控制器的方法、装置、设备及存储介质 | |
CN114338501B (zh) | 对服务链网络调整网络拓扑的方法和装置、介质、控制器 | |
Yamamoto et al. | Component-based mruby platform for IoT devices | |
Gharbi et al. | Functional safety of adaptive embedded control systems: new solutions | |
Kimm et al. | Implementation of networked robot control system over controller area network | |
CN117112258A (zh) | 一种实现不同服务间数据传输的方法及相关产品 | |
US20220299967A1 (en) | Queue blocks for flexible automation engineering programs | |
CN115502980A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |