Methods and apparatus for executing a transaction task within a transaction processing system employing symmetric multiprocessors
First Claim
Patent Images
1. A method of processing transaction routing tasks, the method including:
- receiving a plurality of transaction requests at an automatic call distribution system;
generating a respective transaction event responsive to receiving each of the transaction requests, the transaction event for routing the transaction request to an agent of the automatic call distribution system;
responsive to the respective transaction events, identifying a respective workflow associated with each transaction event;
assigning a workflow priority to at least one workflow;
creating a respective task object for each of the transaction events and identified workflows;
assigning a task priority to each respective task object based upon the workflow priority whenever a workflow priority has been assigned to the respective workflow, but otherwise based upon a priority of each respective event;
queuing the task objects in a task object queue;
distributing a task object of the task objects, which at least partially executes the workflow, from the task object queue to an available thread within a pool of available threads operating within a multiprocessor system based upon the task priority of the task object;
identifying a processor affinity attributed to the distributed task object; and
assigning the available thread to a processor within the multiprocessor system according to the processor affinity attributed to the distributed task object to route the transaction request to the agent of the automatic call distribution system.
15 Assignments
0 Petitions
Accused Products
Abstract
A method of executing a transaction task within a transaction processing system includes, responsive to an event, the steps of identifying a workflow associated with the event. A transaction task, that at least partially executes the workflow, is distributed to an available thread within a pool threads operating within a multiprocessor system, that may be a Symmetrical Multiprocessor (SMP) system.
-
Citations
21 Claims
-
1. A method of processing transaction routing tasks, the method including:
-
receiving a plurality of transaction requests at an automatic call distribution system; generating a respective transaction event responsive to receiving each of the transaction requests, the transaction event for routing the transaction request to an agent of the automatic call distribution system; responsive to the respective transaction events, identifying a respective workflow associated with each transaction event; assigning a workflow priority to at least one workflow; creating a respective task object for each of the transaction events and identified workflows; assigning a task priority to each respective task object based upon the workflow priority whenever a workflow priority has been assigned to the respective workflow, but otherwise based upon a priority of each respective event; queuing the task objects in a task object queue; distributing a task object of the task objects, which at least partially executes the workflow, from the task object queue to an available thread within a pool of available threads operating within a multiprocessor system based upon the task priority of the task object; identifying a processor affinity attributed to the distributed task object; and assigning the available thread to a processor within the multiprocessor system according to the processor affinity attributed to the distributed task object to route the transaction request to the agent of the automatic call distribution system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for processing transaction routing tasks, the system including:
-
an automatic call distribution system to receive a plurality of transaction requests; a plurality of different types of event subsystems to generate respective transaction events responsive to receiving each of the plurality of transaction requests, the transaction event for routing the transaction request to an agent of the automatic call distribution system; a dispatcher to identify a respective workflow associated with each of the transaction events and that creates a respective task object for each of the plurality of transaction events and workflows and assigns a workflow priority to at least one of the workflows; a task object queue that contains the respective task objects of the plurality of transaction requests and including task priority logic which assigns a task priority to each respective task object based upon the workflow priority whenever a workflow priority has been assigned to the respective workflow but otherwise based upon a priority of each respective event; a scheduler that selects a task object from the task object queue where the selected task object at least partially executes the workflow associated with the transaction event, the scheduler to select the task object from the task object queue based upon the task priority of the selected task object; and a thread within a pool of available threads operating within a multiprocessor system to execute the selected task object of the transaction routing task, the dispatcher to identify a processor affinity attributed to the selected task object, and to assign the thread to a processor within the multiprocessor system according to the processor affinity attributed to the selected task object to route the transaction request to the agent of the automatic call distribution system. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for processing transaction routing tasks, the system including:
-
a first means to receive a plurality of transaction requests; a second means to generate a respective transaction event responsive to receiving each of the transaction requests, the transaction events for routing the transaction requests to agents of the first means each transaction event having a subsystem identifier and an event identifier; a third means to identify a workflow associated with each of the transaction events based upon the subsystem identifier, the event identifier, and event workflow binding information; a task dispatcher that creates a task object for each of the transaction events; a task queue that contains the task objects of the plurality of transaction events; a fourth means to select a task object of the plurality of task objects where the selected task object at least partially executes the workflow associated with the transaction event and where selection is based upon a relative priority of the plurality of task objects; and a fifth means within a pool of available threads operating within a multiprocessor system to execute the selected task object, the third means to identify a processor affinity attributed to the transaction routing task, and to assign the thread to a processor within the multiprocessor system according to the processor affinity attributed to the transaction routing task to route the transaction request to the agent of the first means.
-
-
21. A tangible machine readable medium storing a set of instructions that, when executed by a machine, cause the machine to:
-
receive a plurality of transaction requests at a automatic call distribution system; generate a respective transaction event responsive to receiving each of the plurality of transaction requests, the transaction events to route the transaction requests to agents of the automatic call distribution system; responsive to the transaction events, identify a respective workflow associated with each of the plurality of transaction events; responsive to the identification of the workflows, creating a task object for each of the transaction requests; select and distribute a task object of the plurality of task objects, which at least partially executes the workflow, from a task queue to an available thread within a pool of available threads operating within a multiprocessor system based upon a relative priority of the task objects; identify a processor affinity attributed to the selected task object of the transaction routing task; and assign the available thread to a processor within the multiprocessor system according to the processor affinity attributed to the transaction routing task to route the transaction request to the agent of the automatic call distribution system.
-
Specification