cc/td/doc/product/rtrmgmt/cpc
hometocprevnextglossaryfeedbacksearchhelp
PDF

Table of Contents

FTI Language Concepts

FTI Language Concepts

This chapter describes key concepts to help you better understand how to use the Script Language and CORBA Language more effectively within a CPC environment.

Product Perspective

CPC is an integrated flow-through service activation solution for network service providers, such as IXCs and LECs, who offer Frame Relay, ATM, Internet access, and other data services. These services typically are complicated to configure and involve multiple technologies. CPC provides a single, consistent interface for provisioning multiple services across multiple network technologies comprised of multiple vendors and equipment models. As such, CPC provides immediate benefits in terms of reduced training costs, improved operations efficiency, and fewer provisioning errors.

CPC provides customer-extensible Service objects using the popular Java language. Service objects allow the service provider to view the network in terms of end-user or subscriber services as well as the traditional set of nodes, ports and circuits. Thus, complex configuration changes are grouped into simple units that reflect more closely the orders received from subscribers. This simplifies and speeds up order processing and improves order consistency. In addition, new services are easier to develop and deploy.

CPC provides interfaces allowing the service provider to flow orders directly from the order processing or customer care systems into CPC for immediate provisioning. These interfaces allow CPC to become an integral component of the service providers total service creation system.

The client-server, UNIX-based implementation of CPC, in conjunction with the use of commercial relational database systems, allows the system to address the full range of service provider capacity and throughput requirements. The system can scale to support millions of network objects and dozens of concurrent operators or flow-through sessions.

Product Functions

CPC can be driven from another application through its Flow-Through Interface (FTI) or it can be used directly by a human Operator using its graphical user interface (GUI). In all of these cases the main interaction is with Service objects.

There is a Service object for each of the services which the provider offers. The class of the Service object identifies the nature of the Service (for example, end-to-end Frame Relay connectivity service), and there is an instance of the Service object for each deployment of that service. New services are created by defining new classes of Service object.

Service objects can be added, deleted and modified as single atomic operations, which CPC then breaks down into elementary actions on individual pieces of equipment. Decisions about how a service should be laid-in are made by CPC, and users (operators or applications) can then view how the service was laid in. CPC ensures that the operation is applied successfully to all elements of the network, in a coordinated manner. If any elementary action fails then the entire operation is rolled-back.

A service creator has the choice of defining the service in equipment-neutral terms (allowing the same service to be transparently deployed across a variety of equipment), or taking into account equipment-specific features (allowing the service to take full advantage of all of the features of a given type of equipment).

Product Operation

At the heart of CPC is a database, which contains an object-oriented representation of the managed network.

A CPC Administrator ensures that the representation of network fabric in the CPC database is an accurate representation of the managed network. CPC monitors events from the network, listening for events which indicate changes to the fabric (deployment of new nodes, etc.). An administrator can view these events and decide when to upload fabric information.

CPC clients deal with service requests, that is, requests from customers for new services, modifications to existing services, cancellations, etc. A CPC client is most likely to be an order-processing application, but it may also be a human Operator.

An order-processing application communicates with Service objects in CPC using the Script Language or CORBA. A Service object creates service elements in the database, using the fabric elements which are already present, and then provisions the service by updating the network to reflect the new service elements in the database.

Human Operators can also satisfy service requests by interacting with the Service objects using the CPC GUI.

CPC and FTI Concepts

A flow-through application is an application integrated with CPC using script or CORBA commands. The flow-through application has access to all of the capabilities of CPC, including:

For more information about CPC concepts, refer to the Cisco Provisioning Center Users Guide.

Object Model

Objects are the basic units that flow-through applications deal with. Objects can be located, retrieved and modified using Script Language or CORBA commands. The set of objects that can be manipulated by flow-through applications consists of Service objects, configuration objects, profiles, Transactions, and sessions. All of these objects form the object model and are stored in the CPC database.

To identify these objects, each is referenced by a unique identifier which is returned as a result by some Script Language or CORBA commands and accepted as input by others. This identifier is a number in some cases (for transactions and sessions), and as an object identifier in others (Transactions, Service objects, configuration objects, and profiles).

Service Objects

CPC stores a description of the service in the form of data items called Service objects. Related Service objects are delivered in packages called Service Applications. Service objects represent the orders received from subscribers and present an end-user view of the components that make up that service. The components are in themselves configuration objects (or more explicitly service elements) which are created and managed through the Service objects.

Configuration Objects

CPC stores a description of the network configuration in the form of data items called configuration objects. Configuration objects represent physical objects such as ports and links between the ports (known as fabric elements), as well as logical objects such as circuits and link connections between the circuits (known as service elements).

Profiles

A profile provides the ability to pre-configure certain attributes of specific objects. There is a corresponding profile object class for each Service object class and for each service element class. For example, a Frame Relay Service object class has a corresponding Frame Relay Service Profile class and a Frame Relay PVC object class has a corresponding Frame Relay PVC Profile class. Profile objects provide the initial (default) attribute values for the corresponding object class whenever such a new object is created or an existing object is modified with a new profile.

Each profileable object class has a special profile called the default profile. This profile contains the attributes that are given to new elements of that class. You may later override some of these attributes on the object itself or may reassign a different profile to the object.


Note   From this point forward, references to configuration objects also include profile objects, unless explicitly stated otherwise.

Transactions

Service and configuration changes which are associated with the same change are applied in a single, network-wide transaction. This transaction is controlled by a Transaction object (which is a simplified view of a Change Request or CR). A Transaction is not required when Service and configuration changes are not being made, as in the case of viewing and listing objects.

The Figure 1-1 below illustrates the Transaction states and the functions and/or conditions that trigger the state transitions. A transaction can be applied immediately or it can be scheduled to be applied for a later date/time. In either case, when a transaction is applied to the network, it is applied automatically. I0f any individual change fails to apply then all other related changes are rolled-back and the Transaction is left in an Abandoned state. A successful Transaction is left in an Applied state.


Figure 1-1: Transaction Life Cycle States


Sessions

A session is a single execution thread in CPC. CPC supports multiple parallel sessions, which can be automated (flow-through) or interactive.

Each session has an associated user id. This user id defines the security permissions associated with the session. For more information about security, refer to the section titled "Security" later in this chapter.

Object Classes and the Class Hierarchy

In this guide, we use the terms class and base class with respect to objects in the model in a rather precise way. We tend to think about objects in a network as being grouped into collections of objects of a similar kind: for example, node-like objects such as switches, access processors, routers and hubs; or card-like objects that have physical connectors into which cables are plugged. These collections of similar objects are called classes.

A class can contain other classes, called subclasses, which share the attributes of the containing class but differ from each other. For example, the class of Nodes can contain the ATM Switch subclass, the Frame Relay Access Device subclass and the IP Router subclass. Each subclass is a kind of Node, yet each has its unique attributes such as the network protocols it supports. Subclassing can continue to multiple levels: for example, we can create a High-Speed ATM Switch subclass of the ATM Switch subclass. The class that contains a subclass is referred to as its superclass. The highest superclass in a class hierarchy, the Node in our example, is referred to as the base class.

When we refer to an object's class in this manual, we mean its lowest-level subclass. For example, if we consider a High-Speed ATM Switch called Atlanta, we would say that its base class is Node and its class is High-Speed ATM Switch.

Security

Script Language and CORBA commands can retrieve and modify object attributes, create and delete objects.

For the Script Language, once you log in, your CPC privileges determine what operations you may perform and on which objects. The security for a Script Language application is consistent with an interactive session.

For CORBA, when you create a CORBA session, you specify a user name as one of the parameters. The CPC privileges associated with the specified user name (in the securityInfo file) determine what operations you may perform and on which objects. You do not require a password to use a given user name, and the superUser can be used for unrestricted access.

To execute any Script Language or CORBA command, the minimum required privilege is Examine. For information on privileges and security tags, refer to the Cisco Provisioning Center User's Guide.

The Role of the FTI

The FTI is the primary interface to CPC. It allows a flow-through application to perform the same CPC functions that are available through an interactive session. The main purpose of the Script Language and CORBA interface is to allow other management applications to integrate with CPC. Though you may choose to use the GUI to perform these functions, there are situations in which the flexibility of a programming language is necessary.

For example:

This guide provides examples of simple flow-through applications that can provide information or perform network management functions that cannot be easily accomplished using the interactive interface alone.

Script Language Environment

Before you can run a flow-through application, you must be logged in to UNIX as a user with appropriate CPC privileges. Logging in also defines the appropriate UNIX environment variables, such as $CCP_BIN, that may be needed by the flow-through application.

The Script Language is currently accessible through the UNIX Korn Shell programming language. All execution control (looping, conditional statements, etc.), variables, file management and other such facilities are provided by the shell language.

From the Figure 1-2 below the Script Language Environment with CPC is shown. A flow-through application works with high-level calls to CPC (for example, to provision a service), or works with lower-level calls to manipulate specific configuration objects (for example, to add topology or upload a specific object).


Figure 1-2: Script Language Environment


CPC Client

Service Objects

To provision a service, the script language communicates with a Service object as operations done through the GUI. For each operation requested on a service, a Service object is executed to perform the work. This Service object has the intelligence of provisioning the service by determining the service elements to update, updating the service elements and then grouping the service elements with the Service object. After performing the required operation, and writing any resultant output parameters, the Service object process exits.

Configuration Objects

To update a configuration object, the script language communicates with a configuration object interpreter. This interpreter works in a Korn Shell environment and provides a set of extensions to the Korn Shell (ksh) language. Ksh executes the flow-through application and passes the Script Language nps commands to the interpreter for execution.

A skeleton flow-through application appears as follows:

#!/bin/ksh
   $CCP_BIN/npsinit
<   >
<ksh and Script Language commands>
<   >
nps stop
 

Before a ksh can execute any Script Language nps commands, it must initialize the configuration object interpreter. This is done by adding an npsinit command, which forks an interpreter process with its standard input and output connected to ksh. The program that executes this command is located in the file directory $CCP_BIN.

Ksh recognizes Script Language naps commands and passes them to the interpreter using the interpreter's stain for execution. Results are passed back to ksh using the interpreter's stdout.

The last Script Language nps command in the script must be nps stop, which instructs the configuration object interpreter to exit.

Transactions

Service objects and configuration objects are updated within the context of a Transaction. The Transaction Manager is responsible for managing Transactions with tasks such as creating, opening, and applying them.

To provision requests, Transactions can be started automatically or they can be controlled directly (explicitly started and stopped) when required.

A flow-through application may choose to open the Transaction itself and keep it open across several requests to:


Note   A flow-through application should apply a Transaction as soon as possible, so as to make the objects within the context of the Transaction available for other sessions. Because a configuration object can only have one pending version at a time, the second Transaction cannot update the same configuration object until the first has been applied.

Sessions

Service objects and configuration objects are updated within the context of a session. The Session Manager is responsible for managing sessions with tasks such as creating and destroying sessions.

The flow-through application can manage its own sessions by creating sessions as needed, distributing work among the sessions as desired and then destroying the sessions on exit. The flow-through application is able to work through the same session as the current interactive session (the default), a specified session when there is no interactive session, or in multiple sessions at the same time.

When running in conjunction with the current interactive session, CPC works using the GUI's session (as defined by the environment variable DISPLAY) so that changes being made by CPC are visible to the operator through the GUI. The result of sharing a session is that the GUI and the flow-through application have the same Transaction context: if the GUI has opened a Transaction prior to the start of the flow-through application, the Transaction is opened to the flow-through application as well. The flow-through application can view and modify objects under that Transaction.

NNI Resiliency

In order to support NNI resiliency, Script Language also provides access to utilities to re-thread failed links, restore recovered links and rebalance a group of links.

UNI Resiliency

To support UNI resiliency, the Script Language provides access to utilities to fail and recover a foreground logical port.

Object Attribute Files

The flow-through application programmer must know the object model, and this information is provided to the programmer in Object Attribute Files (OAFs). OAFs are derived from CPC metadata and provide online documentation of the object classes delivered with CPC, their attributes and relationships, and how they are displayed by the GUI. OAFs are supplied as part of each CPC, Service Application and Equipment Module release.

CPC Server

The CPC Server provides Change Management such that all Service and configuration changes are under Change Control. Service and configuration changes that are associated with the same change are applied in a single, network-wide transaction. Changes are applied to the equipment using the network interface defined by the Equipment Modules. All objects are stored with the CPC database.

CORBA Environment

Figure 1-3 shows the CORBA environment with CPC. A flow-through application works with high-level calls to CPC (for example, to provision a service), or works with lower-level calls to manipulate specific configuration objects (for example, to add topology or upload a specific object).


Figure 1-3: CORBA Environment


CPC Client

Service Objects

To provision a service, the CORBA Interface communicates with a Service object. For each operation requested on a service, a Service object is executed to perform the work. This Service object has the intelligence of provisioning the service by determining the service elements to update, updating the service elements and then grouping the service elements with the Service object.

Network Element Objects

To update network element objects (also called configuration objects), for example, nodes or physical ports, the CORBA Interface calls on the Persistent Object Interface. The Persistent Object Interface is the base class for the Managed/Network Element Interface and the Upload Request Interface. This interface contains the methods that you can invoke to create, modify, delete, or upload objects into the database.

Transactions

Service objects and network element objects are updated within the context of a Transaction. The Transaction Manager is responsible for managing Transactions with tasks such as creating, opening, scheduling, and applying them.

To provision requests, Transactions can be started automatically or they can be controlled directly (explicitly started and stopped) when required.

A flow-through application may choose to open the Transaction itself and keep it open across several requests to:


Note   A flow-through application should apply a Transaction as soon as possible, so as to make the objects within the context of the Transaction available for other sessions. Because a configuration object can only have one pending version at a time, the second Transaction cannot update the same configuration object until the first has been applied.

Sessions

Service objects and network element objects are updated within the context of a session. The Session Manager is responsible for managing sessions with tasks such as creating and destroying sessions.

The flow-through application can manage its own sessions by creating sessions as needed, distributing work among the sessions as desired and then destroying the sessions on exit.

NNI Resiliency

In order to support NNI resiliency, the CORBA Interface provides access to the NNI Resiliency Manager which includes a set of utilities to re-thread failed links, restore recovered links, and rebalance a group of links.

UNI Resiliency

To support UNI resiliency, the CORBA interface provides access to the UNI Resiliency Manager that includes a set of utilities to fail and recover foreground logical ports.

Object Attribute Files

The flow-through application programmer must know the object model and this information is provided to the programmer in the Object Attribute Files (OAFs). OAFs are derived from CPC metadata and provide online documentation of the object classes delivered with CPC, their attributes, and relationships, and how they are displayed by the GUI. OAFs are supplied as part of each CPC, Service Application, and Equipment Module release.

CPC Server

The CPC Server provides Change Management such that all Service and configuration changes are under Change Control. Service and configuration changes which are associated with the same change are applied in a single, network-wide transaction. Changes are applied to the equipment using the Network Interface defined by the Equipment Modules. All objects are stored within the CPC database.

CORBA and Script Language Commands

Table 1-1 lists the corresponding Script Language commands and CORBA interfaces.


Table 1-1: Script Language Commands and CORBA Interfaces
Area Script Language Command CORBA Interface

Session Management

AVtm

SessionFactory, Session

Transaction Management

AVcr

TransactionManager

Service Object Management

com.syndesis.activator.Activator

ServiceObjectManager

NNI Resiliency Management

com.syndesis.resiliency.
ServiceUtility

NNIResiliencyManager

UNI Resiliency Management

com.syndesis.resiliency.
ServiceUtility

UNIResiliencyManager

Configuration Object Management

nps

NetworkElementFactory,
NetworkElement,
PersistentFactory,
Persistent, Lister,
SiteItemLister,
UploadRequestFactory,
UploadRequest

Event Management

(no Script Language equivalent)

EventSourceFactory,
EventSource

Miscellaneous

(no Script Language equivalent)

MetaDataServer,
LogFileServer


hometocprevnextglossaryfeedbacksearchhelp
Posted: Thu Aug 3 16:17:20 PDT 2000
Copyright 1989-2000©Cisco Systems Inc.