JMX
(Java
Management Extension) JMX Technology
Fungsi :
Supaya kelas atau aplikasi dapat dikelola pada saat runtime.
Cara
mengakses : Dapat bersifat local ataupun remote
Keuntungannya:
- JMX Technology membuat aplikasi
berbasis Java dapat dikelola tanpa investasi yang besar. - JMX Technology bersifat
scalable, dynamic management architecture. Bisa diplug dimana saja asal
ada JMX Agentnya.
Komponennya:
- Instrument : resources, Java
Object yaitu MBean. MBean sama seperti Bean java lainnya. Bedanya
yaitu yang merupakan interface harus mempunyai nama dengan postfix Bean
(dibandingkan dengan EJB) - Agent
: JMX Agent berupa MBean Server yang bertugas mengelola MBean yang ada. - Remote Management : MBean dapat
dikelola secara remote.
Tipe dari
MBean :
- Standar MBean : modelnya
seperti Java Beans model (kayaknya seperti Stateless Session Bean). - Dynamic MBean : ditambah
fasilitas flexibility, karena bisa dimodifikasi pada saat aplikasi
berjalan. - Specific vendor type MBean.
Cara
membuat MBean dan mengakses MBean
- Pertama membuat interface yang
berisi semua attribute dan method yang dapat diakses baik read dan/atau
write. - Notifikasi yang dapat
dimunculkan oleh MBean (ini saya masih bingung juga sih tentang maksudnya) - Nama interface harus memakai
akhiran MBean.
Contoh : Nama interface ContohMBean, class yang
mengimplemtasikan semua interface bernama Contoh.
Komponen
JMX Agent
I. MBean Server, yang mengelola MBean.
Pertama kita mendaftarkan Mbeans di MBean
Server. MBean Server menginvoke MBeans melalui interfacenya. MBean Server dan
MBeans harus berada dalam Java Virtual Machine (JVM) yang sama.
Cara menginstantiated dan registrasi MBean
dengan cara:
1. Menggunakan
MBean yang lain
2. Oleh
agentnya itu sendiri
3. Dengan
cara remote (atau lebih tepatnya berbeda JVM)
Catatan nama MBeans harus unik
ketika didaftarkan.
Fungsi MBean Server
1. Membuat
manajemen interface dari MBeans.
2. Membaca
dan menulis nilai attribute dari MBeans.
3. Mengeksekusi
operasi yang terdapat di MBeans.
4. Menerima
notifikasi dari MBeans.
5. Query
MBeans berdasarkan nama objeknya atau attributenya
II. Agent Service
Definisi :
1. Object
yang dapat memanajemen operasi pada MBeans di MBean Server.
2. Bisa
berupa MBean.
Spesifikasi
1. Dapat
melakukan Dynamic Class Loading.
2. Memonitor
nilai dari attribute dari MBean, dan memberitahu object yang lain bila nilainya
berubah.
3. Berfungsi
Timer untuk mendukung scheduling dan dapat mengirimkan pemberitahuan pada interval
tertentu
4. Mendefiniskan
hubungan antar MBean dan mengelola konsistensinya.
III. Protocol dan Connector
Supaya dapat mengakses MBean
Server dari JVM yang berbeda.
Tipe Protocol dan Connector
1. RMI
Connector : Menggunakan Java Remote Method Protocol (JRMP) yang merupakan yang
paling standard, dan Internet Inter-ORB Protocol (IIOP). Tipe ini harus ada,
dan bisa diupgrade dengan menggunakan SSL (Socket Secure Layer).
2. Generic
Connector : bersifat optional, dapat menggunakan socket TCP. Keuntungannya
lebih aman dari tipe yang pertama.
3. User
defined Protocols, dapat melihat di JMX Remote API 1.0 Specification.
Discovery
dan Lookup Services
Mempunyai 2
komponen utama :
- JMX Agent : Aplikasi Server
yang bersifal logical yang mempunyai komponen : Satu MBean Server dan
minimal satu JMX Connector. - JMX Client : Aplikasi supaya
dapat connect ke Server
Cara lookup
dan tipenya :
- Menggunakan Service Location
Protocol (SLP) : Menggunakan framework yang memungkinkan pencarian Network
Services pada Enterprise Network - Menggunakan JINI Network
Technology : Open Software Architecture yang memungkinkan developers untuk
membuat service yang dapat beradaptasi bila terjadi perubahan di jaringan.
A running JINI lookup service dapat ditemukan dengan menggunakan API call. - Menggunakan Java Naming &
Directory Interface (JNDI) dengan LDAP.
Cara
kerjanya :
- Agent membuat minimal 1
Connector Server - Untuk tiap Connector yang ingin
diketahui public, agent mendaftarkan alamatnya. - Client melakukan lookup
- Selesai.
Reference:
- JMX Instrumentation & Agent
Specification (JSR 3) - JMX Remote API Specifaction
(JSR 160)