JMX4ODP FAQ

  • What is JMX?

    JMX is the Java Management Extensions, which is a framework and API for creating standard management objects to control, monitor, and manage software systems. Since it is Java, it is usually used for Java based systems, but using network adaptors and JNI, it can be used to wrap and manage many different types of systems beyond just Java.


  • What is Open Distributed Processing?

    Open Distributed Processing (ODP) is a class of computer systems that:
    • function over a network
    • distribute function by component
    • distribute components over hardware
    • utilize open standards to connect their components


    Many systems could by classified as ODP systems; for example, a network of ATM's that allow customers to access and change their balance from many different locations; a n-tiered web service that utilizes web servers, servlet engines, EJB containers, and databases; the telephone network. ODP systems usually occur haphazardly as their engineers try to scale and cope with growing load. RM-ODP principles were developed as way to grow and create ODP systems more intelligently in order to avoid the catastrophic effects for poorly implemented ODP systems.


  • What Can JMX4ODP do?

    JMX4ODP fills in some of the blanks left by the current JMX specification. JMX4ODP has an user extensiable mechanism for MBean discovery across a network. This means that is you use JMX to manage your network application, you can use JMX4ODP to dicsover what is running where. JMX4ODP also has a mechanism for creating location transparent proxies. This means that an MBean on one computer can access a local or remote MBean without having to know the difference. This allows application deployment to be managed at runtime without having to change code or configuration.



  • Why JMX4ODP?

    The JMX4ODP project's focus is on using RM-ODP design methodologies to create JMX tools and frameworks suitable for use in Open Distributed Processing systems. Most of the time spent working on ODP systems is spent on creating the primary functionality, integrating legacy systems, or simply maintaining the system. Management functionality, while most people will agree is necessary, is usually built only as an afterthought.

    With short schedules and ambitious requirements, it is hard to set aside time to properly implement what is commonly seen as secondary functionality. Such ODP systems end up requiring an army of configuration files, a full time support staff, and constant supervision. These systems are manually intensive and many simple tasks are not automated. Usually, the first thing to be built after launch is some sort of monitoring system that will send an email to the lead programmer when the system stops responding.

    Now the system is dependent on a lead programmer who will be one of the few who knows how to fix all the little hiccups in services, know all the configuration files and settings, know where all start and stop scripts are for all the different components. The programmer will never be able to leave the project behind and move onto the next project. So, to build another system, you must hire another group of programmers. Each of these systems usually survives on the shoulders of a few dedicated programmers; until they get bored and burnt out and have to replaced with someone who will spend her first several months trying to understand what is going on, then too will get burnt out and leave.

    JMX4ODP is a framework that enables for standardized management systems to be quickly and easily deployed. Because the truth is that most projects don't have time or resources allocated for a custom management solution. So instead of lamenting a condition that will probably not change, JMX4ODP reduces the need to a custom management solution.

    Most ODP systems have similar management requirements. They need a standardized structure for containing and running all of their odd processes, they need a way for distributed components to discover and locate each other, they need way for components to throw and listen for events that can go across the whole system, they need a way to create accessible configurations for the whole system, they need a way for components to communicate with each other without having to now the particulars of where each other are at, and they need a way to monitor different attributes of the system.

    Ad hoc property files and status tools usually handle most of this, if it is handled at all. JMX4ODP, is a framework that handles these most common needs so that basic comprehensive management can be set up "out of the box." More complex monitoring and homeostatic control can be built quickly and easily using the same framework. Using a standardized framework such JMX means that many systems can quickly be brought under control. JMX4ODP means that these distributed systems can be unified and managed.