The JMX architecture standardizes the elements of a management system. All three levels, instrumentation, agent, and manager, are isolated and their interaction is defined through the API. This design makes it possible to have modular development, in which each level is designed and implemented independently. Also, component reuse is possible. Services developed for one JMX agent will work in all JMX agents.
At the instrumentation level:
MBeans need only to define their management interface and map the variables and methods of their resource to the attributes and operations of the interface.
MBeans can be instantiated into any agent that is compliant with the JMX specification.
MBeans do not need to know anything about communication with the outside world.
At the agent level:
The MBean server handles the task of registering MBeans and transmitting management requests to the designated MBean.
Any MBean compliant with the JMX specification can be registered and be exposed for management.
Any of the provided communication components can be used to respond to remote requests, and you can develop new adaptors and new connectors to respond to proprietary requests.
The library of agent services provides management intelligence in the agent, such as autonomous operation in the case of a network failure.
At the manager level:
All management requests on an MBean server are available remotely through a connector.
Notification forwarding is already implemented for you.
Proxies provide an abstraction of the communication layer and simplify the design of the management application.
Basic management tasks are implemented in the agent by the agent services.
At all three levels, the modularity also means the simple designs can be implemented rapidly, and then additional functionality can be added as needed. You can have a prototype running after your first day of development, because of the programming examples provided in the product.