Folien

Werbung
Zwischenbericht DA
Thema:
„Dynamische Rekonfigurierung eines
Application Servers“
Vortragsgliederung:
• Application Server JBoss
• Java Management Extensions (JMX)
• Dynamische Rekonfigurierung
Susanne Wagenbreth
07. Mai 2002
1
Application Server JBoss v2.4.4
• Tomcat Servlet Container (v3.2.3)
• EJB 1.1 (zusätzlich Message Driven Beans)
• OpenSource Project
• JMX als Basis
2
Java Management eXtensions (JMX)
Wozu kann man JMX verwenden?
– Management zur Laufzeit:
• Kontrolle (Monitor, Timer)
• Konfiguration (setAttribute, getAttribute, invoke(methode))
Wer verwendet JMX bereits?
(http://java.sun.com/products/JavaManagement/jmxadoption.html)
– JBoss, BEA Weblogic, iPlanet Application Server, ...
3
JMX - Spezifikation v1.0
Spezifikation v.1.0
zukünftige Spezifik.
separate JSR
4
JMX - Standard MBean vs. Dynamic MBean
Standard MBean
Dynamic MBean
<<interface>>
<<interface>>
StandardExampleMBean
DynamicMBean
getAttributeX():int
setAttributeX(attr:int):void
StandardExample
AttributeX : int
getAttributeX():int
setAttributeX(attr :int):void
methodY():void
getMBeanInfo():MBeanInfo
getAttribute(attribute:String):Object
getAttributes(attribute:String[]):AttributeList
setAttribute(attribute:Attribute):void
setAttributes(attribute:AttributeList):AttributeList
invoke( actionName:String, params:Object[],
signature:String[]):Object
DynamicExample
AttributeX
methodY():String
methodZ():Enumeration
buildMBeanInfo
6 Methoden aus DynamicMBean Interface
5
JMX - MBean Server
• MBean Server:
– Registry für MBeans
– ObjectName:
[domainName]:property=value [, property=value]*
mbeanServer.invoke
(objectname, method,
arguments, argumentstype)
mBeanServer
:MBeanServerImpl
:Simple
method(arguments)
6
Deployment Diagramm (Auszug)
(JBoss, Clients, Datenbank)
WebClient:Client
<<browser>>
:Browser
RMIClient:Client
jBossServer:AppServer
<<WebContainer>>
<<ProtocolAdapter>>
<<WebApplication>>
:HTTPAdapter (Tomcat)
WebAppl
<<MBean>>
:J2EEDeployer
<<ProtocolAdapter>>
:HTML Adapter Sun
<<MBeanServer>>
:MBeanServerImpl
:RMIConnection
<<MBean>>
:NamingService
<<MBean>>
:TomcatServiceSX
<<creates>>
<<Connector>>
:RMIClientConnectorImpl
<<MBean>>
:Logging
<<Connector>>
:RMI Connector JBoss
<<MBean>>
:DatabaseOracle
:DBServer
<<database>>
:OracleDB
EJBClient:Client
<<JNDI>>
:JNPServer
:EJBClient
<<EJBContainer>>
EntityBeanX
:EntityContainer
<<MBean>>
:RMIConnectorService
<<MBean>>
:HTMLAdapter
<<MBean>>
:EJBContainer
Management
7
Wahl einer geeigneten Architektur
• Clientzugriff über Web (WebApplication) (Client/Server)
• Nutzung von JMX, da JMX bereits Basis der JBoss
Serverarchitektur (MBeans)
• Erzeugung XML-Dateien als Konfigurationsdateien
• APIs: JMX, JBoss, Log4j, Java2, J2EE
• Zugriff relationale Datenbank
• => Schritt zur Automatisierung (Monitoring, Notification)
8
Modifizierung zu dynamischer Rekonfigurierbarkeit
AbstractInstance
Pool
StatefulSession
InstancePool
Dynamic
StatefulSession
InstancePool
Sichtbarkeit einiger
Attribute von private
auf protected
gesetzt
Entity
InstancePool
Dynamic
Entity
InstancePool
EJBContainer
Management
<<EJBContainer>>
EntityBeanX
:EntityContainer
<<MBean>>
EntityBeanX
ContainerManagement:
EJBContainerManagement
9
Aktueller Stand der Web-Applikation
• Nutzung existierender „dynamischer“ MBean-Funktionalitäten
ü
MBean registrieren (Erzeugen XML-Datei)
ü
dynamisches Klassenladen
ü
Deploy / undeploy
...
• Erweiterung / Modifizierung existierender MBean-Funktionalitäten
ü
EJBContainer (InstanceCache, InstancePool)
Logging (Jakarta Log4j 1.1.3)
JBoss DatenbankConnectionpool
• Erzeugung neuer MBeans
ü
rekonfigurierbare Anwendung Connectionpool
(Erzeugung Pool, ModelMBean, Persistence, PoolRegistry)
10
Screenshots Web-Application
• EJBContainerManagement
•Logging
11
Screenshots Web-Application
•Änderung des Management-Interfaces
12
Performance-Tests
• ????
13
Herunterladen