JMX
A Java Management Extensions (JMX) egy Java-technológia, ami alkalmazások, rendszerobjektumok, eszközök (pl. nyomtatók) és szervizorientált hálózatok menedzselésére és monitorozására képes eszközöket biztosít.
Ezek az erőforrások MBeans (Managed Bean)-nek nevezett objektumok által vannak ábrázolva. Az API-ban, az osztályok dinamikusan tölthetők be és valósíthatók meg. Alkalmazások vezérlése és ellenőrzése Java Dynamic Management Kit révén lehet megtervezve és kifejlesztve. JMX 1.0, 1.1 és 1.2 Java Community Process JSR 003 által lettek definiálva. 2006-ban a JMX 2.0 JSR 255 lett kifejlesztve. A JMX Remote API 1.0 a távoli menedzselés és ellenőrzéshez a JSR 160 által van specifikálva.A JMX Remote API Web Szolgáltatások kiterjesztése a JSR 262 alatt van fejlesztve. A J2EE közösség révén már korán adoptálva lett, JMX a J2SE 5.0 verziója óta része annak. A Sun Microsystems, In. védjegye.
Architektúra
[szerkesztés]A JMX egy három rétegű architektúrán alapszik:
- Kutató szint próbokat tartalmaz (Mbean-eknek nevezik ezeket) az erőforrásokat vizsgálva. Megvalósítási szintnek is nevezik.
- Ügynök szint, vagy MBeanServer a JMX magja. Az MBean és az alkalmazás között áll.
- A Távoli Vezérlő szint lehetővé teszi, hogy a távoli alkalmazások elérjék a MBeanServer-t Connector-okon és Adaptor-okon keresztül. A Connector teljes távoli elérést biztosít az MBeanServer API-hoz különböző kommunikációs keretrendszereket használva(RMI, IIOP, JMS, WS-* ...), míg az Adaptor adaptálja az API-t egy másik protokollhoz (SNMP, ...) vagy Web-alapú GUI-hoz (HTML/HTTP, WML/HTTP, ...).
Az alkalmazások lehetnek „generic console”-ok (mint a JConsole és MC4J) vagy domain-specifikus (ellenőrzés) alkalmazások. Külső alkalmazások kapcsolatba léphetnek az MBean-vel a JMX kapcsolókat és protokoll adaptorokat használva. A kapcsolók arra használatosak, hogy az ágenst összekapcsolják a távoli JMX-engedélyezett vezérlő alkalmazással. A kommunikáció ezen formája magába foglalja a JMX ágens kapcsolóját és vezérlő alkalmazás kliensének kapcsolóját. Protokoll adapterok vezérlési nézetet nyújtanak a JMX ágensnek az adott protokollon keresztül. Vezérlési alkalmazások amelyek a protokoll adapterhez csatlakoznak általában az adott protokoll által meghatározottak.
Managed Bean
[szerkesztés]A Managed Bean – néha MBean-ként egyszerűsítve – JavaBean egy típusa, függőségi injektálással létrehozva. Managed Bean-ek a gyakorlatban a Java Management Extensions technológia révén kerülnek felhasználásra. De, a Java EE 6 specifikáció sokkal részletesebb jelentését adja a managed bean-nek.
Az MBean erőforrást képvisel, amely a Java virtuális gépben fut, mint egy alkalmazás vagy Java EE technikai szolgáltatás (átviteli monitor, JDBC illesztő, stb.). Ezek felhasználhatók az alkalmazás beállítások lekérésére és megadására, statisztika (teljesítmény, erőforrás felhasználás, gondok) és értesítés események (hibák, állapot változások) gyűjtésére. Java EE 6-ban a managed bean egy bean, amely a bean osztálynak nevezett, Java osztály révén van implementálva.
A legfelső szintű Java osztály egy managed bean ha egy másik Java EE technológia specifikáció (például JavaServer Faces) által managed bean-nek van definiálva vagy következő követelményeknek eleget tesz:
- Nem egy nem-statikus belső osztály
- Konkrét osztály, vagy @Decorator annotáció
- Nincs annot��lva EJB komponens-definiáló annotációval vagy deklarálva mint EJB bean osztály az ejb-jar.xml-ben.
Semmi különleges deklaráció, mint annotáció, szükséges a managed bean definiálásához. Az MBean értesítheti az MbeanServer-t annak belső változásairól javax.management.NotificationEmitter implementációja segítségével. Az MBean változtatásaiban érdekelt alkalmazás egy figyelőt (javax.management.NotificationListener) regisztrál az MbeanServer-ben. Jegyezzük meg, hogy a JMX nem garantálja, hogy az összes értesítés megérkezik a figyelőkhöz.
Típusok
[szerkesztés]Az MBean-nek két alaptípusa létezik:
- Standard MBeans implementálja az üzleti interfészt attribútum és műveletek settereket és gettereket magába foglalva
- Dinamikus MBeans implementálja a javax.management.DynamicMBean interfészt, amely módot nyújt az attribútumok és műveletek listázására, és az attribútum értékek beállítására és lekérésére.
Adalékos típusok az Open MBeans, Model MBeans és Monitor MBeans. Open Mbeans dinamikus Mbeans, amely az alap adattípusokra támaszkodik. Ezek önmagáért érthetők és még jobban felhasználó barátok. Model Mbeans dinamikus Mbeans, amely futás közben konfigurálható. A generikus MBean osztály a dinamikus erőforrás beállításhoz a program futása alatt. Az MXBean (MBean platform) egy speciális típusú MBean amely Java virtuális gép alrendszereit tárgyasítja mint a tárolóhely, szemét gyűjtés, többszálúság, JIT összeállítás. Egy MLet (Management applet) egy MBean eszköz az Mbeans-ek XML leírásból MbeanServer-be való töltésére, aktualizálására és regisztrálására. Az XML leíró formátuma a következő:
<MLET CODE = ''class'' | OBJECT = ''serfile''
ARCHIVE = ''archiveList''
[CODEBASE = ''codebaseURL'']
[NAME = ''objectName'']
[VERSION = ''version'']
>
[arglist]
</MLET>
Támogatás
[szerkesztés]JMX különböző forgalmazók által különböző szinteken vannak támogatva:
- JMX támogatott a Javas alkalmazás szerverek által, mint amilyen: OpenCloud Rhino Application Server, JBoss, JOnAS, WebSphere Application Server, WebLogic, SAP Netweaver Application Server, Oracle Application Server 10g és Sun Java System Application Server.
- Rendszer vezérlési eszközök, amelyek támogatják a protokoll: IBM Director, HP OpenView, Nimsoft NMS, Zyrion, Zenoss, Zabbix, Hyperic, Empirix OneSight és GroundWork Monitor.
- JMX ugyancsak támogatott servlet containerek által, mint amilyen az Apache Tomcat.
- MX4J egy nyílt forráskódú JMX vállalati számítástechnikára
- jManage egy szabad forráskódú vállalati-fokozatú JMX Console web és parancssori interfésszel.
- MC4J egy nyílt forráskódú vizuális konzol JMX-t támogató szerverekhez történő csatlakozáshoz
Irodalom
[szerkesztés]- J. Steven Perry: Java Management Extensions, O'Reilly, ISBN 0-596-00245-9
- Marc Fleury, Juha Lindfors: JMX: Managing J2EE with Java Management Extensions, Sams Publishing, ISBN 0-672-32288-9
- Jeff Hanson: Connecting JMX Clients and Servers: Understanding the Java Management Extensions, APress L. P., ISBN 1-59059-101-1
- 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
Külső hivatkozások
[szerkesztés]- JMX on java.sun.com
- JMX at JBoss.com
- JSR 255 (JMX 2.0)
- JSR 3 (JMX 1.0, 1.1, and 1.2)
- JMX 1.4 (JMX 1.4, part of Java 6)
- Articles
- "Enabling Component Architectures with JMX" by Marc Fleury and Juha Lindfors
- "Introducing A New Vendor-Neutral J2EE Management API" by Andreas Schaefer
- "Java in the management sphere" by Max Goff
- "Managing J2EE Systems with JMX and JUnit Archiválva 2008. május 26-i dátummal a Wayback Machine-ben" by Lucas McGregor
- JMX/JBoss – The microkernel design
- JMX and jManage
- Sun Java Overview of Monitoring and Management
- [1]