Systems and/or methods for reactive, distributable, and extensible process execution
First Claim
1. A method of executing a business process in a distributed computing environment that includes a plurality of computer nodes that communicate via an electronic data communications network, each of the plurality of computer nodes including hardware processing resources, the method comprising:
- generating, based on an existing computer modeled representation of the business process and by using at least one processor, a plurality of executable components that are each independently executable, by different processing resources, from one another, where the plurality of generated executable components are separate from the existing computer modeled representation of the business process;
assigning, to each one of the plurality of generated executable components, a process identifier that corresponds to the computer modeled representation of the business process, and a sequence identifier that is based on where the corresponding executable component is used within the business process, where at least some of the executable components are assigned different sequence identifiers and some are assigned the same sequence identifier;
classifying each of the plurality of generated executable components into at least one of a plurality of different executable component types, the different executable component types including an integration flow type, a task flow type, and a data flow type, the integration flow type representing activities to be performed in connection with external computer systems, the task flow type representing human-interactive activities, and the data flow type representing activities to be performed on data relevant to the business process, where each one of the executable components is generated with additional programmatic functionality that is specific to the corresponding classified executable component type; and
transmitting, via the electronic data communications network, the executable components to different ones of the plurality of computer nodes in the distributed computing environment such that the executable components are performed, using the hardware processing resources of a corresponding computer node, in an order that is based on the sequence identifier of the corresponding executable component, except that executable components with the same sequence identifiers are performed in parallel on different ones of the computer nodes, in executing the business process.
1 Assignment
0 Petitions
Accused Products
Abstract
Certain example embodiments relate to techniques for executing business processes in a distributed computer system (e.g., cloud-based) environment. A representation of the business process is decomposed into executable components. The executable components each have assigned thereto process and sequence identifiers, and each is classified as having an executable component types. The executable component types including integration, task, and data flow types. The integration flow type represents activities to be performed in connection with external computer systems, the task flow type represents human-interactive activities, and the data flow type represents activities to be performed on data relevant to the business process. The executable components are deployed to nodes in the distributed computing environment such that the executable components are performed in sequence identifier order using processing resources of the respective nodes to which they are deployed, except executable components with the same sequence identifiers are performed in parallel on different nodes.
21 Citations
23 Claims
-
1. A method of executing a business process in a distributed computing environment that includes a plurality of computer nodes that communicate via an electronic data communications network, each of the plurality of computer nodes including hardware processing resources, the method comprising:
-
generating, based on an existing computer modeled representation of the business process and by using at least one processor, a plurality of executable components that are each independently executable, by different processing resources, from one another, where the plurality of generated executable components are separate from the existing computer modeled representation of the business process; assigning, to each one of the plurality of generated executable components, a process identifier that corresponds to the computer modeled representation of the business process, and a sequence identifier that is based on where the corresponding executable component is used within the business process, where at least some of the executable components are assigned different sequence identifiers and some are assigned the same sequence identifier; classifying each of the plurality of generated executable components into at least one of a plurality of different executable component types, the different executable component types including an integration flow type, a task flow type, and a data flow type, the integration flow type representing activities to be performed in connection with external computer systems, the task flow type representing human-interactive activities, and the data flow type representing activities to be performed on data relevant to the business process, where each one of the executable components is generated with additional programmatic functionality that is specific to the corresponding classified executable component type; and transmitting, via the electronic data communications network, the executable components to different ones of the plurality of computer nodes in the distributed computing environment such that the executable components are performed, using the hardware processing resources of a corresponding computer node, in an order that is based on the sequence identifier of the corresponding executable component, except that executable components with the same sequence identifiers are performed in parallel on different ones of the computer nodes, in executing the business process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 16)
-
-
9. A method of executing a process in a distributed computing environment, the method comprising:
-
generating, based on a representation of the process and by using at least one processor, a plurality of executable components that are each independently executable, by different processing resources, from one another, where the plurality of generated executable components are separate from the representation of the process, each of the plurality of executable components having assigned thereto a process identifier and a sequence identifier; transmitting the executable components to computer nodes in the distributed computing environment for execution thereon, each said executable component being sent as an associated event over an event bus, where the executable components are executable in an order that is based on the sequence identifier of the corresponding executable component, except that executable components with the same sequence identifiers are performed in parallel on different ones of the computer nodes, in executing the business process; and controlling each of the computer nodes that receives an event to at least; determine, based on the received event and the metadata of the associated executable component, an executable component type of the respective executable component, the executable component type being one of an integration data flow type, a task data flow type, and a data flow type, the integration flow type representing activities to be performed in connection with external computer systems, the task flow type representing human-interactive activities, and the data flow type representing activities to be performed on data relevant to the process, where each one of the plurality of executable components is generated with additional programmatic functionality that is specific to the corresponding executable component type; spawn an execution environment tailored to the executable component type of the executable component that was sent as the received event; execute the executable component associated with the received event using the spawned execution environment and processing resources provided to the respective node, the processing resources including at least one processor; determine whether there is a next step in the process to be executed; and in response to a determination that there is a next step in the process to be executed, sending a new event corresponding to the next step to the event bus, along with associated metadata. - View Dependent Claims (10, 11, 12, 13, 14, 15, 17)
-
-
18. A distributed computing system in which a process is to be executed, comprising:
-
a plurality of computer nodes, each said node including processing resources comprising at least one processor and a memory; and an event bus;
wherein;a first node is designated as a supervisor node, the supervisor node being configured to at least; generate, using processing resources, a plurality of executable components of the process that are each independently executable, by different processing resources, from one another, where the plurality of generated executable components are separate from the process or an existing computer modeled representation of the process, the plurality of executable components each having assigned thereto process and sequence identifiers; and transmit the executable components to other computer nodes in the distributed computing environment for execution thereon, each said executable component being sent as an associated event over the event bus, where the executable components are executable in an order that is based on the sequence identifier of the corresponding executable component, except that executable components with the same sequence identifiers are performed in parallel on different ones of the computer nodes, in executing the business process; and each node that receives an event having an associated executable component is controlled to at least; determine, based on the received event and the metadata of the associated executable component, an executable component type of the respective executable component, the executable component type being one of an integration, task, and data flow type, the integration flow type representing activities to be performed in connection with external computer systems, the task flow type representing human-interactive activities, and the data flow type representing activities to be performed on data relevant to the process, where each one of the plurality of executable components is generated with additional programmatic functionality that is specific to the corresponding executable component type; spawn thereon an execution environment tailored to the executable component type of the executable component associated with the received event; execute the executable component associated with the received event using the spawned execution environment and the processing resources provided to the respective node; determine whether there is a next step in the process to be executed; and in response to a determination that there is a next step in the process to be executed, sending a new event corresponding to the next step to the event bus, along with associated metadata. - View Dependent Claims (19, 20, 21, 22, 23)
-
Specification