Event-based orchestration in distributed order orchestration system
First Claim
Patent Images
1. A non-transitory computer-readable medium having instructions stored thereon, when executed by a processor, cause the processor to orchestrate an order using an event-based orchestration framework including a capture layer, a decomposition layer, an orchestration layer, a task layer and an external interface layer, the orchestration comprising:
- at the capture layer;
receiving, at an order capture module, a web order from a customer computer over a network;
creating a source order object from the web order;
at the decomposition layer;
receiving the source order object from the order capture module;
creating a distributed order orchestration (DOO) order object from the source order object, the DOO order object including a plurality of attribute values;
defining a process state and metadata for an orchestration process and storing the process state and metadata in a data table of a database, the process state comprising the DOO order attribute values and a state of the orchestration process that indicates which steps of the orchestration process have been executed, and the metadata comprising one or more steps of the orchestration process and an order of the one or more steps of the orchestration process;
at the orchestration layer;
determining, by an event manager, a step of the orchestration process to execute based on the steps of the orchestration process that have been executed as indicated by the process state and the order of the one or more steps of the orchestration process indicated by the metadata stored in the database;
generating an event based on the determined step of the orchestration process to execute and the metadata, the event comprising instructions to execute a task that corresponds to the determined step of the orchestration process to execute, and an event type, the task including a plurality of subtasks;
publishing the event across an event messaging system;
at the task layer;
retrieving, by a task layer service decoupled from the event manager, the published event from the messaging system;
determining whether the task layer service subscribes to the event type of the published event;
when the task layer service subscribes to the event type;
executing each of the subtasks,generating at least one task message to an external system,processing at least one task result message from the external system, andupdating the process state stored in the database, after executing each subtask and after processing the task result message, including updating at least one DOO order attribute value;
at the external interface layer;
sending the task message to the external system over the network; and
receiving the task result message from the external system over the network.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed order orchestration system is provided that includes an event manager configured to generate and publish a set of events based on a process state and metadata stored in a database. A set of subscribers can consume the set of events, and each subscriber can execute a task based on the consumed event.
153 Citations
20 Claims
-
1. A non-transitory computer-readable medium having instructions stored thereon, when executed by a processor, cause the processor to orchestrate an order using an event-based orchestration framework including a capture layer, a decomposition layer, an orchestration layer, a task layer and an external interface layer, the orchestration comprising:
-
at the capture layer; receiving, at an order capture module, a web order from a customer computer over a network; creating a source order object from the web order; at the decomposition layer; receiving the source order object from the order capture module; creating a distributed order orchestration (DOO) order object from the source order object, the DOO order object including a plurality of attribute values; defining a process state and metadata for an orchestration process and storing the process state and metadata in a data table of a database, the process state comprising the DOO order attribute values and a state of the orchestration process that indicates which steps of the orchestration process have been executed, and the metadata comprising one or more steps of the orchestration process and an order of the one or more steps of the orchestration process; at the orchestration layer; determining, by an event manager, a step of the orchestration process to execute based on the steps of the orchestration process that have been executed as indicated by the process state and the order of the one or more steps of the orchestration process indicated by the metadata stored in the database; generating an event based on the determined step of the orchestration process to execute and the metadata, the event comprising instructions to execute a task that corresponds to the determined step of the orchestration process to execute, and an event type, the task including a plurality of subtasks; publishing the event across an event messaging system; at the task layer; retrieving, by a task layer service decoupled from the event manager, the published event from the messaging system; determining whether the task layer service subscribes to the event type of the published event; when the task layer service subscribes to the event type; executing each of the subtasks, generating at least one task message to an external system, processing at least one task result message from the external system, and updating the process state stored in the database, after executing each subtask and after processing the task result message, including updating at least one DOO order attribute value; at the external interface layer; sending the task message to the external system over the network; and receiving the task result message from the external system over the network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer-implemented method for orchestrating an order using an event-based orchestration framework including a capture layer, a decomposition layer, an orchestration layer, a task layer and an external interface layer, the computer-implemented method comprising:
-
at the capture layer; receiving, at an order capture module, a web order from a customer computer over a network; creating a source order object from the web order; at the decomposition layer; receiving the source order object from the order capture module; creating a distributed order orchestration (DOO) order object from the source order object, the DOO order object including a plurality of attribute values; defining a process state and metadata for an orchestration process and storing the process state and metadata in a data table of a database, the process state comprising the DOO order object attribute values and a state of the orchestration process that indicates which steps of the orchestration process have been executed, and the metadata comprising one or more steps of the orchestration process and an order of the one or more steps of the orchestration process; at the orchestration layer; determining, by an event manager, a step of the orchestration process to execute based on the steps of the orchestration process that have been executed as indicated by the process state and the order of the one or more steps of the orchestration process indicated by the metadata stored in the database; generating an event based on the determined step of the orchestration process to execute and the metadata, the event comprising instructions to execute a task that corresponds to the determined step of the orchestration process to execute, and an event type, the task including a plurality of subtasks; publishing the event across an event messaging system; at the task layer; retrieving, by a task layer service decoupled from the event manager, the published event from the messaging system; determining whether the task layer service subscribes to the event type of the published event; when the task layer service subscribes to the event type; executing each of the subtasks, generating at least one task message to an external system, processing at least one task result message from the external system, and updating the process state stored in the database after executing each subtask and after processing the task result message, including updating at least one DOO order attribute value; at the external interface layer; sending the task message to the external system over the network; and receiving the task result message from the external system over the network. - View Dependent Claims (16, 17)
-
-
18. An orchestration system, comprising:
-
a processor; an orchestration module configured to initiate an event manager to orchestrate an order using an event-based orchestration framework including a capture layer, a decomposition layer, an orchestration layer, a task layer and an external interface layer; and a database configured to store a process state and metadata; wherein the processor is configured to; at the capture layer; receive, at an order capture module, a web order from a customer computer over a network; create a source order object from the web order; at the decomposition layer; receive the source order object from the order capture module; create a distributed order orchestration (DOO) order object from the source order object, the DOO order object including a plurality of attribute values; define a process state and metadata for the orchestration process and store the process state and metadata in a data table of a database, the process state comprising a state of the orchestration process that indicates which steps of the orchestration process have been executed, and the metadata comprising one or more steps of the orchestration process and an order of the one or more steps of the orchestration process; at the orchestration layer; determine, by an event manager, a step of the orchestration process to execute based on the steps of the orchestration process that have been executed as indicated by the process state and the order of the one or more steps of the orchestration process indicated by the metadata stored in the database; generate an event based on the determined step of the orchestration process to execute and the metadata, the event comprising instructions to execute a task that corresponds to the determined step of the orchestration process to execute, and an event type, the task including a plurality of subtasks; and publish the event across an event messaging system; at the task layer; retrieve, by a task layer service decoupled from the event manager, the published event from the messaging system, determine whether the task layer service subscribes to the event type of the published event, when the task layer service subscribes to the event type; execute each of the plurality of subtasks, generate at least one task message to an external system, process at least one task result message from the external system, and update the process state stored in the database after executing each subtask and after processing the task result message, including updating at least one DOO order attribute value; at the external interface layer; send the task message to the external system over the network; and receive the task result message from the external system over the network. - View Dependent Claims (19, 20)
-
Specification