首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
生成 JMX 通知
清單 2. WebAppServerMXBean 類的這個實現,包括 給應用服務添加新的 WebModule 時,要調用的 addWebModule() 方法。
public class WebAppServerMXBeanImpl
extends NEStandardMBean
implements WebAppServerMXBean {
// Implementation details removed -- see
// full source code
private ArrayList webModules =
new ArrayList();
private String adminEMail;
public void setAdminEMail(String adminEMail){
String oldEMail = this.adminEMail;
this.adminEMail = adminEMail;
// create and send a notification.
Notification notif = new Notification(
"jmxbp.attribute_changed", "hello", 1,
System.currentTimeMillis(),
"attribute: AdminEMail, old value: " +
oldEMail + ", new value: " + adminEMail);
sendNotification(notif);
}
// non-MBean methods.
public void addWebModule(String objectName){
webModules.add(objectName);
// create and send a notification.
Notification notif = new Notification(
"jmxbp.child_added", "hello", 1,
System.currentTimeMillis(), "test message");
sendNotification(notif);
}
}
使用 JMX 通知是 SOMA 的關鍵設計原則之一。在面向服務的設計中,您需要獲得托管資源的能力,以便與管理系統進行簡易的通信。 JMX 通知允許您,更容易地生成要處理的應用程序事件。另外,正確使用通知機制,可以減輕潛在的性能問題,具體方法是,讓管理系統頻繁地輪詢應用程序,看看有無變化。
聚會時間
最佳實踐 5 :分離管理和業務關系。有一個良好的設計實踐是, 把需要托管的業務對象,從管理它們的管理接口中分離出去。許多當前的 JMX 最佳實踐,并沒有使這種分離表現為顯式的,這就導致了把業務層和 JMX 接口相結合的應用程序的開發。
把這兩個方面相混合,可能會帶來一些嚴重的后果,比如需要為一個類的每個實例注冊一個 JMX MBean 。另一方面,分離管理和業務,允許管理接口獨立于所定義的業務對象而變化。
您可以應用一系列非常確實的設計模式,來輔助對您管理層的建模工作 ( 參見參考資料 ) 。例如, SeparateMBean 模式 ( 參見 圖 5 ) 描述了,與必須托管的,從業務對象分離的單獨對象的, MBean 的創建。創建業務對象時,它們要維持一個引用,引用了充當它們管理方的,單獨的 MBean 對象。
圖 5. SeparateMBean 設計模式
SeparateMBean 模式描述的是,與必須托管的業務對象分離的,單獨對象的 Mbean 的創建。每個業務對象維護一個充當它們管理方的,單獨 MBean 對象的引用。
盡管我們的例子沒有包括 ServletMXBean 的真正實現,但實際上是可以使用 SeparateMBean 模式的,在該模式中, MXBean 是由 Servlet 對象更新的。
在 Web 服務管理接口中獲得正確的粒度級別時,其他設計模式可能會對您有所幫助。因為每個 Mbean 都有與注冊和查找相關的開銷,設計過多的 Mbean 會影響性能。通過使用級聯模式,您可以使這種性能影響變為最小,并向管理應用程序提供更加粗粒度的接口。
還有一件事情也很重要,即,要把 JMX 管理接口看作是管理數據的庫,而不是管理邏輯的庫。當您需要監控應用程序的闕值違規時,應把這種邏輯放入管理系統,而不是放入托管應用程序中。這樣做可以提供更多的靈活性,以便在部署應用程序之后,更新服務級別的監控。
隨著所部署體系結構的復雜程度和分布式程度的增加, IT 將需要一個更加靈活而開放的體系結構,來管理 SOA 組件。諸如 JMX 這樣的管理技術,為實現 J2EE 應用程序的易管理性提供了具體的解決方案,但是它們并不能滿足需要。
為了實現 SOMA ,您必須將 SOA 原則應用于管理,這需要考慮每個應用程序,對易管理性的要求。然后,管理功能就組成了資源的管理模型。擁有一組通用管理模型,是構建跨廠商實現的,標準管理接口的關鍵。
在 Web 服務技術領域的經驗中,強調設計中互操作性的重要性,而且在您使用 JMX 技術時,應該注意選擇正確的數據類型,來緩解這些問題。另外,您可以期待 JSR 77 中提供的功能,能夠幫助您,在您的應用程序中構建管理功能。然而,使用 JMX 開發您的應用程序,需要花費更多的工夫。它要求圍繞您的易管理性需求,進行仔細地規劃,還要求仔細地分離管理和業務問題,從而使您的設計具有最大的靈活性。
最近引入的 JSR 255 把目標定為更新 JMX 和 JMX Remote API ,從而從可用性的角度改善現有的接口 ( 參見資源 ) 。我們希望,經過修訂的規范可以結合這里給出的最佳實踐,或者能夠讓使用這些最佳實踐變得更加容易。我們還要清楚如何努力,去引入單獨的 JSR ,以探討,用于搭建從 JMX 到 Web 服務標準(比如 SOAP )的橋梁的可用方法。
通過結合一些方法,以及這里討論的 JMX 技術,您可以更加高效地公開使用 JMX 的、帶有 WSDM 的應用程序或者其他管理接口。最后,您將能夠設計更多管理感知的、能夠滿足業務需求的應用程序。
想要了解關于 JMX 技術的更多信息,您可以訪問 HP 的 Dev Resource Central ,在那里,您可以找到有關這個主題的大量技術資源、文章和指南(參見 參考資料 )。
相關推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |