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