[JMX一步步來] 2、JMX簡介
一、JMX簡介
JMX是一種JAVA的正式規(guī)范,它主要目的是讓程序且有被管理的功能,那么怎么理解所謂的“被管理”呢?試想你開發(fā)了一個軟件(如WEB網(wǎng)站),它是在24小時不簡斷運行的,那么你可能會想要“監(jiān)控”這個軟件的運行情況,比如收到了多少數(shù)據(jù),有多少人登錄等等。或者你又想“配置”這個軟件,比如現(xiàn)在訪問人數(shù)比較多,你想把數(shù)據(jù)連接池設置得大一些。
當然,你也許會專門為這些管理來開發(fā)軟件,但如果你借助JMX,則會發(fā)現(xiàn)創(chuàng)建這樣的管理程序是如此簡單。因為你無需為管理程序來開發(fā)界面,已經(jīng)有通用的JMX管理軟件,如MC4J,或者是用一般都附帶提供的HTML網(wǎng)頁來管理,你要做的僅僅是將自己要被管理和監(jiān)控類的按照JMX規(guī)范修改一下即可。
中間件軟件WebLogic的管理頁面就是基于JMX開發(fā)的,而JBoss則整個系統(tǒng)都基于JMX構架。下面將JMX的一些概念,從JMX規(guī)范轉帖如下:
二、JMX構架中的各層及相關的組件
- 工具層(Instrumentation Level)
(a) MBeans(標準的,動態(tài)的,開放的和模型MBeans)
(b) 通知模型:Notification、NotificationListener等類
(c) MBean元數(shù)據(jù)類:Attribute、Opreator等類 - 代理層(Agent Level)
(a) MBean Server
(b) 代理服務。如前一篇的HtmlAdaptorServer等。
以下是從網(wǎng)上找到的兩個圖:
(圖1)
(圖2)
MBean中有getter和setter的就是屬性,如前一篇的Hello類中Name。如果只有getter則表示該屬性只讀。一共有四種MBean,如下:
- 標準MBeans(Standard MBeans)設計和實現(xiàn)是最簡單的,這類MBean使用自己的方法名作為管理接口;
- 動態(tài)MBeans(Dynamic MBeans)必須實現(xiàn)一個指定的接口,由于動態(tài)MBeans在運行期間暴露它們的管理接口,因此更為靈活;
- 開放MBeans(Open MBeans)屬于動態(tài)MBeans,這類MBean依靠基礎數(shù)據(jù)類型來實現(xiàn)通用管理,并為友情用戶進行自我聲明;
- 模型MBeans(Model MBeans)同樣也是動態(tài)MBeans,這類MBeans是完全可配置的,在運行期間進行自我聲明;它們?yōu)橘Y源動態(tài)工具提供一個一般性的,有默認行為的MBeans類。
posted on 2006-03-07 15:00 陳剛 閱讀(10093) 評論(4) 編輯 收藏 所屬分類: JMX