© Matthias Drobny 2006Friedrich-Schiller-Universität Jena Aspekte und Werkzeuge der Datenbankadministration und deren Automatisierung Agent Building and Learning Environment (ABLE) & AutoTune agents
:51 © Matthias Drobny Gliederung 1. ABLE Was bisher geschah... Warum Able? Was ist Able? Welche Struktur hat Able? 2. AutoTune Einleitung Arbeitsweise Probleme
:51 © Matthias Drobny ABLE Was bisher geschah... Entwicklungen bis hin zu ABLE roll-your-own-Ansätze bei nahezu jeder Umgebung allgemeine Probleme Workloads, Heterogenität, Technik-Wandel
:51 © Matthias Drobny ABLE WARUM überhaupt ABLE? Probleme nicht durch "monolithische Software" zu lösen inkrementelle Verbesserungen als Lösungsvorschlag schnell erlernbar, schnell erweiterbar gute Wiederverwertbarkeit selbstüberwachend/selbstbewusst es ist von IBM, und daher potenziell ein Top-Produkt (zumindest laut der Autoren)
:51 © Matthias Drobny ABLE WIE wurde ABLE umgesetzt? Java/Java Beans leichte Portierbarkeit Objektorientierung Multithreading Hard-/Software (Zielobjekt) SensorenEffektoren ABLE Bean1 ABLE Bean2 ABLE Bean3
:51 © Matthias Drobny ABLE WAS heißt ABLE? A toolkit for building multiagent autonomic systems A gent agentenbasiert, autonome Programme B uilding and Entwicklungstools, Komponentenbibliothek L earning selbstlernend, selbstbewusst E nvironment Bereitstellung von fertigen Funktionen, einheitlicher Syntax, Oberfläche
:51 © Matthias Drobny ABLE Architektur / Übersicht ABLE agent framework AbleBeans sind JavaBeans mit standardisierten Methoden init(), reset(),... mit standardisierten Attributen Name, Status,... AbleAgents sind AbleBeans, verbunden durch Datenflüsse (Data-flow connection) Ereigniskopplungen (Event connection) Eigenschaftskopplungen (Property connection) Component Library vorgefertigte Algorithmen (natürlich als Beans) GUI Erstellung und Konfiguration weiterer AbleBeans Erstellung und Test daraus erstellter AbleAgents
:51 © Matthias Drobny ABLE ABLE agent framework AbleBean erledigen Kleinstaufgaben keine selbstständigen Agenten an die jeweilige Teilaufgabe angepasst hoher Re-Use-Nutzen Beispiel: „Lies eine XML-Datei“ AbleAgent erfüllen „umfassende“ Aufgaben arbeiten selbstständig an die jeweilige Gesamtaufgabe angepasst (durch Kombination angepasster Beans) sehr flexibles Modell Beispiel: „erstelle ein Vorhersage-Modell für das Zielsystem“ AbleBeanAbleAgent AbleAgents sind miteinander verbundene AbleBeans/AbleAgents
:51 © Matthias Drobny ABLE ABLE agent framework Eigenschaftskopplungen (Property connection) Synchronisation zweier Beans Änderungen werden durchgereicht Bean 1 Bean 2 Bean 3 Bean 1 Bean 2 gemeinsame Eigenschaften Bean 1 [Ereignis] Bean 2 [Lauscher] Ereigniskopplungen (Event connection) großer Lauschangriff Beans werden von anderen überwacht, wenn ein Event eintritt, reagiert der Lauscher (synchron oder asynchron) 3 Arten der Kommunikation der Beans untereinander Datenflüsse (Data-flow connection) Output-Buffer1 = Input-Buffer2 Baumstruktur
:51 © Matthias Drobny ABLE Component Library: Data & Learning Beans Data beans Datenimport/Datenexport Filterung Learning beans Back propagation Back propagation Self-Organizing Map Self-Organizing Map Decision Tree Decision Tree Naïve Bayes Naïve Bayes
:51 © Matthias Drobny ABLE Component Library: Rule beans eigene Sprache ABLE Rule Language (ARL) verschiedene Inferenzmaschinen problemlos koppelbar, da alle die gleiche Sprache (und Regelbasis) verwenden Boolean forward chaining Fuzzy forward chaining Pattern matching
:51 © Matthias Drobny ABLE Component Library: Funktionsspezifische AbleAgents genetic search agent neural classifier agent neural clustering agent neural prediction agent
© Matthias Drobny 2006Friedrich-Schiller-Universität Jena AutoTune A Generic Agent for Automated Performance Tuning
:51 © Matthias Drobny AutoTune Gliederung 1. Einleitung 2. Problemstellungen 3. Arbeitsweise 4. Beispiele
:51 © Matthias Drobny AutoTune Die Vorgeschichte praktischer Einsatz des ABLE frameworks Erstellung einer Serverüberwachung Informationsproblem Beschaffung woher kommen die Daten Verwendbarkeit sinnvolle Größen problemabbildend
:51 © Matthias Drobny AutoTune Problemstellungen „Was soll erreicht werden?“ 3 P‘s der Informatik (Performance, Performance, Performance) Was ist messbar? Was ist beeinflussbar?“ Anzahl verbundener Nutzer (externe Größe) vs. Anzahl max. Sessions (dynamisch änderbar) Session-Dauer vs. Max. Session-Dauer (Keep-alive) „Wie lernt der AutoTune-Controller die optimalen Reaktionen“ Neuronales Netz mit „ausreichenden“ Inputdaten (ausreichende Bandbreite, Variationen) oder Simulation der Inputs (Sinusschwankungen) und Tests
:51 © Matthias Drobny AutoTune Arbeitsweise
:51 © Matthias Drobny AutoTune Beispiel-Architektur: Lotus Notes Server ® AutoTune besteht aus 3 AbleAgents 1. dem „Lauscher“ überwacht den Server liefert Performance-Daten setzt die neuen Konfigurationsparameter 2. dem „Lerner“ erlernt das Systemmodell (wird bei konstantem System nur einmal genutzt) optimal: mathematisches Modell des Zielsystems... normal: grobe Annäherung, Fehlerverringerung, Schätzung 3. dem „Vorhersager“ verarbeitet die Inputdaten zu neuen Konfigurationsparametern
:51 © Matthias Drobny AutoTune Beispiel-Architektur: Lotus Notes Server ®
:51 © Matthias Drobny AutoTune Beispiel-Architektur: Apache Web Server ® erneut dreiteilig Controller Design Agent berechnet die neuen Parameter Modeling Agent math. Modell oder Näherung durch Simulation Run-Time Control Agent verarbeitet die Parameter und die Wunschvorstellung des Systemadministrators
:51 © Matthias Drobny AutoTune Laufzeitbeispiel/Diagramme mit Controller ohne Controller
:51 © Matthias Drobny The End Sach-, Geldspenden und Jobangebote bitte direkt bei mir einreichen
:51 © Matthias Drobny Input- Schicht Output- Schicht verdeckte Schicht ABLE: (Zusatzfolien) Back propagation Anlegen eines Eingabemusters Vorwärtspropagierung (normale Berechnung) Vergleich von Zieloutput und berechnetem Wert Differenz ist „Fehler des Netzes“ Anpassung der Neuronengewichte abhängig vom Einfluss auf Fehler G: 1 F: 0.8 G: 0.5 F: 0.2
:51 © Matthias Drobny ABLE: (Zusatzfolien) Self-organizing maps/SOM/Kohonenkarte Teilart der Neuronalen Netze unüberwachtes Lernverfahren (Clustering) Projektion von multidimensionalen Einflüssen auf Ebene (für besseres menschliches Verständnis)
:51 © Matthias Drobny ABLE: (Zusatzfolien) Decision Trees spezielle Darstellungsformen von Entscheidungsregeln aufeinanderfolgende, hierarchische Entscheidungen schwieriger Überblick bei großen Bäumen Pruning Kombination mit Neuronalen Netzen möglich TBNN (Tree-Based Neural Network)
:51 © Matthias Drobny ABLE: (Zusatzfolien) Naïve Bayes Entscheidung anhand anderer Fakten Berechnung einer Wahrscheinlichkeit aus anderen Wahrscheinlichkeiten Unabhängigkeitsannahme zwischen den Ereignissen
:51 © Matthias Drobny ABLE: (Zusatzfolien) Forward chaining Boolean forward chaining Standardfall entweder A oder B (oder C) „crispe“ Menge Fuzzy forward chaining wenn A, dann fuzzy B keine klare Aussage, sondern „sprechende Variable“ unscharfe Menge sehr einfache Regelbasis Fakt + Regel neuer Fakt (+ Regel neuer Fakt...)
:51 © Matthias Drobny ABLE: (Zusatzfolien) Pattern matching Mustervergleich, keine Mustererkennung typischerweise (bei Textverarbeitungsprogrammen) durch reguläre Ausdrücke (Me_er) Formbasiertes Matching (Shape-based) Suche nach Kanten echtzeit-tauglich robust Komponentenbasierte Matching (Component-based) zusammengehörige Teile werden erkannt
:51 © Matthias Drobny ABLE: (Zusatzfolien) neural prediction agent - Beispiel Beispiel (Bild) Figure 8 Nutzer legt fest: Datenquelle Trainingsdauer,... einmaliges Training, danach synchrone Berechnungen bei Überwachung von Systemänderungen automatische Rekonfiguration