JMX(Java Management Extensions)是一個爲應用程序植入管理功能的框架。JMX是一套標準的代理和服務,實際上,用戶能夠在任何Java應用程序中使用這些代理和服務實現管理。設計模式
JMX致力於解決分佈式系統管理的問題,好比網站的監控和軟件的參數配置等,所以,可以適合於各類不一樣的環境是很是重要的。數組
管理對象是JMX應用程序的核心。JMX是經過RMI(Remote Method Invocation)進行通訊。RMI使得一個Java虛擬機(JVM)上運行的程序能夠調用遠程服務器上另外一個JVM總的對象。藉助於JMX能夠如此簡單的管理程序,無需爲管理程序來開發界面。已經有通用的JMX管理軟件,或者用SUN提供的WEB界面來管理。瀏覽器
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。
分佈式服務層
包含協議適配器和鏈接器兩種類型的組件,經過它們鏈接到外部的應用,如RMI管理應用、基於瀏覽器的管理控制等 協議適配器和鏈接器 協議適配器是代理與管理客戶通訊的手段,每一個通訊的協議均可能不一樣。 它們都是管理客戶與MBean交互的方式。