IP Library Granted Patent US 12705120
Granted Patent B2
US 12705120 · App. 18/194,481 · Granted Aug 11, 2026

Method for providing a distribution mechanism

Inventors: Arne Hamann (Ludwigsburg, DE); Dakshina Narahari Dasari (Boeblingen, DE); Dirk Ziegenbein (Freiberg Am Neckar, DE); Michael Pressler (Karlsruhe, DE)
Assignee: Robert Bosch GmbH
G06F9/546
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12705120
App. No.
18/194,481
Granted
Aug 11, 2026
Kind
B2
Abstract

A method for providing a distribution mechanism for distributing at least one application in a system of distributed computing nodes. Each of at least one of the computing nodes of the system performs the following assessment steps: receiving an application requirement from a request service, wherein the application requirement specifies at least one requirement of the application concerning at least one resource of the computing node, analyzing the received application requirement in order to compare the at least one requirement of the application with an availability of the at least one resource at the computing node, so as to ascertain a suitability result regarding a suitability of the computing node for executing the application, transmitting the ascertained suitability result to a messaging service in order to provide the suitability result at said messaging service together with further suitability results regarding the suitability of further computing nodes of the system.

Claims (59)

1 . A computer-implemented method for distributing and executing an application in a system of distributed computing nodes, the method comprising:

receiving, by each of a plurality of the computing nodes of the system, an application requirement from a request service, wherein the application requirement specifies at least one requirement of the application concerning at least one resource;

carrying out an automated competition for execution of the application, the automated competition comprising each respective one of the computing nodes that participates in the automated competition performing the following:

analyzing the received application requirement by comparing the at least one requirement of the application with an availability of the at least one resource at that computing node, wherein the availability reflects runtime usage of hardware resources of the computing node that dynamically changes during operation of the system due to execution of one or more applications, so as to ascertain a suitability result regarding a suitability of the respective computing node for executing the application; and

transmitting the ascertained suitability result to a messaging service so that the suitability result is made available together with further suitability results of other computing nodes participating in the automated competition;

distributing the application to a computing node selected on the basis of a comparison of the suitability results; and

executing the application on the selected computing node;

wherein the system comprises a plurality of partitions, each partition including a subset of the computing nodes, and wherein the automated competition is partition-scoped such that suitability results are compared within partitions rather than across all computing nodes of the system as a single candidate set.

2 . The method as recited in claim 1 , wherein the selected computing node is selected in a selecting step based on having a highest one of the suitability results.

3 . The method as recited in claim 1 , wherein the computing nodes each has a process handler, the assessment steps being carried out by the process handlers concurrently at least in part when the application requirement is made available at the request service at a request server, by the application such that the process handlers, as distributed process handlers of the system, provide the suitability results at the messaging service.

4 . The method as recited in claim 3 , wherein the suitability results each include a statement or a metric for assessing a suitability of each computing node for hosting the application, the transmission of the ascertained suitability results by the process handlers leading to at least one automated competition being initiated, in which the suitability results, as bids for hosting the application, are compared with one another to ascertain which of the computing nodes has the highest suitability for hosting in order, for the purpose of the distribution, to allocate the application to the computing node having the highest suitability for the execution.

5 . The method as recited in claim 1 , wherein each computing node of the computing nodes has a process handler that ascertains the availability of the at least one resource of the computing node in that the process handler monitors the at least one resource of the computing node, the availability being ascertained repeatedly for any change in availability to be taken into account in the monitoring and to dynamically adjust the suitability result based on the change.

6 . The method as recited in claim 1 , wherein before the assessment steps are carried out by the at least one computing node, the following request step is carried out:

transmitting, by the application, the application requirement to the request service, for the execution to be initially requested by the application, the application requirement having an application manifest that specifies the requirements of the application concerning the execution by a computing node, the application manifest then being processed by the at least one computing node, in the assessment step of analyzing the application requirement to provide the suitability result regarding the suitability of the computing node for the execution.

7 . The method as recited in claim 1 , wherein the computing nodes of the system are configured as heterogeneous computing nodes which differ in terms of an output capacity, including in terms of: dimensioning of at least one processor and/or memory and/or communication bandwidth and/or architecture and/or at least one software function, for executing the application, the system, as a scalable system, being configured to be expanded with further computing nodes.

8 . The method as recited in claim 1 , wherein at the at least one resource of the computing node includes at least one of the following resources, the application requirement specifying the requirement concerning the resource:

an output capacity, including a processor of the computing node and/or memory capacity including a memory bandwidth of the computing node,

an acceleration mechanism of the computing node, including a GPU acceleration,

software of the computing node,

a quality of a network connection to the computing node,

a synchronization status of a clock generator of the computing node.

9 . The method as recited in claim 1 , wherein the system is an edge computing system or a cloud computing system, the application being configured as an at least partially autonomous driving function for a vehicle.

10 . The method as recited in claim 1 , wherein the messaging service provides communication among the computing nodes and is configured as a communication network in which the suitability results are transmitted as a broadcast or multicast.

11 . The method as recited in claim 1 , wherein the distribution includes performance of the comparison by each computing node of the computing nodes, by the request service, or by a further central server.

12 . The method according to claim 1 , wherein the automated competition comprises carrying out, in parallel, a respective automated competition within each of the plurality of partitions to identify, for each partition, a computing node having a highest suitability result within that partition, and wherein distributing the application comprises selecting the computing node for execution based on a comparison of the suitability results of the computing nodes identified for the respective partitions.

13 . The method according to claim 1 , wherein the automated competition is initiated for a first partition of the plurality of partitions, and wherein, if no computing node in the first partition is determined to be suitable for executing the application, the automated competition is subsequently initiated for at least one other partition according to a predetermined ordering of the partitions.

14 . The method according to claim 1 , wherein each partition includes a partition leader computing node, wherein the automated competition initially comprises a competition among the partition leader computing nodes to identify a selected partition, and wherein the automated competition further comprises, subsequent to and based on the identification of the selected partition, carrying out a competition among computing nodes within the selected partition to distribute and execute the application.

15 . The method according to claim 1 , wherein the automated competition comprises allowing a pre-specified time interval to elapse during which suitability results are made available via the messaging service, and wherein, after expiration of the pre-specified time interval, each computing node determines a winning computing node based on the suitability results, and wherein, in the event that two or more computing nodes have equal suitability results, the winning computing node is determined using a predetermined deterministic tie-break rule based on a node identifier.

16 . The method according to claim 1 , wherein each computing node participating in the automated competition:

first determines whether the at least one requirement of the application is satisfied by the availability of the at least one resource of that computing node; and

is configured to:

in response to determining that the at least one requirement is satisfied, calculate and transmit a suitability result representing a degree of suitability for executing the application; and

in response to determining that the at least one requirement is not satisfied, transmit a suitability result indicating non-feasibility, the suitability result indicating non-feasibility comprising a predefined value.

17 . The method according to claim 16 , wherein the predefined value is zero.

18 . The method according to claim 1 , wherein:

a plurality of application requirements are receivable concurrently by the system;

each application requirement is associated with a timestamp; and

application requirements are processed according to an ordering based on the timestamps so as to resolve race conditions among concurrently received application requirements.

19 . The method according to claim 18 , wherein the timestamps are generated using a logical clock.

20 . The method according to claim 18 , wherein the application requirements are processed using a virtual distributed request queue ordered according to the timestamps.

21 . The method according to claim 1 , wherein the automated competition for execution of the application is subject to a timeout period, and wherein, in response to expiration of the timeout period without a computing node being selected to execute the application, the application requirement is reissued to the system for a subsequent automated competition.

22 . The method according to claim 21 , wherein the reissuance of the application requirement is limited to a maximum number of repetitions.

23 . The method according to claim 1 , wherein, after distributing the application to the selected computing node, the system monitors availability of the selected computing node using heartbeat messages, and wherein, in response to detecting a failure of the selected computing node prior to or during execution of the application, the automated competition is restarted by reissuing the application requirement.

24 . Non-transitory computer-readable media on which are stored computer program instructions including commands distributing and executing an application in a system of distributed computing nodes, the commands, when executed using the computing nodes of the system, causing performance of the following steps:

receiving, by each of a plurality of the computing nodes of the system, an application requirement from a request service, wherein the application requirement specifies at least one requirement of the application concerning at least one resource;

carrying out an automated competition for execution of the application, the automated competition comprising each respective one of the computing nodes that participates in the automated competition performing the following:

analyzing the received application requirement by comparing the at least one requirement of the application with an availability of the at least one resource at that computing node, wherein the availability reflects runtime usage of hardware resources of the computing node that dynamically changes during operation of the system due to execution of one or more applications, so as to ascertain a suitability result regarding a suitability of the respective computing node for executing the application; and

transmitting the ascertained suitability result to a messaging service so that the suitability result is made available together with further suitability results of other computing nodes participating in the automated competition;

distributing the application to a computing node selected on the basis of a comparison of the suitability results; and

executing the application on the selected computing node;

wherein the system comprises a plurality of partitions, each partition including a subset of the computing nodes, and wherein the automated competition is partition-scoped such that suitability results are compared within partitions rather than across all computing nodes of the system as a single candidate set.

25 . A system of distributed computing nodes that each includes a data processing system that includes at least one processor, the system being configured, for distributing and executing an application in the system of distributed computing nodes, to:

receive, by each of a plurality of the computing nodes of the system, an application requirement from a request service, wherein the application requirement specifies at least one requirement of the application concerning at least one resource;

carry out an automated competition for execution of the application, the automated competition comprising each respective one of the computing nodes that participates in the automated competition performing the following:

analyzing the received application requirement by comparing the at least one requirement of the application with an availability of the at least one resource at that computing node, wherein the availability reflects runtime usage of hardware resources of the computing node that dynamically changes during operation of the system due to execution of one or more applications, so as to ascertain a suitability result regarding a suitability of the respective computing node for executing the application; and

transmitting the ascertained suitability result to a messaging service so that the suitability result is made available together with further suitability results of other computing nodes participating in the automated competition;

distributing the application to a computing node selected on the basis of a comparison of the suitability results; and

executing the application on the selected computing node;

wherein the system comprises a plurality of partitions, each partition including a subset of the computing nodes, and wherein the automated competition is partition-scoped such that suitability results are compared within partitions rather than across all computing nodes of the system as a single candidate set.