Task-based processing systems, processor, and methods
The task-based processing system addresses the challenge of developing and managing recurring tasks by allowing processors to perform dedicated tasks independently, reducing development efforts and improving scalability through a centralized message broker.
Patent Information
- Application Number
- PCT/EP2024/051547
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-23
- Filing Date
- 2024-01-23
- Publication Date
- 2025-05-01
AI Technical Summary
Existing computerized applications face challenges in efficiently developing and managing recurring tasks across different domains, leading to increased development efforts and reduced scalability.
A task-based processing system where multiple processors listen to a message broker for task indicators, allowing each processor to perform dedicated tasks independently and communicate through a centralized message broker, reducing the need for specific task implementation in each application.
This approach significantly reduces development efforts by enabling processors to be reused across various applications, improves scalability and stability, and simplifies application implementation by decoupling processors and allowing them to be developed and scaled independently.
Smart Images

Figure EP2024051547_01052025_PF_FP_ABST
Abstract
Description
[0001] Description
[0002] Task-based processing systems, processor, and methods
[0003] This application relates to a method of running a task-based processing system. The application further relates to a corresponding task-based processing system. The application further relates to a method of running a processor of a task-based processing system and to a corresponding processor. The application further relates to a corresponding computer programing product and a corresponding computer-readable storage medium.
[0004] More and more tasks in all kinds of areas of life nowadays are relying on or are supported by computerized applications. Accordingly, great efforts go into developing such computerized applications to implement the corresponding tasks.
[0005] Furthermore, however, it can be observed that many of those applications are based on recurring tasks. For example, a task of recognizing a content of a picture may be required in an application concerned with quality control in production as well as in an application concerned with supervising traffic. This applies to many fields of computerized applications and to many kinds of tasks, which may be used in those applications.
[0006] Accordingly, it is an object of this application, to provide task-based processing systems and a corresponding processor and methods to reduced efforts for developing computerized applications.
[0007] The above-mentioned problem is solved by the systems, processor, and methods of the independent claims. Further advantageous embodiments are disclosed in the dependent claims as well as in the attached figures and the following description.
[0008] According to a first aspect, a method of running a task-based processing system comprises the following steps:
[0009] - listening, by a plurality of processors, on a message broker for an indicator in a message, wherein the indicator indicates that a respective message is to be obtained by a respective processor of the plurality of processors and wherein each processor of the plurality of processors is configured to carry out at least one dedicated task,
[0010] - detecting, by at least one first processor of the plurality of processors, that a first message on the message broker comprises a first indicator indicating that the first message is to be obtained by the first processor,
[0011] - obtaining, by the at least one first processor, the first message from the message broker,
[0012] - obtaining, by the at least one first processor, first input information from the first message,
[0013] - performing, by the at least one first processor, a first task for which the at least one first processor is configured according to the first input information,
[0014] - if the first message comprises an indicator for at least one task to be performed by at least one further processor: generating, by the at least one first processor, first output information based on the first task, and submitting, by the at least one first processor, at least one second message comprising the first output information to the message broker, or
[0015] - if the first message does not comprise an indicator for at least one task to be performed by at least one further processor: performing, by the at least one first processor, an output task.
[0016] An advantage of this method is that processors, which are configured to carry out one or more specific tasks for which they are implemented, may be used in different kinds of applications, thereby significantly reducing efforts for developing such applications. Moreover, stability of running applications and a scalability of a corresponding system are improved. The processors may be used in any kind of application, in which they are required, without having to implement a solution for carrying out this task specifically. Moreover, since specific tasks are carried out by addressing the respective processors, the task-based processing system may easily be scaled for carrying out the required tasks by choosing adequately powerful or multiple processors for carrying out their specific tasks. Another advantage of this method is that the architecture is implementing a centralized communication between the processors, i.e., the message broker, thereby reducing the knowledge required for each processor in order to carry out their tasks. The processors are not required to have knowledge of how to address other processors, but merely obtain their messages from the broker and publish their messages to the broker, irrespective of what other processor was involved before or after. An implementation of an application, therefore, is simplified. A processor in the context of this application is a separate and independent component within a distributed software architecture. The processors may be implemented using any programing language, which provides a high level of flexibility for implementing the taskbased processing system. Each processor in the context of this application is based on computer hardware and is implemented by running on such computer hardware. By focusing a processor on one or more specific tasks, a high level of scalability, maintainability and flexibility of the overall architecture is achieved. The processors may decide autonomously, which processors in the workflow must be called next for the execution of the overall process, by listening to their respective indicators.
[0017] The message broker in the context of this application is an intermediary module that provides a communication channel, via which the processors may exchange the messages. From the message broker, the processors may obtain messages in case they are indicated in the respective message and may push a message back on the message broker after the processor’s task is carried out. The message broker, therefore, may be understood as an interface between the processors, via which the processors can obtain and publish messages.
[0018] The listening of a processor on the message broker may be carried out actively by the processor, e.g., by querying whether a message indicating the processor is present on the message broker or may, alternatively or additionally, be carried out passively by the processor, e.g., by waiting for a push message from the broker that a message indicating said processor is present on the message broker.
[0019] The input information comprises information that the processor requires to carry out its task. For example, the input information comprises data or an indicator, such as a storage address, of data, which are to be processed by the processor. Additionally or alternatively, the input information may also comprise, for example, parameter and / or conditional information that the processor uses to implement its task, such as, for example, metadata of to be processed data, etc. The output information is information relating to a result of the task, which the processor performed. The output information may be, for example, information which is required by another processor, whose task is to be processed directly or indirectly after the at least one first processor’s task. For example, the output information of a processor matches the input information of a subsequent processor.
[0020] The first message (and subsequently each afterwards generated message for the remaining workflow) may also contain the complete workflow definition, including the indicators of the required processors and their specific sequence, in case multiple processors are participating to complete the workflow. The specification in the workflow definition in the first message (and subsequently each afterwards generated message for the remaining workflow) determines which processors must be run through and in which sequence in order to successfully complete the workflow. Thus, this system enables a precise and smooth execution of the workflow, where each process receives the result of the previous process and completes its task before the message is sent to the queue for the next processor. The fist message (and any other message mentioned in this application) may be, for example, in JavaScript Object Notation, JSON, format.
[0021] According to at least one embodiment, if the first message comprises the indicator for at least one task to be performed by at least one further processor, the indicators in the first message are organized in an order according to which tasks are to be performed by different processors and the at least one first processor generates the second message such that a second indicator can be recognized by at least one second processor.
[0022] An advantage thereof is that an uncomplicated and therefore efficient solution for implementing multiple tasks after another is provided. The tasks themselves may be performed independently and autonomously by the respective processors. Therefore, an architecture is provided, with which an efficient implementation of various applications is provided.
[0023] According to at least one embodiment, at least two first processors of the plurality of processors are configured to carry out the same dedicated task and, if the first message comprises the first indicator, one of the at least two first processors receives the first message and performs the first task.
[0024] An advantage thereof is that a flexible scalability of the architecture is achieved. Processors may be available to perform tasks in parallel. By providing multiple processors for a same task, more processing power is provided for the specific task. Hence, in case it can be determined that an application is slowed down at performing a certain task, additional processors for performing said task can be implemented in the task-based system and the specific task may be carried out by whichever of the first processors is idle.
[0025] According to at least one advantageous embodiment, the output information comprises second input information for at least one second processor of the plurality of processors whose task is to be performed after the first task.
[0026] According to at least one embodiment, the method further comprises: obtaining, by an initial processor, an initial message, determining, by the initial processor, configuration settings from the initial message, and configuring the first message according to the configuration settings.
[0027] An advantage thereof is that an efficient solution and uncomplicated implementation of a configuration of the task-based system is provided. The initial processor hereby is configured to configure the first message, thereby setting up the configuration for the taskbased system according to, for example, a sequence of the to be performed tasks, information such as an initial first input information, etc.
[0028] According to at least one embodiment, if at least a third processor of the plurality of processors is currently implementing at least one dedicated task, the at least one third processor does not listen on the message broker and proceeds to listen after the at least one dedicated task has been completed.
[0029] An advantage thereof is that an efficient and fast processing of the tasks is provided. Only idle processors are listening on the message broker. Therefore, congestion on the queue may be reduced, in particular in case parallel processing (i.e., multiple processors for the same task exist) is enabled.
[0030] According to at least one embodiment, the first task, performed by the at least one first processor, and at least one second task, performed by at least one second processor, are performed parallel or sequentially.
[0031] Advantageously, a sequential processing may be chosen in case the tasks rely on results from each other, i.e., a subsequent processor continues processing based on a result of a previous processor. Advantageously, a parallel processing may be chosen in case the tasks do not rely on direct results of corresponding parallel processors. With the latter, a more time efficient processing is achieved. With the sequential processing, a reliable processing of tasks which process results of previous processors is achieved. A combination of parallel and sequential processing, however, is also possible. Whether tasks are to be processed in parallel or sequentially may be achieved by providing multiple messages with respective indicators for respective processors on the queue at the same time, i.e., while other processors are currently processing tasks. Whether tasks are to be processed in parallel or sequentially may be indicated in the first or any subsequent message.
[0032] According to at least one embodiment, after the first message is obtained by the at least one first processor, the at least one first processor sends an acknowledgement message to the message broker and the first message is removed from the message broker after the acknowledgement message is received by the message broker.
[0033] An advantage herein is that a reliable and time efficient solution for organizing the queue is provided. Moreover, it is ensured that congestion on the queue is reduced or avoided.
[0034] According to at least one embodiment, the first message is blocked after the at least one first processor detected that the first message comprises the first indicator and cannot be obtained by a different processor. An advantage herein is that it can be avoided that multiple processors try to concurrently process the same message. Therefore, failures in the processing of the tasks may be reduced or avoided.
[0035] According to at least one embodiment, the at least one first processor verifies whether the first input information is compatible with values that need to be set for the at least one first processor in order to initialize the first task.
[0036] An advantage thereof is that a risk of errors during performing the first task by the at least one first processor may be reduced.
[0037] According to an advantageous embodiment, the method is a computer-implemented method.
[0038] According to a second aspect, a task-based processing system comprising means for implementing the method according to the first aspect or any embodiment of the first aspect.
[0039] Advantages and embodiments of the second aspect may correspond, in general, to the above-described embodiments and advantages of the first aspect. Details thereof will not be repeated herein.
[0040] According to at least one embodiment, the task-based processing system further comprises an initial processor, configured to obtain an initial message from the message broker, determine configuration settings from the initial message, and configure the first message according to the configuration settings.
[0041] An advantage thereof is that an efficient and reliable setting up of the task-based system is provided. In this case, the first message would then be the first message of a process where the first processor carries out a first task of a process including multiple tasks being carried out by multiple processors. The initial processor, thereby, may configure information for the multiple following processors as well, such as writing the indicators for each respective processor, which is to be addressed during the workflow, into the first message. According to at least one embodiment, the task-based processing system further comprises at least one server, wherein the server is configured to implement the message broker on which the messages are distributed.
[0042] An advantage thereof is that an efficient and reliable implementation of the message broker and thereby communication between the processors is provided. For example, the message broker may be implemented using RabitMQ or Kafka. However, also any other type of message broker technology may be used instead.
[0043] The message broker may be implemented independently of the processors. By using the message queue, the processors are decoupled, allowing them to be developed, deployed, and scaled independently. The message broker ensures robust message delivery and effective message handling, even in the event of temporary outages of individual services. This enables creation of a scalable and reliable architecture that can react flexibly to changes.
[0044] According to at least one embodiment, the task-based processing system further comprises at least one database, wherein the database is configured to store payload information of the messages.
[0045] An advantage thereof is that an efficient and reliable storing of payload information is ensured. In this case, the messages obtained and submitted by the processors do not require to contain this payload information themselves, but may comprise a pointer, e.g., a storage address, to the corresponding payload information. The payload information in the context of this application may be any information that needs to be processed by the processors while carrying out their tasks. For example, in case a processor is an image processing processor, the corresponding payload information may be an image file which is to be processed by said processor.
[0046] According to at least one embodiment, if the messages comprise more than one indicator for a processor, the indicators are organized in an order, in which corresponding tasks are to be performed. An advantage thereof is that a robust processing order is ensured. For example, a processor that has finished processing its task may remove its indicator and submit the second message without its own indicator, merely comprising the further indicators for the further processors.
[0047] According to at least one embodiment, each processor of the plurality of processors comprises an address to the message broker.
[0048] An advantage thereof is that each processor may independently access the message broker and thereby may listen on the message broker independently for its own messages. By decoupling the processors, a robust and reliable architecture is achieved.
[0049] According to a third aspect, a method of running a processor of a task-based processing system is provided. The method comprising the steps:
[0050] - listening, by a first processor of a plurality of processors, on a message broker for an indicator in a message, wherein the indicator indicates that a respective message is to be obtained by a respective processor of the plurality of processors and wherein each processor of the plurality of processors is configured to carry out at least one dedicated task,
[0051] - detecting, by the first processor, that a first message on the message broker comprises a first indicator indicating that the first message is to be obtained by the first processor,
[0052] - obtaining, by the first processor, the first message from the message broker,
[0053] - obtaining, by the first processor, first input information from the first message,
[0054] - performing, by the first processor, a first task for which the first processor is configured according to the first input information,
[0055] - if the first message comprises an indicator for at least one task to be performed by at least one further processor: generating, by the first processor, first output information based on the first task, and submitting, by the first processor, at least one second message comprising the first output information to the message broker, or
[0056] - if the first message does not comprise an indicator for at least one task to be performed by at least one further processor: performing, by the first processor, an output task. Advantages and embodiments of the third aspect may correspond, in general, to the abovedescribed embodiments and advantages of the first and second aspect. Details thereof will not be repeated herein.
[0057] According to an advantageous embodiment, the method according to the third aspect is a computer-implemented method.
[0058] According to a fourth aspect, a processor of a task-based processing system comprises means for implementing the method according to the third aspect or the advantageous embodiment thereof.
[0059] Advantages and embodiments of the fourth aspect may correspond, in general, to the above-described embodiments and advantages of the first, second, and third aspect. Details thereof will not be repeated herein.
[0060] According to at least one embodiment, the means of the processor comprise a processing core unit, a messaging core unit, and a functional core unit, wherein: the processing core unit is configured to control the messaging core unit and the functional core unit, the functional core unit is configured to carry out the at least one dedicated task of the processor, and the messaging core unit is configured to obtain messages from the message broker and to submit messages to the message broker.
[0061] An advantage thereof is that by using the above-mentioned cores units as a core framework for the processors, an implementation of the processors is simplified and, therefore, implementation of the processors more efficient. The functional core unit is implemented for each task. Processors dedicated to the same task, therefore, may have the same functional core units. Messaging core unit and / or processing core unit may be identical or highly similar for different processors of the same task-based system. Thereby, core units or parts of cores may be re-used for multiple processors. According to at least one embodiment, the processing core unit and the messaging core unit are predetermined units, and the functional core unit is a unit that can be configured using configuration settings.
[0062] According to at least one embodiment, the messaging core unit comprises a listener unit, a queue core unit, and a message core unit, wherein: the listener unit is configured to listen on the message broker and to determine that a message comprises the first indicator, the queue core unit is configured to extract a payload from the first message, the message core unit is configured to obtain the first message and to generate and submit the second message, and the payload core unit is configured to obtain the first input information from the payload of the message.
[0063] An advantage thereof is that by using the above-mentioned units as a core framework for the processors, an implementation of the processors is further simplified and, therefore, implementation of the processors more efficient.
[0064] According to at least one embodiment, the processor is at least one of the following: a hardware inbound processor, an inference processor, a decision making processor, a hardware outbound processor, a data pooling processor, a drool processor, an InfluxDB processor, a RedisDB processor, an analytics processor, an oracle processor, or an API provider processor.
[0065] An advantage thereof is that using any one or any combination of the above processors, a large number of applications may be implemented using the herein described architecture. Those processors are frequently part of common applications and, thereby, can efficiently and easily be used to implement such applications.
[0066] According to a fifth aspect, a computer program product comprises instructions which, when executed by a computer, cause the computer to implement the method of the first or third aspect of any of their embodiments.
[0067] According to a sixth aspect, a computer-readable storage medium comprises the computer program product according to the fifth aspect.
[0068] Advantages and embodiments of the fifth and sixth aspect may correspond, in general, to the above-described embodiments and advantages of the first, second, third, and fourth aspect. Details thereof will not be repeated herein.
[0069] Any of the above-mentioned aspects or any of their embodiments may be combined in a suitable manner with any of the other aspects or any of their embodiments.
[0070] Further advantageous embodiments are disclosed in the attached claims as well as in the figures and the description thereof. In the figures, elements with in general the same function may have identical reference signs. Those elements, however, are not necessarily identical in all their features.
[0071] In the Figures:
[0072] Figure 1 shows a flowchart of a method of running a task-based processing system according to one embodiment;
[0073] Figure 2 shows a task-based processing system according to one embodiment;
[0074] Figure 3 shows a processor of a task-based processing system according to one embodiment; Figure 4 shows a processor of a task-based processing system according to a further embodiment;
[0075] Figure 5 shows a flowchart of running a processor of a task-based processing system according to one embodiment;
[0076] Figure 6 shows an implementation of three task-based processing system according to one embodiment; and
[0077] Figures 7 - 11 show different use cases of task-based processing systems according to embodiments of this application.
[0078] Figure 1 shows a flowchart of a method 100 of running a task-based processing system according to one embodiment. The method shown in this embodiment is a computer- implemented method.
[0079] Steps 101 to 103 of method 100 show an optional initialization of the method 100. In this optional example, the initialization 101 to 103 is performed by an initial processor.
[0080] However, an initialization of the method 100 may also be performed differently, for example by programming a first message directly.
[0081] In a step 101 of this optional initialization, the initial processor obtains an initial message. This initial message comprises information concerning a configuration of a workflow, which is to be implemented by the task-based system. For example, the initial message comprises information concerning data storage locations of data or the data itself, which is to be processed by the task-based processing system, and / or information concerning the tasks and / or the processors, such as information concerning the indicators indicating the processors and / or their order.
[0082] In a step 102 of this optional initialization, the initial processor determines configuration settings from the initial message. The configuration settings are in particular determined based on the above-mentioned information comprised in the initial message. In a step 103 of this optional initialization, the initial processor configures a first message according to the configuration settings determined from the initial message.
[0083] The initial processor hereby is setting up the configuration for the task-based system according to, for example, a sequence of the to be performed tasks and hence a sequence of the to be addressed processors, information such as an initial first input information, etc. However, the first message, according to this application, could also be configured differently, as mentioned above.
[0084] The following steps 104 to 113 describe the running of a task-based processing system after the first message has been configured. Steps 106, 108, and 110 are to be understood as being optional steps.
[0085] In a step 104, a plurality of processors, listens on a message broker for an indicator in a message, wherein the indicator indicates that a respective message is to be obtained by a respective processor of the plurality of processors and wherein each processor of the plurality of processors is configured to carry out at least one dedicated task.
[0086] The listening of a processor on the message broker may be carried out actively by the processor, e.g., by querying whether a message indicating the processor is present on the message broker or may, alternatively or additionally, be carried out passively by the processor, e.g., by waiting for a push message from the broker that a message indicating said processor is present on the message broker.
[0087] In a step 105, at least one first processor of the plurality of processors detects that a first message on the message broker comprises a first indicator indicating that the first message is to be obtained by the first processor.
[0088] The first indicator indicates that the first message is to be received by a first processor. Each processor in the context of this application is configured to carry out at least one specific task. In step 105, only one first processor may detect that a first message comprising the first indicator is available on the message broker. Alternatively, however, also two or more first processors (each of them being configured to carry out the same task) may detect in step 105 that a first message comprising the first indicator is available on the message broker. This may in particular be advantageous in case a first task carried out by the first processors is a task, which causes a delay in the task-based processing system, because the first task may be carried out by different first processors.
[0089] In an optional step 106, the at least one first processor blocks the first message on the message broker, to indicate that it has been detected by the at least one first processor. For example, the first message is blocked by one first processor, even in case there are multiple first processors who detected the first indicator in the first message, to avoid that other first processors also try to obtain the same first message. This may be done by a predetermined hierarchy or by a “first come, first serve” principle. If, however, the first message is intended to be processed by multiple first processors, it may be configured that a certain amount of first processors block the first message on the message broker before it is blocked from being detected and / or obtained by other first processors.
[0090] In a step 107, the at least one first processor obtains the first message from the message broker. In particular, the at least one first processor, which detected the first indicator, obtains the first message. Which first processor(s) is / are to obtain the first message, in case more than one first processor detected the first indicator, in step 107 may be determined by a predetermined hierarchy or by a “first come, first serve” principle.
[0091] In a step 108, the at least one first processor, which obtained the first message, sends an acknowledgement message to the message broker and the first message is removed from the message broker after the acknowledgement message is received by the message broker. In case multiple processors are to obtain the first message, the message broker waits for the corresponding number of acknowledgement messages before removing the first message from the message broker.
[0092] In a step 109, the at least one first processor, which obtained the first message, obtains first input information from the first message.
[0093] The input information comprises information that the processor requires to carry out its task. For example, the input information comprises data or an indicator, such as a storage address, of data, which are to be processed by the processor. Additionally or alternatively, the input information may also comprise, for example, parameter and / or conditional information that the processor uses to implement its task, such as, for example, metadata of to be processed data, etc.
[0094] In a step 110, the at least one first processor verifies whether the first input information is compatible with values that need to be set for the first processor in order to initialize the first task. For this step, there may be preconditions defined in the first message, which define those required values. In case the first input information matches the preconditions, the first task may be carried out without problems. In case the first input information does not match the preconditions, the at least one first processor may issue a warning message and / or may interrupt or cancel the processing of the first message by the at least one first processor. This verification may in particular be advantageous in case the first input information is based on output information of a previous processor, which processed the workflow in a previous task. In case the output information of such previous processor comprises an error, this may be detected by such verification and an erroneous processing of the workflow may be avoided or detected.
[0095] In a step 111, the at least one first processor performs the first task for which the first processor is configured according to the first input information.
[0096] After the first task has been performed in step 111, there are two options: if the first message comprises an indicator for at least one task to be performed by at least one further processor: in a step 112, the at least one first processor generates first output information based on the first task and submits at least one second message comprising the first output information to the message broker.
[0097] The second message comprises the output information and may be generated based on the first message. For example, the first message may already comprise information (e.g. indicators) for all tasks / respective processors, which have to participate in processing the workflow. This information is ordered in the first message in such way, that always the next respective processor in the sequence of to be performed tasks detects its respective indicator, processes the message as discussed above, and then deletes its indicator and individual information (input information, preconditions, etc.) from the message to generate the second message, such that a subsequent processor may then detect its subsequent indicator and accordingly process the second message as discussed by starting with step 104. The first output information or at least part thereof, which is comprised in the second message, may then serve as input information for the next processor and so forth.
[0098] If the first message does not comprise an indicator for at least one task to be performed by at least one further processor: in a step 113, the at least one first processor performs an output task. The output task may be, for example, issuing (e.g., storing, sending, or displaying) a result of the workflow, i.e., of all tasks performed by processors.
[0099] Figure 2 shows a task-based processing system 1 according to one embodiment of this application. The task-based processing system 1 according to Figure 2 may be configured, in particular, for carrying out the method 100 discussed above with reference to Figure 1. Details discussed with regard to Figure 1 are not repeated herein.
[0100] The task-based processing system 1 according to Figure 2 comprises an initial processor 2, two first processors 3, a second processor 4, and a third processor 5. Each of the initial processor 2 and the first processors 3, the second processor 4, and the third processor 5 are connected to a message broker 6.
[0101] The initial processor 2 is optional and is configured to carry out steps 101 to 103 of method 100 discussed above, in case the first message is to be configured using such initial processor. In case the first message is configured differently, the initial processor 2 may be omitted. The amount (in this example two) of first processors 3 and the second and third processor 4, 5, are merely to be understood as examples. Any other suitable configuration of processors depending on a to be processed workflow may be used.
[0102] As an example, one of the first processors 3 is shown in more detail. The other processors 2, 3, 4, 5 may be implemented identically or differently. The first processor 3 shown in more detail comprises a processing core unit 7, a messaging core unit 8, and a functional core unit 9.
[0103] The processing core unit 7 is configured to control the messaging core unit 8 and the functional core unit 9. The functional core unit 9 is configured to carry out the at least one dedicated task of the first processor 3. The messaging core unit 8 is configured to communicate with the message broker 6, in particular to obtain messages from the message broker 6 and to submit messages to the message broker 6.
[0104] Accordingly, in this exemplary embodiment, the messaging core unit 8 is configured to carry out steps 104, 105, 107, 108, 109, 110, and 112 of above-discussed method 100. The functional core unit 9 is configured to carry out steps 111 and 113 of above-discussed method 100. The message broker 6 is configured to carry out step 106 of above-discussed method 100.
[0105] The other processors 2, 3, 4, 5, which are not shown in such detail, may be configured correspondingly.
[0106] Processors 2, 3, 4, 5, may be implemented in any programing language and are able to interpret the defined protocol and provide certain functionalities defined in the core framework. For example, the processors 2, 3, 4, 5, may be implemented in programming languages Java and Python. However, depending on individual requirements, the core framework may also be implemented for other development languages.
[0107] The processors 2, 3, 4, 5 in the context of this application are each a separate and independent component within a distributed software architecture. The processors 2, 3, 4, 5 may be implemented using any programing language, which provides a high level of flexibility for implementing the task-based processing system 1. Each processor in the context of this application is based on computer hardware and is implemented by running on such computer hardware. By focusing any processor on one or more specific tasks, a high level of scalability, maintainability and flexibility of the overall architecture is achieved. The processors 3, 4, 5 may decide autonomously, which processors in the workflow must be called next for the execution of the overall workflow, by listening to their respective indicators on the message broker 6.
[0108] The message broker 6 in the context of this application is an intermediary module that provides a communication channel, via which the processors 2, 3, 4, 5 may exchange the messages. From the message broker 6, the processors 3, 4, 5 may obtain messages in case they are indicated in the respective message and may push a message back on the message broker 6 after the processor’s 2, 3, 4, 5 task (or the initialization) is carried out. The message broker 6, therefore, may be understood as an interface between the processors, via which the processors 2, 3, 4, 5 can obtain and publish messages.
[0109] The core framework, i.e., the task-based processing system 1, provides the necessary standardized functions and auxiliary classes that may be used by the processors 3, 4, 5 to ensure a uniform structure and consistent implementation of the workflow. This allows developers to focus on their specific tasks within the specific processor 3, 4, 5, while the core framework covers the common aspects. Using the core framework also promotes code reusability and error minimization. By using standardized functions and auxiliary classes, potential sources of error are reduced, and the maintainability of the application is improved. In addition, the core framework provides a flexible basis for adapting processes to individual requirements and supports the scalability of the architecture.
[0110] The Core Framework consistently pursues an "object-oriented" strategy. Functionality and tooling are provided via abstract classes that may be derived for use. Connections to different message brokers 6 are therefore possible as well as their hybrid use. This gives the developer increased flexibility with reduced development effort. To create a new processor, an existing abstract base processor for said task may be used and the specific queue connection may be selected. The actual development effort then lies in the implementation of the derived specific core unit.
[0111] The message broker 6 provides a queue-based architecture of the task-based processing system 1 that uses a message broker 6 such as, for example, RabbitMQ. This enables efficient and reliable communication between the processors 2, 3, 4, 5. However, the message broker 6 may also be any other message broker besides RabbitMQ. It is possible to seamlessly replace the use of RabbitMQ with other technologies such as, for example, Kafka. This enables scalable and reliable communication between the processors 2, 3, 4, 5, regardless of the underlying technology. By using a message queue in form of the message broker 6, the processes are decoupled, allowing them to be developed, deployed, and scaled independently. The message broker 6 ensures robust message delivery and effective message handling, even in the event of temporary outages of individual processors. This enables a scalable and reliable architecture that can react flexibly to changes.
[0112] The message broker 6 shown in Figure 2 may be running on a first server. The initial processor 2 and the first to third processors 3, 4, 5 may be each running on individual servers, all run on one shared server, or any combination of individual and shared servers. For example, the initial processor 2 may run on a second server, the two first processors 3 may run on a third server, and the second and third processors 4, 5 may run on a fourth server.
[0113] A connection of the task-based processing system 1 to external systems may be implemented via the message broker 6 or via a specific dedicated processor, which implements such connection to external systems.
[0114] Figure 3 shows a processor 10 of a task-based processing system according to one embodiment of this application. The processor 10 shown in Figure 3 is disclosed in greater detail than the processors in Figure 2. However, any of the processors in Figure 2 may be implemented according to the processor 10 shown in Figure 3.
[0115] In the example shown in Figure 3, the processor 10 comprises a processing core unit 7, a messaging core unit 8, and a functional core unit 9. The functional core unit 9 and the processing core unit 7 correspond to those discussed above with regard to Figure 2. Details are not repeated herein again.
[0116] The messaging core unit 8 is shown in more detail here, in Figure 3. In particular, the message core unit 8 comprises a listener unit 11, a queue core unit 12, a message core unit 13, and a payload core unit 14. The listener unit 11 is configured to listen on the message broker and to determine that a message comprises a respective indicator indicating that a message on the message broker is to be processed by the processor 10. The queue core unit 12 is configured to extract a payload from the message on the message broker. The extracting of the payload in this context corresponds to the above-discussed obtaining of the message from the message broker. The message core unit 13 is configured to orchestrate the receiving, generating, and submitting of messages. The payload core unit
[0117] 14 is configured to process the payload, i.e., the content of the message, to obtain input information from the payload, and to determine the payload which is to be included in a to be generated message, i.e., the results of a task performed by the processor 10.
[0118] Figure 4 shows a processor 10 of a task-based processing system according to a further embodiment. Figure 4 shows a processor 10 as it may be used for the method 100 according to Figure 1 or the task-based processing system 1 according to Figure 2. Figure 4 shows in particular abstract units and specific units of the processor 10, wherein the abstract units are independent of a used technology (e.g. type of queue used for the message broker) and the specific units are technology specific, depending on the used technology. By separating those units, the framework can more easily be adapted to different technologies, since only the technology specific units have to be adapted and the abstract units may be re-used.
[0119] The processor 10 comprises an abstract base processor unit 15, which comprises a specific messaging core unit 16 and an abstract functional core unit 17. The abstract base processor
[0120] 15 is, for example, implementing a YOLO processor 18, which is adapted to perform so called you only look once processing, a form of image processing. This, however, is merely used as an example. The processor may be any other kind of processor.
[0121] The abstract functional core 17 hereby comprises basic functional core algorithms, which may be re-used in any kind of processor 10, irrespective of a specific technology or function of the processor. The abstract functional core 17 is linked to a specific functional core unit 19, which implements the specific functional algorithms for, in this case the YOLO processor. The specific messaging core unit 16 is shown in more detail in the center of Figure 4. The specific messaging core unit 16 comprises an abstract queue core unit 20, an abstract listener unit 21, and a specific payload core unit 22.
[0122] Depending on what kind of queue technology is used for a message broker, the abstract queue core unit 20 and abstract listener unit 21, which comprise technology independent algorithms of their respective units, are combined with technology specific units 23 to 26, which then adapt the respective abstract units to the respective queue technology. The abstract listener unit 21 is either adapted, for example, with a specific RabbitMQ listener unit 23 in case a RabbitMQ message broker is used, or with a specific Kafka listener unit 24 in case a Kafka queue message broker is used. The abstract queue core unit 20 is either adapted, for example, with a specific RabbitMQ queue core unit 25 in case a RabbitMQ message broker is used, or with a specific Kafka queue core unit 26 in case a Kafka queue message broker is used.
[0123] The specific payload core unit 22 is implemented using a specific processor payload tool unit 27 and a specific system payload tool unit 28. Both of those payload tool units 27, 28 comprise a technology-independent abstract payload tool unit 29.
[0124] Figure 5 shows a flowchart of a method 200 of running a processor of a task-based processing system according to one embodiment. This method 200 may be performed, for example, by the processor 10 described above with regard to Figures 3 or 4. Details, which are already described in detail above, are not repeated herein again.
[0125] Figure 5 shows the flowchart in particular with regard to an interaction of a processing core unit 7, a message core unit 13, a queue core unit 12, a listener unit 11, a payload core unit 14, and a functional core unit 9 of the processor 10.
[0126] In a step 201, the processing core unit 7 starts the processing by the processor 10.
[0127] In a step 202, the processing core unit 7 instructs the message core unit 13 to start a message receiving process. Accordingly, in a subsequent step 203, the message core unit 13 instructs the queue core unit 12 to start the listener unit 11 to start listening on a message broker, which is not shown herein. After said instruction, the queue core unit 12 instructs the listener unit 11 in a step 204 to start listening on the message broker for an indicator indicating that a message for the processor 10 is available.
[0128] Once the listener unit 11 detects an indicator indicating the processor 10 in a message on the message broker, the listener unit 11 informs the queue core unit 12 in a step 205 that a message with a matching indicator is available on the message broker to be obtained by the processor 10. Accordingly, in a step 206, the queue core unit 12 extracts a payload from the message on the message broker. The queue core unit 12 then informs in a step 207 the message core unit 13 that the payload has been extracted.
[0129] The message core unit 13 then instructs in a step 208 the payload core unit 14 to obtain input information from the payload extracted from the message. After the payload core unit 14 obtained the input information, the payload core unit 14 sends the input information to the message core unit 13 in a step 209. The message core unit 13 informs in a step 210 the processing core unit 7 that the input information has been obtained.
[0130] The processing core unit 7 then instructs the functional core unit 9 in a step 211 to perform the task of the processor 10 based on the input information.
[0131] After the functional core unit 9 carried out its task, the functional core unit 9 returns its results of the task to the processing core unit 7 in a step 212.
[0132] In a step 213, the processing core unit 7 instructs the message core unit 13 to start a message sending process. Accordingly, in a subsequent step 214, the message core unit 13 instructs the payload core unit 14 to generate an output message based on the results of the performed task. The payload core unit 14 then determines a payload to be included as output information in the created message and sends said hands said payload to the message core unit 13 in a step 215.
[0133] The message core unit 13 then instructs the queue core unit 12 to create the output message in a step 216. After the message has been created, the queue core unit 12 informs in a step 217 the message core unit 13 that the message has been created. Subsequently, the message core unit 13 instructs the queue core unit to submit the output message to the message broker in a step 218.
[0134] After the message has been submitted to the message broker, the queue core unit 12 informs the message core unit 13 in a step 219 that the message has been submitted. The message core unit 13 then informs the processing core unit 7 in a step 220 that the processing of the task has successfully been completed.
[0135] Figure 6 shows an implementation of three task-based processing system according to one embodiment of this application. In particular, Figure 6 shows a first task-based processing system 30, a second task-based processing system 31, and a third task-based processing system 32. Each of those task-based processing systems 30, 31, 32 may be implemented and function according to the above-discussed embodiments. Features, which have already been discussed above, will not be repeated herein.
[0136] The first task-based processing system 30 comprises a first message broker 33. The second task-based processing system 31 comprises a second message broker 34. The third taskbased processing system 32 comprises a third message broker 35. An external system 36 is configured to send messages to each of the message brokers 33, 34, 35.
[0137] A processor archive 37 comprises stored and already implemented processors Pl to Pn. From this processor archive 37, processors Pl to Pn may be used to run the applications of the respective task-based processing systems 30, 31, 32, depending on their functionality and the need of the applications.
[0138] For example, the first task-based processing system 30 implements a processor Pl, a processor P3, and a processor P4 of the processors Pl to Pn. The second task-based processing system 31 implements a processor P2, a processor P4, and a processor P9 of the processors Pl to Pn. The third task-based processing system 32 implements a processor P7, a processor P8, and a processor Pn of the processors Pl to Pn. Accordingly, processors of the processors Pl to Pn may be re-used for different task-based processing systems, such as processor P4, or may be currently not in use, such as processors P5 and P6. In the embodiment shown in Figure 6, the first message broker 33 and the processor Pl may be running on the same hardware, e.g., a first server. Processors P3 and P4 may be running on the same hardware, e.g., a second server. The entire second task-based processing system 31 may be running on one hardware, e.g., a third server. The third message broker 34 may be running on an individual hardware, e.g., a fourth server. Processors P7, P8, and Pn may be running on the same hardware, e.g., a fifth server. Any different combination, of course, is also possible.
[0139] An external system 36’ may communicate with the task-based processing systems 30, 31, 32 via individual processors of the processors Pl to Pn. The external system 36’ may be the same or a different external system than the external system 36 mentioned above.
[0140] Figures 7 to 11 show different use cases of task-based processing systems according to embodiments of this application. In those Figures, merely aspects regarding the specific use cases are described. The details of the task-based processing systems, their elements, and their processing methods are not described herein again and it is referred to the corresponding detailed description of those features above.
[0141] Figure 7 shows an example, where an application, which is implemented by the task-based processing system, is a defect detection in visual data.
[0142] The embodiment of Figure 7 comprises a sensor 38 for generating visual data, for example a to be analyzed image, of a to be analyzed object. The task-based processing system in this embodiment comprises an inbound processor 39, three inference processors 40, and a database processor 41. All those processors 39, 40, 41 communicate via a message broker 6 with each other.
[0143] The inbound processor 39 is configured to retrieve data from the sensor 38, i.e., in this use case the to be analyzed image. After an image has been captured by the sensor 38 together with the associated metadata, a message containing both the image and the metadata is submitted by the inbound processor 39 to the queue on the message broker 6. The inference processors 40 are configured to perform defect detection on the to be analyzed image, for example by using artificial intelligence. The inference processors 40 are configured to retrieve the message from the message broker 6, which is for example in JavaScript Object Notation, JSON, format, and contains both the image and the metadata.
[0144] The inference processors 40 are configured to analyze the image, to detect and to classify possible errors, and to identify the exact region where the error occurs. The inference processors 40 are then configured to send the result, including the error classification and localization, to the message broker 6.
[0145] Since, in the entire workflow shown in this embodiment, the defect detection performed by the inference processors 40 is the step which requires the most computing power as it takes more time to process the Al tasks, there are three inference processors 40 implemented in the task-based processing system shown in Figure 7. The three inference processors 40 each listen on the message broker 6 for a message with their indicator. Whichever of the inference processors 40 is idle may then obtain and process an available message, while the other inference processors 40 may still process previous messages. To ensure optimal performance, it is possible to run this process on multiple instances and thus achieve efficient parallelization when processing the messages. The architecture is designed to enable scalable and even load distribution with minimal effort. This ensures high system performance.
[0146] The database processor 41 obtains the detection result from the message broker 6 in a corresponding message submitted by the inference processor 40 and stores the result in a database 42. Therewith, the workflow is concluded.
[0147] Figure 8 shows an example of a task-based processing system for quality inspection.
[0148] The embodiment of Figure 8 comprises a camera 43 for generating visual data, for example a to be analyzed image, of a to be analyzed object. The task-based processing system in this embodiment comprises an inbound processor 39, an inference processor 40, a decision processor 44, an outbound processor 45, and a database processor 41. A message broker, via which the processors communicate with each other is not shown in this Figure.
[0149] The inbound processor 39 corresponds to the inbound processor 39 described with respect to Figure 7 and obtains an image and metadata from the camera 43. The inference processor 40 corresponds to the inference processor 40 described with respect to Figure 7 and analyzes the image for possible defects using Al.
[0150] The decision processor 44 obtains the result from the analysis performed by the inference processor 40 and decides whether the to be analyzed object has to be sorted out or not. The decision processor 44 then creates two messages, one with an indicator for the outbound processor 45 and one with an indicator for the database processor 41. Each of those messages are detected and obtained by the respective processors 41, 45.
[0151] The outbound processor 45 controls, based on the decision made by the decision processor 44, a sorting device 46, which is configured to sort out the analyzed object, in case the decision processor 44 came to the result that the object is to be sorted out due to its defect(s). Otherwise, the object is not sorted out by the sorting device 46.
[0152] The database processor 41, for example an InfhixDB processor, stores the result of the decision processor 44 in a database not shown herein.
[0153] Figure 9 shows another example of a task-based processing system for quality inspection. The use case of Figure 9 shows a more complex implementation than use case of Figure 8.
[0154] The embodiment of Figure 9 comprises two cameras 43 for generating visual data, for example to be analyzed images, of a to be analyzed object. The task-based processing system in this embodiment comprises two inbound processors 39, one for each camera 43, two inference processors 40, one for each inbound processor 39, a data pooling processor 47, a drool processor 48, an outbound processor 45, and a database processor 41. A message broker, via which the processors communicate with each other is not shown in this Figure. The inbound processors 39 correspond to the inbound processor 39 described with respect to Figure 7 and Figure 8 and obtain respective images and metadata from the respective cameras 43. The inference processors 40 correspond to the inference processor 40 described with respect to Figure 7 and Figure 8 and they each analyze the respective image for possible defects using Al.
[0155] The data pooling processor 47 is configured to obtain the results from the two inference processors 40 and to combine those results into one decision, whether a defect is present in the object, which has been captured by the two cameras 43. For example, the data pooling processor 47 weights the results of both inference processors 40 to obtain a combined result of said analysis.
[0156] The drool processor 48 obtains the combined result from data pooling processor 47 and decides whether the to be analyzed object has to be sorted out or not. The drool processor
[0157] 48 then creates two messages, one with an indicator for the outbound processor 45 and one with an indicator for the database processor 41. Each of those messages are detected and obtained by the respective processors 41, 45.
[0158] The outbound processor 45 controls, based on the decision made by the drool processor 48, a sorting device 46, which is configured to sort out the analyzed object. Otherwise, the object is not sorted out by the sorting device 46.
[0159] The database processor 41 stores the result of the drool processor 48 in a database not shown herein.
[0160] Figure 10 shows an example of a task-based processing system for sensor dashboarding.
[0161] The embodiment of Figure 10 comprises three environmental sensors 49. The environmental sensors 49 obtain measuring data, in this example the environmental sensors
[0162] 49 comprise a temperature sensor, a barometric pressure sensor, and a humidity sensor. However, any other kind of sensors may equally be used. The task-based processing system in this embodiment comprises three inbound processors 39, one for each environmental sensor 49. The inbound processors 39 correspond to the inbound processor 39 described with respect to Figures 7 to 9 and obtain the respective measuring data and respective metadata from the respective environmental sensors 49.
[0163] Each of those inbound processors 39 is configured to create a message with an indicator indicating a first RedisDB processor 50 as the next processor to process the respective messages. The first RedisDB processor 50 is configured to write the measuring data and the metadata into a Redis database 51. Any other type of database, of course, may also be used in this context.
[0164] The task-based processing system shown in Figure 10 further comprises a second and a third RedisDB processor 52, 53. The second RedisDB processor 52 is configured to read the measuring data and the metadata from the Redis database 51 and create a message indicating an analytics processor 54 to perform an analysis on the measuring data. The analytics processor 54 is configured to obtain the measuring data and metadata from the second RedisDB processor 52, to perform said analysis of the measuring data, and to create a message, indicating the third RedisDB processor 53 to write the result of the analysis back into the Redis database 51.
[0165] A fourth RedisDB processor 55 is configured to access the stored measuring data, metadata, and the results of the analysis from the analytics processor 54 in the Redis database 51. The fourth RedisDB processor 55 is then configured to provide the obtained information to an API provider processor 56. The API provider processor 56 serves as an interface to an external device, in this case a dashboard 57. Via the API provider processor 56, the dashboard 57 can obtain the measuring data, metadata, and / or analysis result and display corresponding information.
[0166] Corresponding to the above, the system further comprises a fifth RedisDB processor 58, an Oracle processor 59, a legacy database 60, a sixth RedisDB processor 61, an InfluxDB processor 62, and an Influx database 63. Figure 11 shows an example of a race track safety application of a task-based processing system according to this application.
[0167] The embodiment of Figure 11 comprises four cameras 43 placed along a racing track 64 for generating visual data of the racing track 64 to observe a car density or other risk factors on the racing track 64. The task-based processing system in this embodiment comprises four inbound processors 39, one for each camera 43.
[0168] The embodiment shown here in Figure 11 further comprises three inference processors 40. However, those three inference processors 40 are not individually dedicated to respective inbound processors 39, as it is the case in Figures 8 to 10 but may each obtain messages from all four inbound processors 39. With other words, while the inference processors 40 in Figure 9, for example, are addressed by individual different indicators and the inbound processors 39 submit their output messages to the message broker with the respective individual indicator such that each inference processor 40 only obtains messages from its dedicated inbound processor 39, in Figure 11, each inbound processor submits its output message with the same indicator, by which all three inference processors 40 in Figure 11 are addressed. This way, whichever inference processor 40 is idle in the embodiment of Figure 11 obtains the next available message from the message broker with said indicator. Therefore, even if one of the inference processors 40 should fail, the task-based processing system could still process incoming data from all cameras 43.
[0169] Otherwise, the inbound processors 39 and inference processors 40 correspond, in general, to the above-discussed inbound processors 39 and inference processors 40. The inference processors 40 analyze the visual data for a risky car density or other possible risk factors using Al. A message broker, via which the processors communicate with each other is not shown in this Figure.
[0170] The task-based processing system shown herein further comprises a drool processor 48, which obtains the results from the inference processors 40 and decides whether a high car density or other risk factor is present. The drool processor 48 then creates two messages, one with an indicator for an outbound processor 45 and one with an indicator for a database processor 41. Each of those messages are detected and obtained by the respective processors 41, 45.
[0171] The outbound processor 45 controls, based on the decision made by the drool processor 48, three display devices 65, such as electronic traffic signs or traffic lights, which are configured to display warning messages depending on the decision made by the drool processor 48. For example, in case of a detected high car density, a speed limit or a yellow light may be displayed. In case of a traffic jam, accident, or people or objects on the racing track 64, a red light may be displayed.
[0172] The database processor 41 stores the result of the drool processor 48 in a database not shown herein and provides the result to a user interface 66, where said result of the decision regarding high car density and / or other risk factors may be displayed.
[0173] As can be understood from the above discussion of the different use cases shown in Figures 7 to 11, rather different applications may, at least in parts, use the same, re-usable processors, which perform the same tasks irrespective of whether they are used for example in a quality control application or in a race track safety application. The architecture disclosed in this application, therefore, allows a very simple and fast implementation of different applications, using the aspects of the task-based processing systems disclosed in this application.
[0174] List of reference signs
[0175] 1 task-based processing system
[0176] 2 initial processor
[0177] 3 first processor
[0178] 4 second processor
[0179] 5 third processor
[0180] 6 message broker
[0181] 7 processing core unit
[0182] 8 messaging core unit
[0183] 9 functional core unit
[0184] 10 processor
[0185] 11 listener unit
[0186] 12 queue core unit
[0187] 13 message core unit
[0188] 14 payload core unit
[0189] 15 abstract base processor unit
[0190] 16 specific messaging core unit
[0191] 17 abstract functional core unit
[0192] 18 YOLO processor
[0193] 19 specific functional core unit
[0194] 20 abstract queue core unit
[0195] 21 abstract listener core unit
[0196] 22 specific payload core unit
[0197] 23 specific RabbitMQ listener unit
[0198] 24 specific Kafka listener unit
[0199] 25 specific RabbitMQ queue core unit
[0200] 26 specific Kafka queue core unit
[0201] 27 specific processor payload tool unit
[0202] 28 specific system payload tool unit
[0203] 29 abstract payload tool unit
[0204] 30 first task-based processing system
[0205] 31 second task-based processing system 32 third task-based processing system
[0206] 33 first message broker
[0207] 34 second message broker
[0208] 35 third message broker 36 external system
[0209] 37 processor archive
[0210] 38 sensor
[0211] 39 inbound processor
[0212] 40 inference processor 41 database processor
[0213] 42 database
[0214] 43 camera
[0215] 44 decision processor
[0216] 45 outbound processor 46 sorting device
[0217] 47 data pooling processor
[0218] 48 drool processor
[0219] 49 environmental sensor
[0220] 50 first RedisDB processor 51 Redis database
[0221] 52 second RedisDB processor
[0222] 53 third RedisDB processor
[0223] 54 analytics processor
[0224] 55 fourth RedisDB processor 56 API provider processor
[0225] 57 dashboard
[0226] 58 fifth RedisDB processor
[0227] 59 oracle processor
[0228] 60 legacy database 61 sixth RedisDB processor
[0229] 62 InfluxDB processor
[0230] 63 Influx database
[0231] 64 racing track 65 display device
[0232] 66 user interface
[0233] 100 method
[0234] 101 - 113 steps 200 method
[0235] 201 - 220 steps
[0236] Pl processor
[0237] P2 processor
[0238] P3 processor P4 processor
[0239] P5 processor
[0240] P6 processor
[0241] P7 processor
[0242] P8 processor P9 processor
[0243] Pn processor
Claims
Claims1. A method of running a task-based processing system, the method comprising the following steps:- listening, by a plurality of processors, on a message broker for an indicator in a message, wherein the indicator indicates that a respective message is to be obtained by a respective processor of the plurality of processors and wherein each processor of the plurality of processors is configured to carry out at least one dedicated task,- detecting, by at least one first processor of the plurality of processors, that a first message on the message broker comprises a first indicator indicating that the first message is to be obtained by the first processor,- obtaining, by the at least one first processor, the first message from the message broker,- obtaining, by the at least one first processor, first input information from the first message,- performing, by the at least one first processor, a first task for which the at least one first processor is configured according to the first input information,- if the first message comprises an indicator for at least one task to be performed by at least one further processor: generating, by the at least one first processor, first output information based on the first task, and submitting, by the at least one first processor, at least one second message comprising the first output information to the message broker, or- if the first message does not comprise an indicator for at least one task to be performed by at least one further processor: performing, by the at least one first processor, an output task.
2. The method according to claim 1, wherein, if the first message comprises the indicator for at least one task to be performed by at least one further processor, the indicators in the first message are organized in an order according to which tasks are to be performed by different processors and the at least one first processor generates the second message such that a second indicator can be recognized by at least one second processor.
3. The method according to any of the previous claims, wherein at least two first processors of the plurality of processors are configured to carry out the same dedicated task and, if the first message comprises the first indicator, one of the at least two first processors receives the first message and performs the first task.
4. The method according to any of the previous claims, wherein the output information comprises second input information for at least one second processor of the plurality of processors whose task is to be performed after the first task.
5. The method according to any of the previous claims, wherein the method further comprises:- obtaining, by an initial processor, an initial message,- determining, by the initial processor, configuration settings from the initial message, and- configuring the first message according to the configuration settings.
6. The method according to any of the previous claims, wherein, if at least a third processor of the plurality of processors is currently implementing at least one dedicated task, the at least one third processor does not listen on the message broker and proceeds to listen after the at least one dedicated task has been completed.
7. The method according to any of the previous claims, wherein the first task, performed by the at least one first processor, and at least one second task, performed by at least one second processor, are performed parallel or sequentially.
8. The method according to any of the previous claims, wherein:- after the first message is obtained by the at least one first processor, the at least one first processor sends an acknowledgement message to the message broker and the first message is removed from the message broker after the acknowledgement message is received by the message broker.
9. The method according to any of the previous claims, wherein the first message is blocked after the at least one first processor detected that the first message comprises the first indicator and cannot be obtained by a different processor.
10. The method according to any of the previous claims, wherein the at least one first processor verifies whether the first input information is compatible with values that need to be set for the at least one first processor in order to initialize the first task.
11. The method according to any of the previous claims, wherein the method is a computer-implemented method.
12. A task-based processing system comprising means for implementing the method according to any of claims 1 to 11.
13. The task-based processing system according to claim 12, further comprising an initial processor, configured to obtain an initial message from the message broker, determine configuration settings from the initial message, and configure the first message according to the configuration settings.
14. The task-based processing system according to any of claims 12 or 13, further comprising at least one server, wherein: the server is configured to implement the message broker on which the messages are distributed.
15. The task-based processing system according to any of claims 12 to 14, further comprising at least one database, wherein: the database is configured to store payload information of the messages.
16. The task-based processing system according to any of claims 12 to 15, wherein if the messages comprise more than one indicator for a processor, the indicators are organized in an order, in which corresponding tasks are to be performed.
17. The task-based processing system according to any of claims 12 to 16, wherein each processor of the plurality of processors comprises an address to the message broker.
18. A method of running a processor of a task-based processing system, the method comprising the steps:- listening, by a first processor of a plurality of processors, on a message broker for an indicator in a message, wherein the indicator indicates that a respective message is to be obtained by a respective processor of the plurality of processors and wherein eachprocessor of the plurality of processors is configured to carry out at least one dedicated task,- detecting, by the first processor, that a first message on the message broker comprises a first indicator indicating that the first message is to be obtained by the first processor,- obtaining, by the first processor, the first message from the message broker,- obtaining, by the first processor, first input information from the first message,- performing, by the first processor, a first task for which the first processor is configured according to the first input information,- if the first message comprises an indicator for at least one task to be performed by at least one further processor: generating, by the first processor, first output information based on the first task, and submitting, by the first processor, at least one second message comprising the first output information to the message broker, or- if the first message does not comprise an indicator for at least one task to be performed by at least one further processor: performing, by the first processor, an output task.
19. The method according to claim 18, wherein the method is a computer-implemented method.
20. A processor of a task-based processing system comprising: means for implementing the method according to claim 18 or 19.
21. The processor according to claim 20, wherein the means of the processor comprise a processing core unit, a messaging core unit, and a functional core unit, wherein: the processing core unit is configured to control the messaging core unit and the functional core unit, the functional core unit is configured to carry out the at least one dedicated task of the processor, and the messaging core unit is configured to obtain messages from the message broker and to submit messages to the message broker.
22. The processor according to claim 21, wherein the processing core unit and the messaging core unit are predetermined units and the functional core unit is a unit that can be configured using configuration settings.
23. The processor according to claim 21 or 22, wherein the messaging core unit comprises a listener unit, a queue core unit, and a message core unit, wherein: the listener unit is configured to listen on the message broker and to determine that a message comprises the first indicator, the queue core unit is configured to extract a payload from the first message, the message core unit is configured to obtain the first message and to generate and submit the second message, and the payload core unit is configured to obtain the first input information from the payload of the first message.
24. The processor according to any of claims 20 to 23, wherein the processor is at least one of the following: a hardware inbound processor, an inference processor, a decision making processor, a hardware outbound processor, a data pooling processor, a drool processor, an InfluxDB processor, a RedisDB processor, an analytics processor, an oracle processor, or an API provider processor.
25. A computer program product comprising instructions which, when executed by a computer, cause the computer to implement the method of any of claims 1 to 11 or any of claims 18 or 19.
26. A computer-readable storage medium comprising the computer program product according to claim 25.