真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JMX架構(gòu)的了解(轉(zhuǎn))

JMX應(yīng)該說(shuō)是關(guān)于網(wǎng)絡(luò)應(yīng)用管理的的框架,如果你開(kāi)發(fā)了一個(gè)比較復(fù)雜的系統(tǒng),無(wú)疑你要提供這個(gè)系統(tǒng)的自身管理 系統(tǒng),JMX更多應(yīng)用是體現(xiàn)在Server上,如果你要使用java開(kāi)發(fā)一個(gè)自己Server或復(fù)雜的應(yīng)用系統(tǒng),那么推薦你基于JMX架構(gòu)來(lái)開(kāi)發(fā), JBoss 3.0 weblogic等就是基于JMX開(kāi)發(fā)的符合J2EE規(guī)范的服務(wù)器軟件。

了解JMX可以使你深入了解J2EE服務(wù)器, 為什么我們平時(shí)說(shuō) "EJB"是個(gè)比較"Weight"的方案選擇,其中一個(gè)原因是J2EE服務(wù)器軟件本身 也是你的系統(tǒng)中一部分,它作為你系統(tǒng)的容器,對(duì)你的系統(tǒng)有至關(guān)重要的作用,如果無(wú)法直接介入 管理或“調(diào)教”它,那么無(wú)疑你的系統(tǒng)本身存在著隱含的危險(xiǎn), 現(xiàn)在,通過(guò)JMX,你現(xiàn)在可以深入到你J2EE容器內(nèi)部的管理了。 (好像國(guó)內(nèi)出現(xiàn)了第一個(gè)自己J2ee服務(wù)器,不知道那是不是基于JMX開(kāi)發(fā)的?)

J2EE并不能概括所有的應(yīng)用領(lǐng)域,比如對(duì)速度和性能要求極高的游戲或股票行情等系統(tǒng)就需要自己直接來(lái)開(kāi)發(fā)Server, 如果是能夠基于JMX開(kāi)發(fā),那么可以說(shuō)就大大提高編寫管理程序的效率,可以將你的模塊變成JMX的MBean,可以通過(guò)Agent在程序內(nèi)部或者通過(guò) WEB管理頁(yè)面對(duì)你的MBean模塊進(jìn)行初始化 重啟 以及參數(shù)設(shè)置。

JMX的好處還有:可以方便整合連接現(xiàn)有的Java技術(shù),如JNDI JDBC JTS及其它。特別是能夠使用Jini的查詢 發(fā)現(xiàn)機(jī)制以及協(xié)議,我們知道,Jini提供了一種服務(wù)的查詢和發(fā)現(xiàn)機(jī)制,這些services都可以通過(guò)JMX 來(lái)實(shí)現(xiàn)管理。

現(xiàn)在我們開(kāi)始JMX的了解:

1.到j(luò)ava.sun.com首頁(yè)的JMX頁(yè)面,下載JMX的規(guī)定說(shuō)明和Samples程序。
2.按照J(rèn)MX的說(shuō)明進(jìn)行一次Tutorial,了解如何加入 刪除 配置一個(gè)MBean,Tutorial中是以SimpleMBean為例,那么我們能否建立一個(gè)自己的MBean?

我們來(lái)做一個(gè)Hello 的MBean,這里有一個(gè)小關(guān)鍵點(diǎn),你的class取名有個(gè)規(guī)則, 需要以MBean為結(jié)尾,如這里我們?nèi)∶麨镠elloMbean:


public interface HelloMBean {

  // management attributes
  public String getName();
  public void setName(String name);

  // management operations
  public void print();

}

在這個(gè)Class里,有一個(gè)隱含attributes: name, 提供了set和get的方法,同時(shí)有一個(gè)操作方法print():

再定義一個(gè)concrete類:

public class Hello implements HelloMBean {

  private String name = "";

  public String getName() {
  return name;
  }

  public void setName(String name) {
  this.name = name;
  }

  public void print() {
  System.out.println("Hello, " + name + "!!" );
  }
}


這樣一個(gè)簡(jiǎn)單的MBean就做好了,我們可以通過(guò)admin界面加入這個(gè)Hello,

再按 Tutorial啟動(dòng)BaseAgent,在Agent Administration中參考Simple填入:
Domain: Standard_Hello_MBeans

Keys : name=Hello,number=1

Java Class: Hello

將出現(xiàn)Create Successful信息。進(jìn)入MBean View 給Name賦值,點(diǎn)按Apply ,然后再按print,這是你的Hello中的方法,在控制臺(tái)你會(huì)看到輸出。

是不是很驚奇Hello中的 attributes 和operations能被動(dòng)態(tài)的訪問(wèn)和控制? 已經(jīng)隱約感到JMX的架構(gòu)原理了吧?

下面再深入明確一些概念:
上面HelloMBean資源是通過(guò)admin這樣的HTTP WEB界面管理,這種管理資源方式是屬于JMX的Distributed服務(wù)層, JMX 通過(guò)Distributed層能夠部署和管理MBean資源。就象上面的例子,是通過(guò)HtmlAdaptor提供的HTTP WEB界面來(lái)方面的維護(hù)管理HelloMBean.

那么我們能否在程序中自動(dòng)管理和部署我的MBean?當(dāng)然可以,這是通過(guò)Agent層來(lái)完成,現(xiàn)在我們已經(jīng)有了這個(gè)層次,MBean所在的資源層,
最外面的Distributed服務(wù)層,Distributed服務(wù)層是通過(guò)Agent層來(lái)訪問(wèn)MBean資源的,看看下面來(lái)自Sun公司JMX規(guī)定的架構(gòu)圖:


JMX架構(gòu)的了解(轉(zhuǎn))

從圖中看出,Agent Level(Agent層)包括MBean Server和Agent Services,那么我們來(lái)做一個(gè)上面例子HelloMBean的Agent:

// CREATE the MBeanServer
//
System.out.println(" CREATE the MBeanServer.");
MBeanServer server = MBeanServerFactory.createMBeanServer();

// CREATE Registe HelloMBean
//
System.out.println(" CREATE, REGISTER a new Hello Standard_MBean:");
HelloMBean helloMBean = new Hello();

ObjectName hello_name = null;
try {
hello_name = new ObjectName("Standard_Hello_MBeans:name=Hello,number=1");
System.out.println(" OBJECT NAME = " + hello_name);

//將HelloMBean注冊(cè)到MBeanServer中去
server.registerMBean(helloMBean, hello_name);
}
catch (Exception e) {
e.printStackTrace();
return;
}

向MBeanServer注冊(cè)后,以后JMX就知道有了這個(gè)HelloMBean資源。

管理一個(gè)agent的MBean資源或使用它提供的服務(wù)必須通過(guò)一個(gè)protocol adaptor 或者connector,adaptor 或者connector屬于Distributed layer level(Distributed服務(wù)層),我們上面例子中通過(guò)HTTP WEB界面管理HelloMBean就是瀏覽器通過(guò)HtmlAdaptor這個(gè)adaptor來(lái)實(shí)現(xiàn)的。

通過(guò)本篇文章,你應(yīng)該大體了解了JMX的架構(gòu)和一些原理和應(yīng)用,再深入可以研究SUN的JMX Specification.
[@more@]
網(wǎng)站標(biāo)題:JMX架構(gòu)的了解(轉(zhuǎn))
地址分享:http://weahome.cn/article/jeogch.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部