Providing optimizations in microservice architectures

CN114402292BActive Publication Date: 2026-09-22A P MOLLER AS
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080065153.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-09-20
Filing Date
2020-09-21
Publication Date
2026-09-22
Estimated Expiration
2040-09-21

AI Technical Summary

Technical Problem

[0004]然而,将微服务用于不同任务也会带来若干缺点,诸如数据可访问性、基础结构开销和更复杂的系统

Benefits of technology

[0080]一些实施方案的优点在于,数据库仅为元数据提供存储,并且因此可减小数据库的大小,因为元数据在数据大小上是可预测的并且在数据大小上通常小于有效载荷,因此数据库较不复杂并且大小减小,因为它仅专用于元数据。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114402292B_ABST
    Figure CN114402292B_ABST
Patent Text Reader

Abstract

A method is disclosed for providing a computer implementation of optimization in a microservice architecture including at least one optimization service. The at least one optimization service includes a management component configured to provide access to the at least one optimization service to clients, a messaging component configured to queue optimization requests, at least one working component configured to solve optimization tasks, and at least one storage component, wherein the components in the at least one optimization service are operatively connected to each other. The method includes: the management component receiving (101) an optimization request submitted from a client, including an optimization task and corresponding optimization data; the management component storing (104) the corresponding optimization data and an associated identifier for the creation of the optimization task in the at least one storage component; the management component sending (105) the optimization task and its associated identifier to the messaging component; and the at least one working component monitoring (106) the messaging component for the received optimization task. The method further includes: upon detecting (107) a received optimization task by at least one working component: obtaining (108) the corresponding optimization data stored by at least one storage component through an associated identifier of the optimization task; creating (109) an optimization model for solving the optimization task by at least one working component; solving (110) the optimization task based on the created optimization model by at least one working component; and storing (111) the solution of the optimization task and the associated identifier of the optimization task in at least one storage component by at least one working component. A corresponding computer program product and architecture are also disclosed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to the field of microservices. More specifically, this disclosure relates to providing optimizations within a microservices architecture. Background Technology

[0002] Compared to monolithic applications, microservices consist of loosely coupled services, which offer advantages in development agility, scalability, and resilience, and enable the work of different teams to be isolated from each other and services to be reused across different projects.

[0003] The benefit of microservices is that they provide isolated services that are easier for small teams to develop, update, and maintain.

[0004] However, using microservices for different tasks also brings several drawbacks, such as data accessibility, infrastructure overhead, and more complex systems.

[0005] Therefore, there is a need for alternative methods for leveraging microservices. Summary of the Invention

[0006] It should be emphasized that the term "comprises" or "comprising," when used in this specification, is used to specify the presence of the stated features, integers, steps, or components, but does not exclude the presence or addition of one or more other features, integers, steps, components, or groups thereof. As used herein, the singular forms "an," "an," and "described" are also intended to include the plural forms, unless the context clearly indicates otherwise.

[0007] Generally speaking, when referring to an arrangement in this document, it should be understood as a physical product; for example, equipment. A physical product may include one or more parts, such as a control circuit system in the form of one or more controllers, one or more processors, etc.

[0008] Some implementation schemes aim to address, mitigate, or eliminate at least some of the above or other disadvantages.

[0009] According to the first aspect, this is achieved by a method for providing a computer implementation of optimization in a microservice architecture including at least one optimization service, wherein the at least one optimization service includes a management component configured to provide access to the at least one optimization service to a client, a messaging component configured to queue optimization requests, at least one working component configured to solve optimization tasks, and at least one storage component, and wherein the components in the at least one optimization service are operatively connected to each other.

[0010] The method includes: receiving an optimization request submitted from a client by a management component, the optimization request including an optimization task and corresponding optimization data; storing the corresponding optimization data and an associated identifier for the creation of the optimization task in at least one storage component by the management component; sending the optimization task and its associated identifier to a message transmission component by the management component; and monitoring the message transmission component for the received optimization task by at least one working component.

[0011] The method further includes: when the received optimization task is detected by at least one working component: the at least one working component obtains the corresponding optimization data stored in the storage component from at least one storage component through the associated identifier of the optimization task; the at least one working component creates an optimization model for solving the optimization task; the at least one working component solves the optimization task based on the created optimization model; and the at least one working component stores the solution of the optimization task and the associated identifier of the optimization task in at least one storage component.

[0012] In this context, the term "client" should be understood as a piece of computer hardware or software that accesses the optimization service. The optimization service may be available from a server as part of a client-server model of a computer network. The server may reside on another computer system. Clients typically send optimization requests to the optimization service. The term "client" can also be understood as a computer or device running client software or a user using the client software. A client may be different from an end user. A client may be defined by client attributes such as an IP address.

[0013] One advantage of some implementation schemes is that they provide alternative methods for leveraging microservices.

[0014] Another advantage of some implementation schemes is that they ensure the scalability and robustness of the microservice architecture, one or more optimized services, and their components.

[0015] Another advantage of some implementations is that scalability reduces the risk of component (e.g., working component) overload, as additional components can be added to one or more optimization services to match the optimization load, thus meeting changing resource requirements.

[0016] Furthermore, scalability reduces the risk of idle components (e.g., working components) because components can be removed from one or more optimization services to match the optimization load, thus meeting changing resource requirements.

[0017] Another advantage of some implementations is that robustness reduces the risk of component (e.g., working component) failure, because one or more other components can replace the component at risk of failure, for example, by temporarily assuming the workload of said component.

[0018] Further advantages of some implementation schemes are that microservice architectures, one or more of their optimized services and components are easier to develop, update and maintain accordingly.

[0019] In some implementations, the method further includes: determining metadata by a management component based at least on a submitted optimization request, wherein the metadata includes submission data of the optimization request; and storing the determined metadata in the at least one storage component, wherein the at least one storage component is accessible by both the management component and at least one working component.

[0020] Some implementations have the advantage that, since the metadata of the optimization request is determined and stored separately from the optimization data, the size of the metadata is predictable compared to the payload, which may have a variable data size, and provides benefits to the optimization service in terms of storage (e.g., in providing or selecting appropriate or ideal storage solutions for the metadata).

[0021] Another advantage is that, because metadata, such as labeling optimization requests with client usernames and IP addresses, provides a correlation between clients and the optimization requests they submit. Since optimization is performed in a distributed system of components, metadata provides the necessary annotations for managing client optimization requests, such as when updating status, stopping, or providing solutions to optimization tasks to clients that submitted them.

[0022] In some implementations, the method further includes: a management component determining a payload based on a submitted optimization request, wherein the payload includes corresponding optimization data; and the management component storing the determined payload in at least one storage component, wherein the at least one storage component is accessible by both the management component and at least one working component.

[0023] One advantage of some implementations is that, since the payload of the optimization request is determined and separated from the metadata and stored accordingly, the stored payload can also be considered optimization data because the metadata has been separated. Since optimization is performed in a distributed system with stateless components, the separated payload provides input to the working components without requiring further preprocessing.

[0024] In some implementations, at least one storage component includes a database.

[0025] One advantage of some implementations is that a single storage area (i.e., the database) within the optimization service provides the necessary storage for both metadata and payload. Therefore, the optimization service can be further simplified by implementing only a single storage area, enabling even less complex optimization services.

[0026] In some implementations, at least one storage component includes two storage components, which respectively include a database and an object storage area.

[0027] One advantage of some implementations is that two separate storage areas (i.e., a database and an object store) provide data type-specific storage: a database for storing metadata and an object store for storing payloads. The object store is specific to data types that store large amounts of raw data as payloads (i.e., optimized data, data written / read data, computational data), and is particularly effective for storing large amounts of data that do not require (partially) updating and modification (e.g., large binary datasets and binary large objects (BLOBs)). A BLOB is a collection of binary data, such as an image or other multimedia objects stored as a single entity in a database management system.

[0028] In some implementations, the database is configured to store metadata or metadata and payload for optimization requests.

[0029] One advantage of some implementations is that the database provides storage solely for metadata, thus reducing the database size. Metadata is predictable in size and is typically smaller than the payload, making the database less complex and smaller because it is dedicated solely to metadata. Both SQL and NoSQL databases can be used to store metadata. Another advantage of storing only metadata is that it offers simpler design, easier expansion, and finer-grained availability control.

[0030] One advantage of some implementation schemes is that the database provides the necessary storage for both metadata and payload, and thus optimization services can be further simplified by implementing only a single storage area dedicated to both metadata and payload, and less complex optimization services can be achieved in terms of components.

[0031] In some implementations, metadata includes data used to label optimization requests.

[0032] One advantage of some implementations is that metadata is used to annotate optimization requests, such as the client's username and IP address, and thus the annotations provide a correlation between the client and the optimization requests submitted by the client.

[0033] In some implementations, the object storage area is configured to store the payload of the optimization request.

[0034] One advantage of some implementations is that object storage is a data type specifically designed for storing large amounts of raw data as a payload (i.e., optimized data), and is particularly effective for storing large amounts of data that do not require (partial) updates (e.g., large binary datasets). Additional advantages of object storage include its scalability and security; that is, the data is known to be protected, so customers of all sizes and industries can use it to store any amount of data. Further advantages include data availability and performance; that is, it is easy to use and organize data, and to configure finely tuned access controls to meet specific requirements. Additionally, unstructured data can be stored within it. Object storage can be storage services such as Microsoft Azure and Amazon S3.

[0035] In some implementations, the payload includes optimized data corresponding to the optimization request.

[0036] One advantage of some implementation schemes is that the identified and isolated payloads provide input to the working components without requiring further preprocessing of the working components.

[0037] In some implementations, the method further includes updating the state of an optimization request in at least one storage component by the working component.

[0038] One advantage of some implementation schemes is that the management component, and consequently the client, is provided with accurate data about the current state of the optimization request.

[0039] In some implementations, the method further includes: a client querying the status of an optimization request from a management component; and the client receiving a notification from the management component indicating the status of an optimization request obtained from at least one storage component.

[0040] Optimization requests can have a general lifecycle, transitioning from one state to another. Optimization requests can transition between terminal and non-terminal states. Examples of terminal states are invalid, stopped, critical, and optimized, where these states are final and can no longer transition to another state. Examples of non-terminal states are queued, erroneous, and loaded, where these states are non-final and can still transition to another non-final or final state. States can be communicated to clients by the management component. Communicating states to clients ensures feedback and additionally ensures greater system robustness, especially in the event of unexpected errors.

[0041] One advantage of some implementation schemes is that, based on requests from clients, the current state of the optimization request is provided to the management component and subsequently to the client.

[0042] In some implementations, the method further includes: the management component providing the client with the stored solution of the optimization task having a completed status based on a request from the client.

[0043] One advantage of some implementations is that the solution is provided to the client when the solution is complete and the state has been set to complete in at least one storage component.

[0044] In some implementations, the method further includes: the management component stopping the service of an optimization task with an incomplete state based on a request from the client.

[0045] One advantage of some implementations is that the client has the ability to stop the optimization task being served (i.e., before it is completed) and thus release resources in the optimization service.

[0046] In some implementations, at least one optimization service is configured to solve the optimization problem.

[0047] One advantage of some implementation schemes is that the optimization service provides a framework for an optimization problem, which achieves efficiency in a microservice architecture.

[0048] In some implementations, at least one optimization service includes at least two working components, wherein the at least two working components are identical instances and are configured to create the same optimization model corresponding to an optimization problem.

[0049] One advantage of some implementation schemes is that working components share a common framework for the same optimization problem, which enables the scalability and efficiency of optimization services in a microservice architecture.

[0050] In some implementations, the working components include general parts and optimization-specific parts.

[0051] The advantage of some implementation schemes is that the working components can share common parts to some extent, thereby achieving scalability, while still being configurable to create optimization models corresponding to specific optimization problems.

[0052] In some implementations, at least one component in the optimization service is a stateless component. Working components can be stateless. When a component is stateless, the optimization service server may not store any state about the client session. Instead, session data may be stored on the client and passed to the optimization service server as needed. That is, session data is stored locally on the client when the internet connection is unavailable, and uploaded and replicated in the cloud when the connection becomes available or when a request for session data is received. The client can be an end-user device.

[0053] One advantage of some implementation schemes is that they provide a lightweight approach, where components can be started and stopped quickly.

[0054] In some implementations, optimization tasks are submitted by the client to at least one optimization service in a self-organizing manner.

[0055] One advantage of some implementation schemes is that they can accommodate varying and optimized request submission rates.

[0056] In some implementations, the optimization task includes at least one optimization criterion.

[0057] Some implementation schemes have the advantage of being able to accomplish optimization tasks and provide solutions accordingly.

[0058] In some implementations, the architecture includes decision support systems and / or optimization systems, each utilizing cloud infrastructure.

[0059] One advantage of some implementation schemes is that cloud infrastructure provides serverless computing, which enables optimized workload scalability and deployment.

[0060] The second aspect is a computer program product comprising a non-transitory computer-readable medium having thereon a computer program including program instructions. The computer program can be loaded into a data processing unit and configured to cause execution of the method according to the first aspect when the computer program is run by the data processing unit.

[0061] The third aspect is a microservice architecture for providing optimization, the microservice architecture including at least one optimization service, wherein the at least one optimization service includes a management component configured to provide clients with access to the at least one optimization service, a messaging component configured to queue optimization requests, at least one working component configured to solve optimization tasks, and at least one storage component, and wherein the components in the at least one optimization service are operatively interconnected with each other.

[0062] The architecture includes a memory containing executable instructions; one or more processors configured to communicate with the memory, wherein the one or more processors are configured to cause: a management component to receive an optimization request submitted from a client, the optimization request including an optimization task and corresponding optimization data; the management component to store the corresponding optimization data and an associated identifier for the creation of the optimization task in at least one storage component; the management component to send the optimization task and its associated identifier to a messaging component; and at least one working component to monitor the messaging component for the received optimization task.

[0063] One or more processors are further configured to cause: upon detection of a received optimization task by at least one working component: the at least one working component obtains the corresponding optimization data stored in the storage component from at least one storage component via the associated identifier of the optimization task; the at least one working component creates an optimization model for solving the optimization task; the at least one working component solves the optimization task based on the created optimization model; and the at least one working component stores the solution of the optimization task and the associated identifier of the optimization task in the at least one storage component.

[0064] One advantage of some implementation schemes is that they provide alternative methods for leveraging microservices.

[0065] Another advantage of some implementation schemes is that they ensure the scalability and robustness of the microservice architecture, one or more optimized services, and their components.

[0066] Another advantage of some implementations is that scalability reduces the risk of component (e.g., working component) overload, as additional components can be added to one or more optimization services to match the optimization load, thus meeting changing resource requirements.

[0067] Furthermore, scalability reduces the risk of idle components (e.g., working components) because components can be removed from one or more optimization services to match the optimization load, thus meeting changing resource requirements.

[0068] Another advantage of some implementations is that robustness reduces the risk of component (e.g., working component) failure, because one or more other components can replace the component at risk of failure, for example, by temporarily assuming the workload of said component.

[0069] Further advantages of some implementation schemes are that microservice architectures, one or more of their optimized services and components are easier to develop, update and maintain accordingly.

[0070] In some implementations, one or more processors are further configured to cause: a management component to determine metadata based at least on a submitted optimization request, wherein the metadata includes submission data of the optimization request; and the management component to store the determined metadata in the at least one storage component, wherein the at least one storage component is accessible by both the management component and at least one working component.

[0071] Some implementations have the advantage that, since the metadata of the optimization request is determined and stored separately from the optimization data, the size of the metadata is predictable compared to the payload, which may have a variable data size, and provides benefits to the optimization service in terms of storage (e.g., in providing or selecting appropriate or ideal storage solutions for the metadata).

[0072] Another advantage is that, because metadata, such as labeling optimization requests with client usernames and IP addresses, provides a correlation between clients and the optimization requests they submit. Since optimization is performed in a distributed system of components, metadata provides the necessary annotations for managing client optimization requests, such as when updating status, stopping, or providing solutions to optimization tasks to clients that submitted them.

[0073] In some implementations, one or more processors are further configured to cause: a management component to determine a payload based on a submitted optimization request, wherein the payload includes corresponding optimization data; and the management component to store the determined payload in at least one storage component, wherein the at least one storage component is accessible by both the management component and at least one working component.

[0074] One advantage of some implementations is that, since the payload of the optimization request is determined and separated from the metadata and stored accordingly, the stored payload can also be considered optimization data because the metadata has been separated. Since optimization is performed in a distributed system with stateless components, the separated payload provides input to the working components without requiring further preprocessing.

[0075] In some implementations, at least one storage component includes a database.

[0076] One advantage of some implementations is that a single storage area (i.e., the database) within the optimization service provides the necessary storage for both metadata and payload. Therefore, the optimization service can be further simplified by implementing only a single storage area, enabling even less complex optimization services.

[0077] In some implementations, at least one storage component includes two storage components, which respectively include a database and an object storage area.

[0078] One advantage of some implementations is that two separate storage areas (i.e., a database and an object store) provide data type-specific storage areas: a database for storing metadata and an object store for storing payloads. The object store is specific to the data type of storing large amounts of raw data as payloads (i.e., optimized data) and is particularly effective for storing large amounts of data that do not need to be updated (partially) (e.g., large binary datasets).

[0079] In some implementations, the database is configured to store metadata or metadata and payload for optimization requests.

[0080] One advantage of some implementations is that the database provides storage only for metadata, and thus the database size can be reduced, since metadata is predictable in size and is usually smaller than the payload. Therefore, the database is less complex and smaller in size because it is dedicated solely to metadata.

[0081] One advantage of some implementation schemes is that the database provides the necessary storage for both metadata and payload, and thus optimization services can be further simplified by implementing only a single storage area dedicated to both metadata and payload, and less complex optimization services can be achieved in terms of components.

[0082] In some implementations, metadata includes data used to label optimization requests.

[0083] One advantage of some implementations is that metadata is used to annotate optimization requests, such as the client's username and IP address, and thus the annotations provide a correlation between the client and the optimization requests submitted by the client.

[0084] In some implementations, the object storage area is configured to store the payload of the optimization request.

[0085] One advantage of some implementations is that the object storage area is a data type specific to storing large amounts of raw data as payloads (i.e., optimized data), and is particularly effective for storing large amounts of data that do not need to be updated (partially) (e.g., large binary datasets).

[0086] In some implementations, the payload includes optimized data corresponding to the optimization request.

[0087] One advantage of some implementation schemes is that the identified and isolated payloads provide input to the working components without requiring further preprocessing of the working components.

[0088] In some implementations, one or more processors are further configured to cause the working component to update the state of the optimization request in at least one storage component.

[0089] One advantage of some implementation schemes is that the management component, and consequently the client, is provided with accurate data about the current state of the optimization request.

[0090] In some implementations, one or more processors are further configured to cause: a client to query the status of an optimization request from a management component; and a client to receive from the management component a notification indicating the status of an optimization request obtained from at least one storage component.

[0091] One advantage of some implementation schemes is that, based on requests from clients, the current state of the optimization request is provided to the management component and subsequently to the client.

[0092] In some implementations, one or more processors are further configured to cause the management component to provide the client with the stored solution of the optimization task having a completed status, in response to a request from the client.

[0093] One advantage of some implementations is that the solution is provided to the client when the solution is complete and the state has been set to complete in at least one storage component.

[0094] In some implementations, one or more processors are further configured to cause the management component to stop servicing optimization tasks with incomplete status based on requests from clients.

[0095] One advantage of some implementations is that the client has the ability to stop the optimization task being served (i.e., before it is completed) and thus release resources in the optimization service.

[0096] In some implementations, at least one optimization service (310) is configured to solve the optimization problem.

[0097] One advantage of some implementation schemes is that the optimization service provides a framework for an optimization problem, which achieves efficiency in a microservice architecture.

[0098] In some implementations, at least one optimization service includes at least two working components, wherein the at least two working components are identical instances and are configured to create the same optimization model corresponding to an optimization problem.

[0099] One advantage of some implementation schemes is that working components share a common framework for the same optimization problem, which enables the scalability and efficiency of optimization services in a microservice architecture.

[0100] In some implementations, the working components include general parts and optimization-specific parts.

[0101] One advantage of some implementation schemes is that working components can share common, general parts to some extent, thus achieving scalability, while still being configurable to create optimization models corresponding to specific optimization problems. Optimization models can include mathematical models and / or data structures for running the optimization. These models can handle various classes of mathematical optimization, such as linear programming, mixed-integer programming, nonlinear optimization, constrained optimization, etc., and can be used in various fields, such as critical path analysis or project planning, layout design (i.e., designing the layout of equipment in a factory or components on a computer chip to reduce manufacturing time), network optimization, resource allocation problems, facility location, assignment problems, etc.

[0102] In some implementations, at least one component in the optimization service is a stateless component.

[0103] One advantage of some implementation schemes is that they provide a lightweight approach, where components can be started and stopped quickly.

[0104] In some implementations, optimization tasks are submitted by the client to at least one optimization service in a self-organizing manner.

[0105] One advantage of some implementation schemes is that they can accommodate varying and optimized request submission rates.

[0106] In some implementations, the optimization task includes at least one optimization criterion.

[0107] Some implementation schemes have the advantage of being able to accomplish optimization tasks and provide solutions accordingly.

[0108] In some implementations, the architecture includes decision support systems and / or optimization systems, each utilizing cloud infrastructure.

[0109] One advantage of some implementation schemes is that cloud infrastructure provides serverless computing, which enables optimized workload scalability and deployment. Attached Figure Description

[0110] Further objects, features, and advantages will become apparent from the following detailed description of the embodiments with reference to the accompanying drawings. The drawings are not necessarily drawn to scale, but rather focus on illustrating exemplary embodiments.

[0111] Figure 1 A flowchart illustrating exemplary method steps according to some implementation schemes;

[0112] Figure 2a A sequence diagram illustrating exemplary sequence steps according to some embodiments;

[0113] Figure 2b A sequence diagram illustrating exemplary sequence steps according to some embodiments;

[0114] Figure 2c A sequence diagram illustrating exemplary sequence steps according to some embodiments;

[0115] Figure 2d A sequence diagram illustrating exemplary sequence steps according to some embodiments;

[0116] Figure 2e A sequence diagram illustrating exemplary sequence steps according to some embodiments;

[0117] Figure 2f A state diagram illustrating exemplary states according to some implementation schemes;

[0118] Figure 3A schematic block diagram illustrating an exemplary architecture according to some implementation schemes;

[0119] Figure 4 A schematic block diagram illustrating an exemplary arrangement according to some embodiments; and

[0120] Figure 5 This is a schematic diagram illustrating an exemplary computer-readable medium according to some embodiments. Detailed Implementation

[0121] As mentioned above, it should be emphasized that the term "comprises" or "comprising," when used in this specification, is used to specify the presence of the stated features, integers, steps, or components, but does not exclude the presence or addition of one or more other features, integers, steps, components, or groups thereof. As used herein, the singular forms "an," "an," and "described" are also intended to include the plural forms, unless the context clearly indicates otherwise.

[0122] The embodiments of this disclosure will be described and exemplified more fully below with reference to the accompanying drawings. However, the solutions disclosed herein can be implemented in many different forms and should not be construed as being limited to the embodiments set forth herein.

[0123] As mentioned above, microservices bring several drawbacks, such as data accessibility, infrastructure overhead, and more complex systems.

[0124] Some implementation schemes aim to address, mitigate, or eliminate at least some of the above or other disadvantages.

[0125] The following sections will present implementation schemes describing alternative approaches to leveraging microservices.

[0126] More specifically, the presented implementation plan describes techniques related to optimization in microservice architecture.

[0127] Figure 1 This is a flowchart illustrating method steps of an exemplary optimization method 100 according to some embodiments. Optimization method 100 is for providing optimization in a microservice architecture including at least one optimization service, wherein the at least one optimization service includes a management component configured to provide clients with access to the at least one optimization service, a messaging component configured to queue optimization requests, at least one working component configured to solve optimization tasks, and at least one storage component, and wherein the components in the at least one optimization service are operatively interconnected with each other. Therefore, optimization method 100 can be, for example, by… Figure 3 Architecture 300 and / or Figure 4 Arrangement 400 and / or Figure 5 The computer program product 500 executes.

[0128] Optimization method 100 includes the following steps.

[0129] In step 101, the management component receives an optimization request submitted from the client, the optimization request including the optimization task and the corresponding optimization data.

[0130] Alternatively or additionally, receiving an optimization request may include receiving and / or accepting the optimization request.

[0131] Alternatively or additionally, optimization requests may be submitted by a client to at least one optimization service in a self-organizing manner, wherein the self-organizing manner includes user-initiated optimizations in contrast to automatically running scheduled jobs.

[0132] In step 102, in some embodiments, the management component determines metadata based at least on the submitted optimization request. The metadata includes the submission data of the optimization request.

[0133] For example, the identified metadata may include username, date, and time.

[0134] Alternatively or additionally, metadata includes data for labeling optimization requests, wherein the labeling includes defining the optimization request and identifying the client, for example, by the username and IP address of the client that submitted the optimization request.

[0135] In step 103, in some embodiments, the management component determines the payload based on the submitted optimization request. The payload includes the corresponding optimization data.

[0136] In step 104, the management component stores the corresponding optimization data and the associated identifier of the optimization task creation in at least one storage component.

[0137] In step 104a, in some embodiments, the determined metadata is stored by the management component in at least one storage component, wherein the at least one storage component is accessible by both the management component and optionally at least one working component.

[0138] In step 104b, in some embodiments, the determined payload is stored by the management component in at least one storage component, wherein the at least one storage component is accessible by both the management component and at least one working component.

[0139] In step 105, the management component sends the optimization task and its associated identifier to the messaging component.

[0140] Alternatively or additionally, sending optimization tasks and associated identifiers may include placing optimization tasks and associated identifiers in a queue within a messaging component.

[0141] In step 106, at least one working component monitors the transmission of the received optimization task message.

[0142] In step 107, the received optimization task is detected by at least one working component, thereby the method continues to step 108 (the yes-path from step 107), or thereby the method returns to step 106 (the no-path from step 107).

[0143] In step 108, at least one working component obtains the corresponding optimization data stored from at least one storage component through the associated identifier of the optimization task.

[0144] Alternatively or additionally, at least one working component may extract additional optimization data, for example, based on information in the payload, to formulate the optimization problem.

[0145] For example, the corresponding optimized data can provide one or more references for the other data to be extracted.

[0146] For example, at least one working component can extract additional data from an application programming interface (API), database, or other storage system to optimize the task.

[0147] In step 109, an optimization model for solving the optimization task is created by at least one working component.

[0148] Alternatively or additionally, the optimization model may include a mathematical model and / or data structure for performing the optimization.

[0149] For example, optimization models may include algorithms that find the best or good results for a decision problem.

[0150] For example, the creation of an optimization model may include specifying a mathematical model for solving, for example, in step 110, wherein the solution may be performed by a commercial or open-source solver or heuristic.

[0151] In step 110, at least one working component solves the optimization task based on the created optimization model.

[0152] For example, at least one working component solves the optimization task by applying an algorithm to the created optimization model.

[0153] In step 111, at least one working component stores the solution to the optimization task and the associated identifier of the optimization task in at least one storage component.

[0154] Figure 2aThis is a sequence diagram illustrating some sequence steps of an exemplary optimization sequence 200a according to some embodiments. Optimization sequence 200a is for providing optimization in a microservice architecture including at least one optimization service, wherein the at least one optimization service includes a management component configured to provide clients with access to the at least one optimization service, a messaging component configured to queue optimization requests, at least one working component configured to solve optimization tasks, and at least one storage component, and wherein the components in the at least one optimization service are operatively interconnected with each other. Therefore, optimization sequence 200a can be, for example, by… Figure 3 Architecture 300 and / or Figure 4 Arrangement 400 and / or Figure 5 The computer program product 500 executes.

[0155] Optimizing sequence 200a includes the following steps:

[0156] In corresponding Figure 1 In step 201 of step 101, the management component (Manager) receives an optimization request submitted from the client, the optimization request including optimization tasks and corresponding optimization data.

[0157] For example, the corresponding optimized data (i.e., the payload) can have various formats and sizes, depending on the use case. For instance, it can be a reference to existing data (such as scenario identifiers), an optimized user configuration, the entire instance used for optimization, or a combination of all three. Each option has different advantages, disadvantages, and trade-offs, such as payload size, client availability, and accessibility of internal identifiers.

[0158] In step 202-1, the management component (manager) creates an associated identifier for the optimization task. The associated identifier includes identification data for the optimization request.

[0159] For example, the identifiers created may include globally unique identifiers.

[0160] In corresponding Figure 1 In step 202-2 of step 102, the management component (manager) determines the metadata based at least on the submitted optimization request. The metadata includes the submission data of the optimization request.

[0161] Alternatively or additionally (not shown), corresponding to Figure 3 In step 103, the management component (manager) determines the payload based on the submitted optimization request. The payload includes the corresponding optimization data.

[0162] In corresponding Figure 1In step 203 of step 104a, the determined metadata is stored by the management component (manager) in at least one storage component (database), wherein the database is accessible by both the management component (manager) and optionally at least one working component (worker).

[0163] In corresponding Figure 1 In step 204 of step 104b, the determined payload is stored by the management component (manager) in at least one storage component (storage area) (object storage area), wherein the at least one storage component (storage area) is accessible by both the management component (manager) and at least one working component (worker).

[0164] In corresponding Figure 1 In step 205 of step 105, the management component (manager) sends the optimization task and the associated identifier of the optimization task to the message delivery component (queue).

[0165] Alternatively or additionally, when optimization tasks are queued, the optimization task is acknowledged by the client, and an associated identifier is returned to the client so that the client can later use the associated identifier to reference its optimization task.

[0166] Figure 2b This is a sequence diagram illustrating some sequence steps of an exemplary optimization sequence 200b according to some embodiments. Optimization sequence 200b is used to provide optimization in a microservice architecture including at least one optimization service, wherein the at least one optimization service includes a management component configured to provide clients with access to the at least one optimization service, a messaging component configured to queue optimization requests, at least one working component configured to solve optimization tasks, and at least one storage component, and wherein the components in the at least one optimization service are operatively interconnected with each other. Therefore, optimization sequence 200b can be, for example, by… Figure 3 Architecture 300 and / or Figure 4 Arrangement 400 and / or Figure 5 The computer program product 500 executes.

[0167] Optimizing sequence 200b includes the following steps:

[0168] In corresponding Figure 1 In step 207 of steps 106 and 107, at least one working component (worker) monitors the message transmission component (queuer) for the received optimization task, and when the received optimization task is detected, the working component (worker) receives the associated identifier of the received optimization task.

[0169] Alternatively or additionally, worker components (workers) are responsible for running optimizations and subscribing to queues in a messaging component (queuer), while a management component (manager) populates the messaging component with new optimization requests (also called messages). If multiple worker components (workers) (i.e., instances of worker components) are running, the messaging component (queuer) selects worker components based on a load balancing mechanism (e.g., round-robin).

[0170] In corresponding Figure 1 In step 208 of step 108, at least one working component (worker) obtains (i.e. retrieves and loads) the corresponding optimization data stored from at least one storage component (storage area) (object storage area) through the associated identifier of the optimization task.

[0171] Alternatively or additionally, the working component (worker) may load additional data from an API, database, or other storage system to optimize the task.

[0172] In corresponding Figure 1 In step 209 of step 109, an optimization model for solving the optimization task is created by at least one working component (worker).

[0173] Alternatively or additionally, when the corresponding stored optimization data is obtained and the optimization model used to solve the optimization task is created, the acquisition of the data and the creation of the optimization model are notified or published to the client.

[0174] In step 210, corresponding to step 110, at least one working component (worker) solves the optimization task based on the created optimization model.

[0175] For example, optimization data is transformed, which may include building a mathematical model within a programming framework, a solver-specific library, or a data structure used for (meta)heuristics.

[0176] In step 211, corresponding to step 111, at least one working component (worker) stores the solution to the optimization task and the associated identifier of the optimization task in at least one storage component (storage area) (object storage area).

[0177] Alternatively or additionally, when the solution to the optimization task and the associated identifier of the optimization task are stored, the stored solution and new status are notified or published to the management component (manager).

[0178] Figure 2cThis is a sequence diagram illustrating some sequence steps of an exemplary optimization sequence 200c according to some embodiments. Optimization sequence 200c is used to provide optimization in a microservice architecture including at least one optimization service, wherein the at least one optimization service includes a management component configured to provide clients with access to the at least one optimization service, a messaging component configured to queue optimization requests, at least one working component configured to solve optimization tasks, and at least one storage component, and wherein the components in the at least one optimization service are operatively interconnected with each other. Therefore, optimization sequence 200c can be, for example, by… Figure 3 Architecture 300 and / or Figure 4 Arrangement 400 and / or Figure 5 The computer program product 500 executes.

[0179] Optimizing sequence 200c includes the following steps:

[0180] In step 212, when the client initiates the provision of an associated identifier for the optimization task (e.g., by polling the management component (manager) through the client), the management component (manager) checks the status of the optimization task by querying at least one storage component (database) for the status of the optimization task.

[0181] Alternatively or additionally, when the solution to the optimization task and the associated identifier of the optimization task are stored in at least one storage component (storage area) (object storage area), this can be verified by the client, enabling the client to retrieve (e.g., download) the stored solution from at least one storage component.

[0182] For example, clients can use different methods (long polling or asynchronous) to check the status of a request. Long polling typically blocks the client (e.g., a website) and displays an indication that optimization is in progress, while asynchronous means the user checks for updates.

[0183] Alternatively or additionally, optional messages (including the date and time when the status was set) can be added to the status.

[0184] In step 213, when the optimization task is in the 'optimized' state, the management component (manager) retrieves (e.g., extracts) the solution from at least one storage component (storage area) (object storage area).

[0185] In step 214, the retrieved solution is provided to the client by the management component (manager).

[0186] Alternatively or additionally, instead of providing the retrieved solution to the client, a URL of the solution, comprising the original data in at least one storage component (storage area) (object storage area), is provided (e.g., by creating a request-specific access token and providing it along with the URL), so that only the client has the information to access and download the stored solution.

[0187] Figure 2d This is a sequence diagram illustrating some sequence steps of an exemplary optimization sequence 200d according to some embodiments. Optimization sequence 200d is for providing optimization in a microservice architecture including at least one optimization service, wherein the at least one optimization service includes a management component configured to provide clients with access to the at least one optimization service, a messaging component configured to queue optimization requests, at least one working component configured to solve optimization tasks, and at least one storage component, and wherein the components in the at least one optimization service are operatively interconnected with each other. Therefore, optimization sequence 200d can be, for example, by… Figure 3 Architecture 300 and / or Figure 4 Arrangement 400 and / or Figure 5 The computer program product 500 executes.

[0188] Optimizing sequence 200d includes the following steps:

[0189] In step 215, when the client initiates the provision of the associated identifier for the optimization task, the management component (manager) checks the status of the optimization task by querying at least one storage component (database) for the status of the optimization task.

[0190] In step 216, the status of the optimization task is determined and an acknowledgment including the new status is sent to the client.

[0191] Alternatively, the client can check the current status of the optimization task through the management component (manager).

[0192] Figure 2e This is a sequence diagram illustrating some sequence steps of an exemplary optimization sequence 200e according to some embodiments. Optimization sequence 200e is for providing optimization in a microservice architecture including at least one optimization service, wherein the at least one optimization service includes a management component configured to provide clients with access to the at least one optimization service, a messaging component configured to queue optimization requests, at least one working component configured to solve optimization tasks, and at least one storage component, and wherein the components in the at least one optimization service are operatively interconnected with each other. Therefore, optimization sequence 200e can be, for example, by… Figure 3 Architecture 300 and / or Figure 4 Arrangement 400 and / or Figure 5 The computer program product 500 executes.

[0193] Optimizing sequence 200e includes the following steps:

[0194] In step 217, when the client initiates the provision of the associated identifier for the optimization task, the management component (manager) checks the status of the optimization task by querying at least one storage component (database) for the status of the optimization task.

[0195] In step 218, when the optimization task is not in a terminal state, such as 'invalid', 'stopped', 'critical', or 'optimized', the management component (manager) stops processing the optimization task.

[0196] Alternatively or additionally, the client can stop the optimization task by checking the current status of the optimization status through the management component (manager).

[0197] Figure 2f State diagrams are shown illustrating some states of exemplary optimization sequences 200a, 200b, 200c, 200d, and 200e according to some implementation schemes. State diagram 200f shows the states of the optimization request and their transitions. State diagram 200f illustrates the lifecycle of the optimization request, which is visualized as a state machine. The states presented are the minimum version, and more detailed states can be introduced if required for a specific use case.

[0198] Examples of terminal states are invalid, stopped, critical, and optimized, where these states are final and can no longer transition to another state.

[0199] Examples of non-terminal states are queued, erroneous, and loaded, where these states are not final and can still transition to another non-final or final state.

[0200] When an optimization request is successfully submitted, its status is set to "Queued" by the management component, indicating that the optimization request will be picked up by the working component. Once the optimization request is picked up by the working component, data is loaded from its source (e.g., directly from input data, other APIs, a database, or a data repository) and prepared for optimization. This may include, for example, building a mathematical model in the framework or initializing a heuristic. The status of the optimization request is then set to "Loaded" by the working component. Therefore, if any problem occurs while loading the data, the status can change back to "Error" and "Queued". Once optimization is complete and the solution has been stored, the status of the optimization request is set to "Optimized", and the management component can return the stored solution to the client upon request. If the client stops requesting, the non-terminal status is "Stopped" and no further state changes are performed.

[0201] When a working component identifies invalid input data (e.g., incorrect format), the status is set to invalid to indicate a user-specific error. Expected or unexpected errors can occur during optimization requests. Those errors lead to the following statuses. Depending on the use case and / or exception, the system may attempt to re-queue the request after a certain period, waiting until the error is corrected. However, if no solution is found after several attempts, the request eventually reaches a critical state, indicating that the optimization service will not take further action.

[0202] In summary, if at least one worker is available and the solution methods are limited, optimization requests result in one of the following terminal states: optimized, stopped, invalid, or critical. For the client, relying on the optimization service to terminate in one of these states is crucial for proper operation. Passing the state to the client ensures feedback and, additionally, makes the system more robust, even in the event of unexpected errors.

[0203] Figure 3 This is a schematic block diagram illustrating components of an exemplary microservice architecture 300 according to some implementation schemes. The microservice architecture 300 is for providing optimization and includes at least one optimization service 310. The at least one optimization service 310 includes a management component 311 configured to provide access to the at least one optimization service 310 to a client 1, a messaging component 312 configured to queue optimization requests, at least one worker component 313 configured to solve optimization tasks, and at least one storage component 314. The components 311, 312, 313, and 314 in the at least one optimization service 310 are operatively interconnected. Therefore, the microservice architecture 300 can, for example, perform… Figure 1 Methods and steps Figures 2a to 2e The sequence of steps for any of them, and settings for any optimization tasks submitted to the microservices architecture 300. Figure 2f The state.

[0204] The microservices architecture 300 is used to provide optimizations, where optimizations may include mathematical optimizations as web services for solving specific optimization problems.

[0205] Microservices architecture 300 can be called Optimization as a Service (OaaS) and reflects the microservices approach to a single optimized use case that can be utilized from several applications.

[0206] Optimizations as described herein may include software services or web interfaces that can be delivered quickly to consumers.

[0207] The components described herein include independent software processes that can be developed and tested independently, are loosely coupled, and interact via network communication and / or shared storage.

[0208] For example, components can be developed and tested independently and in different programming languages ​​and platforms.

[0209] Stateless components as described herein include components that do not retain their own state, but are merely configured to perform functions and return results, thereby achieving memory savings and a clean, simple implementation, as well as components with the same working function.

[0210] Microservice architecture 300 is based on:

[0211] • At least one optimized service includes a stateless component;

[0212] • At least one optimization service 310 solves a specific optimization use case; and

[0213] • Optimize in a self-organizing manner.

[0214] Service Optimization 310 requires the following components:

[0215] • Management component 311, the manager, is configured to provide external client access to the optimization service.

[0216] • Working component 313, the worker, which is configured to solve one mathematical optimization at a time.

[0217] • Message passing component 312, a message passing system, is configured to queue optimization requests for work components to allow asynchronous request processing. For example, a management component can add an optimization request to a queue when an optimization is triggered and responds immediately again, and work components subscribe to the queue to receive incoming optimization requests and operate on potentially long-running tasks.

[0218] • Storage component 314, a database, is configured to store metadata for optimization requests, status changes, identifiers, or commit information, and only management components read from and write to the storage component.

[0219] • In some implementations, storage component 315 (not shown) (object storage area) configured to store raw data required for optimization includes data provided when an optimization request is submitted, debugging or intermediate data of the working component, and the final optimization solution, wherein both the management component and the working component read from and write to the storage component.

[0220] Figure 3The diagram illustrates the interaction between clients 1-n and optimization services 310 and 320 that solve different optimization problems. These optimization services 310 and 320 can potentially be developed by different teams in different locations using different programming languages. Clients 1-n, such as web interfaces or other services, allow users to select optimization data, adjust parameters, or define optimization scenarios. Each optimization service 310 and 320 can be specifically built for an optimization problem, but the microservice architecture 300 is flexible enough to allow clients 1-n to access one or more optimization services based on their scope.

[0221] like Figure 3 As shown, client 301 interfaces with management component 311 of optimization service 310. Management component 311 is responsible for triggering optimizations, providing their status and solutions, and stopping optimizations. Management component 311 does not solve the actual optimization to avoid blocking other optimizations. Instead, management component queues optimization requests in a queue (i.e., message passing component 312), allowing working component 313 to focus on solving optimizations asynchronously. Working component 313 includes a common part for sharing functionality across different use cases and an optimization-specific part for implementing specific models and solution methods. Furthermore, working component 313 is responsible for updating the status of requests and storing their solutions.

[0222] Therefore, the microservice architecture 300 includes at least one optimization service 310, wherein the at least one optimization service includes a management component 311 configured to provide access to the at least one optimization service to a client 301, a messaging component 312 configured to queue optimization requests, at least one working component 313 configured to solve optimization tasks, and at least one storage component 314, and wherein the components 311, 312, 313, and 314 in the at least one optimization service 310 are operatively interconnected with each other.

[0223] The microservice architecture 300 also includes a memory containing executable instructions; one or more processors configured to communicate with the memory, and wherein one or more processors are configured to cause: a management component 311 to receive an optimization request submitted from a client, the optimization request including an optimization task and corresponding optimization data; the management component 311 to store the corresponding optimization data and an associated identifier for the creation of the optimization task in at least one storage component 314; the management component 311 to send the optimization task and its associated identifier to a messaging component 312; and at least one worker component 313 to monitor the messaging component 312 for the received optimization task.

[0224] One or more processors are further configured to cause: upon detection of a received optimization task by at least one working unit 313: the at least one working unit 313 obtains the corresponding optimization data stored in at least one storage unit 314 via the associated identifier of the optimization task; the at least one working unit (313) creates an optimization model for solving the optimization task; the at least one working unit 313 solves the optimization task based on the created optimization model; and the at least one working unit 313 stores the solution of the optimization task and the associated identifier of the optimization task in at least one storage unit 314.

[0225] Therefore, scalable, robust, and manageable small services can be provided because microservice architecture focuses on small distributed components that are easy to test, maintain, scale independently and automatically by small, optimized development teams.

[0226] Figure 4 This is a schematic block diagram illustrating an exemplary microservice deployment 400 according to some implementation schemes. Microservice deployment 400 is used to provide optimization in a microservice architecture including at least one optimization service, wherein the at least one optimization service includes a management component configured to provide clients with access to the at least one optimization service, a messaging component configured to queue optimization requests, at least one working component configured to solve optimization tasks, and at least one storage component, and wherein the components in the at least one optimization service are operatively interconnected with each other. Therefore, microservice deployment 400 can, for example, perform... Figure 1 Methods and steps Figures 2a to 2e The sequence steps of any one of them, and settings for any optimization tasks submitted to the microservice deployment 400. Figure 2f The state.

[0227] Arrangement 400 includes a device control circuitry system (CNTR; e.g., a controller or control module) 420, which may further include (or otherwise associate with; e.g., connected to or connectable to): a receiver 401 (e.g., a receiving circuitry system) configured to receive optimization requests submitted from a client, the optimization requests including optimization tasks and corresponding optimization data; a storage device 404 (e.g., a storage circuitry system) configured to store the corresponding optimization data and an associated identifier for the creation of the optimization task in storage area 430; a transmitter 405 (e.g., a transmitting circuitry system) configured to transmit optimization tasks and associated identifiers of the optimization tasks to a messaging component; and a monitor 406 (e.g., a monitoring circuitry system) configured to monitor the messaging component for the received optimization tasks.

[0228] CNTR 420 may also include (or otherwise associate with; for example, connected to or connectable to) the following: a detector 407 (e.g., a detection circuit system) configured to detect a received optimization task; a acquirer 408 (e.g., an acquirer circuit system) configured to acquire corresponding optimization data stored in storage area 430 via an associated identifier of the optimization task; a creator 409 (e.g., a creator circuit system) configured to create an optimization model for solving the optimization task; a solver 410 (e.g., a solver circuit system) configured to solve the optimization task based on the created optimization model; and a storage device 411 (e.g., a storage circuit system) configured to store the solution of the optimization task and the associated identifier of the optimization task in storage area 430.

[0229] In some implementations, CNTR 420 may also include (or otherwise associate with; for example, connected to or connectable to) a determiner 402 (e.g., a determiner circuitry) configured to determine metadata at least based on a submitted optimization request, wherein the metadata includes submission data of the optimization request.

[0230] In some implementations, CNTR 420 may also include (or otherwise associate with; for example, connected to or connectable to) a determiner 403 (e.g., a determining circuit system) configured to determine a payload based on a submitted optimization request, wherein the payload includes corresponding optimization data.

[0231] Arrangement 400 may also include (or otherwise associate with; for example, connected to or connectable to) storage area 430 (e.g., storage circuitry) configured to store the determined metadata and the determined payload.

[0232] Generally speaking, when referring to an arrangement in this document, it should be understood as a physical product; for example, equipment. A physical product may include one or more parts, such as a control circuit system in the form of one or more controllers, one or more processors, etc.

[0233] The described implementation schemes and their equivalents can be implemented in software or hardware, or a combination thereof. The implementation schemes can be executed by general-purpose circuit systems. Examples of general-purpose circuit systems include digital signal processors (DSPs), central processing units (CPUs), coprocessor units, field-programmable gate arrays (FPGAs), and other programmable hardware. Alternatively or additionally, the implementation schemes can be executed by special-purpose circuit systems, such as application-specific integrated circuits (ASICs). General-purpose and / or special-purpose circuit systems can be associated with or included in devices, such as wireless communication devices.

[0234] Implementation schemes may be manifested within electronic devices including arrangements, circuit systems, and / or logic according to any implementation scheme described herein. Alternatively or additionally, electronic devices may be configured to perform methods according to any implementation scheme described herein.

[0235] According to some implementation schemes, computer program products include computer-readable media, such as physical memory. Figure 5 An exemplary computer-readable medium in the form of physical memory 500 is shown, and it is envisioned that the computer-readable medium can be any computer-readable medium. The computer program product may also include access to a server or cloud service, which includes the computer-readable medium. The computer-readable medium stores thereon a computer program including program instructions. The computer program may be loaded into a data processor (PROC) 520, which may be included, for example, in an electronic device 510. When loaded into a data processing unit, the computer program may be stored in a memory (MEM) 530 associated with or included in the data processing unit. According to some embodiments, the computer program may, when loaded into and executed by the data processing unit, cause, for example, in... Figure 1 and Figures 2a to 2e Any method and / or sequence of execution steps shown or otherwise described herein.

[0236] Generally, all terms used herein will be interpreted according to their common meaning in the relevant technical field, unless a different meaning is explicitly given and / or implied from the context in which they are used.

[0237] Various embodiments have been referenced herein. However, those skilled in the art will recognize that many variations of the described embodiments will still fall within the scope of the claims.

[0238] For example, the method embodiments described herein disclose exemplary methods by means of steps performed in a certain order. However, it should be recognized that these sequences of events may occur in another order without departing from the scope of the claims. Furthermore, some method steps may be performed in parallel, even if they have been described as being performed sequentially. Therefore, the steps of any method disclosed herein need not be performed in the exact disclosed order unless the steps are explicitly described as occurring after or before another step and / or imply that one step must occur after or before another step.

[0239] Similarly, it should be noted that the division of functional blocks into specific units in the description of the implementation scheme is by no means intended to be restrictive. Rather, these partitions are merely examples. A functional block described herein as a single unit may be divided into two or more units. Furthermore, functional blocks described herein as implemented as two or more units may be merged into fewer (e.g., a single) units.

[0240] Any feature of any embodiment disclosed herein may be applied to any other embodiment, where appropriate. Similarly, any advantage of any embodiment may be applied to any other embodiment, and vice versa.

[0241] Therefore, it should be understood that the details of the described embodiments are merely examples for illustrative purposes, and all variations falling within the scope of the claims are intended to be included therein.

Claims

1. A method for providing a computer implementation of optimization in a microservice architecture including at least one optimization service, wherein the at least one optimization service includes a management component configured to provide access to the at least one optimization service to clients, a messaging component configured to queue optimization requests, at least one working component configured to solve optimization tasks, and at least one storage component separate from the messaging component, and wherein the components in the at least one optimization service are operatively interconnected with each other, the method comprising the steps of: The management component receives (101) an optimization request submitted from the client, the optimization request including an optimization task and corresponding optimization data. The management component stores (104) the corresponding optimization data and the associated identifier for the creation of the optimization task in the at least one storage component. The management component sends (105) the optimization task and the associated identifier of the optimization task to the message transmission component. The message transmission component is monitored (106) by the at least one working component for the received optimized task. When the optimized task is received by the at least one working component (107): The corresponding optimization data stored in (108) is obtained by the at least one working component from the at least one storage component through the associated identifier of the optimization task. An optimization model for solving the optimization task is created (109) by the at least one working component. The optimization task (110) is solved by the at least one working component based on the created optimization model; as well as The solution to the optimization task and the associated identifier of the optimization task are stored (111) in the at least one storage component by the at least one working component. The management component determines (102) metadata based at least on the submitted optimization request, wherein the metadata includes the submission data of the optimization request, and The determined metadata is stored (104a) in the at least one storage component by the management component, wherein the at least one storage component is accessible by both the management component and the at least one working component.

2. The method according to claim 1, further comprising the following steps: The management component determines (103) the payload based on the submitted optimization request, wherein the payload includes the corresponding optimization data, and The determined payload is stored (104b) in the at least one storage component by the management component, wherein the at least one storage component is accessible by both the management component and the at least one working component.

3. The method according to any one of claims 1-2, wherein the at least one storage component comprises a database, wherein the database is configured to store metadata or metadata and payload of the optimization request.

4. The method according to any one of claims 1-2, wherein the at least one storage component comprises two storage components, the two storage components respectively comprising a database and an object storage area, and wherein the object storage area is configured to store the payload of the optimization request.

5. The method according to any one of claims 1-2, wherein the metadata includes data for annotating the optimization request.

6. The method of claim 2, wherein the payload comprises optimized data corresponding to the optimization request.

7. The method according to any one of claims 1-2, wherein the architecture includes a decision support system and / or an optimization system, each utilizing cloud infrastructure.

8. The method according to any one of claims 1-2, wherein the at least one working component is a stateless component.

9. The method according to any one of claims 1-2, wherein the client is a piece of computer hardware or software configured to access the optimized service.

10. A computer program product comprising a non-transitory computer-readable medium having thereon a computer program including program instructions, the computer program being loadable into a data processing unit and configured to cause the execution of the method according to any one of claims 1 to 9 when the computer program is run by the data processing unit.

11. A microservice system for providing optimization, the microservice system providing at least one optimization service (310), wherein the at least one optimization service includes a management component (311) configured to provide access to the at least one optimization service to a client (301), a messaging component (312) configured to queue optimization requests, at least one worker component (313) configured to solve optimization tasks, and at least one storage component (314) separate from the messaging component (312), and wherein the components (311, 312, 313, 314) in the at least one optimization service (310) are operatively interconnected with each other, the system further comprising: The memory includes executable instructions; One or more processors configured to communicate with the memory, and wherein the one or more processors are configured to cause: The management component (311) receives an optimization request submitted from the client, the optimization request including an optimization task and corresponding optimization data. The management component (311) stores the corresponding optimization data and the associated identifier for the creation of the optimization task in the at least one storage component. The management component (311) sends the optimization task and its associated identifier to the message transmission component (312). The message transmission component (312) is monitored by the at least one working component (313) for the received optimized task. When the received optimization task is detected by the at least one working component (313): The at least one working component (313) obtains the corresponding optimization data stored in the at least one storage component (314) through the associated identifier of the optimization task. An optimization model for solving the optimization task is created by the at least one working component (313). The optimization task is solved by the at least one working component (313) based on the created optimization model; and The solution to the optimization task and the associated identifier of the optimization task are stored in the at least one storage unit (314) by the at least one working unit (313). The management component determines metadata based at least on the submitted optimization request, wherein the metadata includes the submission data of the optimization request, and The management component stores the determined metadata in the at least one storage component, wherein the at least one storage component is accessible to both the management component and the at least one working component.

Citation Information

Patent Citations

  • Log record processing method, server and storage medium

    CN110175154A

  • Systems and methods implementing an intelligent optimization platform

    US20180336493A1