SCALABLE BILLING WITH DE-DUPLICATION AND SEQUENCING
First Claim
Patent Images
1. A computer-implemented method for handling a plurality of events, the method comprising:
- an act of a computing system receiving a plurality of events in the form of event messages, each of at least some of the events affecting one or more of a plurality of accounts;
an act of the computing system partitioning each of the plurality of events into a plurality of channels, each of the plurality of channels receiving a subset of the plurality of events; and
for at least one of the plurality of channels, and for each of at least some of the events of the subset of events received by the corresponding channel, performing the following;
an act of checking that the event is not a duplicate of another event received by the corresponding channel; and
after the act of checking, an act of assigning a channel-specific sequence number to the event.
2 Assignments
0 Petitions
Accused Products
Abstract
Scalable handling of billing events that affect one or more accounts. A computing system partitions received events into a number of channels, perhaps by account identifier. The channels receive the events, and perform de-duplication of the events to help reduce the risk of double billing. The channel then assigns the event a channel specific sequence number. The sequenced events may perhaps then be aggregated by account to allow for easier computation of a bill.
-
Citations
20 Claims
-
1. A computer-implemented method for handling a plurality of events, the method comprising:
-
an act of a computing system receiving a plurality of events in the form of event messages, each of at least some of the events affecting one or more of a plurality of accounts; an act of the computing system partitioning each of the plurality of events into a plurality of channels, each of the plurality of channels receiving a subset of the plurality of events; and for at least one of the plurality of channels, and for each of at least some of the events of the subset of events received by the corresponding channel, performing the following; an act of checking that the event is not a duplicate of another event received by the corresponding channel; and after the act of checking, an act of assigning a channel-specific sequence number to the event. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer program product comprising one or more computer-readable media having thereon computer-executable instructions that, when executed by one or more processors of the computing system, cause the computing system to perform a method for handling a plurality of events received in the form of event messages, each of at least some of the events affecting one or more of a plurality of accounts, the method comprising:
-
an act of the computing system partitioning each of at least some of the received plurality of events into a plurality of channels, each of the plurality of channels receiving a subset of the plurality of events; and for at least one of the plurality of channels, and for each of at least some of the events of the subset of events received by the corresponding channel, performing the following; an act of checking that the event is not a duplicate of another event received by the corresponding channel; and after the act of checking, an act of assigning a channel-specific sequence number to the event. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer program product comprising one or more computer-readable media having thereon computer-executable instructions that, when executed by one or more processors of the computing system, cause the computing system to perform a method for handling a plurality of events received in the form of event messages, each of at least some of the events affecting one or more of a plurality of accounts, the method comprising:
-
an act of the computing system partitioning each of at least some of the received plurality of events into a plurality of channels, wherein each of the plurality of channels handles events for a corresponding set of accounts, for at least one of the plurality of channels, and for each of at least some of the events of the subset of events received by the corresponding channel, performing the following; an act of checking that the event is not a duplicate of another event received by the corresponding channel; and after the act of checking, an act of assigning a channel-specific sequence number to the event; and for each of the plurality of channels, an act of an aggregator aggregating the sequenced events received from the corresponding channel, wherein the aggregator further performs a subsequent de-duplication by tracking a water mark on the sequence number for the corresponding channel, the water mark moving in a movement direction that is the same as that of the sequence number, wherein if a sequenced event is received from the corresponding channel with a sequence number that is on the side of water mark in the movement direction, then the sequenced event is determined to be a duplicate, and discarded.
-
Specification