The, AryaChargeNow, converged billing system is designed to cater fixed-line network providers. The billing functionality is basically divided into two main layers management layer (BML) and control layer (BCL). The BML mainly has modules that are network agnostic and BCL works closely with network elements and standard interfaces. There are mainly two interfaces between BML and BCL, program interface and events interface. The program interface is unidirectional from BML to BCL and similarly event interface is for triggering events from BCL to BML. The external interfaces BML extends can be categorized into REST interface used for UI and other third party integrations, VAS services integration and third party integrations for payments and recharging portals.
The first 5 modules above are the core modules and rest of the modules are optional and can be disabled or integrated with third party CRM using plug-in extensions.
The BCL consists of modules that are specific to network for enabling and provisioning the service. The main modules in BCL are:
The solution can be deployed on any cloud platform or bare bone servers. The architecture of AryaChargeNow is purpose-built to be modular with scale-as-grow model. This helps CSPs to bootstrap with lower TCO and quick time to market. The AryaChargeNow runs on a highly scalable framework that can scale up to millions of subscriber. The system is capable of providing high reliability promising a zero-loss during upgrades etc. The system supports standard protocols towards access router/switches in the network and is already integrated with well known vendors like Cisco, Juniper and Huawei. The figure below shows a simple deployment of AryaChargeNow works by managing BNG router/switch or Access router/switch:
All the service instances communicate with each other using virtual switch. The virtual switch is a tenant network provided by cloud service provider which is supposed to be more secure. All the services running in the AryaBill are running behind the firewall and only the ports that are externally visible will be opened up.
All the APIs that are invoked by external entities like UI and other third party applications are secured using HTTP/TLS. The APIs used by UI elements use session based tokens, which are issued after authentication. In addition all APIs given to third-party will use OAuth2 authentication.
subscribers efficiently is:The sensitive user data stored in databases are encrypted. For example the passwords are stored using non-reversible encryption and any national IDs of user are stored using reversible encryption. All the sensitive documents provided by user are stored in encrypted drives/volumes.
Plan/Product Management
The plan and product management module deals with defining the basic plans for various service type Prepaid and Postpaid the basic types of plans are prepaid and postpaid. The plan definition includes service parameters, daily & monthly limits, FUP actions and rating parameters as per the service. The up-gradation of service limits and increase in ratings etc is completely handled by this module. The work-flow for service up-gradation can be defined. This module also deals with voucher management that can be used as eVouchers or retail top-up cards for topping up the service.
User/Subscription Management
The user/subscription management deals with user/subscription enrollment process. The enrollment process/work-flow and mandatory requirements can be defined in the module so that provider can enforce the local enrollment registration process. This module deals with managing user/subscription related document securely. This module also provides user/subscriber lookup/search related functions for all other modules.
Reseller/Partner Management
The partner management module holds provider’s resellers and partners information with corresponding agreement documents etc. The work-flow for new reseller/partner can be defined and enforced. The reseller and partner allocations and mediations are also handled by this module. The periodic reconciliations with reseller and partners can be automated with custom defined work-flows.
Resource Management
This module deals with maintaining the resources like Service Domains, IP address blocks, access devices and other network devices. It can be used to define work-flow for procurement and RMA process. It also supports features like setting up procurement alerts and auto-initiated procurement.
The departments, roles and access permissions for the billing system is managed by this module. This module provides the basic elements for creating work-flows for all modules in the system. The work-flow is a simple rule-action definition that ties together roles, departments and related actions for the work-flow.
Service & Policy Management
This module is used for defining a basic service by bundling various plans and products. The service policies for OTT services and other VAS services are defined here. The work-flow for comprehensive service activation can be defined in this module. The reseller and partner SLAs and any other service mediation work-flows are defined here. The reconciliation process with partners and reseller is handled by this module automatically with custom defined work-flows.
Invoice & Revenue Management
This module mainly caters for all finance operations of the business. The invoice template can be designed for service definitions. The billing cycles to a service can be assigned here. The work-flow for changing the billing cycles can also be defined. The module will generate on-demand and automated statements as per configuration. The work-flows for receivables and delinquencies can be customized as per organization requirements.
Customer Management
This module mainly deals with customer help requests. The flow for customer tickets and escalations can be customized according to the organizational requirement. This module can be used to target new promotional plans/products or services to existing and previous customers. The customer service agreements, consents etc are defined in this module that can be used during sign-ups and activations. The changes in customer service agreements can be pushed through this module.
Planning & Operations
This module deals with analyzing users usage/billing data and generate reports that will further help providers in planning business and network operations. The data source for analysis can be configured in this module. The data source could be plain delimiter based text or JSON over UDP or standard RADIUS/SNMP interfaces. This module provides customized sampling and summarization for generating reports and graphs etc. This modules also supports periodic audit control. The work-flow for audits can be configured for other modules like invoice/revenue, resource and customer management.
REST Controllers
The REST controllers enable north-side interface for all modules to get and set the configuration. Multiple REST requests are handled simultaneously and will not block each other. The input objects are called commands and output objects are called views. Currently only JSON format is supported for commands and views. The module configuration is accessed by REST controllers using well defined plug-ins. Any new functionality added to which needs configuration has to define plug-in interface with REST interface. Any third-party integration for any of these module will require the plugin implementation for the third-party software.
Events and Alarms Management
The events management is the spine of the whole billing system. All the modules interact through events mechanism and event manager routes the events to the proper module. Events manager maintain the registry of events and corresponding handlers. All modules that need specific events should register their handlers with event manager. Similarly events are generated by modules during configuration changes or network events that are router further by event manager.
The event routing module also supports high-availability using well-know channels. The channels are well-known IDs that are used during event-notification registration process. The modules that are registered with same channel ID are assumed to be doing redundant functionaries. Hence, the events that these modules are registered for are distributed among them for load balancing.
Each module is assigned worker threads that process the jobs scheduled by the module. The event dispatcher is one of such jobs which receive these events and further schedules event related jobs. When module receive events it will schedule the corresponding job to process the event related information. The event router also supports events generated by external entities. The external entity that wants to generate event should connect to event router with authorization token and can send events. Similarly external module can also register for events. This accommodates integration of any external module into billing solution. Also, modules can run on one server or can be distributed to multiple servers for high scale deployments.
In addition to event routing this module records all the events as logs in audit logs. This module also provides the monitor feature to monitor local or remote modules. For remote module HTTP/ICMP mechanisms are supported. Any state changes in modules can be configured to raise alarms or generate events.
Billing Control Layer
The BCL implements all network related modules and protocols, including the vendor specific modules. All interactions between BML and BCL go through abstraction layer called Service and Policy Abstraction Layer (SPAL). This layer defines all possible services and policy parameters in a generic way for BML to program BCL. The abstraction layer is just an entry-point module that glues the network agnostic features to network specific modules.
Authentication Authorization & Accounting (AAA)
The AAA module supports the complete suite of components to provide the basic call admission and rating controls. For Authentication, it supports local authentication, external RADIUS/DIAMETER, TACACS+, LDAP or REST interface. Both PAP and CHAP authentication methods are supported. For address management local address pools, RADIUS/DIAMETER, TACACS+, DHCP or REST interface are supported. This module uses RADIUS, TACACS+, SNMP for fetching accounting statistics.
RADIUS
The RADIUS module runs the full RADIUS stack as per the RFC 2865 standard. In additions to standard AVPs this module already has various proprietary AVPs used by well known vendors on access switches and network gateways.
Policy Access Control (PAC)
The policy access control is module that deals with policy actions on access and gateway switches. It uses SNMP, NetConf or command interface to configure access filters and other access policy related configurations. This module deals with pre/post authentication rules to block, upgrade/downgrade service as per service level agreements.
High Availability
All the service instances that are running in AryaChargeNow are running on multiple VMs/servers for redundancy. In addition, these Vms/Servers will be running on multiple availability zones. The internal modules inside service instance also run in redundant model.
One of the responsibilities of CRS is to upgrade ABS with patches. The patches could be a hot or cold patch; hot patch affects one or few of the modules in service instances, whereas hot patch would require restarting the whole service instance (management/control). The patches are applied sequentially to ABS one after the other. If the patch is a hot patch only the service module that is affected will be restarted in a sequential manner on each VM. If the patch is a cold patch the service/control VMs are restarted in a sequential manner. All the database tables and files at ABS level are also periodically synced to CRS.
Technology
Majority of modules in AryaBill solution are developed using Java. In addition Tomcat web server and frameworks like Spring Boot, Activiti are used. The web UI is developed using AngularJS. The database used for storing majority of the configuration objects is Galera with replication support. The rabbitmq cluster with TLS is used for eventing mechanism across all modules. The swarm cluster and Dockers are used for micro-services cluster implementation. Majority of the modules that are used for micro-services are developed using python.