Preface

As technology evolves, it enables us to write applications that are increasingly distributed and complex. Today’s network technologies allow us to process units of work on physically separate machines scattered throughout the world. As the scale and complexity of today’s newest applications increases, so too does the challenge of managing them. After all, it is not really beneficial to distribute an application across many different machines if the answer to a question as simple as “Is the application still running?” cannot easily be determined.

This book is about Java Management Extensions, or JMX, which is the Java standard for management of application resources. An application resource can be any piece of hardware or software that you wish to monitor and control, such as a printer, router, database connection, or queue. At the heart of JMX is the concept of a managed bean, or MBean, which is a resource that has been instrumented via JMX. The MBean gets its name from the fact that it resembles a JavaBean, in that its state is entirely maintained through the use of get and set methods for its attributes. A notification model similar to the Java notification model is also available for MBeans that need to emit notifications.

JMX provides an architecture, a set of design patterns, and a set of application programming interfaces (APIs) that allow you to instrument your application and system resources so that they can be managed. JMX was designed to be able to integrate with existing management technologies, such as the Simple Network Management Protocol (SNMP) and Web-Based Enterprise Management (WBEM). This book covers every facet of JMX as it is currently specified, from instrumentation to writing agents to using the JMX agent services. Some parts of JMX are still unspecified (most notably the JMX distributed services), so it can’t cover everything; however, it is my intention that this book be the most complete reference on JMX that is available today.

Here is a summary of what this book covers:

  • JMX instrumentation: standard, dynamic, model, and open MBeans

  • JMX notifications: how to broadcast, filter, and listen for them

  • The MBean server: a registry of MBeans and a communication broker between management applications and registered MBeans

  • JMX agent services: dynamic loading, monitoring, timer, and relation services, available through the JMX agent

Audience

This is primarily a how-to book, intended for software developers who face the challenge of building management capability through JMX technology into their Java applications and want to know exactly how to go about it. However, this book can also provide software development managers with the necessary information about JMX to make decisions regarding whether or not to implement this technology in their development projects. (I assume that you are already convinced of the need to build management capabilities into your application.)

Chapter 1 looks at JMX at a high level. The JMX architecture is given the most treatment here, as it is the core of JMX. The following chapters are very meaty and are intended for developers who want to know how to use all of the aspects of JMX that are currently specified.

Get Java Management Extensions now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.