JMX - Java Management Extension

  • JMX domāts komponentu integrēšanai; t.sk. dažādu komponentu kopālikšanai tipiskā J2EE aplikāciju serverī.
  • JMX komponentus apraksta "Java Management Extensions Instrumentation and Agent Specification, v1.0", kura atrodama šeit: http://jcp.org/aboutJava/communityprocess/final/jsr003/index.html
  • Šajā nodaļā pievērsīsimies tiem JMX aspektiem, kurus visvairāk lieto JBoss

JBoss standartkomponenti

Jaunākā JMX specifikācija ir "JMX 1.2 Specification", t.i. versija 1.2. Sk. http://java.sun.com/products/JavaManagement/download.html.

Trīs JMX modeļa līmeņi

  1. Instrumentācija (instrumentation) — Pārvaldāmie resursi
  2. Aģenti (agents) - instrumentācijas līmeņa objektu kontrolieri
  3. Dalītie servisi (distributed services) — mehānisms, ar kuru administrācijas aplikācijas mijiedarbojas ar aģentiem un to pārvaldītajiem objektiem

Instrumentācijas līmenis

Instrumentācijas līmenis nosaka prasības, kādas piemīt resursiem, kuri ir pārvaldāmi ar JMX. JMX-pārvaldāms resurss var būt daudzkas - aplikācija, servisa komponents, fiziska ierīce, utml. Pārvaldāms resurss dara pieejamu Javas objektu jeb iesaiņotāju (wrapper), kurš apraksta pārvaldīšanai pieejamās iespējas (features), kuras dara resursu instrumentējamu, t.i. pārvaldāmu no JMX-veidīgām aplikācijām.

Lietotājs dod resursa instrumentāciju, izmantojot vienu vai vairākus MBeans (managed beans) komponentus. MBean komponentiem ir četri implementāciju pamatveidi - "standartais", "dinamiskais", "modeļa" un "atvērtais". Šos MBeans komponentu tipus aprakstīsim vēlāk.

Instrumentācijas līmenī aprakstīts arī notifikācijas mehānisms (notification mechanism). Notifikācijas mehānisma nolūks ir ļaut MBean komponentiem komunicēt izmaiņas ar savu vidi. Tas ir līdzīgs JavaBean izmaiņu notifikācijas mehānismam, to var lietot atribūtu izmaiņu, stāvokļa izmaiņas notifikācijai, utml.

Aģentu līmenis

Aģentu līmenis nosaka aģentu implementācijas prasības. Tie atbild par resursu vadību un to pieejamību, ja šie resursi ir reģistrēti pie atbilstošā aģenta. Pēc noklusēšanas pārvaldīšanas aģenti ir izvietoti uz tām pašām mašīnām (hosts), uz kurām ir pārvaldāmie resursi.

Aģentu prasības izmanto instrumentācijas līmeni, lai definētu standartu MBeanServer pārvaldības aģentu, atbalstot servisus un saziņas konektoru. JBoss piedāvā HTML adapteri (tā ir Sun'a JMX paraugimplementācija (reference implementation)), kā arī JBoss'a paša implementāciju RMI adapterim.

JMX'a aģentam nav nepieciešams zināt, kuriem resursiem tas nodrošinās piekļuvi. JMX-pārvaldāmi resursi var izmantot ikvienu JMX aģentu, kurš piedāvā tiem vajadzīgos servisus.

Pārvaldīšanas brīdī jāiedarbojas uz aģenta MBean'u caur protokola adapteri vai konektoru. Aģentam nav jāzina arī par tiem konektoriem vai aplikācijām, kuri uz to iedarbosies.

JMX aģenta Sun'a paraugimplementācija ir Javas klašu agregācija, kura nodrošina MBeanServer implementāciju un tam piederošos aģentu servisus. Tā ir pieejama šeit: http://java.sun.com/products/JavaManagement/download.html. Arī IBM'am ir JMX specifikācijas implementācija - sk. http://www.alphaworks.ibm.com/tech/TMX4j.

Šobrīd JMX aģenti strādā uz Javas 2 platformas standartizlaiduma. JMX specifiācija principā paredz arī platformas PersonalJava, EmbeddedJava.

Distributed Services Level

Distributīvo jeb dalīto servisu līmenis atrodas ārpus JMX specifikācijas sākotnējā varianta. Šī līmeņa mērķis principā ir noteikt interfeisus, kuri vajadzīgi JMX'am atbilstošām pārvaldības aplikācijām jeb pārvaldniekiem.

JMX komponentu pārskats

Instrumentācijas līmenī ir šādi komponenti:

  • MBean (standard, dynamic, open, un model MBean'i)
  • Notifikācijas modeļa elementi
  • MBean'a metadatu klases

Aģentu līmenī ir šādi komponenti:

  • MBean'u serveris
  • Aģentu servisi

Menedžētie bīni jeb MBean komponenti

MBean komponents ir Javas objekts, kurš implementē vienu no standartajiem MBean interfeisiem un atbilst ar to saistītajiem projektēšanas šabloniem. Pārvaldāmajam resursam piesaistītais MBean padara pieejamu (exposes) nepieciešamo informāciju un operācijas, kuras pārvaldības aplikācijai vajadzīgas, lai šo resursu kontrolētu.

MBean komponentu pārvaldības interfeiss ietver sevī šādas lietas:

  • Atribūtus, kuru vērtībām jāpiekļūst pēc vārda
  • Operācijas jeb funkcijas, kuras var izsaukt
  • Notifikācijas jeb notikumi, kurus MBean var radīt
  • Konstruktori MBean'a Javas klasei

JMX definē četrus MBean tipus, kas atbalsta dažādas instrumentācijas vajadzības:

  • Standartie MBean komponenti. Tie izmanto vienkāršu JavaBean stila vārdu konvenciju un statiski definētu pārvaldības interfeisu. Šīs ir visizplatītākās iekš JBoss'a.
  • Dinamiskie MBeans komponenti. Tiem jāimplementē javax.management.DynamicMBean interfeiss, un tie dara pieejamu savu pārvaldības interfeisu izpildes laikā, kad komponentu instanciē - tādējādi nodrošinot lielāku elastību. JBoss izmanto dinamiskos MBean komponentus tur, kur komponentus, kurus būs jāpārvalda nevar iepriekš zināt.
  • Atvērtie (open) MBean komponenti. Līdzīgi dinamiskajiem MBean'iem. Izmanto datu pamattipus un ir pašdokumentējoši, lai būtu lietotājiem draudzīgāki. JBoss tos neizmanto.
  • Modeļu (model) MBean komponenti. Tāpat līdzīgi dinamiskajiem MBean'iem. Implementē javax.management.modelmbean.ModelMBean interfeisu. Tie var vienkāršot instrumentāciju, piedāvājot noklusēto uzvedību. JBoss tos neizmanto.

Lapa mainīta 2004-11-15 22:36:27