無(wú)為

          無(wú)為則可為,無(wú)為則至深!

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks

          JMX(Java Management Extensions)是一個(gè)為應(yīng)用程序植入管理功能的框架。JMX是一套標(biāo)準(zhǔn)的代理和服務(wù),實(shí)際上,用戶可以在任何Java應(yīng)用程序中使用這些代理和服務(wù)實(shí)現(xiàn)管理。

          JMX的前身是JMAPI

          JMX致力于解決分布式系統(tǒng)管理的問題,因此,能夠適合于各種不同的環(huán)境是非常重要的。為了能夠利用功能強(qiáng)大的Java計(jì)算環(huán)境解決這一的問題,Sun公司擴(kuò)充了Java基礎(chǔ)類庫(kù),開發(fā)了專用的管理類庫(kù)。

          JMX是一種應(yīng)用編程接口,可擴(kuò)充對(duì)象和方法的集合體,可以用于跨越一系列不同的異構(gòu)操作系統(tǒng)平臺(tái)、系統(tǒng)體系結(jié)構(gòu)和網(wǎng)絡(luò)傳輸協(xié)議,靈活的開發(fā)無(wú)縫集成的系統(tǒng)、網(wǎng)絡(luò)和服務(wù)管理應(yīng)用它提供了用戶界面指導(dǎo)、Java類和開發(fā)集成系統(tǒng)、網(wǎng)絡(luò)及網(wǎng)絡(luò)管理應(yīng)用的規(guī)范。

          管理對(duì)象是JMX應(yīng)用程序的核心。JMX結(jié)構(gòu)包括:支持Java的Web瀏覽器用戶接口,管理運(yùn)行模塊ARM(Admin Runtime Module)和應(yīng)用。這三個(gè)部件之間通過RMI(Remote Method Invocation)進(jìn)行通信。這里需要說明的是,RMI是使得一個(gè)Java虛擬機(jī)(JVM)上運(yùn)行的程序可以調(diào)用遠(yuǎn)程服務(wù)器上另一個(gè)JVM總的對(duì)象。

          用戶接口用來發(fā)布管理操作,這些操作可以間接的通過瀏覽器或通過單獨(dú)的應(yīng)用程序來激發(fā)。管理運(yùn)行模塊用來給應(yīng)用提供實(shí)例化的管理對(duì)象。它包括Agent對(duì)象接口,通知接口和被管數(shù)據(jù)接口。應(yīng)用指的是那些被管設(shè)備單元。

          JMX是一個(gè)完整的網(wǎng)絡(luò)管理應(yīng)用程序開發(fā)環(huán)境,它同時(shí)提供了:廠商需要收集的完整的特性清單,可生成資源清單表格,圖形化的用戶接口;訪問SNMP的網(wǎng)絡(luò)API;主機(jī)間遠(yuǎn)程過程調(diào)用;數(shù)據(jù)庫(kù)訪問方法。

          JMX這一輕型的管理基礎(chǔ)結(jié)構(gòu),價(jià)值在于對(duì)被管理資源的服務(wù)實(shí)現(xiàn)了抽象,提供了低層的基本類集合,開發(fā)人員在保證大多數(shù)的公共管理類的完整性和一致性的前提下,進(jìn)行擴(kuò)展以滿足特定網(wǎng)絡(luò)管理應(yīng)用的需要。

          JMX注重于構(gòu)造管理工具的軟件框架,并盡量采用已成熟的技術(shù)。

          JMX體系被分成三個(gè)層次

          • 表現(xiàn)層
          • 代理層
          • 分布式服務(wù)層

          表現(xiàn)層

          表現(xiàn)層定義的是JMX可管理資源所在的層。

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

          MBean分為四種類型: 標(biāo)準(zhǔn)、動(dòng)態(tài)、開放、模型

          代理層

          定義的是MBean向應(yīng)用程序施加管理的層。包括MBean服務(wù)器和代理服務(wù)的定義。還至少包括一個(gè)協(xié)議適配器或連接器。

          代理的組成: 。一個(gè)MBean服務(wù)器 。要管理的MBean 。作為MBean實(shí)現(xiàn)的代理服務(wù) 。至少一個(gè)協(xié)議適配器

          MBean

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

          MBean不是一個(gè)真正的接口和類,而是必須準(zhǔn)循的設(shè)計(jì)模式以確保資源是一個(gè)兼容的MBean。

          MBean的激活方法:

          invoke()方法是管理應(yīng)用程序用于激活MBean的方法的手段。 invoke()方法有三個(gè)參數(shù),分別是方法的名稱、表示屬性的對(duì)象數(shù)組和描述方法簽名的一個(gè)字符串?dāng)?shù)組。它與使用Java Reflection Api 激活方法的方式類似。

          Notification(通知)模型:

          MBean的通知模型類似與Java事件的監(jiān)聽器模型。 MBean或管理應(yīng)用程序可以作為MBean事件的監(jiān)聽器注冊(cè)。 通知支持由兩個(gè)基本的概念組成,即廣播器和監(jiān)聽器。

          MBean服務(wù)器

          MBean服務(wù)器用于注冊(cè)可管理的MBean。

          所有對(duì)MBean的請(qǐng)求或查詢都是通過MBean服務(wù)器實(shí)施的。

          代理服務(wù)

          代理服務(wù)是一些特殊的函數(shù),代理把這些服務(wù)提供給MBean,這些代理服務(wù)獨(dú)立于任何MBean。

          一個(gè)代理可以提供四種主要的服務(wù):

          • 動(dòng)態(tài)裝載:允許代理通過下載這個(gè)Bean的類動(dòng)態(tài)實(shí)例化MBean,這與裝載applet的方式類似。

          JMX使用m-let這個(gè)標(biāo)記指定期望動(dòng)態(tài)裝載的MBean的位置。

          • 監(jiān)控:允許代理通知有關(guān)的監(jiān)聽器監(jiān)控一個(gè)MBean的屬性值的變化

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

          • 計(jì)時(shí)器:允許預(yù)設(shè)的時(shí)間間隔發(fā)送通知,可以作為一個(gè)調(diào)度程序
          • 關(guān)系:允許創(chuàng)建和維護(hù)MBean之間的關(guān)系

          分布式服務(wù)層

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

          協(xié)議適配器和連接器

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

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

          JMX的好處

          • 可減少對(duì)JAVA應(yīng)用實(shí)施管理的投資
          • 提供了一個(gè)可伸縮的管理框架
          • 集成現(xiàn)有的管理方案:如:WBEM,SNMP,TMN
          • 使用現(xiàn)有的標(biāo)準(zhǔn)JAVA技術(shù)
          • 能使用未來的一些管理概念:如Jini連接技術(shù)、通用即插即用、服務(wù)定位協(xié)議(Service Location Protocol)
          • 只定義了一些可以訪問的接口

          相關(guān)資源:



          凡是有該標(biāo)志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏
          、轉(zhuǎn)載請(qǐng)注明來處和原文作者。非常感謝。

          posted on 2007-09-03 22:26 草兒 閱讀(32227) 評(píng)論(7)  編輯  收藏 所屬分類: 軟件構(gòu)架 、java

          Feedback

          # re: 什么是JMX? 2008-02-19 10:03 zhangli
          寫的不錯(cuò),拿來看看  回復(fù)  更多評(píng)論
            

          # re: 什么是JMX? 2010-01-09 17:20 darag
          翻譯的不好  回復(fù)  更多評(píng)論
            

          # re: 什么是JMX?[未登錄] 2010-10-14 16:50 aaa
          yituoshi  回復(fù)  更多評(píng)論
            

          # re: 什么是JMX?[未登錄] 2010-11-19 11:51 波波
          我覺得還不錯(cuò)。。。  回復(fù)  更多評(píng)論
            

          # re: 什么是JMX?[未登錄] 2010-12-07 22:57 Stone
          very good.   回復(fù)  更多評(píng)論
            

          # re: 什么是JMX? 2013-01-27 14:08 funinput
          還沒用到過這個(gè),先了解一下是什么。  回復(fù)  更多評(píng)論
            

          # re: 什么是JMX? 2014-01-22 16:45 somebody
          不錯(cuò)不錯(cuò)  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 南京市| 象州县| 陵川县| 太仆寺旗| 十堰市| 山西省| 英德市| 剑川县| 巨野县| 玛沁县| 池州市| 泌阳县| 怀远县| 喀喇| 萨嘎县| 正安县| 尚志市| 石泉县| 德化县| 岑巩县| 印江| 淮滨县| 高邑县| 马山县| 武鸣县| 达日县| 循化| 瓦房店市| 彝良县| 棋牌| 满洲里市| 开封县| 庆安县| 西华县| 南乐县| 宜春市| 东乌| 彭州市| 宜黄县| 庐江县| 石柱|