12.6.3 Runtime Administration Tool



Introduction

 

Runtime Administration may be required for the configuration files that are already present, or any newly added configuration files. You may require to add some configurations specific to the deployed environment and want to modify the configuration file at runtime. Runtime Administration APIs are available for the purpose of allowing user-specific files to be managed. The following section describes how the runtime administration works and the APIs that can be used for customizing runtime administration.

 

How Runtime Administration Works?

This ensures that for any Distributed Mediation Server, the configuration files are always up-to-date in the Central server. This helps in faster access to the configuration data and also in re-configuring the Distributed Mediation Server which is temporarily down, so that the next time it reconnects, the configuration changes take effect.

 

Adding User-Specific Runtime Administration

 

When runtime administration needs to be performed for a user-specific file, implementations need to be provided at the Client, Central Server and the Distributed Mediation Server.

Details of implementations are provided as follows:

 

Implementation at Client

 

If runtime configuration support is required for a user-specific file the following implementations need to be provided at the Client:

  1. Runtime Administration Data representation ->Takes care of representing the configuration data.

  2. Runtime Administration Data Model -> Takes care of how the Distributed Mediation Server is represented in the Client UI.

  3. User-specific Interface -> Takes care of UI specifications for the data that need to be modified at runtime.

Details of DMS List and Data Display Area

  1. The Distributed Mediation Server list and the data display area are contained in a JPanel and this container panel implements the ProbePanelListener interface.

  2. This implementation registers to receive notifications for runtime changes in the Client tree node.

  3. Each Client tree node for which runtime configuration is enabled is identified by a unique identifier called Module ID.

  4. This id is used during the notification process and for user-specific service, the Module ID needs to be set to 1000 or above.

  5. When a node corresponding to a service like discovery or performance is selected, the names of the Distributed Mediation Servers that have registered to receive notifications for that service are loaded in the Distributed Mediation Server list.

  6. The data corresponding to the file is represented as an implementation of RTAData interface.

  7. When a node is selected from this list, the corresponding data is fetched from memory and loaded in the data display area.

  8. The implementation that performs the fetching and manipulation should be either Single Object Model or Multi Object Model which extend AbstractRTADataModel.

  9. At startup, the RunTimeConfig.xml file present in the conf directory is read to initialize the Client UI.

  10. This file contains the entries for the modules and the respective module implementations for runtime administration.

  11. The user-specific interface implementation for the module needs to be mentioned in this configuration file.

Runtime Administration Data representation

 

The data corresponding to the options present in the middle tree should be of the type RTAData. The RTAData interface provides methods to manipulate the data during navigation of nodes in the middle tree. The methods of the interface are explained below:

public String getKey();

public void setKey(String key);

public Object clone();

public boolean equals(Object obj);

public void validate();

 

Runtime Administration Data Models

 

Data Models

 

The Distributed Mediation Server list is based on a Data Model which can be based on either Single Object Model  or Multi Object Model. The Single Object Model is used when the configuration data do not contain any sub-nodes in the XML form and can be associated directly to the Distributed Mediation Server name for example, data associated with network discovery. The Multi Object Model is used when the configuration values need to be listed as sub-nodes under the Distributed Mediation Server node, for example, data associated with polling, event parsers and trap parsers. The left tree is an example of Single Object Model and the right tree is an example of Multi Object Model.

 

Implementation

 

Extend the class DefaultMultiObjectModel or DefaultSingleObjectModel to create the data model to be displayed in the Client UI. If the configuration values are directly associated with the Distributed Mediation Server name, Single Object Model can be used and if the module contains more than one category of information that needs a separate representation in the Client UI, the Multi Object Model needs to be used. The methods in the abstract class are described below :

public abstract boolean loadData(Hashtable xmlHash);

public abstract Hashtable constructXML();

public abstract Properties getConfProperties();

public abstract Object getDefaultUserObject();

 

User-Specific Interface

The methods in the ProbePanelListener interface that need to be implemented are described below:

public void setUserObject(Object uo) {}

public Object getUserObject(){}

public void updateUserObject(Object uo);

public int getModuleID();

public Vector getRequiredXMLFileNames();

public String getModuleDisplayName();

Implementation at Central Server and Distributed Mediation Server

 

On startup, the Central Server reads the ConfUpdnListeners.xml present in the <Central Home>/conf directory to get the implementation for runtime configuration changes. This implementation should implement the ConfUpdnListener interface and takes care of registering to receive notifications for the required services. The fireConfUpdate() method performs the required update to the configuration file when modified data is received from the framework.

<CONF_UPDATION_LISTENERS>

    <LISTENER key="FAULT_PARSERS" className="com.adventnet.nms.extranet.remote.rta.server.noc.NOCRuntimeParserUpdater" />

  </CONF_UPDATION_LISTENERS>

public void fireConfUpdate(Properties confProps, XMLNode xmlElem);

 

Implementation at Distributed Mediation Server

 

On startup, the Distributed Mediation Server reads the ConfUpdnListeners.xml present in the <DMS Home>/conf directory to get the implementation for runtime configuration changes. This implementation should implement the ConfUpdnListener interface and takes care of registering to receive notifications for the required services. The fireConfUpdate() method performs the required update to the configuration file when modified data is received from the framework and also performs database updation if required.

<CONF_UPDATION_LISTENERS>

  <LISTENER key="FAULT_PARSERS" className="com.adventnet.nms.extranet.remote.rta.server.probe.RuntimeParserUpdater" />

  </CONF_UPDATION_LISTENERS>

public void fireConfUpdate(Properties confProps, XMLNode xmlElem);

 



Copyright © 1996-2004, AdventNet Inc. All Rights Reserved.