J4ONet Technological Viewpoint Analysis



The technological viewpoint will be sparse for J4ONet, because much of the data in this viewpoint is deployment-centric. J4ONet is a framework for implementing a distributed JMX solution, thus deployment is not determined in this phase of development. However, the shape and design of J4ONet make certain directions more obvious or likely than others.

Java:
This project started as an itch to scratch, so many of the implementation decisions were made with a specific goal of managing a J2EE network application. So it was only natural to also build the management component in Java as well. Java does offer some advatages. It already has a management framework built into the language, it is platform independent (or nearly), and it is native to the network.

Java does has some traditional or some assumed disadvantages. Java is often thought to be slower than languages like C/C++. Most of this slow-down is a result of the load time for the Java Virtual Machine. On server side applications, where the application is rarely re-started, this is less of an issue. Java also does not allow you to access the lower level calls of an operating systems. Many of these issues can be over come by using JNI or accessing a specialized service. JMX is a wrapper based architecture, so this approach for accessing external functions is typical of JMX managed systems.

Sun's JMX 1.1 RI:
In researching a management solution for a Java based application, I always found references to JMX, but not a lot of work. JMX's current spec implements a single JMX agent controlling multiple MBeans across a single JVM. Sun has released a JMX 1.1 Reference Implementation which has added features to allow JMX agents to communicate via RMI.

The Sun JMX 1.1 RI handles making connections across JMX agents, monitoring the connections, remote calls, remote events, protocol adaptors and connectors. All of these things are needed to create a distributed model for JMX. There are several JMX agents available including the Tivoli agent from IMB and several from Sourceforge. But, the SUN JMX 1.1 RI is what JBoss uses. Also, the JCP is working on JRS 160: Java Management Extensions (JMX) 1.5 Specification which will probably look a lot like the Sun JMX 1.1 RI. So instead of reinventing the wheel, and in interest of staying close to up and coming specifications, this project will use the Sun JMX 1.1 RI.

(UDP/TCP)/IP:
The Sun JMX 1.1 RI uses RMI as the basis for communication, which is an TCP/IP based protocol. Java network support is mostly IP based. Network extensions made by J4ONet will continue in this direction.