Method, system and computer readable medium for lock-free communication network resource quota sharing
By adopting the lock-free resource quota sharing method in the communication network, the delay and performance problems caused by the lock-based method are solved, and the reasonable allocation of resources and revenue protection are achieved, reducing the processing complexity.
Patent Information
- Application Number
- CN202080081032.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-11-20
- Filing Date
- 2020-10-28
- Publication Date
- 2024-12-17
- Estimated Expiration
- 2040-10-28
AI Technical Summary
Lock-based resource quota sharing approaches in existing communication networks can lead to latency and performance issues, especially when handling multiple resource plans and requests from different members in online billing systems, increasing complexity and potential loss of revenue.
Using the lock-free communication network resource quota sharing method, by in the distributed billing system, the first billing node receives resource requests and provides a quota smaller than the requested resource amount without locking the shared resource plan, and to the second The billing node sends resource reservation requests to ensure reasonable allocation and reservation of resources.
Reduce or prevent delay and performance issues related to resource sharing, reduce processing complexity, avoid locking overhead, and ensure the rational use of resources and revenue protection.
Smart Images

Figure CN114868374B_ABST
Abstract
Description
[0001] Priority claim
[0002] This application claims priority to U.S. patent application serial number 16 / 690,058, filed on November 20, 2019, the disclosure of which is incorporated herein by reference in its entirety. Technical Field
[0003] The subject matter described herein relates to communication networks. More specifically, the subject matter described herein relates to methods, systems, and computer-readable media for lock-free communication network resource quota sharing. Background Art
[0004] Communication network service providers can provide a variety of network services to mobile device subscribers. Resource plans provided by service providers are generally characterized by a combination of different performance categories and various resource amounts. For example, a subscriber pays a monthly fee for a resource plan (e.g., a mobile data plan or subscription plan) with a given bandwidth speed, a given resource amount, a download size resource quota, and / or a specific quality of service (QoS) level. Similarly, another subscriber can subscribe to a different resource plan with a lower bandwidth speed, a lesser resource quota allocation, and / or a lower QoS level.
[0005] Sometimes, subscribers can share resource plans (e.g., data plans or credit plans). For example, a family sharing data plan may allow multiple user devices (e.g., a husband, wife, and their children's devices) to share a high-speed data share (20 gigabytes) per month. In this example, as with most data plans, the service provider will typically suspend the subscriber's service once the shared data is exhausted. In another example, a family sharing plan may involve sharing a portion of the expenses incurred by one or more members, for example, a family sharing plan may pay 20% of the child's expenses up to a maximum amount (e.g., the plan's credit limit).
[0006] One possible approach to preventing members of a shared resource plan from over-consuming resources involves using locks on the shared resource plan when a member of the plan issues a resource quota request. While using locks can prevent data over-consumption (and mitigate revenue risk to the service provider), such a solution can impact latency and performance in the network. Additional problems arise if an online charging system (OCS) uses a distributed architecture in which some OCS nodes handle different resource plans and / or some OCS nodes handle resource quota requests for different members of the same shared resource plan.
[0007] Thus, there exists a need for a method, system, and computer-readable medium for lock-free communication network resource quota sharing. Summary of the invention
[0008] Methods, systems, and computer-readable media for lock-free communication network resource quota sharing are disclosed. In some embodiments, an example method occurs at a first billing node of a distributed billing system comprising multiple billing nodes, wherein the first billing node is used to process a communication network resource quota request associated with a first member of a shared resource plan, and wherein a second billing node manages resource reservations associated with the shared resource plan. The example method includes: receiving a first communication network resource quota request for requesting a first resource amount from a shared resource plan from a requesting entity; providing a first communication network resource quota for the first member to the requesting entity without confirming that the shared resource plan has sufficient available resources to allocate the first resource amount, wherein the first communication network resource quota indicates a second resource amount that is less than the first resource amount, and / or wherein the first communication network resource quota is associated with an effective time indicating when the first communication network resource quota expires; and sending a first resource reservation request for reserving resources of the shared resource plan to the second billing node.
[0009] In some embodiments, the example system includes a first billing node of a distributed billing system including multiple billing nodes. The first billing node is implemented using at least one processor and a memory. The first billing node is used to process a communication network resource quota request associated with a first member of a shared resource plan, and a second billing node manages resource reservations associated with the shared resource plan. The first billing node is configured to: receive a first communication network resource quota request for requesting a first resource amount from a shared resource plan from a requesting entity; provide a first communication network resource quota for the first member to the requesting entity without confirming that the shared resource plan has sufficient available resources to allocate the first resource amount, wherein the first communication network resource quota indicates a second resource amount that is less than the first resource amount, and / or wherein the first communication network resource quota is associated with an effective time indicating when the first communication network resource quota expires; and send a first resource reservation request for reserving resources of the shared resource plan to the second billing node.
[0010] The subject matter described herein can be implemented with software combined with hardware and / or firmware. For example, the subject matter described herein can be implemented with software executed by a processor. In an example implementation, the subject matter described herein can be implemented using a computer-readable medium having computer-executable instructions stored thereon, which, when executed by a processor of a computer, controls the computer to execute steps. The steps executed can correspond to any one or more steps in the steps described herein about the present invention. Example computer-readable media suitable for implementing the subject matter described herein include non-transient devices, such as disk storage devices, chip storage devices, programmable logic devices, and application-specific integrated circuits. In addition, the computer-readable medium implementing the subject matter described herein can be located on a single device or computing platform, or can be distributed on multiple devices or computing platforms.
[0011] The term 'node' as used herein refers to at least one physical computing platform including one or more processors and memory.
[0012] The terms 'functionality' or 'module' as used herein refer to software in combination with hardware and / or firmware for implementing the features described herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] The subject matter described herein will now be explained with reference to the accompanying drawings, in which:
[0014] Figure 1 is a block diagram illustrating an example communication environment for lock-free communication network resource quota sharing;
[0015] Figure 2 is a block diagram illustrating an example online charging system (OCS) cluster for lock-free communication network resource quota sharing;
[0016] Figure 3A-3B is a message flow diagram illustrating example messages associated with lock-free communication network resource quota sharing; and
[0017] Figure 4 is a flow chart illustrating an example process for lock-free communication network resource quota sharing. DETAILED DESCRIPTION
[0018] The subject matter described herein relates to methods, systems, and computer-readable media for lock-free communication network resource quota sharing. Shared resource plans are available to subscribers of various communication networks. For example, a mobile phone service provider sells a family sharing plan in which multiple family members (or their user devices) can share minutes or data in a total amount (e.g., a monthly share) of the plan. In another example, a family shared expense plan can allow family members to share credits or expenses, for example, where at least a portion of the expenses are paid by the shared credits or money shares.
[0019] A lock-based billing architecture can handle shared resource plans by locking the plan or the associated parent account when child members of the plan request resources, thereby ensuring that no parallel or concurrent events (e.g., events associated with other members of the shared resource plan) can (over)consume the resources of the plan or parent account. Although locking the plan or parent account prevents revenue risks due to possible overconsumption, such locking can significantly affect the latency and performance of the system. In addition, if the online billing system (OCS) uses a distributed architecture in which some OCS nodes handle different members of the same shared resource plan, using a lock-based billing architecture to implement resource quota sharing may require additional complexity.
[0020] According to some aspects of the subject matter described herein, techniques, methods, systems, or mechanisms for lock-free communication network resource quota sharing are disclosed. In some embodiments, lock-free communication network resource quota sharing can be used to rate members of a shared resource plan (e.g., provide resource quotas for their use) without locking a parent account. For example, a billing node (e.g., an OCS node) or related module according to at least some aspects described herein can receive a resource quota request associated with a member of a shared resource plan (e.g., a family data sharing plan), and in response, provide a smaller resource quota (e.g., 5 megabytes (MB) of data) without locking the shared resource plan and / or before reserving sufficient resources of the shared resource plan to fully grant the resource quota request (e.g., via another OCS node). In this example, the requesting entity (e.g., a packet gateway) can allow a subscriber to consume an initial resource quota, for example, during a subscriber data session. While the initial resource quota is being consumed, the billing node can query another billing node to reserve additional resources for use by the subscriber. Continuing with this example, when the requesting entity requests additional resource quota, the billing node may have reserved sufficient resources to fully grant the subsequent resource quota request. Alternatively, if the billing node determines that the subscriber has no remaining resources to consume (e.g., by communicating with another billing node that manages the shared resource account), the billing node may deny the subsequent resource quota request, thereby limiting the potential loss of revenue to the initial smaller resource quota.
[0021] According to some aspects of the subject matter described herein, a lock-free communication network resource quota sharing algorithm or related implementation can be implemented on multiple billing nodes (e.g., OCS nodes) of a distributed OCS (e.g., an OCS cluster). For example, the algorithm can instruct the billing nodes of the distributed OCS to react to an event by providing a minimum quota (e.g., a predetermined amount of resources that may be relatively small) and / or a validity time (e.g., an amount of time that indicates when a resource limit expires); can instruct the billing node to reserve resources from a parent node (e.g., a billing node that handles resource reservations and / or allocations for an associated shared resource plan); and can instruct the billing node to reserve a minimum quota or predetermined value unless no more resources are available for the shared resource plan.
[0022] Advantageously, by utilizing lock-free communication network resource quota sharing, latency and performance issues associated with resource sharing and related billing can be mitigated or prevented. In addition, a distributed OCS cluster utilizing lock-free communication network resource quota sharing can reduce the complexity of situations involving different members of a shared resource plan being processed by different nodes of the distributed OCS cluster, because synchronization locks and inlining of requests over the network are not required, and the associated locking overhead is avoided.
[0023] Reference will now be made in detail to various embodiments of the subject matter described herein, examples of which are illustrated in the accompanying drawings. Whenever possible, the same reference numerals will be used throughout the drawings to refer to the same or like parts.
[0024] Figure 1 is a block diagram illustrating an example communication environment 100 for lock-free communication network resource quota sharing. The communication environment 100 may represent one or more communication networks for providing various data, applications, and / or services, such as telephony, Internet, text messaging, and the like.
[0025] See also Figure 1 , the communication environment 100 may include a policy server 102, a subscriber profile repository (SPR) 104, an online charging system (OCS) cluster 106, a packet data network (PDN) gateway (PGW) 108, and a billing system 110. The communication environment 100 may include an access network 116 that communicatively connects the PGW 108 to a user equipment (UE) 112 associated with a subscriber. The UE device 112 may represent a computer or device (e.g., a mobile smart phone, a tablet computer device, a personal digital assistant (PDA), etc.) that can connect to various network nodes in the communication environment 100 via the access network 116, and / or can connect to the Internet (e.g., via the PGW 108) or receive services or data using the communication environment 100.
[0026] The OCS cluster 106 may represent a distributed OCS including one or more OCS nodes. The OCS cluster 106 or its nodes may be any one or more suitable entities (e.g., one or more computing platforms or software executed on at least one processor) for performing one or more billing functions. For example, some nodes of the OCS cluster 106 may process or handle resource quota requests from different subscribers. In this example, some nodes of the OCS cluster 106 may process resource quota requests from subscribers of the same shared resource plan, e.g., a home data sharing plan.
[0027] In some embodiments, a shared resource plan may allow members (e.g., mobile network subscribers) to share or use resources associated with the communication network within a total resource amount (e.g., a monthly total share) of the plan. For example, the shared resources may relate to an amount of data (e.g., 5 gigabytes (GB)), an amount of time (e.g., 100 minutes of Internet service), or a credit (e.g., $200).
[0028] In some embodiments, OCS cluster 106 or a node thereof may receive subscriber usage data (e.g., traffic and signaling data generated or received by UE 112) from PGW 108 and / or another entity. OCS cluster 106 or a node thereof may be configured to maintain a subscriber usage database to record and store subscriber usage data for each subscriber received from PGW 108. In some embodiments, OCS cluster 106 or a node thereof may be configured to utilize the usage database to differentiate and track specific data usage of each subscriber (e.g., on a per quota bucket basis).
[0029] In some embodiments, OCS cluster 106 or a node thereof may include functionality (e.g., one or more modules) for utilizing a lock-free communication network resource quota sharing algorithm or various aspects described herein. For example, QME 206 may be configured to receive a resource quota request associated with a member of a shared resource plan (e.g., a home data sharing plan), and in response, provide at least a minimum resource quota without locking the shared resource plan and / or before reserving sufficient resources of the shared resource plan via another OCS node (e.g., OCS node 204) that manages allocation and / or reservation of resources of the shared resource plan.
[0030] The PGW 108 may represent any suitable entity in the communication environment 100 that is configured to receive packet communications from the UE 112 via the access network 116, and report usage associated with the UE 112 to the OCS cluster 106 or its node(s) (e.g., via a Gy interface). The PGW 108 may also be configured to provide network status data (e.g., traffic load status) to the policy server 102 and / or the OCS cluster 106 or its node(s). The PGW 108 may also be configured to execute or enforce policy rules provided by the policy server 102. In some embodiments, the PGW 108 may include any network element configured to support or host at least one of a policy and charging enforcement function (PCEF), a bearer binding and event reporting function (BBERF), a deep packet inspection (DPI) function, a traffic detection function (TDF), or any other similar network element functions.
[0031] In some embodiments, PGW 108 may be configured to request and implement resource quotas for individual subscribers. For example, when a subscriber or associated UE 112 is connected to access network 116 or communication environment 100, PGW 108 may send a resource quota request to OCS cluster 106 or its (one or more) nodes to request and receive resource quotas for use by the subscriber. In this example, when the subscriber uses its allocated resources (e.g., when the remaining amount of the resource quota at PGW 108 reaches or falls below a threshold), PGW 108 may send another resource quota request to OCS cluster 106 or its (one or more) nodes to request and receive additional resource quotas for use by the subscriber. Continuing with this example, when the subscriber exits the network or terminates the session, PGW 108 may release or hand back any remaining quotas to OCS cluster 106 or its (one or more) nodes for future use.
[0032] The accounting system 110 may represent any suitable entity in the communication environment 100 that is configured to perform one or more accounting and / or billing functions. In some embodiments, the accounting system 110 may be used to calculate or compile resource usage for accounting purposes and / or provide an interface that allows a subscriber to pay a bill or purchase additional resources. For example, the accounting system 110 may provide a user interface or other communication interface to allow a subscriber to top up or purchase additional resources for a shared resource plan. In this example, once a subscriber completes a transaction to purchase resources for a shared resource plan, the accounting system 110 may notify the OCS cluster 106 or its nodes so that the resources may be used, for example, by one or more members of the shared resource plan.
[0033] The policy server 102 may represent any suitable entity for performing one or more policy functions and / or charging functions. For example, the policy server 102 may be configured to determine and create policy rules for subscribers subscribing to services in the communication environment 100. In this example, the policy server 102 may generate policy and charging control (PCC) rules and provide the rules to one or more network elements (e.g., PGW 108). Continuing with this example, the PCC rules created by the policy server 102 may relate to services, QoS levels, and charging rules associated with one or more subscribers. In some embodiments, the policy server 102 may include a policy and charging rules function (PCRF) and / or may be hosted and executed by a Diameter-based network element or server.
[0034] In some embodiments, the policy server 102 or another entity may be configured to request quota usage information from the OCS cluster 106 or its OCS node. The quota usage information may be requested and received via an application interface (e.g., Sy interface) with the OCS cluster 106 or its node. In some embodiments, the policy server 102 may request quota usage information from the OCS cluster 106 or its node by sending a Diameter request message, which may include at least one of Diameter session identifier information, subscriber identifier information (e.g., IMSI), subscriber layer information, subscriber service type identifier information, and / or other information. Upon receiving the request, the OCS cluster 106 or its node may be configured to use the provided information to determine appropriate subscriber quota usage information, which may ultimately be returned to the requesting policy server 102.
[0035] SPR 104 may include a database configured to store profile information related to subscribers of communication environment 100. For example, the stored subscriber profile data may include a resource plan code (e.g., a billing plan code or name) and entitlements associated with the resource plan code. Exemplary entitlements include, but are not limited to, Voice over Internet Protocol (VoIP) services, video chat, domestic roaming, international roaming, MiFi, data, gifts (e.g., special promotions), and specific equipment. In some embodiments, SPR 104 may be integrated with one or more network elements or distributed across multiple computing platforms or devices.
[0036] In some embodiments, UE 112 may register for services with the communication network by initiating a network attachment procedure. For example, UE 112 may send a user attachment request message to PGW 108. In response to receiving the attachment request message, PGW 108 may send a Diameter credit control request (CCR) message to policy server 102. Policy server 102 may then send a Diameter user data request (UDR) message containing a user identifier to SPR 104 to request resource plan codes and / or plan rights associated with the subscriber. For example, SPR 104 may be configured to store resource plan data in a local profile database 114. Alternatively, SPR 104 may query an external database containing resource plan information for the subscriber.
[0037] It is important to realize that Figure 1 It is used for example. Figure 1 The various nodes and / or modules, locations and / or functions described may be changed, modified, added or deleted.
[0038] Figure 2 is a block diagram illustrating an OCS cluster 106 for lock-free communication network resource quota sharing. Figure 2 , OCS cluster 106 may include one or more OCS nodes, such as OCS nodes 200-204. Each of OCS nodes 200-204 may be any suitable entity (e.g., a computing platform, or software executed on at least one processor) for performing one or more billing-related functions. In some embodiments, each of OCS nodes 200-204 may be responsible for processing resource quota requests from multiple subscribers, wherein resource quota requests from at least one subscriber are not processed by all OCS nodes 200-204. For example, OCS node 200 may process resource quota requests from a first mobile subscriber, OCS node 202 may process resource quota requests from a second mobile subscriber, and OCS node 200 may process resource quota requests from a third mobile subscriber.
[0039] In some embodiments, subscribers associated with different OCS nodes may be members of the same shared resource plan. For example, the shared resource plan may represent a data sharing plan for a family, where OCS nodes 200 and 202 process quota requests from child or secondary members of the shared resource plan, while OCS node 204 manages a parent or primary member of the shared resource plan. In this example, assuming that OCS node 204 manages resource reservations for resources of the shared resource plan, each of OCS nodes 200-202 may send resource reservations to OCS node 204.
[0040] Each of the OCS nodes 200-204 may include a quota management engine (QME) 206 and a data storage device, such as one of the data storage devices 208-212. The QME 206 may be any suitable entity (e.g., software executed on at least one processor) for maintaining, adjusting, providing and / or reporting resource quotas or quota-related information. The QME 206 may access various databases and / or data storage devices. For example, the QME 206 may access a database containing quota usage information (e.g., reserved resource amounts, planned remaining resource amounts, etc.) for one or more subscribers. The QME 206 may also communicate with various nodes and entities in the communication environment 100 (e.g., other OCS nodes and / or QMEs).
[0041] In some embodiments, QME 206 may include functionality for utilizing a lock-free communication network resource quota sharing algorithm or various aspects described herein. For example, QME 206 may be configured to receive a resource quota request associated with a member of a shared resource plan (e.g., a home data sharing plan), and in response, provide at least a minimum resource quota without locking the shared resource plan and / or before reserving sufficient resources of the shared resource plan via another OCS node (e.g., OCS node 204) that manages allocation and / or reservation of resources of the shared resource plan. In this example, by not locking the shared resource plan, multiple members of the shared resource plan may simultaneously request and / or receive resource quotas from one or more OCS nodes in OCS cluster 106.
[0042] In some embodiments, QME 206 (e.g., of OCS node 200) may be configured to receive a first resource quota request from a requesting entity (e.g., PGW 108) for requesting a first amount of resources from a shared resource plan; provide a first resource quota for a first member to the requesting entity before sending a first resource reservation request to a second billing node (e.g., OCS node 204), wherein the first resource quota indicates a second amount of resources that is less than the first amount of resources; and send a first resource reservation request to the second billing node for reserving resources of the shared resource plan.
[0043] Each data storage device 208-212 may include any suitable entity (e.g., one or more non-transitory computer-readable media or one or more storage devices) for storing data associated with data usage, including resource quotas, reserved resource amounts, triggers, and data usage rules. Figure 2As shown in , the data storage device 208 can store resource-related information (e.g., reserved resource amount) that can be used to grant a resource allocation request associated with a first subscriber (e.g., a sub-member) of a shared resource plan, the data storage device 210 can store resource-related information (e.g., reserved resource amount) that can be used to grant a resource quota request associated with a second subscriber (e.g., a second sub-member) of the shared resource plan; and the data storage device 212 can store resource-related information (e.g., reserved resource amount, remaining resources available for consumption by subscribers) that can be used to grant a resource quota request associated with a third subscriber (e.g., a primary member) of the shared resource plan.
[0044] In some embodiments, each data storage device 208-212 may be local to or accessible by a corresponding QME 206 or an associated OCS node. For example, data storage device 208 may be integrated with OCS node 200 or located external to OCS node 200; data storage device 210 may be integrated with OCS node 202 or located external to OCS node 200; and data storage device 212 may be integrated with OCS node 204 or located external to OCS node 204.
[0045] It is important to realize that Figure 2 and its related descriptions are for illustration purposes only. Figure 2 OCS cluster 106 and / or various other entities in may include additional and / or different modules, components, or functionality.
[0046] Figure 3A-3B is a message flow diagram illustrating example messages associated with lock-free communication network resource quota sharing. Figure 3A-3B In the present disclosure, Diameter client 300 represents a requesting entity (e.g., a network node) that interacts with OCS cluster 106 or an OCS node therein (e.g., OCS nodes 202 and 204) using the Diameter protocol and / or other protocols. For example, Diameter client 300 may represent an entity that requests and / or implements resource quotas, tracks resource usage, and / or provides resource usage information. In some embodiments, Diameter client 300 may include a PCEF or a function similar to a PCEF. For example, Diameter client 300 may include a network element configured to support or host PGW, PCEF, BBERF, TDF, or DPI functions.
[0047] In some embodiments, for example, Figure 3A-3BAs shown in , OCS node 202 and OCS node 204 may represent nodes of OCS cluster 106, where OCS node 202 handles a first mobile subscriber that is a child member (e.g., a secondary member) of a shared resource plan, and where OCS node 204 handles a different mobile subscriber that is a parent member (e.g., a primary member) of the shared resource plan. In such an embodiment, OCS node 204 may manage a planned total amount of resources (e.g., a monthly total share) associated with the shared resource plan, and may be responsible for handling related resource reservations, such as allocating portions of the planned total amount of resources to OCS node 202 and / or other OCS nodes for use by various members of the shared resource plan.
[0048] See also Figure 3A In step S301, a Diameter CCR-Initial (CCR-I) message or another quota request message may be sent from Diameter client 300 to OCS node 202, wherein the CCR-I message includes a Request Service Unit (RSU) attribute value pair (AVP) indicating a requested resource amount (e.g., 50 MB). For example, after a subscriber of a shared resource plan or a related UE 112 attaches to access network 116 or environment 100, Diameter client 300 may send a Diameter CCR-I message to request a resource quota (e.g., data usage, time usage, or money usage) associated with the subscriber.
[0049] In some embodiments, Diameter client 300 may be a PCEF that handles traffic for a mobile subscriber that is a member (e.g., a child) of a shared resource plan, and OCS node 202 may be configured to handle the subscriber and enforce any resource quotas. In such embodiments, the shared resource plan or the total amount of resources of the plan is managed by a different OCS node (OCS node 204) in OCS cluster 106.
[0050] At step 302, a Diameter Credit Control Answer Initial (CCA-I) message or another quota response message may be sent from OCS node 202 to Diameter client 300, where the CCA-I message includes a Grant Service Unit (GSU) AVP indicating a granted amount of resources (e.g., 5 MB).
[0051] In some embodiments, OCS node 202 may grant a resource quota request without knowing whether the subscriber or the associated shared resource plan has sufficient remaining resources available to grant the resource quota request. In such embodiments (e.g., where OCS node 202 does not know whether the resource quota can be granted in full), OCS node 202 may grant a smaller amount of resources than the amount of resources requested by Diameter client 300 for the subscriber.
[0052] In some embodiments (e.g., where OCS node 202 does not know whether the resource quota request can be granted in full), the amount of resources initially granted by OCS node 202 may be based on a predetermined value or percentage. For example, the predetermined value or percentage may be referred to as a minimum quota, and may be significantly less than the planned initial total amount of resources (e.g., the starting resource share at the beginning of the planned period). In this example, assuming that the planned initial total amount of resources (also referred to as the maximum amount) is 5GB, the minimum quota may be 5MB or one thousandth of the maximum amount.
[0053] In some embodiments (e.g., where OCS node 202 does not know whether the resource quota request can be fully granted), instead of or in addition to providing a resource quota that is smaller than the requested resource quota, the amount of resources granted by OCS node 202 can be associated with a "short" validity time that indicates when the resource quota expires. For example, the "short" validity time can be an amount of time (e.g., 30 seconds) that is less than the default or typical validity time (e.g., 30 minutes) for a fully granted resource quota request. In this example, the "short" validity time can be used to limit revenue risk to the service provider and / or trigger the requesting entity (e.g., Diameter client 300) to request a new resource quota after OCS node 202 has reserved resources of a shared resource plan from, for example, OCS node 204.
[0054] In some embodiments (e.g., where OCS node 202 knows that the resource quota request can be fully granted), the amount of resources originally granted by OCS node 202 can be used for the requested amount of resources. For example, if OCS node 202 previously reserved sufficient resources for the shared resource plan, OCS node 202 can grant the resource quota request for an amount of resources that is equal to or less than the reserved amount of resources.
[0055] At step 303, OCS node 202 may send a reservation request to reserve resources associated with the shared resource plan to OCS node 204. For example, OCS node 202 may be configured to use a reorder threshold so that whenever the reserved resource amount of the shared resource plan reaches or falls below the reorder threshold, OCS node 202 is triggered to reserve resources associated with the shared resource plan. In this example, the reorder threshold may be a fraction of the maximum amount of the plan, such as 25 MB or five percent of the maximum amount of 5 GB of the plan.
[0056] In some embodiments, the reservation request can reserve a certain amount of resources based on a predetermined value or percentage. For example, OCS node 202 can be configured to use a quota reservation unit of 50MB or one percent of the planned maximum amount of 5GB. In this example, OCS node 202 can request to reserve 50GB or a multiple thereof for the subscriber.
[0057] At step 304A, a reservation response indicating that at least some of the requested resources are reserved may be sent from OCS node 204 to OCS node 202. For example, if there are a sufficient number of remaining resources of the shared resource plan, OCS node 204 may fully grant the reservation request (e.g., reserve the requested amount of resources) and notify OCS node 202. Likewise, in this example, if there are not a sufficient number of remaining resources of the shared resource plan, OCS node 204 may partially grant the reservation request (e.g., reserve only a portion of the requested amount of resources) and notify OCS node 202.
[0058] In step 304B, if the shared resource plan has no remaining resources available for consumption, a 'no quota' flag may be set to indicate this to the OCS node 202 and / or other nodes in the OCS cluster 106. For example, when the OCS node 204 determines that the shared resource plan has no remaining resources available for consumption, the OCS node 204 may notify the OCS node 202 and / or other OCS nodes in the OCS cluster 106. In this example, the OCS node 204 may set a 'no quota' flag in a memory shared or accessible by the OCS node 202 and / or other nodes in the OCS cluster 106. In another example, the OCS node 204 may send a message or otherwise trigger the OCS node 202 and / or other entity to set a local 'no quota' flag to indicate that the shared resource plan has no remaining resources available for consumption.
[0059] In some embodiments, for example, where the shared resource is spent credits or money, whenever a subscriber-related charge (or the portion to be applied to the sharing plan) exceeds the available credit limit for the sharing plan, OCS node 204 may notify OCS node 202 and / or other OCS nodes in OCS cluster 106. In such embodiments, OCS node 202 and / or other OCS nodes in OCS cluster 106 may deny subsequent transactions involving the subscriber if such transactions require available credits, for example, until additional credits or money are applied for or granted to the sharing plan, such as through subscriber authorization.
[0060] At step 305, a Diameter CCR-Update (CCR-U) message or another quota request message may be sent from Diameter client 300 to OCS node 202, where the CCR-U message includes an RSU AVP indicating the requested amount of resources (e.g., 50 MB). For example, after a subscriber or associated UE 112 of a shared resource plan uses an initial or existing quota amount, Diameter client 300 may send a Diameter CCR-U message to request additional resource quota associated with the subscriber.
[0061] In some embodiments, the CCR-U message may also include a Used Service Unit (USU) AVP indicating the amount of resources used by the subscriber. For example, the USU AVP may indicate the number of units used measured since the service became active or since the end of the previous measurement. In this example, the usage information may be used for auditing, accounting, and / or other purposes.
[0062] At step 302, a Diameter CCA Update (CCA-U) message or another quota response message may be sent from OCS node 202 to Diameter client 300, where the CCA-U message includes a GSU AVP indicating a granted amount of resources (eg, 50 MB).
[0063] In some embodiments, OCS node 202 may grant a resource quota request based on a reserved resource amount (e.g., an amount previously reserved via OCS node 204). For example, if OCS node 202 has access to reserved resources for subscribers of a shared resource plan, OCS node 202 may provide a resource quota up to and including the reserved resource amount. In another example, if a predefined minimum quota amount is greater than the reserved resource amount, OCS node 202 may provide a resource quota of the minimum quota amount.
[0064] In some embodiments, before granting or providing resource quota, OCS node 202 may determine whether a 'no quota' flag is set. For example, the flag being set may indicate that the shared resource plan has no remaining resources available for consumption. In this example, if the flag is set (and if the reserved resources are not available from the previous reservation), OCS node 202 may reject the resource quota request or otherwise indicate to Diameter client 300 that no quota is available.
[0065] See also Figure 3BAt step 307, a Diameter CCR Termination (CCR-T) message or another quota request message may be sent from Diameter client 300 to OCS node 202, wherein the CCR-T message includes a USU AVP indicating the amount of resources used by the subscriber. For example, after a subscriber or associated UE 112 of a shared resource plan terminates a session or logs off, Diameter client 300 may send a Diameter CCR-T message for terminating a credit control session.
[0066] At step 308, a Diameter CCA Termination (CCA-T) message or another quota response message may be sent from OCS node 202 to Diameter client 300 to indicate that the CCR-T message has been received and acknowledged.
[0067] In some embodiments, OCS node 202 may use usage information received from Diameter client 300 (e.g., in CCR-T) for accounting, auditing, and / or other purposes. For example, OCS node 202 may use usage information associated with a subscriber to determine an amount of reserved resources to release. In this example, OCS node 202 may determine that a large portion of the resource quota has not been consumed based on the usage information received from Diameter client 300, and therefore, OCS node 202 may release these resources or a portion thereof by sending a reservation release to OCS node 204.
[0068] At step 309, a reservation release for releasing reserved resources (e.g., 25 MB) associated with the shared resource plan may be sent from OCS node 202 to OCS node 204. For example, after receiving the reservation release, OCS node 204 may increase the amount of remaining resources associated with the shared resource plan by the amount of released resources.
[0069] In some embodiments, an update process may occur when a subscriber tops up or reloads available resources of a shared resource plan. For example, a subscriber using UE 112 may interact with billing system 110 to purchase additional resources (e.g., 5 GB of data or $50 of credit). In this example, the update process may include billing system 110 notifying OCS node 204 and / or other nodes in OCS cluster 106, thereby triggering various actions (e.g., clearing or unsetting a 'no quota' flag) to allow Diameter client 300 to request and receive additional resource quota.
[0070] At step 310, a new quota grant may be sent from billing system 110 to OCS node 204 indicating that the shared resource plan has additional resources available for consumption.
[0071] At step 311, OCS node 204 may clear a 'no quota' flag (eg, a local flag at OCS 204), thereby indicating that the shared resource plan has resources available for consumption.
[0072] At step 312, OCS node 204 may notify OCS node 202 and other nodes in OCS cluster 106 that the shared resource plan has resources available for consumption. For example, OCS node 202 (and OCS node 200) may receive a notification from OCS node 204 indicating that resources have been added to the shared resource plan, and in response, OCS node 202 (and OCS node 200) may clear a local flag, thereby indicating that the shared resource plan has resources available for consumption.
[0073] It is important to realize that Figure 3A-3B is used for illustration purposes only and can be used with Figure 3A-3B It will also be appreciated that the various messages, steps and / or actions described herein may be in the same manner as those described herein. Figure 3A-3B occur in a different order or sequence than that shown in .
[0074] Figure 4 is a diagram illustrating an example process 400 for lock-free communication network resource quota sharing. In some embodiments, process 400 or portions thereof described herein may be performed at or by a network node (e.g., OCS node 202 or 204), QME 206, and / or another module or node. In some embodiments, process 400 or related actions may be performed by a first billing node (e.g., OCS node 202) of a distributed billing system (e.g., OCS cluster 106) associated with a communication network (e.g., environment 100) comprising a plurality of billing nodes, wherein the first billing node is used to process a communication network resource quota request associated with a first member (e.g., a child member) of a shared resource plan, wherein a second billing node (e.g., OCS node 204) manages resource reservations associated with the shared resource plan.
[0075] Referring to process 400, a first communication network resource quota request associated with a first member of a shared resource plan for requesting a first amount of resources from a shared resource plan may be received from a requesting entity at step 402. For example, PGW 108 or Diameter client 300 may receive a network attach request or other message indicating that a communication network subscriber requires a communication network resource quota. In this example, PGW 108 or Diameter client 300 may send a Diameter CCR message to OCS cluster 106 or a node thereof (e.g., OCS node 202) to request a communication network resource quota for use by the communication network subscriber.
[0076] At step 404, without confirming that the shared resource plan has sufficient available resources to allocate the first resource amount, a first communication network resource quota for the first member may be provided to the requesting entity, wherein the first communication network resource quota indicates a second resource amount that is less than the first resource amount, and / or wherein the first communication network resource quota is associated with an expiration time that indicates when the first communication network resource quota expires. For example, the OCS node 202 may be configured to provide the minimum quota (e.g., a predetermined resource amount) for a subscriber of the shared resource plan to the PGW 108 or Diameter client 300 without locking the shared resource plan (or an associated account) and / or without receiving confirmation that the requested resources are available for consumption (e.g., from an OCS node 204 that manages allocation and / or reservation of resources for the shared resource plan). In another example, the OCS node 202 may be configured to provide the resource quota with an expiration time to the PGW 108 or Diameter client 300 that indicates when the resource quota expires for the subscriber of the shared resource plan. In this example, the validity period may be a shorter amount of time (e.g., 30 seconds) relative to a typical or default validity period (e.g., 60 minutes) used when granting a resource quota. Continuing with this example, after the resource quota expires, PGW 108 or Diameter client 300 must request another resource quota (which may provide sufficient time for OCS node 202 to request and reserve resources for the shared resource plan from OCS node 204).
[0077] A first resource reservation request for reserving resources of the shared resource plan may be sent to the second charging node at step 406. For example, after providing a minimum quota (e.g., 2 MB) for a subscriber of the shared resource plan to PGW 108 or Diameter client 300, OCS node 202 may send a resource reservation request to OCS node 204 so that OCS node 202 may reserve some resources of the shared resource plan and grant subsequent communication network resource quota requests of the subscriber using the reserved resources.
[0078] In some embodiments, the first member of the shared resource plan may be allocated a communication network resource quota while the second member of the shared resource plan is being allocated a communication network resource quota. In such embodiments, the quotas allocated to different members may be the same amount or different amounts.
[0079] For example, OCS node 200 and / or associated QME 206 may execute a quota-related transaction involving a first member of a shared resource plan while OCS node 202 and / or associated QME 206 concurrently executes a quota-related transaction involving a second member of the shared resource plan. In this example, OCS node 200, OCS node 202, and other OCS nodes in OCS cluster 106 may use a lock-free quota management algorithm that allows multiple quota-related transactions associated with a shared resource plan to occur concurrently (e.g., simultaneously or nearly simultaneously). In contrast, for example, a lock-based quota management system would prevent the processing of quota-related transactions associated with a shared resource plan while a first quota-related transaction associated with a shared resource plan is occurring, regardless of which OCS node in OCS cluster 106 is processing the quota-related transaction.
[0080] In some embodiments, the first resource amount includes a data usage amount, a time usage amount, or a money or credit amount. For example, PGW 108 may request and receive a data usage quota from OCS node 202 to access data and / or services via communication environment 100. In another example, PGW 108 may request and receive a credit or money quota from OCS node 202 to charge for services or items associated with communication environment 100.
[0081] In some embodiments, when the first resource reservation request is used to reserve an amount of resources that is greater than the remaining amount of resources available from the shared resource plan, the second billing node (e.g., OCS node 204) notifies the first billing node (e.g., OCS node 202) by setting a flag indicating that the shared resource plan has no more resources available for consumption, and / or provides at least a portion of the amount of resources requested in the first resource reservation request.
[0082] In some embodiments, process 400 may include, before providing the first communication network resource quota, determining that a flag is not set, wherein the setting of the flag indicates that the shared resource plan has no more resources available for consumption (eg, no more Internet data to consume or money to spend).
[0083] In some embodiments, process 400 may include receiving a reserved resource amount based on a first resource reservation request from a second billing node; receiving a second communication network resource quota request for requesting a third resource amount from a shared resource plan from a requesting entity; and providing a second communication network resource quota for a first member of the shared resource plan to the requesting entity using the reserved resource amount.
[0084] In some embodiments (eg, when the third resource amount is greater than the reserved resource amount, or brings the reserved resource amount to or below a reorder threshold), a second resource reservation request is requested from a second charging node to reserve additional data from the shared resource plan.
[0085] In some embodiments, the communication network resource quota request may include a Diameter message or a Diameter CCR. For example, PGW 108 may send a CCR-I message including an RSU AVP for requesting a communication network resource quota to OCS node 202. In another example, Diameter client 199 (e.g., PCEF) may send a CCR-U message including an RSU AVP to OCS node 200.
[0086] In some embodiments, the requesting entity in process 400 may include PGW 108, a Diameter network element, a PCEF, a BBERF, a TDF, or a DPI function.
[0087] In some embodiments, the first charging node and the second charging node may be associated with a distributed OCS, such as OCS cluster 106 .
[0088] It is important to realize that Figure 4 It is for illustration only, different and / or additional steps and / or actions may be used. It is also to be appreciated that the various steps and / or actions described herein may occur in a different order or sequence.
[0089] It should be noted that the billing nodes, OCS clusters 106, OCS nodes 200, OCS nodes 202, OCS nodes 204, QME 206, and / or functions described herein may constitute a dedicated computing device. In addition, the billing nodes, OCS clusters 106, OCS nodes 200, OCS nodes 202, OCS nodes 204, QME 206, and / or functions described herein may improve the technical fields of communication networks, OCS architectures, and resource sharing. For example, by utilizing lock-free communication network resource quota sharing, latency and performance issues associated with resource sharing and related billing may be mitigated or prevented. In addition, a distributed OCS cluster utilizing lock-free communication network resource quota sharing may reduce the complexity of situations involving different members of a shared resource plan being processed by different nodes of a distributed OCS cluster, because locking is not required and the associated locking overhead is avoided.
[0090] It should be understood that various details of the subject matter described herein can be changed without departing from the scope of the subject matter described herein.In addition, the above description is only for illustration, not for limitation of the present invention.
Claims
1. A computer-implemented method for sharing resource quotas in a lock-free communication network, the method comprising: At a first billing node of a distributed billing system comprising a plurality of billing nodes, wherein the first billing node is configured to process a communication network resource quota request associated with a first member of a shared resource plan, and wherein a second billing node manages resource reservations associated with the shared resource plan: receiving, from a requesting entity, a first communication network resource quota request for requesting a first amount of resources from a shared resource plan; providing, without confirming that the shared resource plan has sufficient available resources to allocate the first amount of resources, a first communication network resource quota for the first member to the requesting entity, wherein the first communication network resource quota indicates a second amount of resources that is less than the first amount of resources, and / or wherein the first communication network resource quota is associated with an expiration time that indicates when the first communication network resource quota expires; and A first resource reservation request for reserving resources of the shared resource plan is sent to the second charging node.
2. The computer-implemented method of claim 1, wherein while the first member is being allocated the first communication network resource quota, a second member of the shared resource plan is simultaneously allocated the third communication network resource quota.
3. The computer-implemented method of claim 1 or 2, wherein the first resource amount comprises an amount of data usage, an amount of time usage, or an amount of money or credit.
4. A computer-implemented method according to claim 1 or 2, wherein when the first resource reservation request is used to reserve an amount of resources that is greater than the remaining amount of resources available in the shared resource plan, the second billing node notifies the first billing node by setting a flag indicating that the shared resource plan has no more resources available for consumption, and / or provides at least a portion of the amount of resources requested in the first resource reservation request.
5. The computer-implemented method of claim 1 or 2, comprising: Before providing the first communication network resource quota, it is determined that a flag is not set, wherein the flag being set indicates that the shared resource plan has no more resources available for consumption.
6. The computer-implemented method of claim 1 or 2, comprising: receiving, from a second charging node, a reserved resource amount based on the first resource reservation request; receiving, from the requesting entity, a second communications network resource quota request for requesting a third amount of resources from the shared resource plan; as well as Using the reserved resource amount, a second communication network resource quota for the first member is provided to the requesting entity.
7. The computer-implemented method of claim 6, comprising: A second resource reservation request is requested from the second charging node to reserve additional resources for the shared resource plan.
8. The computer-implemented method of claim 1 or 2, wherein the requesting entity comprises a Diameter network element, a packet data network gateway (PGW), a policy and charging enforcement function (PCEF), a bearer binding and event reporting function (BBERF), a traffic detection function (TDF), or a deep packet inspection (DPI) function.
9. The computer-implemented method of claim 1 or 2, wherein the first charging node and the second charging node are online charging system (OCS) nodes, and wherein the first communication network resource quota request comprises a Diameter message or a Diameter Credit Control Request (CCR).
10. A system for sharing resource quotas in a lock-free communication network, the system comprising: at least one processor; Memory; and At a first charging node of a distributed charging system comprising a plurality of charging nodes, wherein the first charging node is implemented using the at least one processor and the memory, wherein the first charging node is used to process a communication network resource quota request associated with a first member of a shared resource plan, wherein the second charging node manages resource reservations associated with the shared resource plan, wherein the first charging node is configured to: receiving, from a requesting entity, a first communication network resource quota request for requesting a first amount of resources from a shared resource plan; providing, without confirming that the shared resource plan has sufficient available resources to allocate the first amount of resources, a first communication network resource quota for the first member to the requesting entity, wherein the first communication network resource quota indicates a second amount of resources that is less than the first amount of resources, and / or wherein the first communication network resource quota is associated with an expiration time that indicates when the first communication network resource quota expires; and A first resource reservation request for reserving resources of the shared resource plan is sent to the second charging node.
11. The system of claim 10, wherein while the first member is being allocated the first communication network resource quota, the second member of the shared resource plan is simultaneously allocated the third communication network resource quota.
12. The system of claim 10 or 11, wherein the first resource amount comprises a data usage amount, a time usage amount, or a money or credit amount.
13. A system according to claim 10 or 11, wherein when the first resource reservation request is used to reserve an amount of resources that is greater than the remaining amount of resources available in the shared resource plan, the second billing node notifies the first billing node by setting a flag indicating that the shared resource plan has no more resources available for consumption, and / or provides at least a portion of the amount of resources requested in the first resource reservation request.
14. The system according to claim 10 or 11, wherein the first charging node is configured to: Before providing the first communication network resource quota, it is determined that a flag is not set, wherein the flag being set indicates that the shared resource plan has no more resources available for consumption.
15. The system according to claim 10 or 11, wherein the first charging node is configured to: receiving, from a second charging node, a reserved resource amount based on the first resource reservation request; receiving, from the requesting entity, a second communications network resource quota request for requesting a third amount of resources from the shared resource plan; and Using the reserved resource amount, a second communication network resource quota for the first member is provided to the requesting entity.
16. The system of claim 15, wherein the first charging node is configured to: A second resource reservation request is requested from the second charging node to reserve additional resources for the shared resource plan.
17. The system of claim 10 or 11, wherein the requesting entity comprises a Diameter network element, a packet data network gateway (PGW), a policy and charging enforcement function (PCEF), a bearer binding and event reporting function (BBERF), a traffic detection function (TDF), or a deep packet inspection (DPI) function.
18. The system of claim 10 or 11, wherein the first charging node and the second charging node are online charging system (OCS) nodes, and wherein the first communication network resource quota request comprises a Diameter message or a Diameter Credit Control Request (CCR).
19. A non-transitory computer readable medium having executable instructions stored thereon, the executable instructions, when executed by at least one processor of a computer, causing the computer to perform steps, the steps comprising: At a first billing node of a distributed billing system comprising a plurality of billing nodes, wherein the first billing node is configured to process a communication network resource quota request associated with a first member of a shared resource plan, and wherein a second billing node manages resource reservations associated with the shared resource plan: receiving, from a requesting entity, a first communication network resource quota request for requesting a first amount of resources from a shared resource plan; providing, without confirming that the shared resource plan has sufficient available resources to allocate the first amount of resources, a first communication network resource quota for the first member to the requesting entity, wherein the first communication network resource quota indicates a second amount of resources that is less than the first amount of resources, and / or wherein the first communication network resource quota is associated with an expiration time that indicates when the first communication network resource quota expires; and A first resource reservation request for reserving resources of the shared resource plan is sent to the second charging node.
20. The non-transitory computer readable medium of claim 19, wherein while the first member is being assigned the first communication network resource quota, the second member of the shared resource plan is simultaneously assigned the third communication network resource quota.
Citation Information
Patent Citations
System and Method for Dynamically Allocating Quota for Shared Balances in Distributed Telecommunications Networks
US20150105045A1
