Application developers typically consider management something they would rather leave to someone else. Focusing on the core application functions keeps them busy enough, without having to learn the fine points of management protocols and the complicated issues involved in working with remote management systems.
This would explain why good application management is hard to find, and why management is frequently an afterthought in most development projects. It's also the reason IT departments often find it difficult and costly to deploy and maintain many of their core enterprise applications.
Addressing deployment and management needs is becoming more important in determining the success of the applications in the enterprise. So, despite their aversion to it, developers are realizing that they must build better management capabilities into their applications. Java Management Extensions (JMX), an emerging management standard, is playing a key role in helping developers meet this challenge.
Many J2EE application server providers are using JMX for core control and management functions, and they have made this technology an essential building block of their products. But the most interesting aspect of JMX is that it enables powerful management capabilities for the applications themselves, rather than just the J2EE server or other middleware infrastructure. This ability to easily and directly manage the specific applications built on J2EE or other infrastructure is a major benefit of the new JMX technology.
JMX Technology
So what is JMX, and how does it really help address the application management problem? JMX is a Java standard that specifies a model and the interfaces for remote or local management of Java applications. An important goal of JMX is to allow a broad range of management systems and applications access to instrumentation and control of the managed applications.
JMX achieves this goal with a creative model that uses a common set of application management components and provides access via multiple protocols such as SNMP and HTTP. With JMX, applications can be instrumented once and then managed via multiple protocols accessing the same management instrumentation. It also allows for rapid manageability in ways that no longer require heavy lifting by application developers.
The architecture for JMX is illustrated in Figure 1 below. The goal of enabling remote management from different kinds of management applications and systems is solved with a layered approach: