Technologia JMX, część II - DSRG

Transkrypt

Technologia JMX, część II - DSRG
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Technologia JMX, część II
http://www.cs.agh.edu.pl
opracowanie Łukasz Czekierda DSRG 2003-2005
1
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Plan zajęć
•
•
•
•
•
Powtórka
Złącze RMI w JDMK
Notyfikacje
Dynamiczny MBean
Modelowy MBean
opracowanie Łukasz Czekierda DSRG 2003-2005
2
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
POWTÓRKA
opracowanie Łukasz Czekierda DSRG 2003-2005
3
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Łatwe (?) pytania
•
•
•
•
•
Co to jest JMX?
Po co JMX?
Kiedy JMX?
Co to jest MBean?
Co to jest MBeanServer?
opracowanie Łukasz Czekierda DSRG 2003-2005
4
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Standardowy MBean
• Interfejs znany w czasie projektowania
• Struktura MBeanInfo tworzona automatycznie
przez MBeanServer
– Introspekcja
opracowanie Łukasz Czekierda DSRG 2003-2005
5
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Rejestrowanie zwykłego
MBeana
try {
Object simpleObj = new Simple();
ObjectName objectName = new ObjectName("Mbeany
dydaktyczne" + ":type=" + mbeanName);
server.registerMBean(simpleObj, objectName);
}
catch (Exception e) {
//zrob cos
}
opracowanie Łukasz Czekierda DSRG 2003-2005
6
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Tworzenie zwykłego MBeana
try {
ObjectName objectName = new ObjectName("Mbeany
dydaktyczne" + ":type=" + mbeanName);
server.createMBean("sius05.Simple",
objectName);
}
catch (Exception e) {
//zrob cos
}
opracowanie Łukasz Czekierda DSRG 2003-2005
7
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
ZŁĄCZA
CONNECTOR
ADAPTOR (TRANSLATOR)
opracowanie Łukasz Czekierda DSRG 2003-2005
8
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Złącze (connector) RMI
• Pozwala na dostęp do serwera MBean
poprzez RMI
– Serwer złącza
– Klient złącza
• Po stronie serwera MBean: reprezentowane
jako zwykły MBean
• Po stronie klienta: dostęp poprzez proxy o
interfejsie podobnym do interfejsu
MBeanServer
opracowanie Łukasz Czekierda DSRG 2003-2005
9
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Serwery złącza w JDMK
class com.sun.jdmk.comm.CommunicatorServer
All Implemented Interfaces:
CommunicatorServerMBean, MBeanRegistration,
NotificationBroadcaster, Runnable
Direct Known Subclasses:
GenericHttpConnectorServer, HtmlAdaptorServer,
RmiConnectorServer, SnmpAdaptorServer
opracowanie Łukasz Czekierda DSRG 2003-2005
10
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Klienci złącza w JDMK
interface com.sun.jdmk.comm.RemoteMBeanServer
All Superinterfaces:
ClientNotificationHandler,
NotificationRegistration, ProxyHandler
All Known Implementing Classes:
GenericHttpConnectorClient, RmiConnectorClient
opracowanie Łukasz Czekierda DSRG 2003-2005
11
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Złącze (adaptor) HTML
import com.sun.jdmk.comm.CommunicatorServer;
import com.sun.jdmk.comm.HtmlAdaptorServer;
try {
ObjectName htmlObjName = new
ObjectName("Adaptor:class=HtmlAdaptorServer,
protocol=html,port=" + portNumber);
CommunicatorServer htmlAdaptor = new
HtmlAdaptorServer(portNumber);
server.registerMBean(htmlAdaptor, htmlObjName);
htmlAdaptor.start();
}
catch (Exception e) {
//zrob cos
}
opracowanie Łukasz Czekierda DSRG 2003-2005
12
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Złącze (connector) RMI
import com.sun.jdmk.comm.CommunicatorServer;
import com.sun.jdmk.comm.RmiConnectorServer;
try {
ObjectName rmiObjName = new
ObjectName(„Connector:class=RmiConnectorServer,
protocol=rmi,port=" + portNumber);
CommunicatorServer rmiConnector = new
RmiConnectorServer(portNumber);
server.registerMBean(rmiConnector, rmiObjName);
rmiConnector.start();
}
catch (Exception e) {
//zrob cos
}
opracowanie Łukasz Czekierda DSRG 2003-2005
13
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Złącze RMI w JMX z JDK 1.5
SERWER:
JMXServiceURL url = new JMXServiceURL(
"service:jmx:rmi:///jndi/rmi://149.156.97.146:9999/server");
JMXConnectorServer jmxcs = JMXConnectorServerFactory.
newJMXConnectorServer(url, null, mbs);
jmxcs.start();
...
jmxcs.stop();
KLIENT:
JMXServiceURL url = new JMXServiceURL(
"service:jmx:rmi:///jndi/rmi://149.156.97.146:9999/server");
JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
opracowanie Łukasz Czekierda DSRG 2003-2005
14
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Opis obiektu MBean
javax.management.MBeanInfo
javax.management.MBeanConstructorInfo
javax.management.MBeanAttributeInfo
javax.management.MBeanOperationInfo
javax.management.MBeanNotificationInfo
opracowanie Łukasz Czekierda DSRG 2003-2005
15
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Ćwiczenie 1
• Połączyć się z serwerem MBean i pobrać opis
obiektu
• Pobrać opis wartości zwracanej przez
operację
• host=172.16.2.35, port=3072
• objectName=MBeany dydaktyczne:type=SimpleA
opracowanie Łukasz Czekierda DSRG 2003-2005
16
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Ćwiczenie 2
Object invoke(ObjectName name, String methodName,
Object[] arguments, String[] signature);
Object getAttribute(ObjectName name, String
attribute);
void setAttribute(ObjectName name, Attribute
attribute);
public interface SimpleMBean {
Integer getAValue();
void setAValue(Integer value);
long getSequence();
void sayHello(String msg, Date when);
}
host=172.16.2.35, port=3072
objectName=MBeany dydaktyczne:type=SimpleA
opracowanie Łukasz Czekierda DSRG 2003-2005
17
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
NOTYFIKACJE
opracowanie Łukasz Czekierda DSRG 2003-2005
18
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Koncepcja
• MBean generuje zdarzenia
• Zarejestrowani odbiorcy je odbierają
opracowanie Łukasz Czekierda DSRG 2003-2005
19
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Notyfikacje
class javax.management.Notification
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AttributeChangeNotification,
DiscoveryResponderNotification,
HeartBeatNotification, MBeanServerNotification,
MonitorNotification, RelationNotification,
SnmpTableEntryNotification,
TimerAlarmClockNotification, TimerNotification,
TraceNotification
opracowanie Łukasz Czekierda DSRG 2003-2005
20
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Obiekt notyfikujący
public class SimpleNotification extends
Notification
{
//własne pola i metody
public SimpleNotification(Object source, long
sequenceNumber, ...)
{
super("Systemy implementacji uslug
sieciowych", source, sequenceNumber);
//...
}
opracowanie Łukasz Czekierda DSRG 2003-2005
21
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Notyfikujący i notyfikowani
public class Simple extends NotificationBroadcasterSupport
implements SimpleMBean
{
public void sayHello(String msg, Date when)
{
//...
sendNotification(new SimpleNotification(this,
sequence, msg, when));
}
}
public class RMIListener implements NotificationListener
{
public void handleNotification(Notification
notification, Object handback) {...}
//własne pola i metody
opracowanie Łukasz Czekierda DSRG 2003-2005
22
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Ćwiczenie 3
public class SimpleNotification extends Notification {
String student;
Date date;
public SimpleNotification(Object source, long
sequenceNumber, String student, Date date){
super("Systemy implementacji uslug
sieciowych", source, sequenceNumber);
...
}
}
host=172.16.2.35, port=3072
objectName=MBeany dydaktyczne:type=Simple2
opracowanie Łukasz Czekierda DSRG 2003-2005
23
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
DYNAMICZNE MBEANY
opracowanie Łukasz Czekierda DSRG 2003-2005
24
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Standardowy MBean
• Interfejs znany w czasie projektowania
• Struktura MBeanInfo tworzona automatycznie
przez MBeanServer
– Introspekcja
opracowanie Łukasz Czekierda DSRG 2003-2005
25
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Dynamiczny MBean
• Interfejs tworzony w czasie wykonania
• Może być zmienny
• Musi implementować interfejs
javax.management.DynamicMBean
• Musi samodzielnie implementować MBeanInfo
opracowanie Łukasz Czekierda DSRG 2003-2005
26
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Modelowy MBean
• Rozszerzenie dynamicznego MBean
• Ułatwia oprzyrządowanie istniejącego
oprogramowania
– Odwołania są delegowane do zarządzanego zasobu
– setManagedResource
• Dla całego MBeana
• Dla pojedynczych atrybutów
• Klasa RequiredModelMBean
– Implementuje interfejs ModelMBean
– Występuje w każdej implementacji
– Zrealizowana obsługa notyfikacji, błędów, persystentności,
itp.
opracowanie Łukasz Czekierda DSRG 2003-2005
27
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Modelowy MBean
interface javax.management.modelmbean.ModelMBean
All Superinterfaces:
DynamicMBean, ModelMBeanNotificationBroadcaster,
NotificationBroadcaster, PersistentMBean
All Known Implementing Classes:
RequiredModelMBean
opracowanie Łukasz Czekierda DSRG 2003-2005
28
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Modelowy MBean
• setManagedResource(Object ref, String type)
– ObjectReference, Handle, IOR, EJBHandle,
RMIReference
• Opis MBeana w ModelMBeanInfo
– Dziedziczy z MBeanInfo
– Dodaje deskryptory
• Zbiór par (nazwa, wartość)
– cachowanie odwołań
– persystentność (never, onUpdate, noMoreOftenThan, ...)
– wersja
opracowanie Łukasz Czekierda DSRG 2003-2005
29
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
Otwarty MBean
• Rodzaj dynamicznego obiektu MBean
• Zbiór dozwolonych typów w konstruktorach,
operacjach, atrybutach i notyfikacjach został
okrojony
• Ułatwia reprezentację w języku XML
• Opis zawarty w OpenMBeanInfo
opracowanie Łukasz Czekierda DSRG 2003-2005
30
Środowiska implementacji usług sieciowych, Informatyka, studia dzienne
KONIEC
opracowanie Łukasz Czekierda DSRG 2003-2005
31

Podobne dokumenty