CPS Architecture Overview
The Cisco Policy Suite (CPS) solution utilizes a three-tier virtual architecture for scalability, system resilience, and robustness consisting of an I/O Management, Application, and Persistence layers.
The main architectural layout of CPS is split into two main parts:
-
Operations, Administration and Management (OAM)
-
Three-tier Processing Architecture
Operations, Administration and Management (OAM)
The OAM contains the CPS functions related to the initial configuration and administration of CPS.
-
Operators use the Policy Builder GUI to define the initial network configuration and deploy customizations.
-
Operators use the Control Center GUI or functionality that is provided through the Unified API to monitor day-to-day operations and manage the network. One of the primary management functions of Control Center is to manage subscribers. This aspect of Control Center is also referred to as the Unified Subscriber Manager (USuM).
Three-tier Processing Architecture
This section describes the three-tier architecture.
The three-tier architecture defines how CPS handles network messages and gives CPS the ability to scale. The three processing tiers are:
-
I/O Management Layer
The I/O Management Layer handles I/O management and distribution within the platform. Load Balancer (LB) VMs, also referred to as Policy Director (PD) VMs implements I/O management layer functions. This layer supports internal load balancers to load balance requests to the relevant modules.
-
Application Layer
The Application Layer handles the transaction workload and does not maintain subscriber session state information. The main module of the Application Layer is a high performance rules engine.
-
Persistence Layer
The Persistence Layer consists of the Session Manager - a document-oriented database used to store session, subscriber information, and balance data (if and when applicable). Session Manager VMs implements this function.
The databases that are included in Session Manager are:
-
Admin
-
Audit
-
Custom Reference Data
-
Policy Reporting
-
Sessions
-
Balance
-
SPR
-
For more information on Persistence Layer, refer to Persistence Layer.
Persistence Layer
The Persistence Layer is responsible for storing session information, as well as subscriber profile and quota information if applicable. This is done using the Session Manager application. It is the persistence layer that maintains state within CPS. Geographic redundancy is achieved through data synchronization of the persistence layer between sites.
The Session Manager is built using MongoDB, a high-performance and high-availability document-oriented database.
The MongoDB obtains high performance by using a 'file-backed in-memory database'. To achieve high performance, the MongoDB stores as much of the data as possible in memory (and thus is very fast), but the data is mirrored and written out to disk to preserve the database information across restarts.
Access to the database is typically performed using the Unified API (SOAP/XML) interface. GUI access is typically limited to lab environments for testing and troubleshooting, and can be used to perform the following tasks:
-
Manage subscriber data (if SPR used), that is, find, create or edit subscriber information
-
Stop database or check the availability of subscriber sessions
-
Review and manage subscriber sessions
-
Populate custom reference data tables: Custom reference data tables allow service providers to create their own data structures that can be used during policy evaluation. Examples of information that can be included in custom reference data tables include:
-
Device parameters
-
Location data mapping (for example, map network sites and cell sites into the subscriber's home network)
-
Roaming network or preferred roaming network
-
IMEI data tagging for smart phone, Apple, android device, and so on
-
Unified Subscriber Manager (USuM)/Subscriber Profile Repository (SPR)
USuM manages subscriber data in a Subscriber Profile Repository (SPR). This includes the credentials with which a subscriber is able to log in and services allocated to the subscriber. The details of what a service means are stored in Policy Builder.
Each subscriber record that is stored in the USuM is a collection of the data that represents the real world end-subscriber to the system. Examples include which of the service provider's systems that the subscriber can access (mobile, broadband, and so on.) or to identify specific plans and service offerings that the subscriber can utilize.
Additionally, USuM can correlate balance and session data to a subscriber. Balance data is owned by Multi-Service Balance Manager (MsBM) and is correlated by the Charging Id. Session data is correlated by the credential on the session which should match an USuM credential. Session data is managed by CPS core and can be extended by components.
In 3GPP terminology, the USuM is a Subscriber Profile Repository (SPR). The following is a symbolic representation of how data portions of the Cisco SPR relate and depend on each other.
SPR primarily maintains the subscriber profile information such as Username, Password, Domain, devices configured, services (plans), and so on. SPR database is updated by provisioning process and queried at start of session.
Session Manager (SM)
The session manager database contains all the state information for a call flow. Components such as Diameter or custom components can add additional data to the session database without core code changes.
Multi-Service Balance Manager (MsBM)
MsBM is used to support any use cases that require balance, for example, volume monitoring over Gx also uses the Balance database (without need for Gy). It also handles the CPS implementation of an online charging server (OCS). It handles quota and manages the subscriber accounting balances for CPS. Quota information is stored separately from a subscriber so that it can be shared or combined among multiple subscribers.
-
Maintains the multiple balances that can be assigned for each subscriber. Balance types can include:
-
Recurring balances (for example, reset daily, monthly, or per billing cycle)
-
One-time balances such as an introductory offer might be assigned per subscriber
-
Both recurring and one time balances can be topped-up (credited) or debited as appropriate
-
-
Balances can be shared among subscribers, as in family or corporate plans.
-
Operators can set thresholds to ensure some pre-defined action is taken after a certain amount of quota is utilized. This can be used to prevent bill shock, set roaming caps, and to implement restrictions around family or corporate plans.
-
Operators can configure policies to take action when a given threshold is breached. Examples include:
-
Sending a notification to the subscriber
-
Redirecting the subscriber to a portal or a URL
-
Downgrading the subscriber's balance
-
Note |
The decision to utilize quota is made on a per service basis. Users who do not have quota-based services would not incur the overhead of querying/updating the MsBM database. |