We are moving towards a world in which you can expect instant access to online shopping from a phone; your kids can always reach you with one number that bounces from your phone, to your pager, mail or car; and you pay one low price each month to your local telco provider that brings you combined fax, Internet, local, long distance and cellular services.
To help providers keep up with these demands, Sun recently announced the Service-Driven Network™, a model that helps telecommunications providers rapidly develop and deploy innovative network services, and manage the networks over which they deliver these services.
A key component of the Service-Driven Network is the Java Dynamic Management Kit, a combination of "push" and Java network management technologies for building self-managed networks. It is the first Java-based toolkit for building and distributing network management intelligence into system, application and network devices.
The Java Dynamic Management Kit is a Java agent toolkit for creating JavaBeans which allows rapid development of autonomous Java agents and will help telecommunications providers develop smart, autonomous Java agents that can be distributed throughout the network to act as invisible "assistants," alerting network managers of potential problems or fixing them on their own.
At the Heart of it All: JavaBeans for Management
The Java Dynamic Management Kit provides a library of core management services, implemented as JavaBeans components, called JavaBeans for Management. Developers can create their own JavaBeans for Management, which can be dynamically distributed to the network. They can be slotted in and out of an agent, allowing one to add, modify or cancel services, just as hardware elements can be slotted in and out of a rack.
A Java Dynamic Management agent consists of
these components, all running within a Java Virtual Machine (JVM):
JavaBeans for Management, Core Management Framework (CMF),
Adaptors for different protocols.
Each JavaBean for Management has a set of properties, can perform a set of actions and can emit a set of notifications, all defined through standard JavaBeans design patterns. For example, a read-write property is defined for property "Foo" if the JavaBean for Management contains two methods with the following signatures:
public PropertyType getFoo();
public void setFoo(PropertyType value);
A JavaBean for Management is manageable as soon as it is registered with the agent's Core Management Framework (CMF). JavaBeans for Management can be registered and deleted from the CMF dynamically, which allows transient services to be implemented that can be pushed into the agent and then disappear once they have finished.
The representation of JavaBeans for Management as JavaBeans components enables the developer to access them using a JavaBeans application builder, such as Java Workshop or Java Studio. JavaBeans in an existing Java application can be made manageable simply by registering them with the CMF, with no change to the existing application. Note that the Java Dynamic Management Kit does not force a Java class inheritance scheme on the developer; the developers are free to develop JavaBeans as they like.
A number of core JavaBeans for Management which implement generic management services are provided in the Java Dynamic Management Kit. Only the core JavaBeans for Management needed by an agent must be registered with the CMF. The generic services provided include an object repository, basic notifications, filtering, monitoring, dynamic class loading, dynamic native library loading, relationships and MLET.
The MLET service provides a way for an agent to find JavaBeans for Management on the network, pull them into the agent and start executing them.
Core Management Framework
The Core Management Framework (CMF) controls the JavaBeans for Management in an agent. Whenever an agent is requested to perform a management operation, the CMF calls the appropriate JavaBean for Management to perform the requested operation. A JavaBean for Management can query the CMF to obtain information on other JavaBeans for Management present in the CMF.
The JavaBeans for Management and the CMF are protocol-independent. This property frees the developer from having to work with communication protocols. For an agent to be manageable, it must include at least one adaptor which provides access to the JavaBeans for Management within the agent through a specific protocol. Adaptors are provided for HTML, HTTP, RMI and SNMP. An agent can include more than one adaptor, allowing a single agent to communicate via different protocols to different management applications.
The HTML adaptor includes a small "Web server" which provides an HTML view of the JavaBeans for Management within an agent. This allows the agent to be managed directly by a standard Web browser from which the user can see the JavaBeans for Management within an agent and perform operations on them. HTML pages are generated dynamically to show the requested M-Bean information. So, with no development required, the user has a manager application which can query their Java Dynamic Management Kit agent.
Service Creation Tools
The Java Dynamic Management Kit also includes some development tools. Mogen generates client stubs for JavaBeans for Management. These stubs are called C-Beans, or "Client Beans". C-Beans help developers build Java management applications that can talk to an agent through any protocol (RMI and HTTP are currently supported). The application developer manipulates the C-Beans as if they were local JavaBeans and the Java Dynamic Management Kit assures the communication with the agent.
An SNMP MIB compiler is provided. This takes an SNMP MIB as input and generates JavaBeans for Management that can be plugged into an agent. In essence, the Java Dynamic Management Kit provides a complete toolkit for the developer who wants to develop SNMP agents in Java. The developer can also put the HTML adaptor into their SNMP agent and browse the agent with a Web browser.
A Java Dynamic Management Kit agent can be thought of as a container to execute mobile code. If this container is distributed among the devices, systems and applications in a network, one can dynamically push intelligent services throughout the network and the Service-Driven Network is enabled.
Java Dynamic Management Kit agent's home page
seen through a Web browser
For more information on the Java Dynamic Management Kit, see
About the Author
Dave Hendricks is the engineering manager of the TMN and Java Management Products group at Sun Microsystems' development site in Grenoble, France. Dave has been with Sun for 11 years and was one of the founding members of the Grenoble development site when it was created in 1990. Dave joined Sun after receiving BS and MS degrees in Computer Science from Stanford. At Sun, he initially worked on source code management tools before moving to Grenoble and working on X.25 and then network management.