Java Management Extensions
Encyclopedia
Java Management Extensions (JMX) is a Java technology that supplies tools for managing and monitoring application
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...

s, system objects, devices (e. g. printers
Computer printer
In computing, a printer is a peripheral which produces a text or graphics of documents stored in electronic form, usually on physical print media such as paper or transparencies. Many printers are primarily used as local peripherals, and are attached by a printer cable or, in most new printers, a...

) and service oriented networks. Those resources are represented by objects called MBeans (for Managed Bean). In the API, class
Class (computer science)
In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...

es can be dynamically loaded and instantiated.
Managing and monitoring applications can be designed and developed by Java Dynamic Management Kit
Java Dynamic Management Kit
The Java Dynamic Management Kit or JDMK is a Java technology that provides a Java API and a collection of software tools for developing and designing JMX based applications...

.

JMX 1.0, 1.1 and 1.2 were defined by JSR 003 of the Java Community Process
Java Community Process
The Java Community Process or JCP, established in 1998, is a formalized process that allows interested parties to get involved in the definition of future versions and features of the Java platform....

. , JMX 2.0 is being developed under JSR 255. The JMX Remote API 1.0 for remote management and monitoring is specified by JSR 160. An extension of the JMX Remote API for Web Services is being developed under JSR 262.

Adopted early on by the J2EE
Java Platform, Enterprise Edition
Java Platform, Enterprise Edition or Java EE is widely used platform for server programming in the Java programming language. The Java platform differs from the Java Standard Edition Platform in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier...

 community, JMX has been a part of J2SE
Java Platform, Standard Edition
Java Platform, Standard Edition or Java SE is a widely used platform for programming in the Java language. It is the Java Platform used to deploy portable applications for general use...

 since version 5.0. It is a trademark of Oracle Corporation
Oracle Corporation
Oracle Corporation is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...

.

Architecture

JMX is based on a 3-level architecture:
  • The Probe level contains the probes (called MBeans) instrumenting the resources. Also called the Instrumentation level.
  • The Agent level, or MBeanServer, is the core of JMX. It is an intermediary between the MBean and the applications.
  • The Remote Management level enables remote applications to access the MBeanServer through Connectors and Adaptors. A connector provides full remote access to the MBeanServer API using various communication frameworks (RMI
    Java remote method invocation
    The Java Remote Method Invocation Application Programming Interface , or Java RMI, is a Java application programming interface that performs the object-oriented equivalent of remote procedure calls ....

    , IIOP, JMS
    Java Message Service
    The Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...

    , WS-*
    Web service
    A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...

     …), while an adaptor adapts the API to another protocol (SNMP
    Simple Network Management Protocol
    Simple Network Management Protocol is an "Internet-standard protocol for managing devices on IP networks. Devices that typically support SNMP include routers, switches, servers, workstations, printers, modem racks, and more." It is used mostly in network management systems to monitor...

    , …) or to Web-based GUI (HTML
    HTML
    HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....

    /HTTP, WML
    Wireless Markup Language
    Wireless Markup Language , based on XML, is a markup language intended for devices that implement the Wireless Application Protocol specification, such as mobile phones. It provides navigational support, data input, hyperlinks, text and image presentation, and forms, much like HTML...

    /HTTP, …).


Applications can be generic consoles (such as JConsole
JConsole
JConsole is a graphical monitoring tool to monitor Java Virtual Machine and java applications both on a local or remote machine.JConsole uses underlying features of Java Virtual Machine to provide information on performance and resource consumption of applications running on the Java platform...

 and MC4J
MC4J
MC4J is an open source project to create a visual management application for Java servers supporting the JMX specification. It supports connections to all major J2EE application servers and JSE 5.0 and greater.The MC4J features shown as follows:...

), or domain-specific (monitoring) applications. External applications can interact with the MBeans through the use of JMX connectors and protocol adapters. Connectors are used to connect an agent with a remote JMX-enabled management application. This form of communication involves a connector in the JMX agent and a connector client in the management application.

Protocol adapters provide a management view of the JMX agent through a given protocol. Management applications that connect to a protocol adapter are usually specific to the given protocol.

Managed Bean

A managed bean - sometimes simply referred to as an MBean - is a type of JavaBean, created with dependency injection
Dependency injection
Dependency injection is a design pattern in object-oriented computer programming whose purpose is to improve testability of, and simplify deployment of components in very large software systems....

. Managed Beans are particularly used in the Java Management Extensions technology. But with Java EE 6, the specification provides for a more detailed meaning of a managed bean.

The MBean represents a resource running in the Java virtual machine
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...

, such as an application or a Java EE technical service (transactional monitor, JDBC driver, etc.). They can be used for collecting statistics on concerns like performance, resources usage, or problems (pull); for getting and setting application configurations or properties (push/pull); and notifying events like faults or state changes (push).

Java EE 6 provides that a managed bean is a bean that is implemented by a Java class, which is called its bean class. A top-level Java class is a managed bean if it is defined to be a managed bean by any other Java EE technology specification (for example, the JavaServer Faces
JavaServer Faces
JavaServer Faces is a Java-based Web application framework intended to simplify development integration of web-based user interfaces....

 technology specification), or if it meets all of the following conditions:
  1. It is not a non-static inner class.
  2. It is a concrete class, or is annotated @Decorator.
  3. It is not annotated with an EJB component-defining annotation or declared as an EJB bean class in ejb-jar.xml.

No special declaration, such as an annotation, is required to define a managed bean.

An MBean can notify the MBeanServer of its internal changes (for the attributes) by implementing the javax.management.NotificationEmitter. The application interested in the MBean's changes registers a listener (javax.management.NotificationListener) to the MBeanServer. Note that JMX does not guarantee that all notifications will be received by the listeners.

Types

There are two basic types of MBean:
  • Standard MBeans implement a business interface containing setters and getters for the attributes and the operations (i.e., methods).
  • Dynamic MBeans implement the javax.management.DynamicMBean interface that provides a way to list the attributes and operations, and to get and set the attribute values.


Additional types are Open MBeans, Model MBeans and Monitor MBeans. Open MBeans are dynamic MBeans that rely on the basic data types. They are self-explanatory and more user-friendly. Model MBeans are dynamic MBeans that can be configured during runtime. A generic MBean class is also provided for dynamically configuring the resources during program runtime.

An MXBean (Platform MBean) is a special type of MBean that reifies
Reification (computer science)
Reification is the process by which an abstract idea about a computer program is turned into an explicit data model or other object created in a programming language. A computable/addressable object — a resource — is created in a system as a proxy for a non computable/addressable object...

 Java Virtual Machine
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...

 subsystems such as garbage collection
Garbage collection (computer science)
In computer science, garbage collection is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program...

, JIT compilation, memory pools, multi-threading
Thread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

, etc.

An MLet (Management applet) is a utility MBean to load, instantiate and register MBeans in the MBeanServer from a XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

 description. The format of the XML descriptor is:

class | OBJECT = serfile
ARCHIVE = archiveList
[CODEBASE = codebaseURL]
[NAME = objectName]
[VERSION = version]
>
[arglist]


Support

JMX is supported at various levels by different vendors:
  • JMX is supported by Java application server
    Application server
    An application server is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do...

    s such as OpenCloud Rhino Application Server http://www.opencloud.com/products/rhino-application-server/real-time-application-server/, JBoss
    JBoss
    JBoss Application Server is an open-source Java EE-based application server. An important distinction for this class of software is that it not only implements a server that runs on Java, but it actually implements the Java EE part of Java...

    , JOnAS
    JOnAS
    JOnAS is an open-source implementation of the Java EE application server specification, developed and hosted by the ObjectWeb consortium ....

    , WebSphere Application Server
    WebSphere Application Server
    IBM WebSphere Application Server , a software application server, is the flagship product within IBM's WebSphere brand. It was initially created by Donald Ferguson, who later became CTO of CA Technologies, and the first version launched in 1998....

    , WebLogic, SAP Netweaver Application Server, Oracle Application Server 10g and Sun Java System Application Server
    Sun Java System Application Server
    The Oracle GlassFish Server , is a platform for delivering server-side Java applications and Web services. Produced by Sun Microsystems, the SJSAS is a Java EE 5 certified application server and is a core part of the Java Enterprise System...

    .
  • JMX is supported by the UnboundID Directory Server, Directory Proxy Server, and Synchronization Server.
  • Systems management
    Systems management
    Systems management refers to enterprise-wide administration of distributed systems including computer systems. Systems management is strongly influenced by network management initiatives in telecommunications....

     tools that support the protocol include IBM Director
    IBM Director
    IBM Director is an element management system first introduced by IBM in 1993 as NetFinity Manager. The software was originally written to run on OS/2 2.0. It has subsequently gone through a number of name changes in the interim. It was changed in 1996 to IBM PC SystemView...

    , HP OpenView
    OpenView
    HP OpenView was the former name for a Hewlett Packard product family that consists of network and systems management products. In 2007, HP OpenView was rebranded when it became part of the HP Software Division. HP OpenView software provided large-scale system and network management of an...

    , Nimsoft NMS
    Nimsoft
    Nimsoft is a software vendor that offers information technology monitoring and service desk solutions.The company’s products are used to monitor and manage business services and specific systems within the IT infrastructure, including network components, servers, databases, applications, and...

    , Zyrion
    Zyrion Traverse
    Zyrion Traverse is a IT Infrastructure & Cloud monitoring software that leverages the concept of Business Service Management using ‘service containers’ for correlating application and network problems. BSM has gained prevalence in the network management arena in recent years...

    , Zenoss
    Zenoss
    Zenoss is an open source application, server and network management platform based on the Zope application server. Released under the GNU General Public License version 2, Zenoss Core provides a web interface that allows system administrators to monitor availability, inventory/configuration,...

    , Zabbix
    Zabbix
    Zabbix is a network management system created by Alexei Vladishev. It is designed to monitor and track the status of various network services, servers, and other network hardware....

    , Hyperic, Empirix
    Empirix
    Empirix Inc. is a privately held company which designs and manufactures service assurance testing and monitoring equipment for IP-based communications networks such as Voice-over-Internet-Protocol , IP Multimedia Subsystem -based, next generation network and 4G wireless networks...

     OneSight and GroundWork Monitor.
  • JMX is also supported by servlet containers
    Java Servlet
    A servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed via a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by Web servers...

     such as Apache Tomcat
    Apache Tomcat
    Apache Tomcat is an open source web server and servlet container developed by the Apache Software Foundation...

    .
  • MX4J
    MX4J
    MX4J is a project to create an open source implementation of Java Management Extensions. The JMX specification is a Java Specification Request currently in maintenance release 1.2; the new JSR 160 has been issued to address connectivity to a remote JMX agent...

     http://mx4j.sourceforge.net/ is Open Source JMX for Enterprise Computing.
  • jManage http://www.jmanage.org is an open source enterprise-grade JMX Console with Web and command-line interfaces.
  • MC4J
    MC4J
    MC4J is an open source project to create a visual management application for Java servers supporting the JMX specification. It supports connections to all major J2EE application servers and JSE 5.0 and greater.The MC4J features shown as follows:...

     http://mc4j.org/ is an open source visual console for connecting to servers supporting JMX

Books

  • Benjamin G Sullins, Mark B Whipple : JMX in Action: You will also get your first JMX application up and running, Manning Publications Co. 2002, ISBN 1-930110-56-1
  • J. Steven Perry: Java Management Extensions, O'Reilly, ISBN 0-596-00245-9
  • Jeff Hanson
    Jeff Hanson
    Jeff Hanson was a singer-songwriter, guitarist, and multi-instrumentalist whose voice was described in a 2005 Paste review as an "angelic falsetto, a cross between Alison Krauss and Art Garfunkel that is often mistaken for a female contralto."-Biography:Hanson was born in Milwaukee, Wisconsin...

    : Connecting JMX Clients and Servers: Understanding the Java Management Extensions, APress L. P., ISBN 1-59059-101-1
  • Marc Fleury
    Marc Fleury
    Marc Fleury is the creator of JBoss, an open-source Java application server.Fleury holds a degree in mathematics and a Doctorate in physics from the École Polytechnique in Paris and a Master in Theoretical Physics from the École Normale...

    , Juha Lindfors: JMX: Managing J2EE with Java Management Extensions, Sams Publishing, ISBN 0-672-32288-9

External links


Articles
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK