Basic Concepts
Basic Concepts
Basic Concepts
This section provides an overview of the concepts in Cisco EMF which should be understood prior to
starting development of any Cisco EMF-based integration solution using the CORBA Gateway. These
concepts result in benefits including:
• A future-proofed, flexible software architecture which can be extended to meet your application
requirements
• A protocol independent object model which forms the foundations of Cisco EMF applications
• A mechanism for ensuring that all applications, no matter who develops them, inter-operate
seamlessly with each other and the standard Cisco EMF applications. This is particularly suitable
for the multi-vendor, multi- technology environment which exists in carriers today.
We assume that you are a software development professional with both object oriented software
technology expertise and network management skills. In particular, we assume you are familiar with
CORBA, and the basic concepts of network management systems integration.
Developing CORBA applications on Cisco EMF will therefore involve a number of techniques and
concepts which you will be familiar with, and a number which are unique to Cisco EMF.
This chapter includes the following information:
• CORBA, page 2-1
• Cisco EMF CORBA Gateway Design, page 2-3
• The Participation Framework, page 2-4
• DataAbstractor, page 2-5
• Object Group Server, page 2-5
• Event Channels, page 2-5
• ActionLauncher, page 2-6
CORBA
CORBA (Common Object Request Broker Architecture) is a distributed object architecture that allows
objects to interoperate across networks regardless of the language in which they were written or the
platform on which they are deployed. Thus CORBA allows developers to write applications that are
more flexible and future-proof, to wrap legacy systems, and to code in the language they know best.
Cisco Element Management Framework Version 3.2 Service Pack 7 CORBA Gateway Developer Guide
OL-4684-01 2-1
Chapter 2 Basic Concepts
CORBA
The Object Request Broker (ORB) is the middleware that handles the communication details between
the objects. The CORBA 2.0 standard, adopted in December of 1994, defines true interoperability by
specifying how ORBs from different vendors can communicate using a common protocol. CORBA is
increasingly being used in the telecommunications field to provide connectivity between different
applications and protocols.
Each CORBA object is basically broken into two pieces, a client-side proxy and a server-side
implementation. The server side implementation contains the application logic. The client-side proxy is
a proxy for the server-side object, and forwards method calls to the server-side implementation. On
instantiation, the client-side proxy binds to the server-side implementation to tie together the two pieces.
For further information on CORBA and development of CORBA applications, please refer to Other
Resources, page A-1.
The ORB chosen for the development of the Cisco EMF CORBA servers is Orbix from Iona
Technologies.
Orbix is CORBA 2.0 compliant, and so the CORBA Gateway is interoperable with CORBA 2.0
compliant ORBs from other vendors. Developers of client applications may choose to use Orbix,
OrbixWeb or any other compliant ORB. The examples in this manual use Orbix as the client-side ORB,
but instructions for connecting clients using a different ORB will be given in the Tutorial section.
Cisco Element Management Framework Version 3.2 Service Pack 7 CORBA Gateway Developer Guide
2-2 OL-4684-01
Chapter 2 Basic Concepts
Cisco EMF CORBA Gateway Design
Object Identifiers
In Cisco EMF, it is not just managed network objects that are objects. Every attribute, object class, event,
containment tree etc. is an object, identified by a unique, generic, and opaque Object Identifier, or
ObjectID. The type of the object (class, attribute, etc.) is encoded within the ObjectID. The ObjectID is
modeled in IDL by the ATL_OBJ::ObjectID structure.
The ObjectIDs for known named objects can be retrieved using the AtlNaming interface, see Chapter 6,
“Naming and Identifying Cisco EMF Objects”. Typically, for efficiency, a client application will retrieve
the ObjectIDs for the containment trees, object classes and attribute names it requires at the start of the
program and store them for later use.
Cisco Element Management Framework Version 3.2 Service Pack 7 CORBA Gateway Developer Guide
OL-4684-01 2-3
Chapter 2 Basic Concepts
The Participation Framework
Asynchronous Calls
Cisco EMF uses asynchronous communications almost exclusively because synchronous calls which
initiate time-consuming processing on the servers can potentially block for long periods of time. By
avoiding these processing bottlenecks, this asynchronous design has proved quicker and more robust
than synchronous versions. The CORBA Gateway API also heavily relies on asynchronous calls to
reflect this underlying design philosophy.
For each interface which uses asynchronous calls, there is a corresponding callback interface, and for
each asynchronous request call, there is a callback method in the callback interface. This callback
method is used to reply to the user, returning the result of the request. The object reference for the object
which instantiates the callback interface is passed as a parameter to the request call, along with a
userdata parameter, which is returned to the user with the reply callback, and can be used to correlate
the requests with their replies.
Cisco Element Management Framework Version 3.2 Service Pack 7 CORBA Gateway Developer Guide
2-4 OL-4684-01
Chapter 2 Basic Concepts
DataAbstractor
context to that participant, which can then carry out its processing or monitoring (including modifying
the contents of the context). When ready, it passes the context back to the coordinator. The coordinator
then passes the modified context on to the next level and registered participants in the cycle.
If the operation encounters an error condition and fails, it will start to revisit the earlier levels in reverse
order, giving the participants the opportunity to undo their processing.
Upon reaching the final level, the initiator is informed of the successful completion of the operation, and
is passed the final contents of the context.
DataAbstractor
The data abstractor is used whenever you need to traverse a containment view. It is also used for getting
and setting attributes. Hence the primary role of the data abstractor is for provisioning and inventory
management. In the future the DataAbstractor is also going to be used for fault management - raising,
acknowledging and clearing faults, and performance management - to get historical performance data.
Event Channels
The Event Channel Service can be used for fault management to notify an EMS of a new alarm, or the
change of status of an existing alarm. It can also be used in provisioning and inventory applications to
notify the higher level system of new network elements or insertion or removal of modules in a NE.
The Cisco EMF CORBA Gateway uses the standard OMG Notification Service to export internal events
to interested CORBA-based clients. The clients register with notification channels, expressing their
interest in particular event types available on the channels and optionally specifying a filter to be used.
The events exported allow clients to keep track of changes happening within Cisco EMF, for example:
• Object Creation /Deletion
• Metadata changes
• Alarms raise/cleared
• Attribute changes
Cisco Element Management Framework Version 3.2 Service Pack 7 CORBA Gateway Developer Guide
OL-4684-01 2-5
Chapter 2 Basic Concepts
ActionLauncher
ActionLauncher
In some Element Managers provisioning of services to subscribers is done using user actions. The
ActionLauncher allows CORBA clients to invoke actions in Cisco EMF. Actions are high-level
commands which perform complex tasks on an element manager. These are the tasks which are typically
launched by the end user clicking a button on the EMS GUI. For example -
• Connecting a new subscriber to a service
• Initiate a software download
• Initiate a sub-rack discovery
• Call APIs on an EMS
• Set/Move the state of object in an EMS
Cisco Element Management Framework Version 3.2 Service Pack 7 CORBA Gateway Developer Guide
2-6 OL-4684-01