1 About Customizing BRM

This guide introduces the types of customizations you can make to Oracle Communications Billing and Revenue Management (BRM), the structure of BRM from the programming perspective, the BRM programming model, and the tools and programming languages you can use for customizing BRM.

This guide contains general procedures for implementing the different types of customization. Because BRM is highly flexible and each implementation is unique, this guide provides general procedures for creating and modifying BRM components and applications. It does not provide specific instructions for creating custom applications or components for specific implementations.

Read this chapter if you are a programmer customizing BRM.

Note:

Customizing BRM does not always require programming. You can change most of the default settings by using the client tools or the configuration files. See "Implementation Defaults".

To understand the basic BRM concepts and system architecture, see "Introducing BRM" in BRM Concepts.

Caution:

  • Always use the BRM API to manipulate data. Changing data in the database without using the API can corrupt the data.

  • Do not use SQL commands to change data in the database. Always use the API.

About Customizing BRM

BRM includes a set of client applications, business policies, Data Managers (DMs), and storable objects. You can customize BRM to add new client applications, to add new features and functionality, to change the default behavior, or to integrate with third-party software.

There are different levels at which you can customize BRM:

  • You can write custom client applications that communicate with BRM. For example, you can add applications that pass service usage information to BRM for rating.

  • You can change the default policies or write new policies to implement your business objectives.

  • You can create a new storable class to hold information needed for your business. For example, if you provide a new type of service, such as online gaming, you need to create a storable subclass of type /service to hold gaming-related information.

  • You can write a new Facilities Modules (FM) to add new business logic to BRM. For example, you can add a new FM to manage specific types of information, such as email, Web pages, or ftp archives.

  • You can write a new DM to access data in a custom storage system.

Figure 1-1 shows the basic structure of BRM and the different levels of customization.

Note:

A specific customization may involve changes to one or more of the components.

Figure 1-1 BRM Structure and Levels of Customization

Description of Figure 1-1 follows
Description of ''Figure 1-1 BRM Structure and Levels of Customization''

Every type of customization requires you to work with:

Customizing Service Integration

When you integrate your services, you can:

  • Create new services. BRM already supports a basic set of services, but you can integrate your own services such as fax, disk storage, voice mail, and different types of Internet access such as DSL.

  • Customize existing services to capture additional data. For example, you can extend the existing IP service to charge different amounts for different types of access.

  • Customize how you charge for services; for example, by time or quantity.

For more information, see "Adding Support for a New Service".

Planning Your Customization

Before you change the default BRM implementation or add new features and functionality to BRM, you need to plan your customization. For your customization to work properly, changes you make to one component might require changes to other components. For example, if you want to support a new service such as online gaming, you need to consider making the following additions or changes to BRM:

  • Create a new service object to define the service and to define events associated with the service that you want to rate.

  • Develop a pricing model to define rates for the service.

  • Specify resources for events generated by the service and include them in a pricing plan.

  • Map attributes of the events to rate plans and impact categories by using the rate plan selector in Pricing Center.

  • Define different configurations for the service and rate each configuration by using product-level provisioning.

  • Set up authentication and authorization for users to log in to the service.

  • Extend client applications, such as Customer Center, and the registration interface to process information specific to the service and to display information related to the service.

  • Optionally, write client applications to load the events specific to the service or define templates for processing log files related to the service by using Universal Events Loader.

  • Customize the default policy FMs to process information specific to the service, or write new system FMs and policy FMs if necessary.

In addition, depending on the level of customization, you need to determine whether you can implement your changes by using a client tool, by using a configuration file, or by programming.

Guidelines for Customizing BRM

Here are some general guidelines that you should follow when customizing BRM:

  • Performance: Assess how the proposed solution will impact the performance of the system. Review the sizing of the system to comply with existing performance requirements. The proposed solution should limit the number of products, resources, Extended rating attributes (ERAs), and iScripts affected during the customization.

  • Manageability: Verify that the proposed solution is easy to maintain. Customizations should be kept as few as possible because:

    • There could be interferences between customizations and product upgrades, making the move to a newer version difficult.

    • There could be interferences between customizations and patches, leading to side effects or the need to check and possibly change the customization whenever a new patch is released.

    Before implementing the customization, save the copies of unedited configuration files, properties files, policy code, registry files, or any other files changed in the customization. Include comments explaining the customizations in the policy code or configuration file.

  • Resource utilization: Review how the proposed solution will impact the resource utilization and sizing of the system.

  • Cross-feature impact: Plan for the impact of the proposed solution on other features. For example, when customizing Accounts Receivable (A/R), consider how General Ledger (G/L) is affected. When creating a price list, consider how products are purchased and how they are managed after being purchased.

About the BRM Client Access Libraries

BRM client applications communicate with Connection Manager (CM) by using any of the following client libraries:

All of the client libraries are included in the BRM SDK. See "About BRM SDK" for more information.

Table 1-1 shows the APIs you can use to customize the BRM components:

Table 1-1 APIs Used to Customize BRM Components

BRM component PCM C PCM C++ Java PCM Customer Center SDK Perl

Client applications

Yes

Yes

Yes

NA

Yes

Self-Care Manager

NA

NA

NA

Yes

NA

BRM client tools

Yes

NA

NA

NA

NA

Customer Center

NA

NA

NA

Yes

NA

Policy Facility Modules

Yes

NA

NA

NA

NA

Facility Modules

Yes

NA

NA

NA

NA

Data Manager

Yes

NA

NA

NA

NA


Skills Required for Customizing BRM

Depending on your level of customization, to add new applications or to modify the default options in BRM, you require:

BRM Programming Tools

You can use the following tools and utilities for customizing BRM:

  • BRM SDK, which contains the APIs and libraries you need to write BRM applications, to write and customize BRM components such as FMs and DMs, and to customize BRM applications such as Customer Center. It also includes sample applications and sample code that you can use as examples for your own work.

    See "About BRM SDK".

  • PCM SDK, which contains 64-bit PCM libraries.

    See "About PCM SDK".

  • Developer Center, which includes developer applications that you use to create and modify storable classes and fields, test opcodes, view objects in the database, view opcode specifications, test opcodes, and create templates that control how event data is imported into the BRM database.

    See "About Developer Center".

  • A set of utilities for managing and manipulating data, handling errors, and using configuration files.

    See "Developer Utilities".