Workflow is the automation or computer modeling of a business process, in whole or in part, during which documents, information, or tasks are passed from one activity to another to collectively realize a business objective or policy goal. A work item and corresponding action defines a logical step within the business process or workflow. The work item corresponds to the life cycle, or state, of a body of work as it passes through a workflow. Actions are performed on the work items via a computing or processing device to pass the work item from one state to another in the workflow.
Workflow management systems are computing systems that provide functionality for managing the processing of work items within a workflow. In conventional workflow management systems, work items associated with a particular workflow may be stored in one or more queues. For example, each queue may be a database or other data structure that stores work items that are associated with a particular action to be performed during the workflow. Once a work item is placed in a queue, it remains there until the workflow management system processes or changes the state of the work item. The workflow management system can automatically process work items in the queue or a user using the workflow management system can initiate the processing of work items in the queue.
Some workflow management systems use a single processing thread or module to de-queue or process work items in each queue. Such workflow management systems are limited to processing work items from one queue at a time. Moreover, such systems will often process all of the work items in one queue before processing the work items in a next queue. However, because some queues may store more work items than others, queues with fewer work items will not receive equitable processing time. For example, assume queue A includes 100,000 work items and queue B includes 2,500 work items as compared to queue B. As a result, if queue A is processed first, the completion of actions associated with the work items in queue B may be delayed, and, thus the associated business process can lose valuable processing time.
Workflow management systems employing multiple processing threads to de- queue or process work items from multiple queues assign a different processing threads to each of the queues. Each processing thread can perform a limited number of operations in a set amount of time. The limited number of operations that can be performed by the processing thread is also referred to as processing capacity. Because some queues may store fewer work items than others, a processing thread that is assigned to a queue with fewer work items may expend less processing time than another processing thread that is assigned to a queue with more work items. As a result, some processing threads may operate at minimal processing capacity while other processing threads operate at or near maximum processing capacity.