Monday, November 30, 2009

What is JMX?




To make it short, JMX is a technology that lets you implement management interfaces for Java applications in other words you can control your application remotely. 


The JMX technology is native to the Java programming language. As a result, it offers natural, efficient, and lightweight management extensions to Java-based functions. It consists of a set of specifications and development tools for managing Java environments and developing state-of-the-art management solutions for applications and services. It provides Java developers with the means to instrument Java code, create smart Java agents, implement distributed management middleware and managers, and easily integrate these solutions into existing management and monitoring systems. The dynamics of the JMX technology architecture enables you to use it to monitor and manage resources as they are implemented and installed. It can also be used to monitor and manage the Java Virtual Machine (JVM machine).
Typical uses of the JMX technology include:
  • Consulting and changing application configuration
  • Collecting statistics about application behavior and making the statistics available
  • Notification of state changes and erroneous conditions
Benefits of JMX Technology
The JMX technology enables Java developers to encapsulate resources as Java objects and expose them as management resources in a distributed environment. The JMX specification lists the following benefits to using it to build a management infrastructure:
  • Manages Java applications and services without heavy investment: JMX architecture relies on a core managed object server that acts as a management agent and can run on most Java-enabled devices. Java applications can be managed with little impact on their design.

  • Provides a scalable management architecture: A JMX agent service is independent and can be plugged into the management agent. The component-based approach enables JMX solutions to scale from small footprint devices to large telecommunications switches.

  • Can leverage future management concepts: It can implement flexible and dynamic management solutions. It can leverage emerging technologies; for example JMX solutions can use lookup and discovery services such as Jini network technology,UPnP, and Service Location Protocol (SLP).

  • Focuses on management: While JMX technology provides a number of services designed to fit into a distributed environment, its APIs are focused on providing functionality for managing networks, systems, applications, and services.
What technologies JMX based upon?
JMX mainly based on JAVA IO, NETWORKING and RMI.
How does JMX works?
the core of JMX are:
  • MBean(Management Bean)which represents the resource to be managed remotly
  • Management Server which manages MBeans
  • Agent which manages Management Server
  • Adapters & connectors which allows communications to the Management Server like:
    • RMI Connector
    • HTML Adapters
    • Web Service Connector (Still in progress)
When we need JMX?
as said, JMX basically needed when managing application remotely as well JMX is very useful when the application needs integration points.

JMX technology provides a component-based architecture for developing solutions to monitor and manage your applications, services, and resources. JMX technology is the way to instrument any application or service that was built using Java technology. Hence, the Java platform now provides excellent facilities for creating and managing applications and services. JMX technology should be used for any application and service that benefit from being manageable, as this will increase their value to vendors and clients, by making them easier to install, configure, and maintain. The current version of JMX is 1.2, and the JMX 2.0 update was launched in September 2004. It will update the JMX and JMX Remote APIs to improve existing interfaces, mainly with respect to ease of use.

This article provided a fast track introduction and tutorial to the JMX architecture and its programming model. The sample code provided demonstrates how easy it is to get started developing management and monitoring solutions using JMX technology. The J2SE 5.0 implements the JMX specification—if you use J2SE 5.0, you are ready to start developing using JMX technology.

1 comment: