System and method for activating components

A system with a monitoring and startup unit predicts component behavior from communication patterns to preheat components, addressing delays and energy waste in distributed computing, enhancing efficiency and reducing resource consumption.

EP4715685A1Pending Publication Date: 2026-03-25SIEMENS AG
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-09-24
Publication Date
2026-03-25

AI Technical Summary

Technical Problem

In distributed computing systems, activating components from a standby mode introduces delays and wastes energy due to the need for immediate activation, while keeping components constantly active consumes resources unnecessarily.

Method used

A system with a monitoring unit to analyze communication patterns among components and a startup unit to predict component behavior, preheating components based on these patterns to ensure timely readiness without continuous activation.

Benefits of technology

Reduces workflow delays and conserves energy by proactively activating components when needed, based on predicted communication patterns, ensuring efficient task execution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IMGAF001_ABST
    Figure IMGAF001_ABST
Patent Text Reader

Abstract

The invention relates to a system (S) for activating components (A, B, C, D), wherein the system (S) comprises several components (A, B, C, D), each of which is configured to perform at least one task, and wherein the components (A, B, C, D) are further configured to exchange messages (E) with other components (A, B, C, D) in order to perform their respective tasks. The system (S) further comprises a monitoring unit (UE) configured to monitor the exchange of messages (E) between the several components (A, B, C, D), and a start unit (SE) configured to detect a communication pattern based on the exchange of messages (E), to predict the behavior of the several components (A, B, C, D) based on the communication pattern, and to activate one or more components (A, B, C, D) based on the prediction.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] The present invention relates to a system for activating components. Furthermore, the present invention relates to a method for activating components. Finally, the present invention relates to a computer program product that, on a program-controlled device, initiates the execution of the method for activating components.

[0002] In distributed computing systems, multiple components perform tasks independently. Together, these tasks solve more complex problems or processes (sometimes called workflows, which consist of multiple tasks or task chains); they can build upon each other's results or parallelize processing. The components can run on the same or multiple computing nodes.

[0003] The components coordinate the execution of their tasks by exchanging messages (or events) via an event messaging system or an intermediary / broker (e.g., a NATS broker). To save costs, computing power, and energy, however, not all components (and thus nodes) are constantly active (also known as a "hot state"). They can be switched to a standby mode (also known as a "cold state") and are started when needed, i.e., upon receiving a message. Starting a component or node from standby mode takes time and therefore delays the processing of the actual workflow.

[0004] Components can be used, for example, in serverless functions, virtual containers, virtual machines, or cloud infrastructures. If the components, or some of them, are not activated or are in standby mode, they must be started upon receiving an incoming message. However, if the components remain permanently activated, i.e., not in standby mode, they consume resources (money, memory, CPU, energy, etc.) even when no messages need to be processed.

[0005] Up to now, it has been accepted in such distributed computer systems that heating up or reactivating a component takes some time, and this is mitigated accordingly at the process / workflow level. Alternatively, a certain number of components are kept in an active state as a reserve / buffer so that they can be used immediately. For optimization, this number can be adjusted by measuring the utilization of the components / nodes.

[0006] Regardless of the grammatical gender of a particular term, persons with male, female or other gender identities are included.

[0007] Against this background, one object of the present invention is to provide a way to ensure the execution of a workflow or, more generally, of tasks with a low delay in (distributed) computer systems, while simultaneously saving energy.

[0008] Accordingly, a system for activating components is proposed, wherein the system has several components, each of the several components being trained to perform at least one task, and wherein the components are further trained to exchange messages with other components in order to perform the respective tasks.

[0009] The system in question is, in particular, a distributed computing system, such as a cloud system or a software system with distributed containers, which comprises multiple components or nodes. These components can perform individual tasks that interact to form a workflow. As explained above, the components can exchange messages to execute their respective tasks.

[0010] To save energy compared to previous systems while simultaneously ensuring the execution of various workflows, the proposed system uses communication patterns to determine which components need to be activated before they are actually required. This means that, according to the proposed system, the components needed for a workflow are not only activated when they are actually needed (which would lead to a delay in the workflow), but are "preheated" as soon as the system can foresee that the corresponding components will be required to execute a workflow in the foreseeable future.

[0011] For this purpose, the system comprises a monitoring unit and a startup unit. The respective unit, for example, the monitoring unit, can be implemented in hardware and / or software. In a hardware implementation, the respective unit can be a device or part of a device, for example, a computer, a microprocessor, or a control unit on a server, a host system, or similar. In a software implementation, the respective unit can be a computer program product, a function, a routine, part of program code, or an executable object.

[0012] The monitoring unit is designed to monitor the exchange of messages between the various components of the system. For this purpose, the monitoring unit can, for example, be interposed in the communication paths between the components. It is also possible for all messages exchanged between components to be transmitted to the monitoring unit.

[0013] The startup unit is then trained to detect a communication pattern based on the exchange of messages, to predict the behavior of multiple components based on this communication pattern, and to activate one or more components based on this prediction. When a component is activated, this means that the component is put into (immediate) readiness. This is also referred to as activating a component. In this state, the component does not yet perform any actions or receive any calls from the system, such as from a previous component, but is merely woken up from a standby or sleep mode and "preheated" so that it is already active and ready when it is actually supposed to perform an action, such as executing a task.

[0014] Since activation or switching to an active state is based on a prediction of component behavior derived from the communication pattern, the activation or preheating of the respective components can occur at a time when the component is not yet actively involved in a workflow of tasks. Rather, the respective component is activated (e.g., woken from standby mode or even switched on) as soon as its involvement in a workflow or in the execution of tasks is probable, based on the detected communication pattern.

[0015] In this way, it is possible to reduce delays in the execution of tasks and workflows (since the respective components are reactivated in advance), while at the same time saving energy and other resources, as components do not have to remain activated unnecessarily.

[0016] According to one embodiment, the monitoring unit is configured to recognize and store the time of a message and the sending component. Furthermore, the monitoring unit can be configured to recognize and store the receiving component for the message. Additionally, the monitoring unit can be configured to recognize and store the message type. The monitoring unit can store this information, for example, in a table. This provides a comprehensive overview of the messages sent by the components within the system. This information is typically already available and can be read by the monitoring unit. Furthermore, the message itself can also contain a unique identification number.

[0017] According to another embodiment, the monitoring unit is configured to correlate messages from multiple components based on causality and to store a unique message identification number and a causality identification number for each message. The causality identification number indicates which message the message is correlated with due to a causality. A causality between messages indicates the causal relationship in which two messages occur. In particular, the causal relationship can also be a temporal one. For example, the monitoring unit can determine that when a message occurs, a specific other message always occurs next, and these two messages are therefore correlated. The causality identification number then indicates which other message a message is correlated with.This causal relationship allows the startup unit to recognize which component needs to be activated next when a specific message occurs.

[0018] According to another embodiment, the startup unit is configured to create a model of message exchange between the multiple components based on the exchange of messages. Such a model can map the exchange of messages between components and therefore provides a simple overview of which messages are typically sent by which components and in what order. The model can also represent situations where one component can send messages to multiple other components, i.e., when multiple components are involved in a workflow.

[0019] According to another embodiment, the starting unit is configured to detect the frequency of message occurrences within the exchanged messages and integrate this into the model to detect the communication pattern. The model can thus also indicate the frequency, and therefore the probability, of a second message being sent to a specific component after a first message. These probabilities cover the scenario where, for example, a first message to a first component is followed by a second message, which is sent to a second component with a first probability and to a third component with a second probability. The model can therefore also represent that the same components are not always required sequentially, but that other sequences of components are possible within a workflow.

[0020] According to another embodiment, the launch unit is configured to determine, based on the communication pattern, which components are involved in the communication pattern in order to predict the behavior of the multiple components. In particular, the launch unit can determine communication patterns for multiple workflows, where different components may be involved in different workflows. Once the launch unit has recognized a communication pattern, it can then easily determine, based on this communication pattern (i.e., the sending and receiving of messages by components), how one or more components will behave in relation to the communication pattern.This means that if a specific communication pattern is determined based on at least one message, the start unit can predict, based on this communication pattern, which components will subsequently receive and send messages and therefore need to be activated. In this way, the start unit can determine, even with simple switches, which components need to be activated if they are in an inactive state, e.g., standby mode.

[0021] According to another embodiment, the startup unit is configured to consider messages over a predefined period to create the model. Specifically, the startup unit can be configured to determine the period based on a selected prediction accuracy. If a more accurate prediction is desired, the startup unit can consider a longer period. In this way, small deviations in the message sequence are not affected by the larger overall data volume. Furthermore, the startup unit can disregard messages older than a predefined threshold. This allows older messages, which may be outdated due to system changes, for example, to be ignored when creating the model. This makes the model more reliable and the prediction more accurate.

[0022] According to another embodiment, the startup unit is configured to create an activation plan for each message type based on the communication pattern, and to activate the corresponding components based on this activation plan when a message type occurs. In particular, the startup unit can be configured to activate the corresponding components in a defined sequence based on the activation plan. In this way, when the first message occurs, the startup unit can determine its message type (e.g., read it) and, based on this, determine which components need to be activated and when. This enables a reliable workflow that begins with the first message, without having to wait for the individual required components to be activated when they should already be active.At the same time, energy can be saved, as components do not have to remain active unnecessarily.

[0023] According to another aspect, a method for activating components in a system is proposed, wherein the system has multiple components, each of the multiple components performing at least one task, and the components exchange messages with other components to perform their respective tasks. The method comprises the following steps: Monitoring the exchange of messages between the multiple components, detecting a communication pattern based on the exchange of messages, predicting the behavior of the multiple components based on the communication pattern, and activating one or more components based on the prediction of the behavior of the multiple components.

[0024] The embodiments and features described for the proposed system apply accordingly to the proposed method. Furthermore, it should be noted that the method steps can be carried out in the specified order, in a different order, or at least partially simultaneously.

[0025] Furthermore, a computer program product is proposed which, on a program-controlled device, initiates the execution of the procedure described above.

[0026] A computer program product, such as a computer program tool, can be provided or delivered from a server on a network, for example, as a storage medium such as a memory card, USB stick, CD-ROM, DVD, or as a downloadable file. This can be done, for example, in a wireless communication network by transmitting the corresponding file containing the computer program product or tool.

[0027] Other possible implementations of the invention also include combinations of features or embodiments described previously or subsequently with regard to the exemplary embodiments, even if not explicitly mentioned. In such cases, the person skilled in the art will also add individual aspects as improvements or additions to the respective basic form of the invention.

[0028] Further advantageous embodiments and aspects of the invention are the subject of the dependent claims and the exemplary embodiments of the invention described below. The invention will be explained in more detail below with reference to preferred embodiments and the accompanying figures. Fig. 1 shows a schematic block diagram of a system for activating components; Fig. 2 shows a schematic flow diagram of a procedure for activating components; Fig. 3 shows a schematic diagram of a flow of messages in the system of Fig. 1 Figure 4 shows a model of message exchange in the system of Fig. 1 ; and Fig. 5 shows an activation plan for the system of Fig. 1 .

[0029] In the figures, identical or functionally equivalent elements have been given the same reference symbols, unless otherwise indicated.

[0030] Fig. 1Figure 1 shows a system S with several components A, B, C, and D. System S could, for example, be a distributed computer system in which components A through D each perform tasks to execute different workflows. The tasks of the individual components A through D can interact and depend on each other, or be executed in parallel.

[0031] To perform tasks, components A through D exchange messages, hereinafter also referred to as events E. This exchange of messages E takes place via an event messaging system (EMS). In previous systems, it was necessary for all components A through D to be permanently active to be able to execute a task at any time, which resulted in unnecessarily high energy consumption. Alternatively, if a component A through D was in a sleep or standby mode, it was only activated when actually needed, which led to a delay in the execution of the corresponding workflow.

[0032] To enable improved workflow execution with reduced latency and lower energy consumption, the system S described here includes a monitoring unit UE. This monitoring unit UE records when events or messages E are received by which component A to D. Based on this, a start unit SE determines a communication pattern for the messages E. For this purpose, the start unit SE can, for example, include an event analysis unit EAU.

[0033] This Event Analysis Unit (EAU) can correlate messages or events E using causality information. This means that each event E has a system-wide unique ID and also carries a causality ID, i.e., the ID of the event E that caused the publication or execution of that event E.

[0034] In the procedure as carried out by system S, the first step S1 involves monitoring the exchange of messages or events E between the several components A to D by the monitoring unit UE. Then, in step S2, the start unit SE detects the communication pattern based on the exchange of messages E.

[0035] The start unit SE can then predict the behavior of the multiple components A to D in step S3 based on the communication pattern. Finally, the start unit SE can activate one or more components A to D, as needed and based on the predicted behavior of the multiple components A to D. This can be done, for example, based on an activation plan AP. An activation signal unit ASE of the start unit SE can send corresponding activation signals AS (see Fig. 5 ) send to activate the corresponding components A to D.

[0036] Fig. 3 shows components A to D of the Fig. 1 with the logical communication taking place between them. Here, events or messages E are represented as triples of<Ereignistyp, Ereignis-ID, Ursachen-ID> noted. The event type α, β, γ, δ is an identifier for the type of message, the event ID 1 to 5 is a system-wide unique ID for the event, and the cause ID 1, 2 is the ID of the event that caused component A to D to publish the corresponding event.

[0037] In this way, the sequence in the communication process, along with its traceability, can be described. The sequence is shown in the Fig. 3 The example shown looks like this: (1) Component A completes its processing and publishes an event of type β. This event is assigned the system-wide unique ID 2. Since Component A was previously triggered by the event E(α,1,-) with ID 1, the event is assigned the cause ID 1, thus generating E(β, 2,1). (2) When the event E(β, 2,1) is received by Component C, it is reported to the monitoring unit UE. The monitoring unit UE records the time, the reporting component, and, of course, the event E(β, 2, 1) itself. (3) Component C processes the event in a task (not shown further). (4) As a result of Component C's processing, a new event is published. This event now has type δ, ID 5, and cause ID 2 (since this was the event that triggered Component C), therefore E(δ, 5, 2) is generated.

[0038] This process is repeated for each event that is processed by any of the components A to D within the system S.

[0039] The start of a workflow (i.e., a sequence of events or messages) is usually triggered by something outside of system S. These triggers do not have an ID that can be used as a cause ID, and therefore this field remains empty (see Initial Event in [reference]). Fig. 3 ).

[0040] For the in Fig. 3 In the workflow shown, the monitoring unit records the messages or events in a table: Timestamp Receiving component Event type Event ID Cause ID 12:00:01 A α 1 - 12:00:02 B β 2 1 12:00:02 C δ 3 1 12:00:03 D γ 5 2

[0041] This table allows you to supplement the event information (event type, event ID, cause ID) with the component receiving the event (receiver) and a timestamp (timestamp) when components A through D receive the event. Optionally, the table can also include the sending component.

[0042] As above in relation to Fig. 1 As described, the startup unit SE can process the communication data collected by the monitoring unit UE and can then predict the behavior of the system S based on the determined communication pattern. With this knowledge, the startup unit SE can signal components A to D to switch to an active state (activation signals AP).

[0043] For prediction purposes, the starting unit SE can create a model based on the data from the monitoring unit UE, as is done, for example, in Fig. 4 This is shown. For each event type α, β, γ, δThe starting unit SE aggregates the frequency of occurrence of subsequent events together with the components A to D that receive them.

[0044] In the Fig. 4 In the example shown, the event E<α> is published ten times. In seven cases, the event E<β> was published and processed by component C. In three cases, the event E<γ> was published and processed by component B. In the seven cases where C processes the event E<β>, the event E<δ> is published twice and the event E<ε> five times. Both are processed by component D. The dashed lines after components B and D indicate that the sequence beyond these points is no longer considered in this case.

[0045] The construction of the model of Fig. 4 can be done as follows: 1. The system stores information about which component processes which event type. This information indicates which components must be active for a specific event type and its workflow to be processed smoothly and without delay. 2. For the preceding event type (determined using the cause ID), the system stores information indicating that it is a subsequent event type. Furthermore, the frequency of occurrence of this event type is stored. This ensures that it is always clear which event types will be processed or output next when a specific event type is received, along with the frequency of other event types. This information can be used to calculate probabilities for the subsequent event types of a given event type.

[0046] Together, both pieces of information can be used to construct a tree like the one in the following figure.

[0047] Then, an activation plan (AP) is created for each known event type. For each subsequent event type of a given type, the associated components A to D for the subsequent type are marked as preheated or activated (i.e., put into active mode) if the calculated probabilities exceed a predefined threshold.

[0048] Such an activation plan is in Fig. 5 This is illustrated by example. It is based on the model of Fig. 4 .

[0049] When an event of type E<α> occurs, the probability of the subsequent event type E<β> is 70% (7 out of 10 occurrences). The corresponding component of this type is component C. Therefore, assuming a threshold probability of 50%, it must be activated accordingly. Considering the subsequent event types for E<β>, event type E<ε> still has a probability of 50% based on the initial count of 10 occurrences of E<α>, and component D must be activated. The activation plan of the Fig. 5 This means that components C and D must be activated when component A receives the event E<α>.

[0050] The model of Fig. 4 The activation plan (AP) can be continuously improved, especially during operation. For this purpose, the monitoring unit (UE) can continuously collect data, as described above.

[0051] When an event type is received from component A, the startup unit S searches for the corresponding activation plan and model. To activate components C and D according to the activation plan, the startup unit SE can send activation signals AS to the corresponding components C and D to put them into an active state. This ensures that the components are already in an active state when the current processing in component A is complete and before components C and D begin processing subsequent events.

[0052] The system and procedures described above are capable of learning communication patterns and predicting component utilization. This allows the system to be better prepared for the various workflows that occur during operation, both when and before they occur. This also applies, for example, to workflows that do not occur frequently but lead to predictable behavior (e.g., in error handling).

[0053] Although the present invention has been described using exemplary embodiments, it can be modified in many ways.

Claims

1. A system (S) for activating components (A, B, C, D) is proposed, wherein the system (S) comprises several components (A, B, C, D), each of the several components (A, B, C, D) being trained to perform at least one task, the components (A, B, C, D) being further trained to exchange messages (E) with other components (A, B, C, D) in order to perform the respective tasks, the system (S) further comprising: - a monitoring unit (UE) trained to monitor the exchange of messages (E) between the several components (A, B, C, D), and - a start unit (SE) trained to detect a communication pattern based on the exchange of messages (E), to predict a behavior of the several components (A, B, C, D) based on the communication pattern, and to put one or more components (A, B, C, D) into an active state based on the prediction.

2. System according to claim 1, characterized by the fact that The monitoring unit (UE) is designed to recognize and store the time of a message (E) and the sending component (A, B, C, D) for a message (E).

3. System according to claim 2, characterized by the fact that The monitoring unit (UE) is designed to identify and store the receiving component (A, B, C, D) for the message (E).

4. System according to claim 2 or 3, characterized by the fact that The monitoring unit (UE) is trained to recognize and store a message type of message (E).

5. System according to any one of the preceding claims, characterized by the fact thatThe monitoring unit (UE) is designed to correlate messages (E) from multiple components (A, B, C, D) based on causality and to store a unique message identification number and a causality identification number for each message (E), where the causality identification number indicates which message (E) the message (E) is correlated with due to a causality.

6. System according to any of the preceding claims, characterized by the fact that The startup unit (SE) is trained to create a model of message exchange between the multiple components (A, B, C, D) based on the exchange of messages (E).

7. System according to claim 6, characterized by the fact that The starting unit (SE) is designed to detect the frequency of occurrence of messages (E) within the exchanged messages (E) and to integrate these into the model in order to detect the communication pattern.

8. System according to claim 6 or 7, characterized by the fact that The starting unit (SE) is trained to determine, based on the communication pattern, which components (A, B, C, D) are involved in the communication pattern in order to predict the behavior of the multiple components (A, B, C, D).

9. System according to one of claims 6 to 8, characterized by the fact that The starting unit (SE) is trained to consider the messages (E) over a predefined period in order to create the model.

10. System according to claim 9, characterized by the fact that The starting unit (SE) is trained to determine the time period based on a selected accuracy of the prediction.

11. System according to any of the preceding claims, characterized by the fact thatThe startup unit (SE) is trained to create an activation plan (AP) for each message type based on the communication pattern, to activate the components (A, B, C, D), and to activate the corresponding components (A, B, C, D) based on the activation plan (AP) when a message type occurs.

12. System according to claim 11, characterized by the fact that The starting unit (SE) is trained to activate the corresponding components (A, B, C, D) in a defined temporal sequence based on the activation plan (AP).

13. Method for activating components (A, B, C, D) in a system (S), wherein the system (S) comprises multiple components (A, B, C, D), each of the multiple components (A, B, C, D) performing at least one task, the components (A, B, C, D) exchanging messages (E) with other components (A, B, C, D) to perform the respective tasks, the method comprising the steps of: - monitoring (S1) the exchange of messages (E) between the multiple components (A, B, C, D), - detecting (S2) a communication pattern based on the exchange of messages (E), - predicting (S3) a behavior of the multiple components (A, B, C, D) based on the communication pattern, and - activating (S4) one or more components (A, B, C, D) based on the prediction of the behavior of the multiple components (A, B, C, D).

14. Computer program product which causes the execution of the method according to claim 13 on a program-controlled device.

Citation Information

Patent Citations

  • Method and device for activation of components

    US8335938B2