|
Questo è il primo tipo di MBean ed anche il più semplice fra tutti. Ogni classe che implementa la propria interfaccia MBean è detta Standard MBean. Viene usato quando la risorsa da gestire espone sempre gli stessi attributi ed operazioni. Per scrivere una interfaccia Standard MBean, basta rispettare una serie di regole semantiche, prima fra tutte, il nome dell’interfaccia che deve aderire al seguente pattern lessico: <implementing_class>MBean.
Come nell’esempio visto prima, se il nome del MBean è MiaServlet, la sua management interface è MiaServletMBean. Ogni proprietà, ad esempio numeroUtenti, deve avere i corrispettivi metodi set, per la scrittura, e get per la lettura:
Quando i nomi dei metodi non sono preceduti da set e get, vengono intesi come azioni per la gestione delle proprietà del MBean. Per gli attributi boolean, il metodo get può essere sostituito con “is<AttributeName>()”: public boolean is<AttributeName()>; Illustriamo un MBean di esempio. Il classico “Hello World”.  Fig. 5 Standard MBean
La corrispettiva interfaccia è : Fig. 6 Standard MBean A questo punto scriviamo una classe che registri il nostro MBean all’interno del MBeanServer:  Fig. 7 Standard MBean
Nel metodo main della classe Agent si è fatta una istanza del MBeanServer: MBeanServer server =MBeanServerFactory.createMBeanServer(); Nel metodo run(), una volta ricavata dalla lista il server, si passa alla registrazione del MBean di esempio all’interno di esso: server.registerMBean(new HelloWorld(), name); Con questo associamo al nostro MBean un Name, l’identificativo per l’invocazione sia in locale che in remoto del MBean. A questo punto settiamo il valore del messaggio, impostandone l’attributo: //impostazione dell'attributo Message server.setAttribute(name, new Attribute("Message", "Hello World!! ")); ed effettuiamo la stampa del messaggio attraverso l’invocazione dell’operation “printMessage”: // Invocazione dell'operation printMessage Object result = server.invoke( name, // MBean name "printMessage", // operation name null, // no parameters null // void signature ); In questo modo visualizziamo sulla console quanto segue: Hello World!! Infine registriamo l’adaptor HTTP implementato dalla SUN nel MBeanServer //adaptor HTTP HtmlAdaptorServer adaptor = new HtmlAdaptorServer(); //registrazione dell'adaptor HTTP server.registerMBean(adaptor, new ObjectName("adaptor:protocol=HTML")); adaptor.setPort(8084);//impostazione della porta adaptor.start(); Grazie a questo adaptor è possibile gestire gli MBeans via HTTP, infatti basti aprire un browser web ed andare al seguente indirizzo : http://localhost:8084 per visualizzare questo contenuto: 
Fig. 8 Standard MBean
Per eseguire correttamente l’esempio bisogna aggiungere al classpath due jars: appartenenti alla JMX Reference Implementation 1.2.1 della SUN, acquisibili al seguente url: http://java.sun.com/products/JavaManagement/download.html
|