什麼是JMX?

JMX(Java Management Extensions)是一個爲應用程序植入管理功能的框架。JMX是一套標準的代理和服務,實際上,用戶可以在任何Java應用程序中使用這些代理和服務實現管理。

JMX的前身是JMAPI

JMX致力於解決分佈式系統管理的問題,因此,能夠適合於各種不同的環境是非常重要的。爲了能夠利用功能強大的Java計算環境解決這一的問題,Sun公司擴充了Java基礎類庫,開發了專用的管理類庫。

JMX是一種應用編程接口,可擴充對象和方法的集合體,可以用於跨越一系列不同的異構操作系統平臺、系統體系結構和網絡傳輸協議,靈活的開發無縫集成的系統、網絡和服務管理應用它提供了用戶界面指導、Java類和開發集成系統、網絡及網絡管理應用的規範。

管理對象是JMX應用程序的核心。JMX結構包括:支持Java的Web瀏覽器用戶接口,管理運行模塊ARM(Admin Runtime Module)和應用。這三個部件之間通過RMI(Remote Method Invocation)進行通信。這裏需要說明的是,RMI是使得一個Java虛擬機(JVM)上運行的程序可以調用遠程服務器上另一個JVM總的對象。

用戶接口用來發布管理操作,這些操作可以間接的通過瀏覽器或通過單獨的應用程序來激發。管理運行模塊用來給應用提供實例化的管理對象。它包括Agent對象接口,通知接口和被管數據接口。應用指的是那些被管設備單元。

JMX是一個完整的網絡管理應用程序開發環境,它同時提供了:廠商需要收集的完整的特性清單,可生成資源清單表格,圖形化的用戶接口;訪問SNMP的網絡API;主機間遠程過程調用;數據庫訪問方法。

JMX這一輕型的管理基礎結構,價值在於對被管理資源的服務實現了抽象,提供了低層的基本類集合,開發人員在保證大多數的公共管理類的完整性和一致性的前提下,進行擴展以滿足特定網絡管理應用的需要。

JMX注重於構造管理工具的軟件框架,並儘量採用已成熟的技術。

JMX體系被分成三個層次

  • 表現層
  • 代理層
  • 分佈式服務層

表現層

表現層定義的是JMX可管理資源所在的層。

這些已管理的資源可以編寫或封裝爲MBean

MBean分爲四種類型: 標準、動態、開放、模型

代理層

定義的是MBean嚮應用程序施加管理的層。包括MBean服務器和代理服務的定義。還至少包括一個協議適配器或連接器。

代理的組成: 。一個MBean服務器 。要管理的MBean 。作爲MBean實現的代理服務 。至少一個協議適配器

MBean

在JMX中,最小的可管理單元是MBean。

MBean不是一個真正的接口和類,而是必須準循的設計模式以確保資源是一個兼容的MBean。

MBean的激活方法:

invoke()方法是管理應用程序用於激活MBean的方法的手段。 invoke()方法有三個參數,分別是方法的名稱、表示屬性的對象數組和描述方法簽名的一個字符串數組。它與使用Java Reflection Api 激活方法的方式類似。

Notification(通知)模型:

MBean的通知模型類似與Java事件的監聽器模型。 MBean或管理應用程序可以作爲MBean事件的監聽器註冊。 通知支持由兩個基本的概念組成,即廣播器和監聽器。

MBean服務器

MBean服務器用於註冊可管理的MBean。

所有對MBean的請求或查詢都是通過MBean服務器實施的。

代理服務

代理服務是一些特殊的函數,代理把這些服務提供給MBean,這些代理服務獨立於任何MBean。

一個代理可以提供四種主要的服務:

  • 動態裝載:允許代理通過下載這個Bean的類動態實例化MBean,這與裝載applet的方式類似。

JMX使用m-let這個標記指定期望動態裝載的MBean的位置。

  • 監控:允許代理通知有關的監聽器監控一個MBean的屬性值的變化

JMX允許使用三種基本類型的監控程序 (1)CounterMonitor:該程序可以觀察類型方面的變化,比如Byte類似或Integer類型 (2)GaugeMonitor:該程序可以觀察類型方面的變化,比如Byte類似或Integer類型,還可以在到達上下閥值時進行報告。 (3)StringMonitor:該程序可以觀察java.lang.String類型的變化。

  • 計時器:允許預設的時間間隔發送通知,可以作爲一個調度程序
  • 關係:允許創建和維護MBean之間的關係

分佈式服務層

包含協議適配器和連接器兩種類型的組件,通過它們連接到外部的應用,如RMI管理應用、基於瀏覽器的管理控制等

協議適配器和連接器

協議適配器是代理與管理客戶通信的手段,每個通信的協議都可能不同。

它們都是管理客戶與MBean交互的方式。

JMX的好處

  • 可減少對JAVA應用實施管理的投資
  • 提供了一個可伸縮的管理框架
  • 集成現有的管理方案:如:WBEM,SNMP,TMN
  • 使用現有的標準JAVA技術
  • 能使用未來的一些管理概念:如Jini連接技術、通用即插即用、服務定位協議(Service Location Protocol)
  • 只定義了一些可以訪問的接口

相關資源:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章