next up previous
Next: IV-A.2 Interface 2: Platform-based Up: IV-A Event Handling Previous: IV-A Event Handling

IV-A.1 Interface 1: Reception of CORBA Events by NetView

Since NetView is not able to receive CORBA events directly, they have to be converted into an appropriate format. For this purpose, we have developed an event gateway whose instances offer a TypedConsumer interface for CORBA management events. The event gateway receives events from suppliers (i.e., CORBA-compliant management agents) via an event channel and transforms them into SNMP traps; these can then be handled by NetView. The actual event-to-trap conversion is carried out by the two object classes that form the event gateway depicted in figure 3: The EMS_Event_Consumer object registers itself with the event channel in order to collect all kinds of events sent out by the suppliers. The transformation of the received event messages into SNMP traps and their forwarding to the management platform is done by calling the appropriate methods of the Event_Adapter objects. An enterprise-specific SNMP trap-PDU is then created, filled with the delivered parameters and finally sent to NetView. The mapping of specific kinds of typed events to enterprise-specific traps is similar to the approach described in [17]. These enterprise-specific traps must be defined on the side of the management platform either manually or by setting the trap daemon (trapd) configuration by corresponding API calls. The mapping rules between the names of the CORBA events and their enterprise-specific trap counterparts must also be defined. Such a mapping table can either be defined in a flat file or as a separated object or in the EMS_Event_Consumer object. We decided to implement a common, predefined set of asynchronous notifications and stored these in a file that was parsed by the EMS_Event_Consumer. The IDL definition of an Event_Adapter object class is given below:

interface Event_Adapter : SOMObject
{
 void create_pdu(in long tid, in string src);
 void add_arg_long(in long arg);
 void add_arg_string(in string arg);
 void send_pdu();
}

A trap-PDU is created and initialized by calling the method create_pdu; the purpose of this method is to determine the enterprise-specific trap-identifier (tid) and the IP-address of the source (src, determined by the host-parameter of the CORBA event) and to insert these parameters into the newly created trap-PDU. The two add_arg_() methods are used to write the arguments of the event as variable-bindings into the PDU. Finally, send_pdu() sends the PDU to the platform. This IDL interface can be considered as the ``wrapper''for the appropriate methods of the NetView SNMP-API [22]. As this API is implemented in C, the C language mapping was used to establish the binding between the IDL interface and the SNMP API. The CORBA development environment that we used requires that every object class must be derived from SOMobject, the base object class.


next up previous
Next: IV-A.2 Interface 2: Platform-based Up: IV-A Event Handling Previous: IV-A Event Handling
Copyright Munich Network Management Team