Java SE 6 新特性:JMX與系統(tǒng)管理
前言
在Java 程序的運行過程中,對JVM 和系統(tǒng)的監(jiān)測一直是 Java 開發(fā)人員在開發(fā)過程所需要的。一直以來,Java 開發(fā)人員必須通過一些底層的 JVM API,比如 JVMPI 和 JVMTI 等,才能監(jiān)測 Java 程序運行過程中的 JVM 和系統(tǒng)的一系列情況,這種方式一直以來被人所詬病,因為這需要大量的 C 程序和 JNI 調(diào)用,開發(fā)效率十分低下。于是出現(xiàn)了各種不同的專門做資源管理的程序包。為了解決這個問題,Sun 公司也在其 Java SE 5 版本中,正式提出了 Java 管理擴展(Java Management Extensions,JMX)用來管理檢測 Java 程序(同時 JMX 也在 J2EE 1.4 中被發(fā)布)。Java SE 6 新特性中我們看到了JMX與系統(tǒng)管理方面的改進。
在Java SE 6 新特性中,JMX 的提出,讓 JDK 中開發(fā)自檢測程序成為可能,也提供了大量輕量級的檢測 JVM 和運行中對象/線程的方式,從而提高了 Java 語言自己的管理監(jiān)測能力。
JMX 和系統(tǒng)管理
管理系統(tǒng)(Management System)
要了解Java SE 6 新特性中的JMX,我們就必須對當(dāng)前的 IT 管理系統(tǒng)有一個初步的了解。隨著企業(yè) IT 規(guī)模的不斷增長,IT 資源(IT resource)數(shù)量不斷增加,IT 資源的分布也越來越分散??梢韵胂螅踔翆τ谝患抑挥袔装倥_ PC 公司的 IT 管理人員來說,分發(fā)一個安全補丁并且保證其在每臺 PC 上的安裝,如果只依賴人工來完成那簡直就是一場噩夢。這樣,IT 管理系統(tǒng)就應(yīng)運而生。
然而,CPU、網(wǎng)卡、存儲陣列是 IT 資源;OS、MS Office、Oracle database、IBM Websphere 也是 IT 資源。IT 管理系統(tǒng)若要對這些 IT 資源進行管理,就必須對這些管理對象有所了解:形形色色的 IT 資源就像是說著不同語言的人:Oralce 數(shù)據(jù)庫表達內(nèi)存緊張的方式和 Window XP 是絕然不同的, 而 IT 管理系統(tǒng)就像建造通天塔的經(jīng)理,必須精通所有的語言, 這幾乎是一個不可能完成的任務(wù)。難道 IT 管理系統(tǒng)是另外一個通天塔嗎?當(dāng)然不是!其實我們只要給每個 IT 資源配個翻譯就可以了。
管理系統(tǒng)的構(gòu)架
圖 1. 管理系統(tǒng)構(gòu)架
|
上圖分析了管理系統(tǒng)的基本構(gòu)架模式。其中 Agent / SubAgent 起到的就是翻譯的作用:把 IT 資源報告的消息以管理系統(tǒng)能理解的方式傳送出去。
也許讀者有會問,為什么需要 Agent 和 SubAgent 兩層體系呢?這里有兩個現(xiàn)實的原因:
管理系統(tǒng)一般是一個中央控制的控制軟件,而 SubAgent 直接監(jiān)控一些資源,往往和這些資源分布在同一物理位置。當(dāng)這些 SubAgent 把狀態(tài)信息傳輸?shù)焦芾硐到y(tǒng)或者傳達管理系統(tǒng)的控制指令的時候,需要提供一些網(wǎng)絡(luò)傳輸?shù)墓δ堋?
管理系統(tǒng)的消息是有一定規(guī)范的,消息的翻譯本身是件復(fù)雜而枯燥的事情。
一般來說,管理系統(tǒng)會將同一物理分布或者功能類似的 SubAgent 分組成一組,由一個共用的 Agent 加以管理。在這個 Agent 里封裝了 1 和 2 的功能。
JMX 和管理系統(tǒng)
JMX 既是Java 管理系統(tǒng)的一個標(biāo)準(zhǔn),一個規(guī)范,也是一個接口,一個框架。圖 2 展示了 JMX 的基本架構(gòu)。
圖 2. JMX 構(gòu)架
|
【編輯推薦】