Next: IV-A.2 Interface 2: Platform-based
Up: IV-A Event Handling
Previous: IV-A Event Handling
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: IV-A.2 Interface 2: Platform-based
Up: IV-A Event Handling
Previous: IV-A Event Handling
Copyright Munich Network Management Team