[Top] [Prev] [Next] [Bottom]


10 - Overview of Writing Agents

Site/SunNet/Domain Manager products are platforms upon which to develop management capabilities and explore issues surrounding the management of complex, heterogeneous environments. It also provides a set of tools for managing those networks.

Site/SunNet/Domain Manager includes a set of agents for managing Sun computers as well as standards-based mechanisms for managing products from other vendors. This set is not exhaustive. The Site/SunNet/Domain Manager agents are intended as examples of the kinds of management one can do as well as providing useful functionality in and of themselves.

Site/SunNet/Domain Manager is designed for extensibility and includes a number of mechanisms to support customization. This section focuses on the features for one of those areas--writing new agents. It is intended for Site/SunNet/Domain Manager users who have requirements beyond those served by the agents included in this release.


10.1 Manager-Agent Model

The Site/SunNet/Domain Manager design is based on the manager/agent model in the Open Systems Interconnection (OSI) management framework. The manager is a process started by the user (for example, the Console). The agent is a process that collects data from the managed object and reports it to the manager. Figure 10-1 shows the manager and agent relationship.

The Manager/Agent Services libraries provide the management infrastructure and handle the communication services. The agent and manager need not be concerned with the underlying networking involved in their communication. The agent process need be concerned only with collecting data from the managed object. The manager and agent processes make use of the Services through Application Programming Interfaces (APIs).

Figure 10-1 Manager Agent Model
Another aspect of the manager/agent model involves the definition of management data. Emerging open management standards (for example, OSI and the Simple Network Management Protocol (SNMP)) specify that agents abstract the properties (or attributes) of managed objects into data items (for example, "how busy a CPU is" becomes a value between 0 and 100). In Site/SunNet/Domain Manager, the attributes for a managed object are described in a portion of the Management Database (MDB)--the agent schema. The agent is able to respond to the manager's request, because both use the same data definitions for the managed object.

See the introductions to the Administration Guide for a discussion of the overall architecture and how the agent fits in.


10.2 Types of Agents

All Site/SunNet/Domain Manager agents communicate with the manager in the manner just described. Agent types differ in the relationship with their respective managed objects.

Agents can directly or indirectly access managed objects. Most of the agents provided with Site/SunNet/Domain Manager manage objects on the Sun workstations where they are installed (for example, the hostmem agent uses the same mechanism as netstat -m to get memory utilization data).

The second type of agent provides the ability to manage objects that are not directly accessible. Such agents are called proxy agents. Proxy agents run on Sun workstations, called proxy systems, and use protocol translation mechanisms to provide the necessary access to the managed objects. The proxy system may be the workstation on which the Console is running or another workstation on the network.

The ping proxy agent provides the ability to test the reachability of Internet Protocol (IP) devices, translating manager requests into Internet Control Message Protocol (ICMP) echo requests. Similarly, the hostperf proxy agent uses the rstat protocol to gather host statistics.

Proxy agents provide a mechanism allowing Site/SunNet/Domain Manager to extend into virtually any domain. The Simple Network Management Protocol (SNMP) proxy agent provides the ability to manage any device that supports SNMP, the widely accepted standard management protocol for the TCP/IP world.


10.3 Steps for Writing an Agent

From a high-level viewpoint, the steps involved in implementing an agent are as follows:

1. Access to the managed object must exist (that is, code must be written to get the required management data).

NOTE - The prefixes NETMGT , Netmgt, and netmgt are reserved for network management functions.

2. Assign a name to each discrete management data item--attribute. For example, if the input packet count is an attribute, ipkts would be a good name.


3. Determine the data type for each attribute. In the example, ipkts is an integer.


4. Use the attribute information to form the agent schema file, the portion of the Management Database specific to the particular agent.


5. Expand the original code written for accessing the managed object to incorporate the agent schema definitions.


6. Write the code that uses the Agent Services library. This includes code for agent initialization, request handling, and error reporting.


7. Incorporate any agent-specific error messages into the agent schema file.


8. Test and integrate the completed agent code and schema file.
The next three chapters provide detailed descriptions of the procedures for incorporating a new agent.

Step 1 is not addressed in this document. As exemplified by the set of Site/SunNet/Domain Manager agents, managed objects can be anything from a communications interface to a host CPU to an application program. It is impossible to generalize how to access a managed object. One hint: Investigate whether utilities already exist that provide access to useful information. Most of the agents in Site/SunNet/Domain Manager rely on such mechanisms.

Steps 2, 3, 4, and 7 are addressed in Chapter 11, "Writing an Agent Schema ."

Steps 5, 6, and 7 are discussed in Chapter 12, "Procedure for Writing an Agent ," and in Chapter 14, "Converting an Existing Application to an Agent ."

Step 8 is covered in Chapter 13, "Testing and Integration ."



[Top] [Prev] [Next] [Bottom]

Copyright 1996 Sun Microsystems, Inc., 2550 Garcia Ave., Mtn. View, CA 94043-1100 USA. All Rights Reserved