Patent ID: 8180823
Filing Date: 2012-05-15
Classification: G06Q

Abstract:
1. A method of routing messages to multiple consumers, wherein said method is performed by a system comprising a processor that executes instructions of a computer program product that is stored in a non-transitory storage medium, said method comprising: determining, via the processor executing instructions of the computer program product that is stored in the non-transitory storage medium, a probability function defining message classification probabilities for each of a plurality of consumer sets, each consumer set representing a group of one or more consumers, wherein each of the consumers is a computing resource able to perform a message processing function, wherein each consumer is assigned to a specific one of the consumer sets, wherein a plurality of different message classifications exist for messages processed by the consumers, wherein for each consumer set and for each of the different message classifications, a probability is assigned, which represents the probability that a consumer of that consumer set will process a message of that message classification given availability of the consumer to process a message, wherein the probability function is utilized to determine what probability values are assigned to each unique combination of a consumer set and a message classification; receiving, via the processor executing instructions of the computer program product that is stored in the non-transitory storage medium, a plurality of messages; classifying, via the processor executing instructions of the computer program product that is stored in the non-transitory storage medium, each message using one of the different message classifications; storing, via the processor executing instructions of the computer program product that is stored in the non-transitory storage medium, each message in a queue for messages to be processed by a set of consumers, said queue holding messages of the different message classifications; receiving, via the processor executing instructions of the computer program product that is stored in the non-transitory storage medium, notification that one of the consumers is available to process one of the messages in the queue; ascertaining, via the processor executing instructions of the computer program product that is stored in the non-transitory storage medium, one of the consumer sets to which the available consumer belongs; generating, via the processor executing instructions of the computer program product that is stored in the non-transitory storage medium, a random number from a range that covers a summation of probabilities of the message classifications for the consumer set; selecting, via the processor executing instructions of the computer program product that is stored in the non-transitory storage medium, a message classification according to the probabilities assigned to the message classifications given the random number, wherein the selection ensures the different message classifications are selected in proportion of the assigned probabilities, and transmitting, via the processor executing instructions of the computer program product that is stored in the non-transitory storage medium, a message, of the selected classification, from the queue to the available consumer for processing by the available consumer.