PortaBilling with Oracle Real Application Cluster provides exactly the same functionality as PortaBilling in terms of customer management, service provisioning, rating, billing, and so on. In fact, they share the same "core" functions of the billing engine, XML API, and other important modules. Also, their web front-end looks basically the same, thus significantly simplifying migration to PortaBilling with Oracle Real Application Cluster for current PortaBilling users.
Therefore, in the rest of this document, the term PortaBilling will be used to describe the general functionality shared by both products, while PortaBilling with Oracle Real Application Cluster will be used to refer to a specific product.
The fundamental difference lies in the architecture of PortaBilling with Oracle Real Application Cluster:
- The database back-end deploys multiple servers in the Oracle Real Application Cluster (RAC). This means that in case one of the servers should fail, the database will continue to operate. Also, if more performance is required, additional servers may be added to the cluster to linearly increase capacity. For more details regarding the Oracle Real Application Cluster, see the Oracle website.
- Similarly, the billing engine (the code that performs communication with the network, real-time rating, etc.) runs in a distributed fashion on several servers, which are organized as a cluster. This provides fault-tolerance (if one of the servers in the billing cluster goes down, this does not affect the service provided to customers, since the remaining servers will carry on), and allows easy expansion of capacity by adding more servers.
- Administrative functions (administrator web, self-care web, XML API, etc.) run on several servers, enabling load-sharing and quick disaster recovery.
- Finally, there is a separate server that is used to maintain and manage the configuration of all the other servers. This greatly simplifies tasks such as adding a new server to your PortaBilling with Oracle Real Application Cluster installation, relocating components (e.g., one of the billing servers) to a new physical machine, or changing some other parameters.
PortaBilling supports multiple services and service types. This means that as different types of services (e.g., voice calls, Internet access, WiFi connectivity, and messaging) are provided to your users, PortaBilling collects data about all of them, processing and rating it according to the billing configuration. It then provides your customers with a consolidated bill and your administrators with a unified customer management interface.
The main unit of billing information is a billing event – a notification that a service has been provided to a customer in the outside world, and that this customer should be charged for the service.
For many services (such as SMS messaging), a single billing event is represented by a single notification message to billing, while for others information about one event (e.g., a completed phone call) is split into multiple notifications from different network elements.