Task decomposition with throttled message processing in a heterogeneous environment
First Claim
Patent Images
1. A method comprising:
- receiving a request to process a business process task;
decomposing the business process task into at least one discrete subtask, wherein the at least one discrete subtask is associated with one out of a plurality of subtask types and the at least one discrete subtask is represented by a message;
based at least on the subtask type, routing the message to a subtask node dedicated to processing subtasks of the subtask type associated with the at least one discrete subtask;
wherein the subtask node is one of a plurality of subtask nodes dedicated to processing subtasks of respective subtask types, and the subtask node is separately throttleable to control resources applied by the subtask node for processing subtasks of the subtask type;
wherein the plurality of subtask nodes comprises a heterogeneous mixture of platform types and a heterogeneous mixture of messaging backbones; and
wherein the subtask node comprises a heterogeneous mixture of platform types and a heterogeneous mixture of messaging backbones.
2 Assignments
0 Petitions
Accused Products
Abstract
Tasks for a business process can be decomposed into subtasks represented by messages. Message processing can be throttled in a heterogeneous environment. For example, message processing at subtask nodes can be individually throttled at the node level by controlling the number of instances of subtask processors for the subtask node. An infrastructure built with framework components can be used for a variety of business process tasks, separating business logic from the framework logic. Thus, intelligent scalability across platform types can be provided for large scale business processes with reduced development time and resources.
12 Citations
20 Claims
-
1. A method comprising:
-
receiving a request to process a business process task; decomposing the business process task into at least one discrete subtask, wherein the at least one discrete subtask is associated with one out of a plurality of subtask types and the at least one discrete subtask is represented by a message; based at least on the subtask type, routing the message to a subtask node dedicated to processing subtasks of the subtask type associated with the at least one discrete subtask; wherein the subtask node is one of a plurality of subtask nodes dedicated to processing subtasks of respective subtask types, and the subtask node is separately throttleable to control resources applied by the subtask node for processing subtasks of the subtask type; wherein the plurality of subtask nodes comprises a heterogeneous mixture of platform types and a heterogeneous mixture of messaging backbones; and wherein the subtask node comprises a heterogeneous mixture of platform types and a heterogeneous mixture of messaging backbones. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. One or more non-transitory computer-readable storage media having encoded thereon computer-executable instructions for implementing a software system comprising:
-
a plurality of business process-specific components comprising functionality for processing subtasks of a plurality of subtask types related to a business process, wherein at least one of the business process-specific components is executable in an execution environment type different from at least one other of the business process-specific components; and a plurality of framework components generic to the business process, wherein the framework components comprise a message router and a plurality of subtask processor managers configured to independently throttle processing of subtasks of a particular subtask type on a subtask node comprising a heterogeneous mixture of platform types and a heterogeneous mixture of messaging backbones, the subtask node being one of a plurality of subtask nodes, wherein the plurality of subtask nodes comprises a heterogeneous mixture of platform types and a heterogeneous mixture of messaging backbones. - View Dependent Claims (15, 16)
-
-
17. An apparatus comprising:
-
a subtask node comprising means for processing subtasks of a first subtask type related to a business process in a first execution environment type and a second execution environment type; means for processing subtasks of a second subtask type, different from the first subtask type, related to a business process in a third execution environment type different from the first execution environment type; and a plurality of framework components generic to the business process, wherein the framework components comprise means for routing messages and means for independently throttling processing of subtasks of a particular subtask type; wherein the first, second, and third execution environment types further comprise a heterogeneous mixture of messaging backbone types.
-
-
18. One or more non-transitory computer-readable storage media storing computer-executable instructions causing a computer to perform a method for load balancing business process task processing, the method comprising:
-
receiving a request to process a business process task; decomposing the business process task into one or more messages representing one or more subtasks of the business process task; with a business process manager framework component in concert with a business process handler, orchestrating processing of the one or more subtasks, wherein processing comprises generating a directed message for the one or more subtasks, wherein the directed message comprises a type indicative of a subtask node to which the directed message is to be directed; with a message router, routing the directed message to the subtask node to which the directed message is to be directed; at the subtask node, receiving the directed message at a subtask queue; and retrieving the directed message from the subtask queue for processing by an instance of a subtask processor of the subtask node, wherein retrieving is limited by a limit set on a number of instances of the subtask processor to be created within the subtask node by a per-subtask node configurable setting; wherein the business process task is performed with a plurality of subtask nodes, the plurality of subtask nodes comprising a heterogeneous mixture of platform types and a heterogeneous mixture of messaging backbones, respective of at least one of the subtask nodes having a heterogeneous mixture of platform types and a heterogeneous mixture of messaging backbones.
-
-
19. One or more non-transitory computer-readable storage media storing a subtask node configuration table comprising a plurality of entries respectively comprising:
-
a subtask type indicative of a type of subtask of a business process task; a name of a subtask node, wherein the name is indicative of a queue to which subtasks of the subtask type are to be directed; and an instantiation limit indicative of a maximum number of instances of subtask processors to be instantiated in the subtask node for processing subtasks of the subtask type; wherein the table comprises at least one subtask node name indicative of a queue managed in a plurality of execution environment types and a plurality of messaging backbone types.
-
-
20. One or more non-transitory computer-readable storage media storing computer-executable instructions causing a computer to perform a method, the method comprising:
-
receiving a request to process a business process task; decomposing the business process task into at least one discrete subtask, wherein the at least one discrete subtask is associated with one out of a plurality of subtask types and the at least one discrete subtask is represented by a message; based at least on the subtask type, routing the message to a subtask node dedicated to processing subtasks of the subtask type associated with the at least one discrete subtask; wherein the subtask node is one of a plurality of subtask nodes dedicated to processing subtasks of respective subtask types, and the subtask node is separately throttleable by limiting a number of simultaneously instantiated instances to a particular number to control resources applied by the subtask node for processing subtasks of the subtask type; wherein the limiting the number of simultaneously instantiated instances to a particular number is achieved by determining whether a number of instances has reached a configurable threshold; wherein the plurality of subtask nodes comprise a heterogeneous mixture of platform types, a heterogeneous mixture of execution environments, a heterogeneous mixture of messaging backbones, and a heterogeneous mixture of operating systems; wherein the subtask node comprises a heterogeneous mixture of platform types, a heterogeneous mixture of execution environments, a heterogeneous mixture of messaging backbones, and a heterogeneous mixture of operating systems; and wherein the plurality of subtask nodes further comprises a wrapper to facilitate translation of messages between heterogeneous messaging backbones.
-
Specification