US010547497B1
(12)Mostafa
Unitedet alStates
.
Patent (10 ) Patent No.: US 10,547,497 B1
(45 ) Date of Patent: Jan. 28, 2020
(54 ) METHODS AND SYSTEMS FOR PROVIDING (56 ) References Cited
PREDICTIVE RATING USING A BUFFER
U.S. PATENT DOCUMENTS
( 71) Applicant: NetCracker Technology Corp., 6,804,337 B1 10/2004 Anderson et al .
Waltham , MA (US) 7,450,928 B1 * 11/2008 Henry , Jr. G06Q 30/0239
(72 ) Inventors: Habib I Mostafa , Oviedo , FL (US ); 379 / 114.15
Tom Shusta, Lake Mary, FL (US ); (Continued )
Sreedhar Rao, Lewis Center, OH (US); FOREIGN PATENT DOCUMENTS
Jason Jump, Covington , KY (US);
Michael Magnotta , Cincinnati , OH EP 2953333 A1 * 12/2015 HO4L 12/14
(US ); Debdatta Bhattacharjee , WO WO -0158199 Al * 8/2001 G06Q 20/28
Hyderabad ( IN ) (Continued )
( 73 ) Assignee: NETCRACKER TECHNOLOGY
CORP., Waltham , MA (US ) OTHER PUBLICATIONS
( * ) Notice : Subject to any disclaimer, the term of this Non -Final Office Action dated Jan. 26 , 2017 in co -pending U.S.
patent is extended or adjusted under 35 Appl. No. 14 /645,582 ( 15 pgs .).
U.S.C. 154 (b ) by 204 days . (Continued )
( 21) Appl. No.: 15 /395,295 Primary Examiner Patrice L Winder
( 22) Filed : Dec. 30, 2016 (74) Attorney, Agent, or Firm — Foley & Lardner LLP
Related U.S. Application Data
(57) ABSTRACT
(60 ) Provisional application No.62/273,741, filed on Dec.
31, 2015 . The present solution relates to an improved system and
method for reducing traffic flow between the customer's
(51) Int. Cl. client device , network , and the charging system . The meth
H04L 12/24 ( 2006.01) ods and systems described herein can provide a predictive
H04W 4/14 (2009.01) rating buffer between the network and the charging system .
(Continued ) The predictive rating buffer can receive , from the online
(52) U.S. Cl. charging solution , data about services to be provided to a
CPC H04L 41/0622 (2013.01 ); H04L 12/1403 client device . The predictive rating buffer can generate
(2013.01) ; H04L 12/1457 (2013.01) ; primary allocation balances for the client device. Network
(Continued ) grants can be made to the client device by the primary
(58 ) Field of Classification Search allocation balances . If a primary allocation balance is
CPC H04W 4/24 ; HO4L 12/14 ; HO4L 12/1403 ; exhausted , an incoming grant can be granted from a con
H04L 12/1407 ; H04L 12/1442 ; H04L tingency allocation balance .
12/1453 ; HO4L 12/1457
See application file for complete search history . 20 Claims, 13 Drawing Sheets
Mediator 202
200 Online Charging
Solution 204
Quota Processor
Manager 206 Subscriber
208 Database
222
Active Mediation Instance 210 Policy
Database
Bypass Record 224
Processing Generator Terminations
Module Quota
Subscriber 212 Allocation
Device Network 214
252 104 Policy
226
Bypass Log Authorization Network
216 Updates Grant
Policy
228
Quota Cache Usage
218 Reporting
Policy
230
Balance
Updates Charge
Reporting
Policy
232
US 10,547,497 B1
Page 2
(51) Int. Ci. 2013/0124376 A1 5/2013 Lefebvre et al.
H04L 12/26 ( 2006.01 ) 2013/0159385 Al 6/2013 Ocher et al.
H04L 12/14 ( 2006.01 )
2014/0038545 A1 * 2/2014 Ramprasad H04W 4/24
455/405
H04W 4/24 (2018.01) 2014/0040975 Al 2/2014 Raleigh et al.
(52 ) U.S. Ci. 2014/0279438 A1 * 9/2014 Reiff G06Q 20/28
CPC H04L 43/065 (2013.01 ); H04W 4/14 705/39
2014/0372269 Al 12/2014 Ternan et al.
(2013.01 ); H04W 4/24 (2013.01)
FOREIGN PATENT DOCUMENTS
(56 ) References Cited
WO WO - 2007120117 A2 * 10/2007 HO4M 15/00
U.S. PATENT DOCUMENTS WO WO -2013168093 A2 * 11/2013 G06Q 20/22
8,630,613 B2 * 1/2014 Lisi H04W 4/24
455/406 OTHER PUBLICATIONS
8,660,521 B1 * 2/2014 Daniel H04W 4/50
455/405 Final Office Action dated Sep. 11, 2017 in related U.S. Appl. No.
8,799,092 B2 * 8/2014 Valdes G06Q 20/10 14 /645,582 (16 pages.).
705 / 26.35 Peltier Tech Blog , “ Variable Width Column Charts” , 2013 , https: //
9,225,847 B2 * 12/2015 Daymond GO6Q 30/0255 peltiertech.com/variable-width-column-charts/#comment-306352.
2002/0010666 A1 1/2002 Wright Walking Tree ,“ Create Interactive charts and implement drill -down
2004/0193512 Al 9/2004 Gobin et al. using Sencha Touch Pie chart and Bar Chart” , 2013 , https: //wtcindia .
2005/0021458 A1 * 1/2005 Rowe G06Q 20/10 wordpress.com/2013/05/20-create-interactive-charts-and-implement
705/39 drill -down-using - sencha - touch -pie -chart-and -bar-chart /.
2008/0319926 A1 12/2008 Alam et al. Final Office Action dated Jan. 24 , 2019 in related U.S. Appl. No.
2009/0055299 Al 2/2009 King 14 /645,582 ( 18 pgs.) .
2009/0081989 A1 * 3/2009 Wuhrer G06Q 20/10 Non -Final Office Action dated Nov. 16 , 2018 in co -pending U.S.
455/406
2010/0075630 A1 * 3/2010 Tillitt H04W 4/24 Appl. No. 15 /395,320 ( 14 pgs.).
455/406 Final Office Action dated Jun . 13 , 2019 in related U.S. Appl. No.
2010/0121660 A1 5/2010 Boykin 15/ 395,320 ( 14 pgs.).
2011/0010461 Al 1/2011 Lassila et al.
2012/0246042 Al 9/2012 Littrell * cited by examiner
U.S. Patent Jan. 28 , 2020 Sheet 1 of 13 US 10,547,497 B1
CLIENT 102N SERV 106N
0
CLIENT 102B NETWORK 104
w
SERV 106B FIG
1A
.
CLIENT 102A
www
SERV 106A
38
U.S. Patent Jan. 28 , 2020 Sheet 2 of 13 US 10,547,497 B1
CLIENT 102N
O
CLIENT 102B .la 1SOFTWA0RE 1PLATFO2RM I1NFRASTUC4RE CLOUD 108 1B
.
FIG
CLIENT 102A
U.S. Patent Jan. 28 , 2020 Sheet 3 of 13 US 10,547,497 B1
202 150
NETWORK INTERFAC 118
OS
SOFTWARE NGCS STORAGE 116
100
128 INSTALO DEVICE
N
-
124A
FIG
1C
.
130A
N
-
122
MEAOIRNY DISPLAY DEVICS /
I
O
DEVICS 127
CPU
121
O
/
I
CONTRL POINTG DEVICE
123
KEYBOARD 126
U.S. Patent Jan. 28 , 2020
2 Sheet 4 of 13 US 10,547,497 B1
100
121
140
MAIN PROCESSOR CACHE
122
VO MEMORY MAIN
PORT PORT PORT MEMORY 130B
103
lo
170 DEVICE
BRIDGE
150
130A - N
VO
DEVICE
FIG . 1D
U.S. Patent Jan. 28 , 2020 Sheet 5 of 13 US 10,547,497 B1
OCnhalrigne2Sol0uti4on Subscrie Datbse 222 Reporting Reporting
PolicyDat b se 224 Quota Alocatin Policy 226 Network Grant Policy 228 Usage Policy 230 Charge Policy 232
Terminatos UAuthoriza n pdates Balnce Updates
Procesr 206 Record Genrato 212 CQaucohtea 218
M2edi0at2or MA2Iencdsti1anv0coe
Quota Man ger 208 Bypas ProcesingModule 214 BLypoags 216
Network 104
FIG
2
.
200
Subscrie Device 252
U.S. Patent Jan. 28 , 2020 Sheet 6 of 13 US 10,547,497 B1
OCS 204 Online Chargin Fuction
Terminations Authorizatons
Upda&tes
IEA Bypas Detcion BLyoPgaisc
304
1oBpytiaosn Ctcrherdcimkt Nroepmrtailngt&erminatons P,reasume
1oBpytiaosn
ReportingChargeGenration )workflow inter
(
tcCIehrnfodrcmiakt o mByopdase
Reporting
Bypas Recovr 218 3
.
FIG
PQerusiotenac Quota Cache
breyds,prvaliBseyptasMcoamprlekt)(transctional
Bypas o2ption
term
/
Auth
for
Convert
2MAecdt1iav0oer
302
Bypas Resrvation Diametr Stack
ConceptualArchiteu
Gy
/
RO
wauthiorlza ns
N4Getwork Allevents bedonebySmart Suite
Gateway)
PDSN
( PCE
Se
er
U.S. Patent Jan. 28 , 2020
2 Sheet 7 of 13 US 10,547,497 B1
Receive an allocation of a quota of 402
services from an OCS
Provide a plurality of resource grants to 404
subscriber device
Receive a plurality of resource usage 406
reports
Aggregate amount of resources used 408
Generate and transmit usage report 410
according to usage reporting policy
Generate and provide charge report to 412
OCS according to charge reporting
policy
FIG . 4
U.S. Patent Jan. 28 , 2020 Sheet 8 of 13 US 10,547,497 B1
502 226 232 230I228
OCS204
4GBBucket
Resrvation Chargin Reporting Network
50MB
,124h0ouMrBs hours,20MB6 10MBhours,4 2
am-Jan
7
1
Jan 7am40MB
1
Jan
5mb
1pm 25mbJan21am 42J07amnb (s)up res ed Charge
506
50MBResrvation Report
15mb
7pm
1
Jan
-
Report Report Report
Reporting 20mb Reporting 20mb Reporting 20mb Reporting 20mb
6
hours
, 6
hours
, 6
hours
, 6
hours
,
5
.
FIG
MA2Iencdst1ianv0coer MB 100 ,hours 24
Charging
50MB Cache Quota
5mb 15mb 5mb
+ 10mb 10mb 5mb
Network am-3pm 10MBGrant Jan
10MBGrant aJan17m-1 am MBG10rant Jan111 1
3 pm-1 pm 10MBGrant Jan
pm-7pm MBG10rant Jan
7
1 111pm-3am 10MBGrant Jan23am-7am
504
U.S. Patent Jan. 28 , 2020 Sheet 9 of 13 US 10,547,497 B1
OCnhalrigneSolution 204 RatingInterfac 708 RatingFunction 710
PRreaditcnvgM6ed0iat2or PRreadticnvgeBufer 604 Quota Manger208 Record Genrato 212 Schedul ActivtyMonitor 704
6
.
FIG
NReotuwerk 702 Event Router 705 Diametr Interfac 706
600 Network 104
Subscrie Device 252
U.S. Patent Jan. 28 , 2020 Sheet 10 of 13 US 10,547,497 B1
Online Chargin System204
Predictve Requst Balnce Updates
I
ACghare tsd
6MRPreadt0icn2ovgre
Predictve BRuaftienrg604 LQoucatl Saesnidon Cache 218
7
.
FIG
Record Genrato 212 BypasProcesingModule 214 LBypoasg 216
/Authoriza ns
Terminatos
600
Network 104 DSubscrie evice 252
U.S. Patent Jan. 28 , 2020
2 Sheet 11 of 13 US 10,547,497 B1
800
Receive data corresponding to at least one service to 802
provide a client device
Generate a primary allocation balance and contingency 804
balance
Receive a request to allocate a quota from the primary 806
allocation balance
Grant the quota 808
Identify usage by the client device of the quota 1810
Determine the primary allocation balance is depleted 1812
Receive a request to allocate a quota from the primary 1 814
allocation balance
Grant the quota from the contingency allocation
responsive to determining the primary allocation 816
balance is depleted
FIG . 8
U.S. Patent Jan. 28 , 2020 Sheet 12 of 13 US 10,547,497 B1
Flex 906 Flex 906
902
b
(
)
SMS 904
)
c
(
SMS )
c
(
904
Minutes 904
b
(
)
Minutes )
b
(
904
)
a
(
904 )
a
(
904
Data Data 910
908 FIG
.
9
Flex 906 Flex 906
)
a
(
902
SMS )
c
(
904
SMS )
c
(
904
Minutes )
b
(
904
Minutes )
b
(
904
)
a
(
904 904
a
(
)
Data Data
System
Charging 204 604
U.S. Patent Jan. 28 , 2020 Sheet 13 of 13 US 10,547,497 B1
Online Chargin System204
RatingFunction 710 PAB 904
)
n
(
CAB 906
)
n
(
P6BRruaedft0icen4vrg CAB 906 FIG
10
.
Record Genrato 212 PAB )
1
(
904
CAB 906
1
(
)
Network 104 Grant 10MB 7AM11
)
1
(
920
Grant 11AM-3PM
MB10
)
2
(
920
US 10,547,497 B1
1 2
METHODS AND SYSTEMS FOR PROVIDING The method can also include identifying, by the predictive
PREDICTIVE RATING USING A BUFFER rating buffer, additional usage by the client device from the
second grant for the first service , and updating the contin
CROSS -REFERENCE TO RELATED gency allocation balance responsive to the identified addi
APPLICATIONS 5 tional usage by the client device . The method can also
include generating , responsive to an exhaustion of the pri
This application claims the benefit of U.S. Provisional mary allocation balance , a second primary allocation bal
Application No. 62 /273,741 , filed Dec. 31 , 2015 , the con ance for the first service to which the client device is
tents ofwhich are incorporated by reference herein in their 10 subscribed . In other implementations , the second primary
allocation balance is generated prior to the exhaustion of the
entirety .
first primary allocation balance .
FIELD OF THE INVENTION The method can also include receiving, by the predictive
rating buffer, a third request to allocate a third grant from the
The present disclosure relates to systems and methods for second primary allocation of the first service to be used by
reducing traffic between a network and an online charging 15 the client device and then granting the request. When
solution. In particular, the present disclosure relates to additional usage is identified the second primary allocation
methods and systems for providing a mediator between a balance is updated .
network and an online charging solution . Themethod can also include generating, by the prediction
rating buffer , a primary usage balance for a second service
BACKGROUND OF THE INVENTION 20 of the at least one services to which the client device is
subscribed . The method can also include receiving, by the
Telecommunication service providers want an accurate predictive rating buffer , a third request to allocate a third
representation of a customer's balance and data consump grant from the primary allocation balance for the second
tion in real time. Without up to date balance information , a service to be used by the client device. The first service can
user may consume more data than the customer's plan 25 include one of a data service , a shortmessage service ( SMS),
provides , which can result in unintended overages for the and a voice service . In some implementations , the granting
customer. However, frequent reporting of the customer's from the contingency allocation balance to the second grant
device to the service providers charging system can result in is responsive to an exchange rate .
high network traffic and high computational costs, too . The method can also include generating, by the predictive
30 rating buffer, one or more charge reports responsive to the
BRIEF SUMMARY OF THE INVENTION identified usage by the client device . An aggregated charge
report can be generated from the one or more charge reports
The present solution disclosed herein is directed to meth responsive to a charge reporting policy. The aggregated
ods and systems for reducing traffic between a network and charge report can be transmitted to the OCS .
an online charging solution . According to one aspect of the 35 According, to another aspect of the disclosure , a system
disclosure, a method for reducing data traffic flow between for reducing data traffic flow between a network and an
a network and an online charging solution can include online charging solution can include a predictive rating
receiving, by a predictive rating buffer , from an online buffer. The predictive rating buffer can include one or more
charging solution , for a client device, data corresponding to processors . The predictive rating buffer is configured to
at least one service to provide to the client device . The 40 receive from an online charging solution , for a client device,
method can also include generating , by the predictive rating data corresponding to at least one service to provide to the
buffer, for a first service of the at least one service to which client device. The predictive rating buffer is also configured
the client device is subscribed , a primary allocation balance to generate , for a first service of the at least one service to
and a contingency allocation balance. The primary alloca which the client device is subscribed , a primary allocation
tion balance for the first service can have an expiration time. 45 balance and a contingency allocation balance . The primary
The contingency allocation balance can be used responsive allocation balance for the first service has an expiration time.
to the depletion of the primary allocation balance for the first The contingency allocation balance can be used responsive
service . The method can also include receiving, by the to a depletion of the primary allocation balance for the first
predictive rating buffer, a first request to allocate a first grant service . The predictive rating buffer is also configured to
from the primary allocation balance for the first service to be 50 receive a first request to allocate a first grant from the
used by the client device. The method can include granting , primary allocation balance for the first service to be used by
by the predictive rating buffer , from the primary allocation the client device. The predictive rating buffer is also con
balance for the first service . The first grant is granted figured to grant from the primary allocation balance for the
responsive to the first request. The method can also include first service. The predictive rating buffer is also configured
identifying, by the predictive rating buffer, usage by the 55 to identify usage by the client device from the first grant for
client device from the first grant of the first service . The the first service and update the primary allocation balance
primary allocation balance is updated responsive to the for the first service . The predictive rating buffer is also
identified usage. The method can also include determining , configured to determine that the primary allocation balance
by the predictive rating buffer , that the primary allocation for the first service has been depleted . The predictive rating
balance for the first service is depleted . The method can 60 buffer is also configured to receive a second request to
include receiving , by the predictive rating buffer, a second allocate a second grant from the primary allocation balance
request to allocate a second grant from the primary alloca for the first service to be used by the client device . The
tion balance for the first service to be used by the client predictive rating buffer is also configured to grant from the
device . The second grant can be granted from the contin contingency allocation balance the second grant when the
gency allocation balance responsive to determining that the 65 first primary allocation balance is depleted .
primary allocation balance for the first service has been The predictive rating buffer can also be configured to
depleted . identify additional usage by the client device from the
US 10,547,497 B1
3 4
second grant for the first service and update the contingency report responsive to the device consuming the quota of
allocation balance . The predictive rating buffer can also be services or an expiration of the validity time.
configured to generate , responsive to an exhaustion of the In some implementations, the method can also include,
primary allocation balance , a second primary allocation responsive to a network grant request for a device , identi
balance for the first service to which the client device is 5 fying, by the online charging solution , the device based on
subscribed . The predictive rating buffer can also be config the network grant request, and identifying, for the identified
ured to generate , prior to an exhaustion of the primary device , a subscriber record of the device . The method can
allocation balance, a second primary allocation balance for spondingalso include identifying the quota allocation policy corre
the first service to which the client device is subscribed . The to the subscriber record .
In some implementations, providing, by themediator, the
predictive rating buffer can also be configured to receive a 10 plurality
third request to allocate a third grant from the second a first resource of resource grants to the device includes providing
primary allocation of the first service to be used by the client resource grant has grant and a second resource grant. The first
device and grant from the second primary allocation bal resource grant grantsa atfirst expiration time and the second
ance, the third grant responsive to the third request. The 15 time. The first resource grantexpiration
the of the first expiration
predictive rating buffer can also be configured to identify the second resource grant can include a asecond
can include first size limit and
size limit .
additional usage by the client device from the third grant and In some implementations , the method also includes gen
update the second primary allocation for the first service erating, by the mediator, a plurality of consumption reports
responsive to the identified additional usage by the client according to a consumption reporting policy established by
device . 20 the online charging solution. The consumption reporting
The predictive rating buffer can also be configured to policy can identify a reporting time and a consumption size .
generate a primary usage balance for a second service of the The method can also include providing , by the mediator to
at least one services to which the client device is subscribed . the online charging solution , the generated consumption
The predictive rating buffer can also be configured to receive reports. Each of the generated consumption reports provided
a third request to allocate a third grant from the primary 25 to the online charging solution can be based on the con
allocation balance for the second service to be used by the sumption reporting policy.
client device. The predictive rating buffer can also be The method can also include determining that a time since
configured to grant, from the contingency allocation bal a first generated consumption report of the plurality of
ance, the second grant responsive to an exchange rate. The consumption reports was last provided to the online charg
predictive rating buffer can also be configured to generate 30 ing solution is equal to or exceeds the reporting time or that
one or more charge reports responsive to the identified usage an amount of resources used by the device since the gener
by the client device, and transmit an aggregated charge ated consumption report was last reported is equal to or
report to the OCS . The aggregated charge report is generated exceeds the consumption size . The method can also include
from the one or more charge reports responsive to a charge providing a second generated consumption report of the
reporting policy . 35 plurality of consumption reports responsive to the determi
The present solution disclosed herein is directed to meth nation .
ods and systems for reducing traffic flow between a network In some implementations, the method includes generat
and an online charging solution . The methods and systems ing, by the mediator, a record responsive to receiving the
implement an intelligent quota cache or buffer cache via a allocation of the quota of services for the device . The quota
mediator that is configured between devices and an online 40 allocation policy can identify a consumption reporting
charging solution . According to one aspect, a method for policy that indicates a reporting time and a consumption size
reducing data traffic flow between a network and an online and a network grant policy that indicates a grant time and a
charging solution includes allocating, by an online charging grant size. The consumption reporting policy can including
solution including one or more processors , for a service one or more rules for providing consumption reports to the
provided to a device , a quota of the service to a mediator 45 online charging solution , and the network grant policy can
intermediary to the device and the online charging solution , include one or more rules for providing the device a grant for
the quota of services allocated according to a quota alloca resources .
tion policy established by the online charging solution . The In some implementations , the method includes maintain
quota allocation policy identifies a validity time of the ing , by the mediator , a plurality of cache records. The
allocation of the quota of the service. The method also 50 plurality of cache records can include a first cache record
includes providing, by the mediator, a plurality of resource corresponding to the device and generated responsive to
grants to the device . Each resource grant of the plurality of allocating the quota to the mediator.
resource grants has a size limit and a time period . The period According to another aspect of the disclosure , a system
of time can be defined by a start time and an expiration time. for reducing data traffic flow between a network and an
The method further includes receiving, by the mediator, a 55 online charging solution includes an online charging solu
plurality of resource usage reports corresponding to the tion and a mediator. The online charging solution includes
plurality of resource grants. Each resource usage report one or more processors. The online charging solution is
corresponds to a resource grant of the plurality of resource configured to allocate , for a device of the plurality of
grants and includes data identifying an amount of resources devices, a quota of services to the mediator. The quota of
used by the device during the time period of the resource 60
grant. The method also includes determining an aggregate
services is allocated according to a quota allocation policy
established by the online charging solution . The quota
amount of resources based on a sum of the amounts of allocation policy identifies a validity time. The mediator of
resources used by the device identified in each of the the system is configured to provide a plurality of resource
plurality of resource usage reports . The method can also grants to the device . Each resource grant of the plurality of
include generating, by the mediator, a charge report identi- 65 resource grants has a size limit and a time period that is
fying the aggregate amount of resources, and providing , by defined by a start and an expiration time. The mediator is
the mediator to the online charging solution , the charge also configured to receive a plurality of resource usage
US 10,547,497 B1
5 6
reports corresponding to the plurality of resource grants. FIGS. 1B - 1D are block diagrams depicting embodiments
Each resource usage report corresponds to a resource grant of computers useful in connection with the methods and
of the plurality of resource grants and includes data identi systems described herein ;
fying an amount of resources used by the device during the FIG . 2 is a block diagram illustrating an example imple
time period of the resource grant. The mediator is also 5 mentation of a reporting system environment;
configured to determine an aggregate amount of resources FIG . 3 is a block diagram depicting an example of the
based on a sum of the amounts of resources used by the quota cache architecture with a bypass feature ;
device identified in each of the plurality of resource usage FIG . 4 is a flow chart of an example method for reducing
reports . The mediator can also generate a charge report traffic flow between a network and an online charging
identifying the aggregate amount of resources, and provide, 10 solution ;
FIG . 5 is a block diagram illustrating an example of the
to the online charging solution , the charge report responsive allocation
to the device consuming the quota of services or an expi of a quota of services to a client device ;
ration of the validity time. FIG . 6 is a block diagram illustrating an example imple
In some implementations, the online charging solution is 15 mentation of a reporting system environment;
FIG . 7 is a block diagram illustrating additional detail of
also configured to identify the device based on the network predictive rating buffer illustrated in FIG . 6 ;
grant request responsive to a network grant request for a
device. The mediator can identify, for the identified device , for reducinga block
FIG . 8 is
data
diagram illustrating an example method
traffic flow between a network and an
a subscriber record of the device , and identify the quota online charging solution in the environment illustrated in
allocation policy corresponding to the subscriber record . 20 FIG . 6 ;
In some implementations, the mediator is configured to FIG . 9 illustrates a block diagram of the provisioning of
provide the plurality of resource grants to the subscriber by network usage balances to the predictive rating buffer ; and
providing a first resource grant that has a first expiration time FIG . 10 illustrates a block diagram of an example report
and then providing a second resource grant at the expiration ing system environment.
of the first resource grant. The first resource grant can 25 The features and advantages of the present invention will
include a first size limit and the second resource grant can become more apparent from the detailed description set
include a second size limit . forth below when taken in conjunction with the drawings, in
The mediator can also be configured to generate a plu which like reference characters identify corresponding ele
rality of usage reports according to a usage reporting policy ments throughout. In the drawings, like reference numbers
established by the online charging solution . The usage 30 generally indicate identical, functionally similar, and /or
reporting policy can identify a reporting time and a usage structurally similar elements .
size. The mediator can also be configured to provide, to the
online charging solution, the generated usage reports . DETAILED DESCRIPTION OF THE
In some implementations, the mediator is configured to INVENTION
determine that a time since a first generated usage report of 35
the plurality of usage reports was last provided to the online For purposes of reading the description of the various
charging solution is equal to or exceeds the reporting time or embodiments below , the following enumeration of the sec
that an amount of resources used by the device since the tions of the specification and their respective contents may
generated usage report was last reported is equal to or be helpful:
exceeds the usage size , and provide the generated usage 40 Section A describes a network and computing environ
reports to the online charging solution. The mediator can ment which may be useful for practicing embodiments
generate a record responsive to receiving the allocation of described herein ; and
the quota of services for the device . Section B describes embodiments of a system and method
In some implementations, the quota allocation policy can for reducing traffic between a network and an online
identify a usage reporting policy that indicates a reporting 45 charging solution .
time and a usage size and a network grant policy that Section C describes embodiments of a system and method
indicates a grant time and a grant size . The usage reporting for providing predictive rating using a buffer.
policy can include one or more rules for providing usage
reports to the online charging solution . The network grant A.Network and Computing Environment
policy can include one or more rules for providing the device 50
a grant for resources. Prior to discussing the specifics of embodiments of the
In some implementations, the mediator is also configured systems and methods, it may be helpful to discuss the
to maintain a plurality of cache records. The plurality of network and computing environments in which such
cache records include a first cache record corresponding to embodiments may be deployed , including a description of
the device and generated responsive to allocating the quota 55 components and features suitable for use in the present
to the mediator. systems and methods. FIG . 1A illustrates one embodiment
of a computing environment 101 that includes one or more
BRIEF DESCRIPTION OF THE FIGURES clientmachines 102A - 102N (generally referred to herein as
“ client machine (s ) 102 ' ) in communication with one or
The foregoing and other objects , aspects, features, and 60 more servers 106A - 106N (generally referred to herein as
advantages of the disclosure will becomemore apparent and “ server(s ) 106 ” ). Installed in between the client machine(s )
better understood by referring to the following description 102 and server (s ) 106 is a network .
taken in conjunction with the accompanying drawings, in In one embodiment, the computing environment 101 can
which : include an appliance installed between the server (s ) 106 and
FIG . 1A is a block diagram depicting an embodiment of 65 client machine(s) 102. This appliance can manage client/
a network environment comprising local machines in com server connections, and in some cases can load balance
munication with remote machines ; client connections amongst a plurality of backend servers .
US 10,547,497 B1
7 8
The client machine (s ) 102 can in some embodiment be The server 106 , in some embodiments, can be any server
referred to as a single client machine 102 or a single group type . In other embodiments , the server 106 can be any of the
of client machines 102 , while server(s) 106 may be referred following server types : a file server; an application server ; a
to as a single server 106 or a single group of servers 106. In web server; a proxy server ; an appliance ; a network appli
one embodiment a single client machine 102 communicates 5 ance; a gateway; an application gateway ; a gateway server;
with more than one server 106 , while in another embodiment a virtualization server; a deployment server; a SSL VPN
a single server 106 communicates with more than one client server; a firewall ; a web server ; an application server or as
machine 102. In yet another embodiment, a single client a master application server; a server 106 executing an active
machine 102 communicates with a single server 106 . directory ; or a server 106 executing an application accel
A client machine 102 can, in some embodiments, be 10 eration functionality
program that, orprovides firewallfunctionality
functionality. In, appli
referenced by any one of the following terms: client cation load balancing
embodiments, a server 106 may be a RADIUS server that
some
machine (s) 102 ; client(s ); client computer( s); client includes a remote authentication dial- in user service . Some
device (s); client computing device (s); localmachine ; remote embodiments include a first server 106A that receives
machine; client node (s); endpoint(s ); endpoint node(s ); or a 15 requests from a clientmachine 102, forwards the request to
second machine. The server 106 , in some embodiments , may a second server 106B , and responds to the request generated
be referenced by any one of the following terms: server(s), by the clientmachine 102 with a response from the second
local machine; remote machine; server farm (s ), host com server 106B . The first server 106A can acquire an enumera
puting device (s ), or a first machine (s ). tion of applications available to the clientmachine 102 and
The client machine 102 can in some embodiments 20 well as address information associated with an application
execute, operate or otherwise provide an application that can server 106 hosting an application identified within the
be any one of the following: software ; a program ; executable enumeration of applications . The first server 106A can then
instructions ; a virtualmachine; a hypervisor ; a web browser ; present a response to the client's request using a web
a web -based client; a client-server application ; a thin - client interface, and communicate directly with the client 102 to
computing client; an ActiveX control; a Java applet; soft- 25 provide the client 102 with access to an identified applica
ware related to voice over internet protocol (VoIP ) commu tion .
nications like a soft IP telephone ; an application for stream Client machines 102 can , in some embodiments , be a
ing video and /or audio ; an application for facilitating real client node that seeks access to resources provided by a
time-data communications; a HTTP client; a FTP client; an server 106. In other embodiments , the server 106 may
Oscar client; a Telnet client; or any other set of executable 30 provide clients 102 or client nodes with access to hosted
instructions . Still other embodiments include a client device resources. The server 106 , in some embodiments , functions
102 that displays application output generated by an appli as a master node such that it communicates with one or more
cation remotely executing on a server 106 or other remotely clients 102 or servers 106. In some embodiments, the master
located machine. In these embodiments , the client device node can identify and provide address information associ
102 can display the application output in an application 35 ated with a server 106 hosting a requested application, to one
window , a browser , or other output window . In one embodi or more clients 102 or servers 106. In still other embodi
ment, the application is a desktop, while in other embodi ments, the master node can be a server farm 106 , a client
ments the application is an application that generates a 102, a cluster of client nodes 102, or an appliance .
desktop . One or more clients 102 and/ or one or more servers 106
The computing environment 101 can include more than 40 can transmit data over a network 104 installed between
one server 106A - 106N such that the servers 106A - 106N are machines and appliances within the computing environment
logically grouped together into a server farm 106. The server 101. The network 104 can comprise one or more sub
farm 106 can include servers 106 that are geographically networks, and can be installed between any combination of
dispersed and logically grouped together in a server farm the clients 102, servers 106 , computing machines and appli
106 , or servers 106 that are located proximate to each other 45 ances included within the computing environment 101. In
and logically grouped together in a server farm 106.Geo some embodiments , the network 104 can be: a local- area
graphically dispersed servers 106A - 106N within a server network (LAN ) ; a metropolitan area network (MAN ); a
farm 106 can , in some embodiments, communicate using a wide area network (WAN ); a primary network 104 com
WAN , MAN , or LAN , where different geographic regions prised of multiple sub- networks 104 located between the
can be characterized as: different continents; different 50 client machines 102 and the servers 106 ; a primary public
regions of a continent; different countries; different states; network 104 with a private sub -network 104; a primary
different cities ; different campuses ; different rooms; or any private network 104 with a public sub -network 104 ; or a
combination of the preceding geographical locations. In primary private network 104 with a private sub -network
some embodiments the server farm 106 may be administered 104. Still further embodiments include a network 104 that
as a single entity , while in other embodiments the server 55 can be any of the following network types: a point to point
farm 106 can include multiple server farms 106 . network ; a broadcast network ; a telecommunications net
In some embodiments, a server farm 106 can include work ; a data communication network ; a computer network ;
servers 106 that execute a substantially similar type of an ATM ( Asynchronous Transfer Mode ) network ; a SONET
operating system platform ( e.g., WINDOWS 7 or 8 , manu (Synchronous Optical Network ) network; a SDH (Synchro
factured by Microsoft Corp. of Redmond, Wash ., UNIX , 60 nous Digital Hierarchy ) network ; a wireless network ; a
LINUX , or OS X.) In other embodiments , the server farm wireline network ; or a network 104 that includes a wireless
106 can include a first group of servers 106 that execute a link where the wireless link can be an infrared channel or
first type of operating system platform , and a second group satellite band . The network topology of the network 104 can
of servers 106 that execute a second type of operating differ within different embodiments, possible network
system platform . The server farm 106 , in other embodi- 65 topologies include: a bus network topology ; a star network
ments, can include servers 106 that execute different types topology ; a ring network topology ; a repeater-based network
of operating system platforms. topology ; or a tiered - star network topology. Additional
US 10,547,497 B1
9 10
embodiments may include a network 104 of mobile tele instructions . For example, each processing unit 121 may be
phone networks that use a protocol to communicate among instructed to execute a portion of a program or a particular
mobile devices, where the protocol can be any one of the module within a program .
following : AMPS ; TDMA ; CDMA ; GSM ; GPRS UMTS ; In some embodiments, the processing unit 121 can
3G ; 4G ; or any other protocol able to transmit data among 5 include one or more processing cores . For example, the
mobile devices . processing unit 121 may have two cores, four cores , eight
Illustrated in FIG . 1B is an embodiment of a computing cores , etc. In one embodiment, the processing unit 121 may
device 100 , where the client machine 102 and server 106 comprisecessing
one or more parallel processing cores. The pro
cores of the processing unit 121 may in some
illustrated in FIG . 1A can be deployed as and /or executed on embodiments access
any embodimentof the computing device 100 illustrated and 10 space , or in other
available memory as a global address
embodiments , memory within the com
described herein . Included within the computing device 100 puting device 100 can be segmented
is a system bus 150 that communicates with the following particular core within the processing and assigned to a
components : a central processing unit 121 ; a main memory embodiment, the one or more processing cores or121.
unit In one
processors
122 ; storage memory 128 ; an input/output (I/O ) controller 15 in the computing device 100 can each access local memory .
123 ; display devices 124A - 124N ; an installation device 116 ; In still another embodiment,memory within the computing
and a network interface 118. In one embodiment, the storage device 100 can be shared amongst one or more processors or
memory 128 includes: an operating system , software rou processing cores , while other memory can be accessed by
tines , and a network grant and charge management system particular processors or subsets of processors. In embodi
(isNGCS ) 202. The I/O controller 123, in some embodiments , 20
further connected to a key board 126 , and a pointing
ments where the computing device 100 includes more than
one processing unit, the multiple processing units can be
device 127. Other embodiments may include an I/O con included in a single integrated circuit ( IC ). These multiple
troller 123 connected to more than one input/output device processors, in some embodiments , can be linked together by
130A - 130N . an internal high speed bus, which may be referred to as an
FIG . 1C illustrates one embodiment of a computing 25 element interconnect bus.
device 100 , where the client machine 102 and server 106 In embodiments where the computing device 100 includes
illustrated in FIG . 1A can be deployed as and/ or executed on one or more processing units 121, or a processing unit 121
including one or more processing cores, the processors can
any embodiment of the computing device 100 illustrated and execute a single instruction simultaneously on multiple
described herein . Included within the computing device 100
is a system bus 150 that communicates with the following 30 pieces of instructions
data (SIMD)simultaneously
, or in other embodiments
on multiplecanpieces
executeof
components: a bridge 170 , and a first I/ O device 130A . In multiple
another embodiment, the bridge 170 is in further commu data (MIMD ). In some embodiments, the computing device
100 can include any number of SIMD and MIMD proces
nication with the main central processing unit 121 , where the sors .
central processing unit 121 can further communicate with a 35 The computing device 100 , in some embodiments, can
second I/O device 130B , a main memory 122, and a cache include an image processor, a graphics processor or a
memory 140. Included within the central processing unit graphics processing unit . The graphics processing unit can
121, are I/O ports , a memory port 103 , and a main processor. include any combination of software and hardware, and can
Embodiments of the computing machine 100 can include further input graphics data and graphics instructions, render
a central processing unit 121 characterized by any one of the 40 a graphic from the inputted data and instructions, and output
following component configurations: logic circuits that the rendered graphic . In some embodiments, the graphics
respond to and process instructions fetched from the main processing unit can be included within the processing unit
memory unit 122 ; a microprocessor unit, such as : those 121. In other embodiments , the computing device 100 can
manufactured by Intel Corporation; those manufactured by include one ormore processing units 121 , where at least one
Motorola Corporation ; those manufactured by Transmeta 45 processing unit 121 is dedicated to processing and rendering
Corporation of Santa Clara, Calif.; the RS/6000 processor graphics .
such as those manufactured by International Business One embodiment of the computingmachine 100 includes
Machines; a processor such as those manufactured by a central processing unit 121 that communicates with cache
Advanced Micro Devices ; or any other combination of logic memory 140 via a secondary bus also known as a backside
circuits. Still other embodiments of the central processing 50 bus, while another embodiment of the computing machine
unit 122 may include any combination of the following: a 100 includes a central processing unit 121 that communi
microprocessor , a microcontroller, a central processing unit cates with cache memory via the system bus 150. The local
with a single processing core , a central processing unit with system bus 150 can , in some embodiments, also be used by
two processing cores, or a central processing unit with more the central processing unit to communicate with more than
than one processing core. 55 one type of I/O device 130A -130N . In some embodiments ,
While FIG . 1C illustrates a computing device 100 that the local system bus 150 can be any one of the following
includes a single central processing unit 121, in some types of buses: a VESA VL bus ; an ISA bus; an EISA bus ;
embodiments the computing device 100 can include one or a MicroChannel Architecture (MCA ) bus; a PCI bus ; a
more processing units 121. In these embodiments , the com PCI- X bus; a PCI-Express bus ; or a NuBus. Other embodi
puting device 100 may store and execute firmware or other 60 ments of the computing machine 100 include an I/O device
executable instructions that , when executed , direct the one 130A - 130N that is a video display 124 that communicates
or more processing units 121 to simultaneously execute with the central processing unit 121. Still other versions of
instructions or to simultaneously execute instructions on a the computing machine 100 include a processor 121 con
single piece of data . In other embodiments, the computing nected to an I/O device 130A - 130N via any one of the
device 100 may store and execute firmware or other execut- 65 following connections: HyperTransport , Rapid I/O , or
able instructions that, when executed , direct the one or more InfiniBand . Further embodiments of the computing machine
processing units to each execute a section of a group of 100 include a processor 121 that communicates with one I/O
US 10,547,497 B1
11 12
device 130A using a local interconnect bus and a second I/O 100 to a network capable of communicating and performing
device 130B using a direct connection . the methods and systems described herein .
The computing device 100 , in some embodiments, Embodiments of the computing device 100 include any
includes a main memory unit 122 and cache memory 140. one of the following I/O devices 130A -130N : a keyboard
The cache memory 140 can be any memory type , and in 5 126 ; a pointing device 127; mice; trackpads; an optical pen ;
trackballs ; microphones; drawing tablets; video displays;
some embodiments can be any one of the following types of speakers
memory : SRAM ; BSRAM ; or EDRAM . Other embodi ; inkjet printers ; laser printers ; and dye- sublimation
ments include cache memory 140 and a main memory unit methods orandanysystems
printers ; other input /output device able to perform the
described herein . An I/O controller
122 that can be any one of the following types of memory : 123 may in some embodiments
Static random access memory (SRAM ), Burst SRAM or 10 devices 103A - 130N to control the
connect to multiple I/O
one or more I/ O devices .
SynchBurst SRAM (BSRAM ); Dynamic random access Some embodiments of the I/ O devices 130A - 130N may be
memory (DRAM ); Fast Page Mode DRAM (FPM DRAM ); configured to provide storage or an installation
Enhanced DRAM ( EDRAM ), Extended Data Output RAM while others may provide a universal serialmedium 116 ,
( EDO RAM ); Extended Data Output DRAM (EDO 15 interface for receiving USB storage devices such as the USB) bus (USB
DRAM ) ; Burst Extended Data Output DRAM (BEDO Flash Drive line of devices manufactured by Twintech
DRAM ); Enhanced DRAM (EDRAM ); synchronous Industry , Inc. Still other embodiments include an I/O device
DRAM (SDRAM ); JEDEC SRAM ; PC100 SDRAM ; 130 that may be a bridge between the system bus 150 and an
Double Data Rate SDRAM (DDR SDRAM ); Enhanced external communication bus, such as : a USB bus; an Apple
SDRAM (ESDRAM ); SyncLink DRAM (SLDRAM ); 20 Desktop Bus; an RS-232 serial connection ; a SCSI bus; a
Direct Rambus DRAM (DRDRAM ) ; Ferroelectric RAM FireWire bus ; a FireWire 800 bus; an Ethernet bus; an
(FRAM ); or any other type of memory. Further embodi AppleTalk bus; a Gigabit Ethernet bus; an Asynchronous
ments include a central processing unit 121 that can access Transfer Mode bus ; a HIPPI bus; a Super HIPPI bus ; a
the main memory 122 via : a system bus 150 ; a memory port SerialPlus bus ; a SCI/LAMP bus ; a FibreChannel bus ; or a
103 ; or any other connection , bus or port that allows the 25 Serial Attached small computer system interface bus.
processor 121 to access memory 122. In some embodiments , the computing machine 100 can
One embodiment of the computing device 100 provides execute any operating system , while in other embodiments
support for any one ofthe following installation devices 116 : the computing machine 100 can execute any of the follow
a CD -ROM drive, a CD -R /RW drive, a DVD -ROM drive , ing operating systems: versions of the MICROSOFT WIN
tape drives of various formats, USB device , a bootable 30 DOWS operating systems; the different releases of the Unix
medium , a bootable CD , a bootable CD for GNU /Linux and Linux operating systems; any version of the MAC OS
distribution such as KNOPPIX® , a hard -drive or any other manufactured by Apple Computer ; OS/2 , manufactured by
device suitable for installing applications or software . Appli International Business Machines ; Android by Google; any
cations can in some embodiments include a NGCS 202 , or embedded operating system ; any real -time operating sys
any portion of a NGCS 202. The computing device 100 may 35 tem ; any open source operating system ; any proprietary
further include a storage device 128 that can be either one or operating system ; any operating systems for mobile com
more hard disk drives , or one or more redundant arrays of puting devices; or any other operating system . In still
independent disks; where the storage device is configured to another embodiment, the computing machine 100 can
store an operating system , software, programs applications , execute multiple operating systems. For example , the com
or at least a portion of the NGCS 202. A further embodiment 40 puting machine 100 can execute PARALLELS or another
of the computing device 100 includes an installation device virtualization platform that can execute or manage a virtual
116 that is used as the storage device 128 . machine executing a first operating system , while the com
The computing device 100 may further include a network puting machine 100 executes a second operating system
interface 118 to interface to a Local Area Network (LAN ), different from the first operating system .
Wide Area Network (WAN ) or the Internet through a variety 45 The computing machine 100 can be embodied in any one
of connections including, but not limited to , standard tele of the following computing devices: a computing worksta
phone lines, LAN or WAN links ( e.g., 802.11, T2 , T3, 56 kb , tion ; a desktop computer ; a laptop or notebook computer; a
X.25 , SNA , DECNET),broadband connections (e.g. , ISDN , server; a handheld computer; a mobile telephone ; a portable
Frame Relay , ATM , Gigabit Ethernet, Ethernet-over telecommunication device ; a media playing device ; a gam
SONET),wireless connections, or some combination of any 50 ing system ; a mobile computing device ; a netbook , a tablet;
or all of the above . Connections can also be established a device of the IPOD or IPAD family of devices manufac
using a variety of communication protocols (e.g., TCP/IP , tured by Apple Computer; any one of the PLAYSTATION
IPX , SPX , NetBIOS, Ethernet, ARCNET, SONET, SDH , family of devices manufactured by the Sony Corporation;
Fiber Distributed Data Interface (FDDI), RS232 , RS485 , any one of the Nintendo family of devices manufactured by
IEEE 802.11, IEEE 802.11a , IEEE 802.11b , IEEE 802.11g , 55 Nintendo Co; any one of the XBOX family of devices
CDMA , GSM , WiMax and direct asynchronous connec manufactured by the Microsoft Corporation ; or any other
tions). One version of the computing device 100 includes a type and /or form of computing , telecommunications or
network interface 118 able to communicate with additional media device that is capable of communication and that has
computing devices 100 ' via any type and /or form of gateway sufficient processor power and memory capacity to perform
or tunneling protocol such as Secure Socket Layer (SSL ) or 60 the methods and systems described herein . In other embodi
Transport Layer Security ( TLS), or the Citrix Gateway ments the computing machine 100 can be a mobile device
Protocol manufactured by Citrix Systems, Inc. Versions of such as any one of the following mobile devices: a JAVA
the network interface 118 can comprise any one of: a built - in enabled cellular telephone or personal digital assistant
network adapter; a network interface card ; a PCMCIA (PDA ); any computing device that has different processors ,
network card ; a card bus network adapter ; a wireless net- 65 operating systems, and input devices consistent with the
work adapter; a USB network adapter ; a modem ; or any device ; or any other mobile computing device capable of
other device suitable for interfacing the computing device performing the methods and systems described herein . In
US 10,547,497 B1
13 14
still other embodiments, the computing device 100 can be device . The active mediation instance can allocate another
any one of the following mobile computing devices: any one portion of the quota of the service prior to the consumption
series of Blackberry , or other handheld device manufactured of the portion of the service quota or the expiration of the
by Research In Motion Limited ; the iPhone manufactured by portion . The active mediation instance can also monitor
Apple Computer; Palm Pre; a Pocket PC ; a Pocket PC 5 consumption of the allocated portions of the quota of the
Phone ; an Android phone ; or any other handheld mobile service by the device and report the consumption to the
device . Having described certain system components and online charging solution according to a predefined consump
features that may be suitable for use in the present systems tion reporting schedule . The consumption reporting sched
and methods, further aspects are addressed below . 10
ule can be defined by a consumption reporting policy that
B. Reducing Traffic Flow Between a Network and may be established by the online charging solution . The
Online Charging Solution active mediation instance may also monitor the charges
associated with the consumption by the device and report
Telecommunication service providers want an accurate charges to the online charging solution according to a charge
representation of a subscriber's balance and data consump- 15 reporting schedule. The charge reporting schedule can be
tion in real time. Without up to date balance information , a defined by a charge reporting policy that may also be
subscriber may consume more data than the subscriber's established by the online charging solution .
plan provides, which can result in unintended overages for The mediator may be independent of the online charging
the subscriber . However, increasing the frequency at which solution . That is , the mediator may not know the specific
subscribers ' devices report to the service provider's online 20 price plan to which the subscriber subscribes or have any
charging solution can result in significantly high network additional details relating to the subscriber. The mediator
traffic and computational costs . can be configured to integrate with any online charging
The present solution relates to an improved system and solution . The mediator can be highly available and stateless.
method for reducing traffic flow between the network and The mediator can also allow for subscriber specific and price
the online charging solution . The methods and systems 25 plan specific configurations. These configurations can be
described herein can provide a mediator (or buffer ) between provided by the online charging solution to the mediator.
the network and the online charging solution . The mediator These configurations can include the quota allocation policy,
can be controlled independently of the online charging the network grant policy , the consumption reporting policy
solution, and for each device on the network , can run an and the charge reporting policy , among others . As these
active mediation instance that maintains a quota cache. The 30 policies may be configured or generated by the online
online charging solution can , for each device , provide the charging solution , the online charging solution can control
mediator a quota of a service that is allocated out to the how much quota of the service to allocate , the frequency at
device over a given period of time. The mediator can be which receive consumption and charge reports, among
configured to implement a plurality of policies according to others.
which the mediator serially allocates a plurality of network 35 FIG . 2 is a block diagram illustrating an implementation
grants to the device, reports usage of the device , and reports of a reporting system environment 200. The environment
charges based on the usage of the device to the online 200 includes a mediator 202 configured between an online
charging solution. The mediator can be configured to man charging solution (OCS) 204 and plurality of devices 252
age a plurality of quotas for a plurality of services available and a network 104. The devices 252 subscribe to the services
to a single device . Examples of services can include data, 40 offered by a service provider that can utilize the OCS 204 for
voice, textmessaging , among others . In some implementa monitoring service consumption by subscribers as well as
tions, the services can be more granular, including but not managing subscription charges of subscribers.
limited to video data , data consumed by a particular appli The mediator 202 is in communication with the plurality
cation , data received from servers of a particular domain , of devices 252 via the network 104. The mediator 202
among others. In some implementations, the services can be 45 includes one or more processors 206. Themediator 202 also
based on deep packet inspection . For instance , a service , for includes a quota manager 208 that manages one or more
example , data consumed by a video conferencing applica active mediation instances 210. Each active mediation
tion can be identified by applying a deep packet inspection instance 210 can include a record generator 212 , a bypass
to the data packets to identify an IP address (source or processing module 214 in communication with a bypass log
destination ) that matches an IP address of the video confer- 50 216 , and a quota cache 218. The record generator 212 and
encing application. In some implementations, a combination the quota cache 218 are in communication with the OCS
of a URL and a port number may be used to determine if the 204. Additional details relating to the mediator 202 are
consumption relates to a particular service. provided below .
The mediator can be configured to execute an active The OCS 204 includes one or more processors 206 , a
mediation instance for each service provided to a device. 55 subscriber database 222 and a policy database 224. The
The mediator can configure the active mediation instance to subscriber database 222 can include subscriber information
operate according to a subscriber specific configuration . As for one or more subscribers of services provided by the
subscribers may sign up for different subscription plans or service provider for which the OCS 204 is managing online
usage plans, each active mediation instance can be tailored reporting and charging functionality . The subscriber data
based on the subscriber. Each active mediation instance 60 base 222 can include data corresponding to price plans and
includes a quota cache for each service consumed by the other subscriber information associated with the device . For
device . The quota cache of a service includes a quota of an example , the subscriber database 222 may indicate in a table
amount or quantity of the service allocated by the online that the subscriber pays for a data plan that includes 500 talk
charging solution to the mediator for a particular subscriber minutes per month and 3 Gb of data . The policy database
or device . The action mediation instance may execute a 65 224 can include one or more policies , including but not
network grant policy that allocates a portion of the quota of limited to a quota allocation policy 226 , a network grant
the service allocated by the online charging solution to the policy 228 , a consumption reporting policy 230 , and a
US 10,547,497 B1
15 16
charge reporting policy 232. Each of these policies can or more rules according to which the mediator 202 is to
include one or more rules. Additionaldetails relating to these allocate a resource grant to the device. In some implemen
policies are provided below . tations, the network grant policy 228 can specify one or
The OCS 204 is configured to receive a network grant more rules for the timing and size of the resource grants
request from each of the devices 252. For example, the 5 issued to the device 252 and how the service quota allocated
device 252 may issue or transmit a network grant request by the OCS 204 to the mediator 202 should be divided into
when the device 252 first attempts to register with the a plurality of resource grants to be issued to the device 252
network . In some implementations, the device may attempt by the mediator 202. The network grant policy can specify,
to register with the network when the device 252 is switched for each resource grant allocation , a size of the resource
on . The network grant request can include a request for one 10 grant and an expiration period of the resource grant to
or more services. In some implementations, the network determine when the resource grantwill expire. The mediator
grant request can include a request for data service , a request 202 will implement the network grant policy. The quota
for voice service and a request for messaging service, among allocation policy can also indicate a network grant policy
others . The network grant request may request an amount of that includes
data that can be used by the device 252. In some implemen- 15 The OCS 204 can also specify one or more consumption
tations , the network grant request of the device 252 may be reporting policies 230 according to which the mediator 202
directed towards the OCS 204 butmay be intercepted by the will report the device's consumption of the service in each
mediator 202. In some implementations, the network grant of the allocated resource grants. The consumption reporting
request of the device is received by the OCS 204 without policy 230 can specify one or more rules according to which
being received by the mediator 202. The network grant 20 the mediator 202 is to report the consumption of one ormore
request can include information relating to the device 252 , resource grants of the service to the OCS 204. For example ,
including but not limited to , one or more device identifiers the consumption reporting policy 230 can indicate that the
unique to the device (for example , a subscriber identity mediator 202 report the consumption once every predeter
module (SIM ) card or an International Mobile Station mined time duration ( for example, 4 hours). The consump
Equipment Identity (IMEI) of the device ). The network 25 tion reporting policy 230 can also indicate that the mediator
grant request can also include geographic information , 202 report the consumption each time a resource grant is
among others. fully consumed or the resource grant expires.
The OCS 204 can identify one or more device identifiers The OCS 204 can also specify one or more charge
from the network grant request and use one or more device reporting policies 232 according to which the mediator 202
identifiers included in the network grant request to identify 30
will report the device's charges of the service based on the
the subscriber to which the device belongs. The OCS 204 device's consumption of the service in each of the allocated
can be configured to identify the subscriber by performing a resources . The charge reporting policy 232 can specify one
lookup in a subscriber database 222 using the device iden or more rules according to which the mediator 202 is to
tifiers . report the charges for the service during one or more
The OCS 204 can allocate quotas of services to the 35 resource grants to the OCS 204. For example , the charge
mediator 202 in response to receiving the network grant reporting policy 230 can indicate that the mediator 202
request from the device . In some implementations, the OCS report the consumption of the service once every predeter
204 can allocate a quota of a service ( service quota ) by mined time duration (for example, 6 hours ).
communicating with the mediator 202. In some implemen The mediator 202 acts as an intermediary to the plurality
tations, the OCS 204 can submit a request to generate a 40 of devices 252 and network 104 and the OCS 204. The
record corresponding to the device 252 for which to allocate mediator 202 can execute a plurality of active mediation
the service quota . In some implementations, the record is instances 210. In some implementations, the mediator 202
generated by the mediator responsive to receiving the net can execute one or more activemediation instances 210 for
work grant request from the device or in response to each of the devices 252 of the environment 200. In some
detecting that the OCS 204 received the network grant 45 implementations, the mediator 202 can execute a different
request from the device 252. instance of the active mediation instance 210 for each of the
The OCS 204 can provide , to the mediator 202 , the services (e.g., text, voice , and data ) used by a device 252. In
allocation of a service quota corresponding to the device. some implementations, the mediator 202 can execute an
The OCS 204 can determine an amount or size of the service active mediation instances 210 for each service offered to
quota to allocate to the device according to the quota 50 each of the devices 252 of the environment 200. In some
allocation policy 226. The quota allocation policy 226 can implementations, the active mediation instance 210 can be
be specific to the device , to a price plan to which the an application , program , library, service, task or any type
subscriber of the device subscribes , among others. The quota and form of executable instructions executable by the pro
allocation policy can also specify a validity time associated cessor 206 of the mediator 202 .
with the service quota . The validity time can be a length of 55 The quota manager 208 of the mediator 202 manages the
time for which the service quota is valid . In some imple active mediation instances 210. In some implementations ,
mentations, the validity time can be a time until which the the quota manager 208 can be configured to communicate
service quota is valid and may be based on a length of time with the OCS 204 and may be configured to cause the
from which the network grant request was received . In some mediator 202 to establish a new active mediation instance
implementations, the validity time can be a fixed time for a 60 210 responsive to the OCS 204 transmitting a request to
given date (for example, 11 pm every day ). In some imple provide a network grant to a device 252. In some imple
mentations , the OCS 204 can define the quota allocation mentations, the quota manager 208 may be configured to
policy based on a subscriber plan of the subscriber , a cause the mediator 202 to establish a new active mediation
geography of the subscriber, or any other information related instance 210 for each service identified in the request to
to the subscriber. 65 provide a network grant to a device 252.
The OCS 204 can also specify one or more network grant Each active mediation instance 210 includes a quota
policies 228. The network grant policy 228 can specify one cache 218. The quota cache 218 is configured to provide one
US 10,547,497 B1
17 18
or more resource grants of a service to the device 252 to and may generate a consumption report from the received
which the active mediation instance 210 corresponds. In information . The consumption reports based on the device's
some implementations, the quota manager 208 can allocate usage can identify the amount of resources (e.g. , minutes
one or more resource grants of the service to the device . The used , text messages sent, or data used ) consumed by the
quota manager 208 can allocate the resource grants from a 5 device 252. In some implementations , each of the consump
service quota allocated to the mediator 202 by the OCS 204 tion reports corresponds to one of the resource grants
for a particular service of a particular device 252. As such , allocated to the device 252.
the resource grants are portions of the service quota pro The quota manager 208 can be configured to aggregate
vided by the OCS 204 to the mediator 202 for a specific the consumption reports received from the device. The quota
device 252. The quota manager 208 can provide a plurality 10 manager 208 may store consumption report related infor
of resource grants to the device 252 over a given time period. mation in the quota cache 218. The quota manager 208 can
The quota manager 208 can provide the plurality ofresource be configured to identify , from the consumption reports
grants serially to the device 252. For example , the quota received from the device , information related to the amount
manager 208 can provide a first resource grant of a service of the service consumed by the device . In some implemen
at a first time, and at the expiration of the first time, the quota 15 tations, the consumption reports may be received from some
manager 208 can provide a second resource grant of the other entity in the network that monitors the consumption of
service to the device 252. The quota manager 208 can also the service by the device . In some implementations, the
provide a new resource grant of the service when a previous consumption report may be generated by the mediator 202
resource grant is consumed . In some implementations, the based on consumption of the service by the device.
quota manager 208 can allocate a resource grant to the 20 The quota manager 208 can be configured to report
device according to a network grant policy. The network consumption statistics to the OCS 204. In some implemen
grant policy can include one or more rules according to tations, the quota manager 208 may report the consumption
which the quota manager 208 can allocate resource grants of statistics periodically . In some implementations, the quota
the service to the device . The network grant policy can be manager 208 may report consumption statistics according to
specific to a particular type of service. In some implemen- 25 a consumption reporting policy 230. As described above, the
tations, the quota manager 208 can allocate a resource grant consumption reporting policy 230 can specify one or more
having a grant size and an expiration time. The grant size rules according to which the quota manager 208 is to report
and the expiration time may be determined according to the the consumption of the service by the device to the OCS 204.
network grant policy. The grant size can specify the size of For example, the consumption reporting policy 230 can
the network grant. In some implementations, the grant size 30 indicate that the mediator 202 report the consumption once
may not exceed the size of the service quota allocated to the every predetermined time duration (for example, 4 hours).
mediator 202 by the OCS 204. The expiration timemay be The consumption reporting policy 230 can also indicate that
a specified time at which the resource grant expires. In some the mediator 202 report the consumption each time a
implementations, the expiration timemay be a time duration resource grant is fully consumed or the resource grant
over which the resource grant is valid . For example, the 35 expires . It should be appreciated that the frequency atwhich
resource grant may be valid for a predetermined time consumption reports are provided to the OCS and the
duration from the time the resource grant was issued or accuracy at which the OCS 204 can reduce overage costs
allocated by the quota manager 208 to the device 252 . may be directly related . However, the frequency at which
In an example , the OCS 204 may provide , as a service consumption reports are provided to the OCS may be
quota , 50 MB of data to be provided to a device 252 during 40 inversely related to the amount of processing the OCS 204
a 24 -hour period. The OCS 204 can provide the 50 MB to will have to perform ,
the quota cache 218 of the active mediation instance 210 In some implementations , the number of consumption
associated with the respective device 252. The quota man reports provided to the OCS 204 by the mediator 202 is
ager 208 of the mediator 202 may then divide the 50 MB into dependent on the consumption reporting policy 230. The
a plurality of resource grants for example, five 10 MB 45 consumption reporting policy 230 can identify a consump
resource grants. In some implementations, the quota cache tion reporting timeand a consumption reporting size and can
218 may do so according to the network grant policy include one ormore rules for providing consumption reports
corresponding to the device 252. Each of the resource grants to the OCS 204. For example, the consumption reporting
can be valid for a predetermined amount of time. The policy 230 may indicate that a consumption report updating
predetermined amount of time can be defined by the start 50 the balance of the device 252 should be sent to the OCS 204
and end time or by a time length . For example , a resource every 6 hours . The quotamanager 208 may monitor the time
grant may expire at a predetermined time (e.g., 11 AM ) or since the last consumption report was generated and sent to
after a predetermined amountof time (e.g. , 4 hours ). In some the OCS 204. When the monitored time is equal to or
implementations, each of the resource grants can be of a exceeds a consumption reporting time as indicated by the
different size. For example , a first resource grant can be 10 55 reporting policy , the quota manager 208 can provide the
MB while the second resource grantmay be 20 MB . The size OCS 204 with a consumption report.
of each of the resource grants can be provided by the For example, the resource grant may be a 10 MB alloca
network grant policy associated with the device 252 . tion to a specific device 252. The resource consumption
The quota manager 208 can also be configured to receive report may indicate that over the active time (e.g., between
a plurality of consumption reports from the plurality of 60 the start and expiration of the resource grant) of the resource
devices 252 for which the mediator 202 serves as an grant, the device 252 used , for example, 9 MB of data. The
intermediary to the OCS 204. In some implementations, the quota manager 208 can aggregate the information from the
quota manager 208 can receive , for each device , one or more plurality of consumption reports to generate a report of the
consumption reports relating to consumption of the service total amount of resources used by the device 252 over a
by the particular device 252. In some implementations, the 65 given time period . For example, if the quota of services is 50
quota manager 208 can be configured to receive information MB for a given day and the quota cache 218 divides the 50
related to the consumption of resources by the device 252 MB quota of services into five 10 MB resource grants , and
US 10,547,497 B1
19 20
if over the given day , the device 252 used 9 MB of the first receives consumption reports from the device 252. In some
resource grant, 10 MB of the second resource grant, 7 MB implementations, the device may have already consumed the
of the third resource grant, and 10 MB of the fourth and fifth allocated services reserved for the device 252. In these
resource grant, the quota manager 208 can aggregate the implementations, the quota manager 208 can look to the
information to report that the device 252 used 46 MB of the 5 bypass reservations 302 to determine if the device 252 has
50 MB service quota over the given day . The quota manager a bypass balance . The bypass logic 304 may be used to
208 may then report this information to the OCS 204 once determine if , when the device 252 has exhausted the quota ,
per fixed time interval (for example, a day), at the expiration the device 252 can continue to receive additional data . For
of the service quota, or when the device 252 consumes the example , if the bypass logic 304 determines that the there is
full service quota . 10 no bypass logic associated with the device 252, the device
In the event that the device gets disconnected from the 252 may not be provided additional data . However, if a
network and is unable to consume additional service , a balance is associated with the device 252, then the device
charge report may be generated responsive to detecting that 252 may be allowed to receive additional data .
the device is no longer connected to the network . In some FIG . 4 is a flow chart of a method for reducing traffic flow
implementations, the charge report may be generated 15 between a network and an OCS . The method includes
according to a predetermined reporting schedule. In some receiving , by the mediator from the OCS , for a service
implementations, if the device reconnects to the network , the provided to a device, an allocation of a quota of the service
device can be issued a new resource grant. This resource according to a quota allocation policy established by the
grant can be of a size that is the difference between the online charging solution (BLOCK 402 ). The mediator pro
previous resource grant size and the amount of service 20 vides, for the service and corresponding to the allocation of
consumed by the device before the device was disconnected the quota of the service , a plurality of resource grants to the
from the network . Further, the validity time of this resource device, each resource grant of the plurality of resource
grant can expire at the time the previous resource grantwas grants having a size limit and a time period (BLOCK 404 ).
originally supposed to expire. The mediator receives a plurality of resource consumption
As described above, the mediator 202 can reduce report- 25 reports corresponding to the plurality of resource grants
ing to the OCS 204, thus reducing the computational (BLOCK 406 ). The mediator determines an aggregate
resources the OCS 204 expends to monitor the consumption amount of resources of the service based on a sum of the
of a service ( e.g., data ) of the devices 252. The mediator 202 amounts of resources used by the device identified in each
can reduce the reporting while still providing the OCS 204 of the plurality of resource consumption reports (BLOCK
an accurate view of the service consumption in the envi- 30 406 ). Themediator generates for the service , a charge report
ronment 200. In a system without a mediator 202, each of identifying the aggregate amountof resources responsive to
the consumption reports of a service from the device 252 the device consuming the allocated quota of the service or an
would be sent directly to the OCS 204. These consumption expiration of the validity time ( BLOCK 410 ). The mediator
reports could number in the tens to hundreds per day per provides , for the service provided to the device, the charge
device 252. In the environment 200 described herein , the 35 report responsive to the device consuming the allocated
OCS 204 provides the quota cache 218 with one authoriza quota of the service or an expiration of the validity time
tion and a service quota per given time period (e.g., 1 day ). (BLOCK 412 ).
The mediator 202 provides resource grants to the device 252 As set forth above , and in greater detail , the method
and receives each of the consumption reports from the includes receiving, by the mediator from the OCS, for a
device 252. Themediator 202 can then provide the OCS 204 40 service provided to a device , an allocation of a quota of the
with balance updates in response to the subscriber's con service according to a quota allocation policy established by
sumption of the resource grants corresponding to the ser the online charging solution (BLOCK 402). The online
vice . In the above example, where the service quota was charging solution can allocate a service quota (e.g., network
divided into five resource grants , the mediator 202 may only data ) for a device. The OCS can allocate the service quota
send the OCS 204 five consumption report updates per day 45 in response to a request for a service from a device . In some
per device 252 rather than the tens to hundreds of updates implementations, the OCS can allocate service quotas for a
per device 252 that would be sent to the OCS 204 without plurality of services , such as voice , data , text, among others
a mediator 202 . in response to receiving a network grant request from the
It should be appreciated thatby utilizing themediator 202 device. In some implementations, the OCS can receive a
between the network and the OCS 204 , the mediator can 50 request to allocate one or more service quotas from the
account for device consumptions of service even if network device in response to the device connecting to the network ,
activity of a device failed to get reported to the OCS 204. for example , by being switched on . The network grant
This is possible because the mediator 202 can track and request can identify the device to the OCS . The OCS can
record outstanding network grants and generate charge then determine if the device is a subscriber of the OCS and
reports responsive to the network grant being consumed 55 has a current and active account by determining ifthere is a
entirely or if the network grant expires according to a subscriber record associated with the device identifier in a
predetermined validity time. In this way , the mediator 202 subscriber database of the OCS . The OCS can allocate the
can persist the consumed service quota reported from the service quota according to a quota allocation policy . The
network to allow recovery of a failed node without loss of quota allocation policy can be established by the OCS. If the
reported network activity , for instance , activity that has not 60
device is a subscriber the OCS can retrieve a quota alloca
been reported or charged to the OCS yet . tion policy from the policy database maintained by the OCS .
FIG . 3 is a block diagram depicting an implementation of The OCS can determine a size . The quota allocation policy
the quota cache 218 architecture with a bypass feature . As can indicate a quota grant size indicating a quota size for the
illustrated , the OCS 204 authorizes device 252 and provides service to allocate to the device . The quota allocation policy
at least one service quota to the mediator 202. The mediator 65 can also indicate a quota validity time for which the service
provide resource grants based on the service quota allocated quota is valid . For example, the service quota may be valid
by the OCS 204 for the device 252. The mediator 202 for 24 hours after the device was authorized with the OCS.
US 10,547,497 B1
21 22
In some implementations, the service quota may be valid of PM , and so on . Each of the resource grants can be of equal
a predetermined amount of time from the time the OCS or different amounts of services and be valid for equal or
received a request to allocate the service quota or from a different amounts of time.
time the OCS provides themediator the service quota for the The mediator receives a plurality of resources consump
device . In some implementations, the quota allocation policy 5 tion reports from the device (BLOCK 406 ). In some imple
can be specific to a particular device or can be specific to a mentations, each of the plurality of resource consumption
particular subscription plan , geographic location , device reports can correspond to one of the resource grants issued
type, among others . by the mediator to the device . In some implementations , the
The mediator can receive a plurality of allocations of a resources consumption reports can be independent of the
service quota from the OCS . The mediator can receive an 10 resource grants issued by the mediator. As described above ,
allocation of a service quota for each device in response to each of the resource grants indicates a portion of the service
a network grant request from a device . The mediator can quota the device is allotted during a specific time frame. The
receive the allocation of a service quota from the OCS per consumption report received by the mediator from the
allocation period . The allocation period can be based on a device can indicate what portion of the resource grant the
predetermined time duration . For example, once every 24 15 device used. In some implementations, the consumption
hours . In some implementations, the allocation period may report is sent to the mediator when the resource grant
be based on the utilization of the service quota by the device . expires . In some implementations, the consumption report is
In some implementations, the OCS may allocate a service sent to the mediator when (or if) all the resources of the
quota each time the device corresponding to the service resource grant are consumed . For example , assume a
quota consumes the service quota . 20 resource grant is for 10 MB and is set to expire at 7 PM . If
The mediator may generate , create or otherwise establish the device consumes the 10 MB at 5:43 PM , the device may
an active mediation instance for each device . In some send the consumption report to the mediator at substantially
implementations, the mediator may receive the allocation of about 5:43 PM . In another example , if the device does not
the service quota from the OCS. In some implementations, consume the 10 MB of data at 7 PM , the device may send
the quota manager of the mediator may generate the active 25 to the mediator a consumption report that indicates what
mediation instance and a record generator of the active portion of the 10 MB the device did consume.
mediation instance may communicate with the OCS to The mediator determines an aggregate amount of
receive the allocation of the service quota . resources of the service based on a sum of the amounts of
The method also includes providing a plurality of resources used by the device identified in each of the
resource grants to the device (BLOCK 404 ). The mediator 30 plurality of resource consumption reports (BLOCK 408 ).
can provide a plurality of resource grants to the device . The The mediator can receive a plurality of resource consump
mediator can allocate , from the allocation of the service tion reports or otherwisemonitor and determine usage by the
quota , a plurality of resource grants for the device . The device. The mediator can aggregate the usage by the device .
mediator can then provide, to the device, the plurality of The mediator can identify the usage from each of the
resource grants. In some implementations , the mediator can 35 plurality of resource consumption reports and aggregate the
provide the plurality of resource grants one at a time or identified usage . The mediator can , via the quota manager,
serially store the consumption reports and the aggregated usage in
In some implementations, themediator divides the service the quota cache of the active mediation instance correspond
quota allocated by the OCS into a plurality of resource ing to the device that is maintained by the quota manager. In
grants . As such , the aggregate size of the plurality of 40 some implementations, the mediator may store the con
resource grants can be equal to or less than the service quota sumption report until the resource grant expires . When the
allocated by the OCS . Each of the resource grants can resource grant expires, the amountof data used by the device
include a portion of the data provided by the service quota . can be aggregated . For example, the used data , as reported
The mediator can allocate and provide the resource grants by each of the consumption reports corresponding to each of
according to a network grant policy . The network grant 45 the resource grants , can be summed to determine how much
policy can be established or maintained by the OCS. The data was consumed by the device while the service quota
mediator can communicate with the OCS and receive the was valid .
network grant policy from the OCS. In some implementa The mediator can generate for the service, a charge report
tions, the network grant policy can specify a resource grant identifying the aggregate amount of resources responsive to
size and a resource grant validity time. The resource grant 50 the device consuming the allocated quota of the service or an
size can specify a size of the resource grant to allocate . The expiration of the validity time ( BLOCK 410 ). The consump
resource grant validity time can specify a time duration for tion reporting policy can include one or more rules accord
which the resource grant is valid . At the expiration of the ing to which to provide consumption reports to the OCS. The
time duration , the mediator can provide another resource consumption reporting policy can be specific to the device .
grant to the device. The mediator can also provide subse- 55 The consumption reporting policy can be established by the
quent resource grants to the device if the active resource OCS and stored in the policy database maintained by the
grant expires or if the device consumes the entire resource OCS. In some implementations, the consumption reporting
grant. As described , each of the resource grants can also be policy can be established by the device . The consumption
valid for a portion of the time that the service quota is valid . report received by the mediator can include an identifier of
For example , a second resource grant may be activated after 60 the device and include the amount of data that was con
the expiration time of a first resource grant that is issued to sumed by the device . In some implementations, the amount
the device. As an example , the service quota may be valid of data consumed by the device is a portion or all of the
for a total of 12 hours from 7 AM to 7 PM , and four resource service quota. The mediator can identify usage from the
grants may be provided , each ofwhich are valid for a 3 hour device and generate a consumption report to provide to the
time within the 12 hours of the service quota. The first 65 OCS . In some implementations, the mediator can generate
resource grant may be valid from 7 AM to 10 AM , the the consumption report based on information received from
second resource grant may then be valid from 10 AM to 1 the usage of the device . The mediator can then provide the
US 10,547,497 B1
23 24
generated consumption reports to the OCS. In some imple specifies generating and providing a consumption report 506
mentations, the consumption reporting policy can specify every 6 hours or at the consumption of 20 MB. In the
the frequency at which the consumption reports are to be example , when the first consumption report is generated at
provided to the OCS. In some implementations, the con 1 PM on Jan 1 the device has indicated to the mediator 202
sumption reporting policy can specify that the consumption 5 that the device has consumed 5 MB of data. When the third
reports are to be provided once per time period ( for example , consumption report is generated at 1 AM on Jan 2 the
once per 6 hours ). In some implementations, the consump mediator 202 has aggregated the received consumption
tion reporting policy can specify that the consumption reports (corresponding to consumption reports 1-4 ) to deter
reports are to be provided each time the resource grant mine that by 1 AM on Jan 2 the device has consumed a total
provided by the mediator to the device expires or is fully 10 of 25 MB of data. With the receipt of the consumption
consumed . In some implementations, the specifics of when reports , the OCS 204 can determine if the device has
the mediator reports to the OCS for a specific device may be consumed all of the service quota and may charge the user
based on a consumption reporting policy associated with the of the device for the consumption of data associated with the
device . For example , a first consumption reporting policy service quota. In the example illustrated in FIG . 5 at the
associated with a high data use device may be configured to 15 expiration of the service quota the subscriber has only used
report back to the OCS relatively more often than a second 40 MB of the 50 MB quota . In the example illustrated in
consumption reporting policy associated with a low data use FIG . 5 , the charge reporting policy 232 indicates that the
device . mediator 202 should generate a charge report 506 every 24
The mediator can provide for the service provided to the hours or every 100 MB . As described in this example, the
device,the charge report responsive to the device consuming 20 device used 40 MB at the end of 24 hours. As such , the
the allocated quota of the service or an expiration of the mediator can generate a charge report that includes the 40
validity time (BLOCK 412 ). The charge report can include MB usage and provide the generated charge report to the
an identifier of the device and include the amount of data OCS. The OCS can then apply the charges based on the
that was consumed by the device or an amount ofmoney to charge report to the device's account.
charge the device based on the usage . The mediator can 25
generate the charge report according to the charge reporting C. Predictive Rating Using a Buffer
policy. The mediator can provide the charge reports to the
OCS once per time period ( for example , once every 12 Current network -based online charging solutions are fast
hours ). The frequency at which the charge reports are and highly available but have simple rating capability and
provided to the OCS can be specified in the charge reporting 30 are inflexible. These systems are intentionally simple to
policy. In some implementations, the OCS can specify the achieve low latency and high availability. These systems are
frequency at which themediator is to provide charge reports characterized by simple customer structures and limited
to the OCS. The mediator can provide the charge report to configurability and often manage a limited number of bal
the OCS . The charge report can be transmitted to the OCS ances for consumption . In contrast, IT based charging sys
at either the expiration of the service quota or when the 35 tems are flexible but not typically highly available and have
service quota is completely consumed . The specifics of higher latency. These systems can provide richer function
when the mediator reports to the OCS for a specific device ality , depth of customer data and greater configurability,
may be based on a charge reporting policy associated with which means that these systems have lots of code executed
the device . to perform rating functions and also have a large database
FIG . 5 is a block diagram illustrating the allocation of a 40 footprint. These IT charging systems are difficult to make
service quota to a device. Responsive to the OCS 204 highly available and require significant hardware resources
authorizing a device as a subscriber, the OCS 204 identifies to deliver low latency.
a service quota 502 for a service associated with the device . The mobile customer experience is becoming more real
The service quota 502 may be specific to the device and can time, and thus it is critical to get complex functionality for
include one or more policies . In some implementations, the 45 charging closer to the network and achieve low latency that
service quota 502 can include a quota allocation policy 226 , is expected with modern telecommunications devices. This
a network grant policy 228 , a consumption reporting policy is a base expectation of customers and can serve as a
230 and a charge reporting policy 232. The service quota competitive differentiator for operators .
502 indicates that a 50 MB reservation is to be provided to The methods and systems described herein can provide a
the quota cache 218 of the mediator 202 for the specific 50 predictive rating function that can support complex cus
device . The service quota is allocated to the device as six tomer structures, rich rating functionality, with low latency
resource grants over a time period of 7 AM on Jan 1 to 7 AM and high availability. The methods and systems can achieve
on Jan 2. The six resource grants are allocated by the these features without the need for two rating solutions to
mediator according to the network grant policy 228. The meet the different needs of the network and IT organizations
device provides consumption reports 504 to the mediator 55 and the associated cost and complexity of running the two
202 at the expiration of each of the consumption reports . As systems to meet the various needs of the different systems.
illustrated , each of the resource grants lasts for 4 hours with Coordinating configuration , customer data and balance
the first expiring at 11 AM on Jan 1 and the sixth expiring information between two systems are complex , costly , and
at 7 AM on Jan 2. The consumption report indicates to the fragile , and the present solution can eliminate these com
mediator how much of the resource grant the device used 60 plexities and the associated cost .
during the given time period. For example , during the valid The present solution relates to an improved system and
time of the fourth resource grant, the device reported back method for reducing traffic flow between the network and
that the device used 10 MB of data . The mediator 202 the online charging solution using a buffer. In particular, the
receives and aggregates each of the consumption reports present solution involves the use of a buffer that provides a
from the device. The mediator 202 can then provide con- 65 predictive rating. The buffer can be proactively loaded with
sumption reports to the OCS according to the consumption a balance from the online charging solution . Since the
reporting policy 230. The consumption reporting policy balance information is a compact, distilled version of the
US 10,547,497 B1
25 26
rating results , the balance information can be easily repli Each primary allocation balance can be associated with a
cated and made geo -redundant to support availability . The validity time, which can be a specific time at which the
present solution provides a rating buffer between the net primary allocation balance expires. The predictive rating
work and the online charging solution . The buffer is proac buffer 604 can also maintain one or more contingency
tively loaded with a device's balance . The buffer establishes 5 allocation balances , which are balance not associated with a
the prioritized consumption of the device's balances by specific service. As described further below , when a primary
proactively sending rating requests to the online charging allocation balance is exhausted , incoming grant requests can
solution prior to receiving actual requests for a rating from be allocated from the contingency allocation balance .
the devices. This isolates the buffer from the complexity of The predictive rating buffer 604 can maintain a plurality
rating code and customer structures by simply simulating the 10 of primary allocation balances and one ormore contingency
predicted rating requests. The buffer can retain balance balances for each of the devices 252 of the environment 600 .
consumption relationships without needing to replicate the The primary allocation balances and contingency allocation
complex logic of the rating engine or complex customer balances are described further in relation to FIG . 9. The
structures to the buffer. The buffer can also maintain a single contingency allocation balance for each device 252 can be
copy of the customer balance. This is in contrast to existing 15 an overflow balance to which funds are initially credited by
systems, which often , maintain multiple copies of the bal the predictive rating buffer 604. The funds are not initially
ance to increase responsiveness , leading to multiple versions attributed to a specific service. When a primary allocation
of the balances that cannot be reconciled as different copies balance is exhausted ( e.g., the balance reaches 0 ), the
of the balance may be debited at different times. predictive rating buffer 604 can allocate additional balance
FIG . 6 is a block diagram illustrating a reporting system 20 from the contingency allocation balance, such that the
environment 600. The environment 600 includes a predic device 252 can continue to use the service . For example,
tive rating mediator 602 that is executing a predictive rating once a service balance is exhausted , the predictive rating
buffer 604. The predictive rating buffer 604 includes a quota buffer 604 can generate instructions that cause new grant
manager 208 , a record generator 212, and scheduled requests to be fulfilled via the contingency allocation bal
activity monitor 704. The predictive rating buffer 604 is in 25 ance. The instructions can be generated responsive to a
communication with an online charging solution 204 , which policy that the predictive rating buffer 604 retrieves from a
includes a rating interface 708 and a rating function 710. The database that can indicate how much of the contingency
predictive rating buffer 604 is also in communication with a allocation balance can be moved to the exhausted service
network router 702, which includes an event router 705 and balance . In some implementations, the local quota and
a diameter interface 706. The network router 702 is in 30 session cache 218 can contain multiple contingency alloca
communication with a plurality of subscriber devices 252 tion balances for each of the device 252. Once the device
via a network 104. In some implementations , the subscriber 252 exhausts one of its primary allocation balances, the local
devices 252 are also referred as devices 252 . quota and session cache 218 can allocate additional. As
The predictive rating mediator 602 is configured to additional usage is identified by the local quota and session
include any of the components discussed above in relation to 35 cache 218 , the predictive rating buffer 604 can debit the
the mediator 202. The predictive rating mediator 602 can usage from the contingency allocation balance that was
execute an instance of the predictive rating buffer 604 for added to the service balance .
each device 252. In some implementations, the predictive The record generator 212 of the predictive rating buffer
rating mediator 602 can execute a separate instance of the 604 can receive usage information via the network 104 from
predictive rating buffer 604 for each service (e.g., text, 40 consumption
each of the devices 252.For example, a usage message (or
report ) can be sent from the device 252 to the
voice , and data ) used by each of the devices 252.
The predictive rating buffer 604 of the environment 600 record generator 212 using the Diameter protocol. The
is configured to receive data from the OCS 204 about which message can include a headerwith information that indicates
services the device 252 is subscribed . Using the receive data , from which device 252 the message originated . The body of
the predictive rating buffer 604 can determine an available 45 the usage message can indicate which service and how much
balance of network resources for the device 252 and gen of the service was consumed . The record generator 212 can
erate primary allocation balances and contingency allocation receive the usage message and read the usage message to
balances for each of the services . The predictive rating determine an amount of service consumed by the device
buffer 604 can receive a request for a network grant for a 252. For example , the predictive rating buffer 604 can
specific service . When the predictive rating buffer 604 50 receive a message that indicates that a device 252 used 23
receives the network grant request, the predictive rating minutes and debit the 23 minutes from the respective
buffer 604 can generate a grant (or quota ) for the service device's minute usage balance . In some implementations,
associated with the request . The generation of the primary the recorder generator 212 can store an indication of an
allocation balance is responsive to a policy stored by the amount of service indicated as consumed by the device 252
predictive rating mediator 602. The policy can indicate how 55 in a database in association with an identifier of the device
much of each service the device 252 is allowed to consume 252. The record generator 212 can generate and store a
in any given time period . The generated primary allocation charge report for the usage reported in the usage message .
balance can include , for example, a 4 GB balance for data , The quota manager 208 of the predictive rating buffer 604
a 1000 -minute balance for minutes , a 1000 SMS balance , can manage the receiving ofnetwork grant requests from the
and a $ 150 contingency balance . In some implementations, 60 device 252 and network and the transmission of the requests
the services can be voice calls , textmessages, data , among to the OCS 204. For example , when the device 252 comes
others . In some implementations, the services can be more online, the device 252 may send a request to the quota
specific , for example , specific to particular applications, manager 208 for access to a service . Responsive to receiving
domains , or data types (for instance , video ). The primary network grant request, the quota manager 208 can establish
allocation balances can include balances for services, for 65 a primary allocation balance for each of the services the
example , minutes of talk time, a number of messages ( e.g., device 252 can consume. The quota manager 208 can also
MMS and SMS), amounts of data, and a contingency quota . establish a contingency allocation balance for the device
US 10,547,497 B1
27 28
252. The establishment of the primary allocation balances consumed by the device 252 for a particular service . After
and one or more contingency allocation balances can be receiving the usage message , the predictive rating buffer 604
governed by a policy . For example, policy can indicate how can convert the units into a monetary value responsive to a
much of each service the device 252 is entitle to consume policy received from the online charge system 204. The
during a given time period ( e.g., a month , week , day , or a ui
policy can be a lookup table or data structure that indicates
portion thereof). a price for a service unit. For example , the lookup table may
The quota manager 208 can also be configured to receive indicate that each textmessage unit costs 10 cents, and each
charge reports from the record generator 212. The charge kb of data costs 1 cent.
reports can be a data structure that can contain an indication The network router 702 can include an event router 705
ofconsumed
the type, of
andservice
a periodconsumed, the amount
over which of thewasservice
the service con 10 and a diameter interface 706. The diameter interface 706 can
sumed by the device 252 . be an application executing on the network router 702 that
The quota manager 208 can apply a rating function to the converts the incoming messages from the network 104 into
data in the charge report, which converts the amount of the Diameter protocol. The diameter interface 706 can
services consumed from a unit measurement (e.g., 57 text 15 provide an interface between the protocol used in the
messages or 13 Mb of data ) to a monetary measurement network 104 and the network used between the network
(e.g., $ 5.70 worth of textmessages or $ 13.00 worth of data ). router 702 , the predictive rating buffer 604 , and the OCS
The quota manager 208 can maintain an exchange rate 204 .
policy that includes the conversion rate between unit mea The OCS 204 of the environment 600 can include a rating
surements and monetary measurements . In some implemen- 20 function 710 , which interfaces with the predictive rating
tations, the exchange rate policy is a per device policy (e.g., mediator 602 via a rating interface 708. The rating function
each device 252 may have a different exchange rate ) and in 710 can perform rating functions similar to that of rating
other implementations the exchange rate policy may be the functions performed by the predictive rating buffer 604. That
same for multiple devices 252. Responsive to receiving the is , the rating function 710 can process charge reports gen
charge reports from the record generator 212 , the quota 25 erated by the record generator 212 to determine a monetary
manager 208 can update the balances of the usage balance cost of the resource usage by the device 252. In some
of the device 252 . implementations, the rating function 710 can perform more
The quota manager 208 can be configured to report computationally intensive rating functions than can be per
updated balance information for each device 252 to the OCS formed by the predictive rating buffer 604.
204. In some implementations, the quota manager 208 may 30 FIG . 7 is a block diagram illustrating additional detail of
report the updated balance information periodically based on the reporting system environment 600. The environment600
a schedule outlined in a consumption reporting policy . The is similar to the above described environment 200 described
consumption reporting policy can specify one or more rules in relation to FIG . 2. FIG . 7 illustrates various components
according to which the quota manager 208 reports the of the environment 600 that can provide predictive rating
update balance information of the device 252 to the OCS 35 buffer 604 bypass functionality. The bypass functionality
204. For example , the consumption reporting policy can increases the availability of the predictive rating buffer 604
indicate that the quota manager 208 report the balance by enabling the predictive rating buffer 604 to continue to
updates once every predetermined time duration ( for receive authorization requests and terminations from the
example , 4 hours ). devices 252 when there is downtime ( e.g., a loss of a
In some implementations, once the predictive rating buf- 40 connection ) between the predictive rating mediator 602 and
fer 604 receives the initial grant request form the device 252 , the OCS 204. The environment 600 includes the predictive
the predictive rating buffer 604 can send a request to the rating mediator 602 , which includes a record generator 212 ,
OCS 204 for the total active balance and other data about the a bypass processing module 214 , a bypass log 216 , and a
device 252. Receiving the total active balance of the device local quota and session cache 218.
252 can enable the predictive rating buffer 604 to maintain 45 In some implementations, bypass functionality enables
and update the device's balance when new network grant the predictive rating buffer 604 to continue to operate and
requests arrive from the device 252 without the predictive monitor device 252 usage withoutmaintaining a connection
rating buffer 604 having to send additional messages to the with the OCS 204 , such as during times of network down
OCS 204. The predictive rating buffer 604 can also include time. During the periods of network downtime, the predic
a scheduled activity monitor 704, which can monitor the 50 tive rating buffer 604 can continue to receive authorization
usage balances of the devices 252 and determine if the usage requests and terminations from the devices 252. The record
balances are nearing an expiration time. For example, each generator 212 can continue to generate charge reports,
of the usage balancesmay be valid for 6 hours (or any other which , as described above , enables device service consump
set length of time), and when the scheduled activity monitor tion to be deducted from the device's usage balances. During
704 determines the usage balance is about to expire , the 55 periods of network downtime, the quota manager 208 of the
predictive rating buffer 604 can request an updated usage predictive rating buffer 604 can continue to update the
balance form the OCS 204 . balances as described above. In some implementations,
In some implementations, the primary allocation balances when the predictive rating buffer 604 would send balance
can be maintained in a monetary value. For example , rather updates to the OCS 204 if the network was not in a state of
than storing a number of available minutes (e.g. , 500 min- 60 downtime, the predictive rating buffer 604 can store the
utes) in a usage balance for voice, the local quota and session balance updates in the local quota and session cache 218 .
cache 218 can store a monetary value such as $ 30.00 . The When the predictive rating buffer 604 reestablishes a con
usage units identified as consumed in the charge report from nection with the OCS 204 , the predictive rating buffer 604
the record generator 212 can be converted into a monetary can retrieve the balance updates from the local quota and
value by the predictive rating buffer 604. For example , the 65 session cache 218 and send the balance updates to the OCS
local quota and session cache 218 can send the predictive 204 to synchronize the data on the predictive rating mediator
rating buffer 604 a message indicating the number of units 602 and the OCS 204 .
US 10,547,497 B1
29 30
The predictive rating mediator 602 can also include a allocation balance to be used in combination with the
bypass processing module 214 and a bypass log 216. In services of the client device or the predictive rating buffer
some implementations, the bypass processing module 214 can generate a different contingency allocation balance for
and the bypass log 216 enables the predictive rating media each of the different services .
tor 602 to provide a bypass balance to devices 252. The 5 The method 800 can include receiving a request to
bypass balance may be generated by the bypass processing allocate a grant from the primary allocation balance
module 214 when the predictive rating mediator 602 is not (BLOCK 806 ). The predictive rating buffer can receive the
in communication with the OCS 204. For example , if the request from the network . The request can be to allocate a
predictive rating mediator 602 receives a network grant grant from the primary allocation balance . The method 800
request from a device 252 during a period of downtime 10 can also include granting the request (BLOCK 808 ). The
between the predictive rating mediator 602 and the OCS 204 grant can be provided to the network and indicates an
the bypass processing module 214 can issue a network grant amount of network units that the client device can consume.
authorization to the predictive rating buffer 604 in place of The grant can expire after a predetermined amount of time.
the OCS 204. In some implementations, the network grant For example, the grant may expire after 4 hours.
authorization issued by the bypass processing module 214 is 15 The method 800 can also include identifying service
made responsive to a bypass policy. The bypass policy may usage by the client device (BLOCK 810 ). As the client
indicate if a device 252 is authorized to be provided a bypass device consumes services, the predictive rating buffer can
balance or whether the device 252 should be denied service . monitor the amount of each service that the client device
FIG . 8 is a block diagram illustrating an example method consumes . For example, as the client device makes tele
800 for reducing data traffic flow between a network and an 20 phone calls, minutes from grant associate with minutes is
online charging solution . The method 800 can include consumed . The predictive rating buffer can update the grant
receiving data corresponding to at least one service to to reflect the minutes (or amount of other service ) remaining
provide a client device ( BLOCK 802 ). The method 800 can in the grant. The record generator of the predictive rating
also include generating a primary allocation balance and a mediator 602 can receive usage messages or consumption
contingency balance (BLOCK 804 ). The method can also 25 reports from the client device or the network that indicate
include receiving a request to allocate a grant from the how much of a service the client device has consumed . The
primary allocation balance (BLOCK 806 ), and granting the record generator 212 can process the data in the consump
grant request (BLOCK 808 ). The method 800 can also tion report to generate a charge report for the client device .
include identifying usage by the client device of the grant The method 800 can also include determining that the
( BLOCK 810 ). The method 800 can also include determin- 30 primary allocation balance is depleted (BLOCK 812 ).Asthe
ing that the primary allocation balance is depleted (BLOCK predictive rating buffer receives additional requests, the
812). A request can be received to allocate another grant grants are granted from the primary allocation balance . Each
from the primary allocation balance (BLOCK 814 ). The grant depletes the primary allocation balance . For example,
additional grant can be granted from the contingency allo if a grant is for 100 text message and the primary allocation
cation responsive to determining the primary allocation 35 balance includes 400 text messages, the primary allocation
balance is depleted (BLOCK 816 ). balance is depleted after the fourth grant. Once the primary
As set forth above, the example method 800 can include allocation balance is depleted a flag can be set that the next
receiving data corresponding to at least one service to grant should be granted by the contingency allocation bal
provide client device (BLOCK 802 ). The data can be ance .
received by the predictive rating buffer from the OCS . The 40 The method 800 can also include receiving another
data can include which services (e.g., cellular data , voice , request to allocate a grant from the primary allocation
and text) the client device is subscribed to . The data can also balance (BLOCK 814 ), and then granting the grant from the
include plan information for the client device. Plan infor contingency allocation balance (BLOCK 816 ). Responsive
mation can include the amount of each of the services for to predictive rating buffer determining the primary alloca
which the user of the client device has paid or is to receive 45 tion balance is depleted , the predictive rating buffer can
each month . The data can be received from the OCS at grant the request from the contingency allocation balance .
predetermined intervals, such as once a day , week , ormonth . In some implementations, when the primary allocation
The method 800 can include generating a primary allo balance is exhausted , the predictive rating buffer grants
cation balance and a contingency allocation balance requests from a second primary allocation balance . For
( BLOCK 804 ). A primary allocation balance can be gener- 50 example , the primary allocation balance may expire after a
ated for each of the services to which the client device is set period of time, such as 1 month . The predictive rating
subscribed . The primary allocation balance can be config buffer may generate a second primary allocation balance to
ured to persist for a predetermined amount of time. For use after the expiration of the first primary allocation bal
example, the primary allocation balance can include an ance . Once the predictive rating buffer determines that the
expiration time that indicates after what duration of time or 55 first primary allocation balance has expired (or is otherwise
at what specific time the primary allocation balance expires . exhausted ), the predictive rating buffer can begin to grant
The primary allocation balance can indicate a portion of the requests from the second primary allocation balance .
total network units that are to be assigned to a specific FIG . 9 illustrates a block diagram of the predictive rating
service . For example, the client device may subscribe to 400 buffer 604 generating a first and a second primary allocation
minutes per month . One hundred minutes may be allocated 60 balance . As described above in relation to BLOCK 802 , the
to the primary allocation balance, and the primary allocation predictive rating buffer 604 can receive data 904(a )-904 (d )
balance can have an expiration time lasting one week . The about the services provided to a client device . Responsive to
predictive rating buffer can also generate a contingency the data 904 , the predictive rating buffer 604 , generates
allocation balance. The contingency allocation balance can primary allocation balances. As illustrated in FIG . 9 , the
include additional network units that are used in response to 65 predictive rating buffer 604 generates a first set of primary
the primary allocation balance being depleted or expiring . allocation balances 902 (a ) and a second set of primary
The predictive rating buffer can generate one contingency allocation balances 902 (b ) for the services. The predictive
US 10,547,497 B1
31 32
rating buffer 604 also generates a first and second contin device after the primary allocation balance is exhausted , the
gency allocation balance 906. The first and second contin predictive rating buffer 604 can continue to allocate grants
gency allocation balance are associated with the first and from the contingency allocation balance .
second primary allocation balance , respectively . In this In some implementations, once an exhaustion of a pri
example , the user may prepay for a monthly service plan that 5 mary allocation balance (or set thereof) occurs , the predic
includes 4 GB of data , 1000 minutes of talk time, and 1000 tive rating buffer 604 can allocate grants from a second
SMS messages . The predictive rating buffer 604 can divide primary allocation balance (or set thereof). In some imple
the total available balance into multiple sets of primary mentations, the second primary allocation balance can be
allocation balances based on time (e.g., one portion per generated by the predictive rating buffer 604 prior to the
week ) or service consumption (e.g., each portion is 14th the 10 exhaustion of the first primary allocation balance. The
total balance ). As illustrated , each of the primary allocation predictive rating buffer604 may determine a start and an end
balances 902 is associated with a different service for time for the first primary allocation balance, and once the
example , a data service , a voice (or minute ) service, and a primary allocation balance expires, grant ests can be
SMS service . fulfilled from the second primary allocation balance . FIG . 9
As the client device consumes services, the predictive 15 also illustrates a second set of primary allocation balances
rating buffer 604 can monitor the amountof each service that 902 (b ). The predictive rating buffer 604 can grant requests
the client device consumes. For example , to make telephone from the primary allocation balances 904 of the second
calls, the predictive rating buffer 604 allocates grants from primary allocation balance set 902 (b ) once the first primary
the primary allocation balance 904 (b ). The consumption of allocation balance set 902 (a ) expires (as indicated by line
services by the client device from the grant may be moni- 20 908 ) or when individual primary allocation balances 904 or
tored and identified by the record generator. The record the contingency allocation balance 906 are exhausted (as
generator of the predictive rating mediator 602 can receive indicated by line 910 ).
usage messages from the client device . The record generator FIG . 10 is a block diagram illustrating an example of a
can process the data in the usage messages to generate a reporting system environment 600. The environment 600
charge report for the client device . 25 includes a predictive rating buffer 604 in communication
As the client device consumes the services, the respective with an OCS 204 and a network 104. The predictive rating
balances of each of the primary allocation balance can buffer 604 can generate primary allocation balances 904 ( 1)
eventually be exhausted if the device consumes the amount 904 (n ). Each of the primary allocation balances 904 can
of service for which was paid . In some implementations, the correspond to one of the services to which a client device
device's account can include a contingency balance 906 that 30 subscribes . In one option , a contingency allocation balance
stores an extra balance , which may be drawn upon when a 906 ( 1)-906 (n ) is generated for each of the primary allocation
primary allocation balance is exhausted . The amount of balances 904 ( 1)-904 (n ). In another option , a single contin
contingency allocation balance used by each of the different gency allocation balance 906 is generated . The single con
services can be based on an exchange rate . For example , the tingency allocation balance 906 is configured to grant
balance for each of the primary allocation balances may be 35 requests from any of the primary allocation balances 904
maintained in a unit that corresponds to the service_the when the primary allocation balance 904 is depleted . FIG .
data usage balance can be maintained in Gb, the voice usage 10 illustrates the predictive rating buffer 604 allocating a
balance can be maintained in remaining minutes , and the first grant 920 ( 1) and a second grant 920 (2 ) to the network
SMS usage balance can be maintained in remaining text 104. The first grant 920 (1 ) is a 10 MB grant that persists
messages. The contingency balance can be maintained in a 40 from 7 AM to 11 AM . At 11 AM the first grant 920( 1) expires
monetary unit ( e.g., dollars ). When a primary allocation and a second grant 920 (2 ) is granted to the network 104.
balance is exhausted and the contingency allocation balance While only two grants for the data service are illustrated ,
is used , a grant from the contingency allocation balance to grants can be allocated for each subscribed services can be
the service may be provided as a set monetary value (e.g., allocated . Additionally , prior and subsequent grants can be
$5),which can be converted to the appropriate service unit 45
with the exchange rate . For example , if the contingency
provided to the network such that a grant is available to the
network during any time of the day . Each of the grants 920
balance provides a $ 5 grant to the client device, the $ 5 can can provide consumption reports back to the predictive
be converted to 0.5 Gb of data if the exchange rate was such rating buffer 604 such that the predictive rating buffer 604
that 0.1 Gb of data costs $ 1. In some implementations, the can determine how much of a service the client device
monetary value of the grant may vary depending on the type 50 consumed .
of service . For example, a $ 10 grantmay be supplied as a
data grant because of the relative expense of data use while D. Conclusion
a $ 2 grant for SMS usage may be supplied to the device.
In other implementations , the predictive rating buffer 604 While the invention has been particularly shown and
can determine if the device over-exhausts a primary alloca- 55 described with reference to specific embodiments, it should
tion balance - for example , the client device used 114 text be understood by those skilled in the art that various changes
messages when the primary allocation balance only pro in form and detail may be made therein without departing
vided for 100 text message . The predictive rating buffer 604 from the spirit and scope of the invention described in this
can calculate the number of network units consumed after disclosure .
the exhaustion (e.g., 14 text messages in the previous 60 While this specification contains many specific embodi
example ) and , using the exchange rate, deduct the proper ment details , these should notbe construed as limitations on
monetary value from the contingency allocation balance. the scope of any inventions or of what may be claimed , but
As illustrated in FIG . 9 , when one of the primary alloca rather as descriptions of features specific to particular
tion balances 904 is exhausted , the next requested grant to embodiments of particular inventions . Certain features
the exhausted primary allocation balance is fulfilled by the 65 described in this specification in the context of separate
contingency allocation balance 906. As the predictive rating embodiments can also be implemented in combination in a
buffer 604 continues to identify service usage by the client single embodiment. Conversely , various features described
US 10,547,497 B1
33 34
in the context of a single embodiment can also be imple language, such as LISP , PERL , C , C ++ , C # , PROLOG , or in
mented in multiple embodiments separately or in any suit any byte code language such as JAVA . The software pro
able subcombination . Moreover , although features may be grams may be stored on or in one or more articles of
described above as acting in certain combinations and even manufacture as object code.
initially claimed as such , one or more features from a 5
claimed combination can in some cases be excised from the What is claimed is :
combination , and the claimed combination may be directed 1. A method for reducing data traffic flow between a
to a subcombination or variation of a subcombination . network and an online charging solution , comprising :
Similarly , while operations are depicted in the drawings in receiving, by a predictive rating buffer, from an online
a particular order, this should not be understood as requiring 10
that such operations be performed in the particular order charging solution , for a clientdevice, data correspond
shown or in sequential order, or that all illustrated operations ing to at least one service to provide to the client device ,
be performed , to achieve desirable results. In certain cir the data received prior to receiving a request for a rating
cumstances, multitasking and parallel processing may be from the client device ;
advantageous . Moreover, the separation of various system 15 generating, by the predictive rating buffer, for a first
components in the embodiments described above should not service of the at least one service to which the client
be understood as requiring such separation in all embodi device is subscribed , a primary allocation balance and
ments, and it should be understood that the described a contingency allocation balance , the primary alloca
program components and systems can generally be inte tion balance for the first service having an expiration
grated in a single software product or packaged into multiple 20 time, the contingency allocation balance to be used
software products . responsive to depletion of the primary allocation bal
References to “ or” may be construed as inclusive so that ance for the first service ;
any termsdescribed using “ or” may indicate any of a single , receiving, by the predictive rating buffer, a first request to
more than one , and all of the described terms. allocate a first grant from the primary allocation bal
Thus , particular embodiments of the subject matter have 25 ance for the first service to be used by the client device ;
been described . Other embodiments are within the scope of granting , by the predictive rating buffer, from the primary
the following claims. In some cases , the actions recited in allocation balance for the first service , the first grant
the claims can be performed in a different order and still responsive to the first request;
achieve desirable results. In addition , the processes depicted identifying , by the predictive rating buffer, usage by the
in the accompanying figures do not necessarily require the 30 client device from the first grant of the first service ;
particular order shown, or sequential order, to achieve updating , by the predictive rating buffer , the primary
desirable results. In certain embodiments , multitasking and allocation balance for the first service responsive to the
parallel processing may be advantageous . identified usage by the client device
Having described certain embodiments of the methods determining , by the predictive rating buffer, that the
and systems, it will now become apparent to one of skill in 35 primary allocation balance for the first service is
the art that other embodiments incorporating the concepts of depleted ;
the invention may be used . It should be understood that the receiving, by the predictive rating buffer , a second request
systems described above may provide multiple ones of any to allocate a second grant from the primary allocation
or each of those components and these components may be balance for the first service to be used by the client
provided on either a standalonemachine or , in some embodi- 40 device; and
ments, on multiple machines in a distributed system . The granting, by the predictive rating buffer, from the contin
systems and methods described above may be implemented gency allocation balance responsive to determining that
as a method , apparatus or article of manufacture using the primary allocation balance for the first service has
programming and/ or engineering techniques to produce been depleted , the second grant responsive to the
software, firmware , hardware, or any combination thereof. 45 second request.
In addition , the systems and methods described above may 2. The method of claim 1 , further comprising :
be provided as one or more computer-readable programs identifying, by the predictive rating buffer , additional
embodied on or in one or more articles ofmanufacture . The usage by the client device from the second grant for the
term " article of manufacture ” as used herein is intended to first service ; and
encompass code or logic accessible from and embedded in 50 updating , by the predictive rating buffer, the contingency
one or more computer-readable devices , firmware , program allocation balance responsive to identifying the addi
mable logic, memory devices (e.g., EEPROMs, ROMs, tional usage by the client device of the second grant.
PROMs, RAMS, SRAMs, etc.), hardware ( e.g., integrated 3. The method of claim 1, further comprising generating,
circuit chip , Field Programmable Gate Array (FPGA ), responsive to an exhaustion of the primary allocation bal
Application Specific Integrated Circuit ( ASIC ), etc. ), elec- 55 ance, a second primary allocation balance for the first
tronic devices, a computer readable non - volatile storage unit service to which the client device is subscribed .
( e.g., CD -ROM , floppy disk , hard disk drive, etc.). The 4. The method of claim 1, further comprising :
article of manufacture may be accessible from a file server generating, prior to an exhaustion of the primary alloca
providing access to the computer -readable programs via a tion balance , a second primary allocation balance for
network transmission line, wireless transmission media , 60 the first service to which the client device is subscribed .
signals propagating through space , radio waves, infrared 5. The method of claim 4, further comprising :
signals, etc. The article of manufacture may be a flash receiving, by the predictive rating buffer , a third request to
memory card or a magnetic tape. The article ofmanufacture allocate a third grant from the second primary alloca
includes hardware logic as well as software or program tion of the first service to be used by the client device;
mable code embedded in a computer readable medium that 65 granting , by the prediction rating buffer, from the second
is executed by a processor. In general, the computer -read primary allocation balance , the third grant responsive
able programs may be implemented in any programming to the third request;
US 10,547,497 B1
35 36
identifying , by the prediction rating buffer, additional grant from the contingency allocation balance respon
usage by the client device from the third grant for the sive to determining that the primary allocation bal
first service; and ance for the first service has been depleted , the
updating , by the prediction rating buffer, the second second grant responsive to the second request.
primary allocation for the first service responsive to the 5 12. The system of claim 11 , wherein the predictive rating
identified additional usage by the client device . buffer is further configured to :
6. The method of claim 1, further comprising generating , identify additional usage by the client device from the
by the prediction rating buffer, a primary usage balance for second grant for the first service ; and
a second service of the at least one services to which the update the contingency allocation balance responsive to
client device is subscribed . 10
identifying the additional usage by the client device of
7. The method of claim 6 , further comprising receiving, the second grant.
by the predictive rating buffer, a third request to allocate a 13. The system of claim 11, wherein the predictive rating
third grant from the primary allocation balance for the buffer is further configured to generate , responsive to an
second service to be used by the client device .
8. The method of claim 1, wherein the first service 15 exhaustion of the primary allocation balance, a second
includes one of a data service, a short message service primary client
allocation balance for the first service to which the
device is subscribed .
(SMS), and a voice service .
9. The method of claim 1 , further comprising granting 14. The system of claim 11, wherein the predictive rating
from the contingency allocation balance the second grant buffer is further configured to generate , prior to an exhaus
responsive to an exchange rate . 20 tion of the primary allocation balance, a second primary
10. The method of claim 1, further comprising : allocation balance for the first service to which the client
generating, by the predictive rating buffer , one or more device is subscribed .
charge reports responsive to the identified usage by the 15. The system of claim 14 , wherein the predictive rating
client device ; and buffer is further configured to :
transmitting, by the predictive rating buffer, an aggregated 25 receive a third request to allocate a third grant from the
charge report to the online charging solution , the aggre second primary allocation of the first service to be used
gated charge report generated from the one or more by the client device ;
charge reports responsive to a charge reporting policy . grant from the second primary allocation balance , the
11. A system for reducing data traffic flow between a third grant responsive to the third request;
network and an online charging solution , comprising : 30
identify additional usage by the client device from the
a predictive rating buffer including one or more proces third grant for the first service ; and
sors, configured to : update the second primary allocation for the first service
receive from an online charging for a client
responsive to the identified additional usage by the
device , data corresponding to at least one service to
provide to the client device, the data received prior 35 16.client The
device .
system of claim 11 , wherein the predictive rating
to receiving a request for a rating from the client buffer is further configured to generate a primary usage
device ; balance for a second service of the at least one services to
generate for a first service of the at least one service to which the client device is subscribed .
which the client device is subscribed , a primary
17. The
allocation balance and a contingency allocation bal- 40 buffer is further system of claim 14 , wherein the predictive rating
ance , the primary allocation balance for the first a third grant fromconfigured receive a third request to allocate
the primary allocation balance for the
service having an expiration time, the contingency second service to be used by the client device .
allocation balance to be used responsive to depletion 18. The system of claim 11 , wherein the first service
of the primary allocation balance for the first service ; includes
receive a first request to allocate a first grant from the 45 (SMS), andonea voice of a data service , a short message service
service .
primary allocation balance for the first service to be 19. The system of claim 11, wherein the predictive rating
used by the client device ;
grant from the primary allocation balance for the first buffer is further configured to grant from the contingency
allocation balance the second grant responsive to an
service, the first grant responsive to the first request ; exchange
identify usage by the client device from the first grant 50 20. The rate .
system of claim 11 , wherein the predictive rating
for the first service ;
update the primary allocation balance for the first buffer is further configured to :
generate one or more charge reports responsive to the
service responsive to identifying the usage by the identified usage by the client device ; and
client device; transmit an aggregated charge report to the online charg
determine that the primary allocation balance for the 55 ing solution , the aggregated charge report generated
first service has been depleted ; from the one or more charge reports responsive to a
receive a second request to allocate a second grant from charge reporting policy.
the primary allocation balance for the first service to
be used by the client device ; and