JMX (Java Management Extensions) is the standard management solution in the Java world. Since JDK 1.5 it is available in every Java Virtual Machine and especially JEE application servers use JMX for their management business.
I love JMX. It is a well crafted specification, created in times where other concepts like EJBs failed spectacularly. Even more than ten years after its incubation it is still the one-and-only when it comes to management in the Java world. Especially the various levels of sophistications for implementing MBeans, starting with dead simple Standard MBeans and ending in very flexible Open MBeans and MXBeans, are impressive.
However, some of the advanced JMX concepts didn't really appeal to the public and are now effectively obsolete. Add-on standards like JSR-77 didn't received the adoption level they deserved. And then there is JSR-160, JMX remoting. This specificatiion is designed for ease of usage and has the ambition to transparently hide the technical details behind the remote communication so that is makes (nearly) no difference, whether MBeans are invoked locally or remotely. Unfortunately, the underlying transport protocol (RMI) and programing model is very Java centric and is not usable outside the Java world.
This is where Jolokia steps in. It is an agent based approach, living side by side with JSR-160, but uses the much more open HTTP for its transport business where the data payload is serialized in JSON. This opens a whole new world for different, non-Java clients. Beside this protocol switch, Jolokia provides new features for JMX remoting, which are not available in JSR-160 connectors: Bulk requests allow for multiple JMX operations with a single remote server roundtrip. A fine grained security mechanism can restrict the JMX access on specific JMX operations. Other features like the JSR-160 proxy mode or history tracking are specific to Jolokia, too.
This reference manual explains the details of Jolokia. After an overview of Jolokia's architecture in Chapter 2, Architecture, installation and configuration of the various Jolokia agents are described in Chapter 3, Agents. Jolokia's security policy mechanism (Chapter 4, Security) and proxy mode (Chapter 5, Proxy Mode ) are covered in the following chapters. For implementors of Jolokia client bindings the protocol definition is probably the most interesting part (Chapter 6, Jolokia Protocol). Jolokia itself comes with the preregistered MBeans listed in Chapter 7, Jolokia MBeans. The available client bindings are described in Chapter 8, Clients.