Programmed extensions

Although IBM Director is designed to meet the systems management needs of most small to medium companies, your organization might require a customized solution that is not provided by out-of-the-box IBM Director. The IBM Director SDK is designed to allow you to customize and enhance IBM Director to meet your needs.

Subtopics

How IBM Director works

IBM Director is a server-centric systems and application management product that was designed with extensibility in mind. In order to better understand how you can take advantage of this extensibility, let us quickly review the makeup of IBM Director. At a high level, the IBM Director product is composed of three main components:

IBM Director Server
The IBM Director Server is the heart of the IBM Director product. Running on a Windows NT 4.0 system, this is where all of the management application data, the server engine, and the management application logic reside. It is a Java and native C++ application. IBM Director provides the basic functionality such as discovery of the network components, persistent store of inventory data, Structured Query Language (SQL) database support, presence checking, security and authentication, IBM Director console support, and support for each of the administrative tasks.
IBM Director Console
The IBM Director Console is the graphical user interface (GUI) from which administrative tasks are performed. The IBM Director administrator uses this as the primary interface to various IBM Director tasks.
IBM Director Agent
The IBM Director Server manages systems and devices in your network by communicating with the IBM Director Agent or other agents installed on these managed systems. The agent provides all of the code and interfaces necessary for the system to be managed by IBM Director.

IBM Director recognizes two types of managed systems:

Native managed systems
These are managed systems that have the IBM Director Agent installed, which acts as a passive, nonintrusive application.
SNMP devices
These are network devices, for example, printers and PCs, that have a Simple Network Management Protocol (SNMP) agent installed or embedded.

Developing IBM Director extensions

All three IBM Director components support extensions. Most of this extensibility is possible because you can create new Java subclasses and classes implementing standard interfaces, and load these classes by name. Using these standard, documented base classes and interfaces, you can create new implementations, register the implementations with Director, and load the implementations dynamically. If you are wondering how IBM Director recognizes these extensions and subsequently uses them, you should review Understanding IBM Director extensions to gain an insight into the initialization steps of the IBM Director Server.

To create your own IBM Director extensions, you need to know what areas can be extended. The following subtopics describe the extensibility points.

Creating new IBM Director tasks

The IBM Director administrator interacts with the product through the IBM Director Management Console (Management Console). The Management Console enables you to perform all administrative tasks and define how your organization's network resources are grouped together, presented, and managed. Let's first address the tasks that the administrator can work with. IBM Director ships with a multitude of tasks that the administrator can use to manage his systems. File transfer, software distribution, and event management are examples of tasks provided by IBM Director. All IBM Director tasks have a server portion that coordinates the execution of a task, a console portion that provides the interface to configure and start a task, and an agent portion that performs a task on the managed system. Although IBM Director includes a comprehensive set of management tasks, your organization might want to define a new management task. The IBM Director SDK enables you to define new tasks, including server tasks, new client tasks, and new user interfaces (GUIs) that can be started from the Management Console.

To be completely portable, which is a design objective of the Management Console, your task extensions must be implemented in 100% Java. Creating console task extensions provides an overview of the classes and methods you need to understand in order to implement your own console task extensions. your console task extensions must conform to all Accessibility requirements. IBM Director Server task extensions can be implemented as either Java or native code. Client task extensions are typically native code. Creating IBM Director tasks describes how to build your own management tasks and provides steps for updating both the IBM Director Server and console. Creating and registering an agent service describes the basic steps used to create, register and distribute an IBM Director agent extension. Note that new tasks can be customized to open within the Tasks pane (rightmost pane by default) of the management console, and/or within the toolbar and menubar of the Management Console.

Extending IBM Director tasks

Perhaps your organization likes the existing tasks of IBM Director, but would like to extend their capabilities. Both the resource monitoring task and the event management task support specific extensions to allow you to expand their capability. resource monitoring enables you to view information on the attributes of a managed system, such as the central processing unit (CPU), disk, memory, and network protocols. This information is collected and monitored, with additional capabilities to allow you to set thresholds, record monitor data, generate graphs, and generate events when thresholds are exceeded. IBM Director allows you to extend this capability to include additional attributes to be monitored, recorded, or set thresholds against. Creating Resource Monitor Agent extensions is your guide to extending monitors. Event management enables you to view a log of events that have occurred for a managed system or group of systems and to create event action plans to associate an event with a required action, such as sending an e-mail, starting a program, or logging to a file. Although the event management task provides numerous action templates that enable you to define specific actions, you can customize IBM Director to include your own actions to associate with an event as part of an action plan. Creating IBM Director event actions will step you through the process of understanding how to create new actions. Creating and registering IBM Director snap ins gives the details of using the snap in interface.

Extending IBM Director groups and associations

The IBM Director Server allows you to manage your network resources. To do this, it keeps track of all of your network resources and other Director objects in a repository called persistent storage. Your network resources, such as end-user PCs and printers, are represented in the Management Console as managed systems. Managed systems are the target objects of the tasks described previously. IBM Director presents groups of managed systems in the Groups pane (leftmost pane by default). Each group represents a logical set of managed systems. Tasks applied to a group will cause that task to be applied against each member of that group.

When you first log into the IBM Director Server through the IBM Director Management Console, a default set of groups is created. Although the administrator can create new groups using the Management Console, some organizations might want to define their own set of default groups so that they are displayed when the IBM Director Server is initialized. Defining default dynamic filters will get you started in defining new groups.

Selecting a group icon causes the members of that group to open in the Group Contents pane (middle pane by default). By applying an association from the Associations menu bar, the selected managed systems can be visually organized according to their role in the selected relationship. By default, IBM Director uses no particular association. Other associations are available, based on the configuration of Director. Your organization might want to define an association to customize your organization of managed systems. If so, Creating IBM Director groups and associations will get you started in defining group associations.

Extending IBM Director's database

Another key feature in IBM Director is the capability to collect and view inventory information for managed systems. All of this information is stored away in a database on the IBM Director Server. The inventory task presents the information retrieved from the database on managed systems. IBM Director enables you to create your own database queries; see Creating database queries for information.

You can also extend the existing IBM Director database tables or create your own database tables. See Updating IBM Director database tables and Creating database tables for more information on these topics.

Extending IBM Director's inventory service

Although it is possible for an agent to produce its own inventory service, you might find it easier to extend the existing inventory collector mechanism. This also allows for the automatic collection of inventory data, because IBM Director's inventory service is invoked automatically at the time of agent discovery and at certain other time intervals. IBM Director's inventory service is a control mechanism for the various collectors that have registered with the service. See Creating an inventory collector for more information.

Extending IBM Director Agents

You can add your own services (subagents) and resource monitors to the IBM Director agent to interact with IBM Director Server tasks. Creating and registering an agent service provides an overview of extending the agent. Extending the Java-based agent provides an overview of extending the Java-based agent.

Communicating among IBM Director components

For Director's components (server, console, and agents) to work together, they must communicate with each other. IBM Director relies on a multiprotocol transport layer that enables the server engine to communicate with the console and IBM Director agents. Extensions that you create might also have to communicate with IBM Director components, or with each other. See Using IBM Director Interprocess Communication to understand how to use IBM Director's communication system.

Writing customized extensions to the user interface

IBM Director tasks are designed to be flexible and to display a wide variety of information. But the information might not always be displayed or accessed in a way that is best suited for the task. IBM Director provides a snap in interface which allows you to write customized extensions to the user interface that plug directly into the existing GUI. These snap in extensions are installed on the IBM Director Server system and are used automatically by all of the IBM Director consoles connected to the server. See Creating and registering IBM Director snap ins to understand how to use Director's snap in interface. It is important that style and accessibility guidelines are closely followed when customizing the user interface.

Debugging and deploying IBM Director extensions

When you complete the coding of your extension, you need to add it to Director. See Deploying programmed extensions for assistance on how to integrate your code into Director.

With your new extension integrated into Director, you need to test, debug, and update the extension. Troubleshooting programmed extensions provides an overview of logging and describes how to restart the server, reinitialize the persistent data and database information, and replace your extension with a new version. In addition, other tips assist you in enhancing the smart choice in systems management solutions.