Scalable billing with de-duplication in aggregator
First Claim
Patent Images
1. A method, implemented at a computing system that includes one or more processors, for handling a plurality of events, the method comprising:
- an act of the 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 using the one or more processors to partition each of the plurality of events into a corresponding one of a plurality of channels, such that each of the plurality of channels receives a subset of the plurality of events, at least a particular one of the plurality of channels being configured to;
de-duplicate events by;
identifying any duplicate events within the corresponding subset of the plurality of events that are received at the particular channel based on a first de-duplication scheme that includes checking first event data; and
discarding any identified duplicate events, such that the corresponding subset of the plurality of events is a subset of original events only; and
dispatch each original event in the subset of original events to a corresponding aggregator; and
an act of the corresponding aggregator processing the events received from the particular channel, including;
performing an additional de-duplicating of the events received from the particular channel to remove any duplicate events introduced during the dispatch, the additional de-duplicating being performed with a different de-duplication scheme than the first de-duplication scheme and which checks different event data than the first event data that is checked in the first de-duplication scheme; and
aggregating the events received from the particular channel.
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, process the events, and forwards the events to an aggregator to allow the events to be aggregated by account to allow for easier computation of a bill. The aggregator also performs de-duplication of events to help reduce the risk of double billing.
-
Citations
13 Claims
-
1. A method, implemented at a computing system that includes one or more processors, for handling a plurality of events, the method comprising:
-
an act of the 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 using the one or more processors to partition each of the plurality of events into a corresponding one of a plurality of channels, such that each of the plurality of channels receives a subset of the plurality of events, at least a particular one of the plurality of channels being configured to; de-duplicate events by; identifying any duplicate events within the corresponding subset of the plurality of events that are received at the particular channel based on a first de-duplication scheme that includes checking first event data; and discarding any identified duplicate events, such that the corresponding subset of the plurality of events is a subset of original events only; and dispatch each original event in the subset of original events to a corresponding aggregator; and an act of the corresponding aggregator processing the events received from the particular channel, including; performing an additional de-duplicating of the events received from the particular channel to remove any duplicate events introduced during the dispatch, the additional de-duplicating being performed with a different de-duplication scheme than the first de-duplication scheme and which checks different event data than the first event data that is checked in the first de-duplication scheme; and aggregating the events received from the particular channel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 12, 13)
-
-
10. A computer program product comprising one or more computer storage devices having stored thereon computer-executable instructions that, when executed by one or more processors of a computer system, cause the computer system to carry out a method for handling a plurality of events, including the following:
-
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; partitioning each of the plurality of events into a plurality of channels, each of the plurality of events into a corresponding one of a plurality of channels, such that each of the plurality of channels receives a subset of the plurality of events, at least a particular one of the plurality of channels being configured to; de-duplicate events by; identifying any duplicate events within the corresponding subset of the plurality of events that are received at the particular channel based on a first de-duplication scheme that includes checking first event data; and discarding any identified duplicate events, such that the corresponding subset of the plurality of events is a subset of original events only; and dispatch each original event in the subset of original events to a corresponding aggregator; and an act of the corresponding aggregator processing the events received from the particular channel, including; performing an additional de-duplicating of the events received from the particular channel to remove any duplicate events introduced during the dispatch, the additional de-duplicating being performed with a different de-duplication scheme than the first de-duplication scheme and which checks different event data than the first event data that is checked in the first de-duplication scheme; and aggregating the events received from the particular channel.
-
-
11. A computer system, comprising:
-
one or more processors; system memory; and one or more computer storage devices having stored thereon computer-executable instructions representing the following; a routing module that is configured to; receive 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; and partition each of the plurality of events one of a plurality of channels; the plurality of channels, each of the plurality of channels being configured to receive a subset of the plurality of events, and to; de-duplicate events by; identifying any duplicate events within the corresponding subset of the plurality of events that are received at the particular channel based on a first de-duplication scheme that includes checking first event data; and discarding any identified duplicate events, such that the corresponding subset of the plurality of events is a subset of original events only; and dispatch each original event in the subset of original events to a corresponding aggregator; and an act of the corresponding aggregator processing the events received from the particular channel, including; performing an additional de-duplicating of the events received from the particular channel to remove any duplicate events introduced during the dispatch, the additional de-duplicating being performed with a different de-duplication scheme than the first de-duplication scheme and which checks different event data than the first event data that is checked in the first de-duplication scheme; and aggregating the events received from the particular channel.
-
Specification