2013-04-25 16 views

risposta

7

Un mbean standard ha metadati corretti che non cambiano durante la vita dell'MBean. Gli MBeans dinamici definiscono al volo i loro metadati e possono modificare e ri-pubblicare i loro meta-dati. Pensa a questa analogia [male] inventata con Java: diciamo che hai scritto una classe che elencava il numero di file in una directory. Un metodo di classe di serie potrebbe essere simile:

public int getFileCount(String directoryName)

D'altra parte, la versione dinamica MBean di questa classe sarebbe iniziare con nessun metodo, ma quando si avvia, Esamina le directory disponibili, e crea una nuovo metodo per ogni directory trovato:

public int getFileCountDir1(); 
public int getFileCountDir2(); 
.... 
public int getFileCountDirN(); 

modo che non è una messa a punto molto utile, ma si supponga di voler creare un MBean che mostrava tutte le proprietà del sistema della JVM. Bene ... Le Proprietà del Sistema cambiano ... e non esiste un modo ragionevole per sapere quali chiavi di proprietà saranno definite prima del tempo, quindi sarebbe una rappresentazione migliore di ciò che fa un MBean Dinamico.

I pro ei contro in realtà si riducono a:

  1. MBeans standard sono facili da creare, e istanze di classi esistenti possono essere avvolti ed esposti come MBeans standard.
  2. Gli MBeans dinamici sono interessanti quando servono a uno scopo utile, ma sono misurabili più sforzi da implementare.