翻譯:JMX規(guī)范version1.2
JMX組件概述1.工具層(Instrumentation Level)
a.MBeans(標準的,動態(tài)的,開放的和模型MBeans)
b.通知模型
c.MBean元數(shù)據(jù)類
2.代理層(Agent Level)
a.MBean Server
b.代理服務(wù)
工具層的組件
工具層的主要組件就是MBean設(shè)計模式,通知模型和MBean元數(shù)據(jù)類。
MBeans
MBean是實現(xiàn)了一個特定接口,并遵從某一設(shè)計模式的Java對象。這要求在MBean中規(guī)范化資源管理接口的表現(xiàn)形式。資源的管理接口包含所有需要的信息,以及管理程序需要在資源上進行的操作的控制。
MBean的管理接口表現(xiàn)為如下幾種:
1.可以被訪問的屬性;
2.可以被調(diào)用的操作;
3.可以被發(fā)布的通知;
4.MBean類的構(gòu)造子。
MBeans通過它們的公共方法封裝屬性和方法,沿襲設(shè)計模式暴露它們給管理程序。例如,在標準MBean中一個只讀的屬性只有g(shù)etter方法,而可讀寫的屬性則既有g(shù)etter方法,又有setter方法。
任何作為MBean來實現(xiàn)的對象,并且在代理中注冊,則它可以在代理所在的JVM以外進行管理。這些對象包括:
1.程序所管理的資源;
2.為幫助管理資源提供的增值服務(wù);
3.能被管理的JMX基礎(chǔ)結(jié)構(gòu)組件。
其他的JMX組件,例如代理服務(wù),被指定為工具MBeans,使它們能受益于JMX的基礎(chǔ)結(jié)構(gòu),并提供管理接口。
JMX架構(gòu)并沒有強行限制編譯好的MBean類的儲存位置。它們可以放在任何代理的JVM的classpath指向的位置,如果使用了類載入(class loading)它們也可以放在一個遠程的站點。
JMX規(guī)范定義了四類MBean:標準MBean、動態(tài)MBean、開放MBean和模型MBean。每一種MBean需要一種不同的工具。
1.標準MBeans(Standard MBeans)設(shè)計和實現(xiàn)是最簡單的,這類MBean使用自己的方法名作為管理接口;
2.動態(tài)MBeans(Dynamic MBeans)必須實現(xiàn)一個指定的接口,由于動態(tài)MBeans在運行期間暴露它們的管理接口,因此更為靈活;
3.開放MBeans(Open MBeans)屬于動態(tài)MBeans,這類MBean依靠基礎(chǔ)數(shù)據(jù)類型來實現(xiàn)通用管理,并為友情用戶進行自我聲明;
4.模型MBeans(Model MBeans)同樣也是動態(tài)MBeans,這類MBeans是完全可配置的,在運行期間進行自我聲明;它們?yōu)橘Y源動態(tài)工具提供一個一般性的,有默認行為的MBeans類。
通知模型(Notification Model)
JMX規(guī)范定義了基于Java事件模型的一般性通知模型。通知可以被MBean的實例和MBean server發(fā)布。規(guī)范中指明通知的發(fā)送和接受者必須實現(xiàn)通知對象、廣播和監(jiān)聽接口。
JMX的實現(xiàn)可以提供通知模型發(fā)布的服務(wù),來使管理程序遠程偵聽MBean模型和MBean server的事件。如何完成通知模型的發(fā)布超出了本部分規(guī)范的范圍。規(guī)范的后面將討論高級通知服務(wù),例如管理程序取回通知進行轉(zhuǎn)發(fā)和保存。
MBean元數(shù)據(jù)類
工具規(guī)范定義了MBean的管理接口的類。這些類用來定義構(gòu)建發(fā)布MBean管理接口的標準信息結(jié)構(gòu)。在代理層的MBean server的一個功能是提供MBeans的元數(shù)據(jù)。
元數(shù)據(jù)類包含描述MBean的管理接口的所有組件的結(jié)構(gòu):屬性、操作、通知和構(gòu)造子。每一個元數(shù)據(jù)類包含有名字、描述和它的特性。例如,屬性的特性是它為只讀、只寫還是可讀寫;操作的特性是它的參數(shù)的標識和返回類型。
不同類型的MBean擴展元數(shù)據(jù)類來提供附加的信息。通過繼承,標準信息總是可用的,知道如何訪問子類的管理程序可以獲得額外的信息。
代理層的組件
代理層的關(guān)鍵組件是工具層的對象都在其中注冊的MBean server,和使JMX代理體現(xiàn)更自主和性能更好的智能管理可用的代理服務(wù)。
MBean Server
被管理Bean的服務(wù),簡稱MBean server,用來注冊在代理中暴露給管理操作的對象。任何注冊在MBean server中的對象對于管理程序都是可見的。MBean server只暴露MBean的管理接口,而不是直接暴露對象的引用。
任何系統(tǒng)在代理JVM以外管理的資源都必須在MBean server中作為MBean注冊。MBean server也提供一個標準化的接口,給同一個JVM來訪問MBeans,為本地對象提供手工可管理資源的所有好處。MBeans可以通過一下幾類來實例 化和注冊:
1.其他的MBean;
2.代理本身;
3.遠程管理程序(通過分布式服務(wù))
注冊MBean的時候,必須為它指定一個唯一的對象名(Object Name)。管理程序用這個對象名來標識執(zhí)行管理操作的對象。MBean可用的操作包括:
1.發(fā)現(xiàn)MBean的管理接口;
2.讀寫MBean的屬性;
3.執(zhí)行MBean定義的操作;
4.基于對象名或者屬性值來查詢MBean。
MBean server通過協(xié)議適配器和連接器使代理的JVM外的管理程序可以訪問代理。通過指定的協(xié)議每種適配器提供所有注冊在MBean server中的MBean的實例的視圖。例如,HTML適配器可以顯示MBean到Web瀏覽器。協(xié)議適配器提供的視圖因協(xié)議的不同而不同,在本規(guī)范中 不對其進行討論。
連接器提供用來處理管理和代理之間通信的管理方接口。即使是不同的協(xié)議,每個連接器都提供相同的遠程接口。當遠程管理程序使用這些接口時,它就可以通過網(wǎng) 絡(luò)透明的連接到代理,而不需要知道相關(guān)的協(xié)議。遠程管理接口規(guī)范在JSR160“JMX Remoting 1.2”中進行討論。
適配器和連接器使所有的MBean server操作對于遠程管理程序可用。對于一個被管理的代理,它必須包含至少一個協(xié)議適配器或者連接器。代理也可以擁有多個適配器和連接器,使它可以被不同的管理者,通過不同的協(xié)議進行管理。
代理服務(wù)(Agent Services)
代理服務(wù)是可以在注冊在MBean server中的MBean上執(zhí)行管理操作的對象。通過在代理上包含智能管理,JMX可以幫助你構(gòu)建更加強大的管理解決方案。代理服務(wù)通常是允許它們和它 們的功能通過MBean server進行控制的MBeans。JMX規(guī)范定義了一下幾種代理服務(wù):
1.通過管理服務(wù)小程序從任意網(wǎng)絡(luò)位置取回和實例化新的類和本地庫動態(tài)載入類,實現(xiàn)動態(tài)的載入類;
2.觀察MBean數(shù)字或字符串型的屬性,并能通知其他對象某些類型改變了的監(jiān)視器;
3.提供一個一次報警通知或者是重復(fù)的,周期的通知的定時機制的定時器;
4.定義MBeans之間關(guān)聯(lián)和執(zhí)行基于預(yù)定義關(guān)系類型關(guān)系的關(guān)系服務(wù)。
所有的代理服務(wù)托管在一個遵從JMX的實現(xiàn)中。
綜述
本部分指明了關(guān)于實現(xiàn)遵從JMX工具和代理規(guī)范(Version 1.2)的工具層和代理層的托管組件。
工具層(Instrumentation Level)
遵從JMX工具規(guī)范(Version 1.2)的實現(xiàn)必須提供在第2章“MBean 工具”、“第3章”開放MBeans“和第4章”模型MBean“中說明的所有組件。它包括通過Javadoc工具生成的相應(yīng)的API文檔中定義的相關(guān) 類。這些組件為標準和動態(tài)的MBean提供了支持。
代理層(Agent Level)
遵從JMX代理規(guī)范(Version 1.2)的實現(xiàn)必須提供在第二部分”JMX代理“中指定的所有組件。它包括MBean server的實現(xiàn),代理服務(wù)和通過Javadoc工具生成的相應(yīng)的API文檔中定義的相關(guān)類。因此所有指定的四種服務(wù)的實現(xiàn)是必須的。