OpenJMX is an open source implementation of the Java Management Extension specification.
The Java Management Extension specification is currently in release 1.0, and the version 1.1 is, at the time of
this document, under review of the JCP, the Java Community Process
(see JSR 003).
At the same time, a new JSR has been issued to address client-side API to connect to a remote JMX Agent, JSR 160, that will move the JMX specification to release 1.5.
JMX defines the architecture, the patterns, the API and the services to build manageable Java applications.
By means of JMX, components of an application have a standard way of exposing some of their functionality for management. A JMX Agent enables manageability of these functionalities from local or remote, allowing a system administrator to manage the components of the application.
Managing a component means having the possibility to stop and restart it, to remove it from the application or to add it to an application, to change its configuration files, to ask it to do some operation (such as downloading information from an URL the system administrator passes in), and so on, depending on the management interface that this component expose.
Every JMX Agent comes with a set of predefined services. A service is a manageable component that can be
used by, embedded in or extended by an application.
Every JMX implementation can provide additional services, and normally each additional service can be used or deployed in a different JMX implementation without requiring any additional operation, thus achieving extreme portability of applications and application components.
OpenJMX's implementation of the JMX specification is stable and reliable, passing every night an extended suite of tests following the XP principles.
It provides some non-standard but useful extension that can be used at wish, or not used if maximum portability is a primary goal.
It provides also useful services and tools, and several examples to guide users in the use of JMX to build their applications. Some example of tools are: