Konzepte und Techniken im Organic Computing Hauptseminar im WS 2007/08 Programmierung verteilter Systeme Lab Institut für Informatik Universität Augsburg Universitätsstraße 14, 86159 Augsburg Tel.: (+49) 821/598-2174, Fax: -2175 URL: http://www.informatik.uni-augsburg.de/vs
Agenda Lernziele Seminarblöcke und -themen Organisatorisches Wichtige Termine Bernhard Bauer, all rights reserved 2007 2
Lernziele Ein Organic Computing System ist ein selbstorganisierendes System, das sich durch lebensähnliche Eigenschaften den jeweiligen Umgebungsbedürfnissen dynamisch anpasst Um diesen Anspruch zu erreichen sollte es unter anderem folgende Eigenschaften aufweisen Selbst-konfigurierend Selbst-optimierend Selbst-heilend Selbst-schützend Bernhard Bauer, all rights reserved 2007 3
Lernziele Was charakterisiert den Forschungsbereich Organic Computing? Welche Konzepte und Techniken sind für diesen Forschungsbereich relevant? Welche Werkzeuge existieren zur Entwicklung von Organic Computing Systemen? Mit welchen Forschungsfragen beschäftigt sich Organic Computing zur Zeit und in naher Zukunft? Bernhard Bauer, all rights reserved 2007 4
Thema 01: Einführung in Organic Computing Thema 02: Rules im Organic Computing Thema 03: Policies im Organic Computing Thema 04: Policy-Transformationen Thema 05: Eigenschaften dezentraler Koordinationsmechanismen Thema 06: Modellierung paralleler Abläufe in OC Systemen Thema 07: Methodologie für die Entwicklung von MAS Thema 08: Design Patterns für autonome dezentrale Systeme Thema 09: Emergentes Fehlverhalten Thema 10: Exploratory Testing Thema 11: Projekte im SPP 1183 Organic Computing Teil 1 Thema 12: Projekte im SPP 1183 Organic Computing Teil 2 Bernhard Bauer, all rights reserved 2007 5
Thema 01: Einführung in Organic Computing [Betreuer: Raphael Romeikat] Grundlagen des Organic Computing Motivation, Idee Herausforderungen Szenarien (smart house/car/office ) Vision (robuste, adaptive, flexible, allgegenwärtige Systeme "life-like") Abgrenzung zu Autonomic Computing Merkmale von Organic-Computing-Systemen Eigenschaften, Charakteristika Definitionen, Interpretationen Selbstorganisation, selbst-x-eigenschaften, Emergenz Architekturtypen von Organic-Computing-Systemen Zentral, verteilt, hybrid Überblick über Organic Computing, Erklärung von Begrifflichkeiten, Grundverständnis für Organic-Computing-Systeme schaffen, Ansätze zur Klassifikation Bernhard Bauer, all rights reserved 2007 6
Thema 02: Rules im Organic Computing [Betreuer: Raphael Romeikat] Grundlagen von Rule-based Systems Motivation, Idee (Expertensystem) Komponenten (facts, if-then-rules, interpreter, ) Arten regelbasierter Systeme (forward chaining vs. backward chaining systems) Rolle im Bereich Organic Computing Basistechnologie zur Koordination der lokalen Aktivitäten Definition von lokalem Verhalten Entstehen von (kontrollierter) Emergenz Regelbasiertes Lernen Sprachen zur Spezifikation von Rules Z.B. RuleML, Prova, JEOPS, Jess Vergleich der Features Beispiel-Rules Einführung in regelbasierte Systeme, Einordnung in den Kontext des Organic Computing, Überblick über Rule-basierte Sprachen und Vergleich (Unterschiede, Gemeinsamkeiten ), Veranschaulichung durch Beispiele Bernhard Bauer, all rights reserved 2007 7
Thema 03: Policies im Organic Computing [Betreuer: Raphael Romeikat] Grundlagen von Policy-based Management Motivation, Idee (abstrahiertes Management komplexer Systeme) Typen von Polices (security policies, obligation policies) Anwendungen, Einsatzgebiete, Beispiele Policy-basierter Systeme Rolle im Bereich Organic Computing Basistechnologie für abstrakte Verhaltensrichtlinien Definition von globalem Verhalten Einflussnahme auf das System BSP: Asimov's Laws Sprachen zur Spezifikation von Policies Objektorientierte, ontologie/-logikbasierte, domänenspezifische Vergleich der Features Beispiel-Policies Einführung in Policies, Einordnung in den Kontext des Organic Computing, Überblick über Sprachen zur Spezifikation von Policies und Vergleich (Unterschiede, Gemeinsamkeiten ), Veranschaulichung durch Beispiele Bernhard Bauer, all rights reserved 2007 8
Thema 04: Policy-Transformationen [Betreuer: Raphael Romeikat] Policies auf verschiedenen Abstraktionsstufen Policy-Kontinuum Policy Refinement Beispiel-Policies Transformation von Policies High-level low-level Konzepte, Automatisierbarkeit Verschiedene Ansätze (goal-based, classification-based) Beispieltransformation Erklärung verschiedener Abstraktionsstufen von Policies, Überblick über das Policy- Kontinuum, Veranschaulichung durch Beispiele, Einführung in Konzepte des Policy- Refinement, Mechanismen zur Automatisierung von Transformationen in niedrigere Abstraktionsschichten Bernhard Bauer, all rights reserved 2007 9
Thema 05: Eigenschaften dezentraler Koordinationsmechanismen [Betreuer: Viviane Schöbel] Koordinationsmechanismen direkt indirekt - Pheromone - Markt-basierte Koordination - Kennzeichnung - Token - Selbst-x-Eigenschaften Selbst-Konfiguration Selbst-Optimierung Selbst-Schutz Selbst-Heilung Vorstellung, Funktionsweise und Einsatzgebiete aktueller Koordinationsmechanismen, Vor- und Nachteile; Vorstellung aktueller Selbst-x-Eigenschaften inkl. Zuordnung zu den vorgestellten Koordinationsmöglichkeiten Bernhard Bauer, all rights reserved 2007 10
Thema 06: Modellierung paralleler Abläufe in OC Systemen [Betreuer: Viviane Schöbel] Parallele Abläufe Nebenläufige Prozesse Kommunikation zwischen Prozessen (meist über Nachrichten) Nicht-deterministische Abläufe Wie können parallele Abläufe und deren Kommunikation untereinander modelliert werden? Modellierungssprachen UML Petrinetze BPMN (Business Process Model Notation) Überblick über aktuell verwendete Modellierungssprachen, ihre Möglichkeiten und Grenzen mit Augenmerk auf die dezentrale Kommunikation. Abgrenzung der Sprachen anhand einer beispielhaften Modellierung eines parallelen Ablaufs. Bernhard Bauer, all rights reserved 2007 11
Thema 07: Methodologie für die Entwicklung von Multi-Agenten- Systemen (MAS) [Betreuer: Viviane Schöbel] Methodologie Vorgehensweise Wie erstelle ich ein System Bekannte Methodologien in der OO-Softwareentwicklung Rational Unified Process (RUP) Enterprise Unified Process (EUP) FUSION Begriffsklärung: Was ist eine Methodologie? Warum benötigt man eine eigene Methodologie für Multi-Agenten-Systeme? Überblick über eine/mehrere Methodologien, deren Aufbau und Einsatzmöglichkeiten, wie auch ein repräsentatives Szenario. Abgrenzung verschiedener Methodologien zueinander. Designunterschiede, Schwächen, Stärken. Bernhard Bauer, all rights reserved 2007 12
Thema 08: Design Patterns für autonome dezentrale Systeme [Betreuer: Viviane Schöbel] Design Pattern Konzept zur Lösung eines Problems GRASP-Patterns in der OO-Softwareentwicklung Motivation: Warum benötigt man neue Design Patterns? Warum reichen OO-Patterns für dezentrale Systeme nicht mehr aus? Überblick geben über aktuelle Design Patterns, ihre Einsetzbarkeit, Wirkungsweise, Granularität und ihr Anwendungsgebiet. Klassifizierung der gefundenen Design Patterns in ein oder mehrere Klassifizierungsschemata. Bernhard Bauer, all rights reserved 2007 13
Thema 09: Emergentes Fehlverhalten [Betreuer: Holger Kasinger] Beispiele für emergentes Fehlverhalten Oscillation by wind at the Tacome Narrow Bridge (1940) Unexpected excessive lateral vibrations at the London Millenium Footbridge (2001) Performanceverlust durch Vibrationen von Festplatten in Racks Ethernet Capture Effect (Unfairness in bestimmten CSMA/CD Umgebungen) Ungewolltes, aber nicht vorhersagbares, emergentes Fehlverhalten steht der industriellen Nutzung von selbst-organisierenden, emergenten Lösungen (Organic Computing Systemen) entgegen Erklärung der Begriffe Selbst-Organisation und Emergenz, Beispiele für emergentes Fehlverhalten in verschiedenen Disziplinen, Möglichkeiten der Klassifikation, aktuelle Techniken zur Erkennung und Vermeidung von emergentem Fehlverhalten, Bernhard Bauer, all rights reserved 2007 14
Thema 10: Exploratory Testing [Betreuer: Holger Kasinger] Was ist Exploratory Testing? Wenn ein Tester einen Fehler findet, wird versucht, eine einfache Menge zu finden, bei der sich der Fehler wiederholt und möglicherweise verschlimmert (klassische Exploration). Der Tester entscheidet, was er als nächstes macht, basierend auf dem, was er gelernt hat. Sobald der Programmierer den Fehler als behoben erklärt, testet der Tester erneut mit den original fehler-produzierenden Tests, um dies zu nachzuprüfen. Der erfahrene Tester jedoch variiert die Tests geeignet und prüft dabei, ob die Fehlerbehebung allgemein genug war oder andere Seiteneffekte zum Vorschein brachte (Exploratory Testing). Jeder Tester benutzt Exploratory Testing, wobei sich manche stärker und effektiver auf die Exploration verlassen als andere Definition Exploratory testing is simultaneous learning, test design, and test execution (J. Bach) Kontinuum zwischen Rein skript-basiertem Testen (Tests präzise nach spezifizierten Testskripts) Purem explorativem Testen (keine vorausgeplanten Aktivitäten, ad hoc testing) Frage ist nicht Sollen wir explorativ testen? sondern Welchen Grad der Exploration besitzt unser Testen? Überblick über Exploratory Testing (Definitionen, Unterschiede, Gemeinsamkeiten, ), Prozessmodell, Automatisierungsmöglichkeiten, Tools, aktuelle Ergebnisse, Bernhard Bauer, all rights reserved 2007 15
Thema 11: Projekte im SPP 1183 Organic Computing Teil 1 [Betreuer: Holger Kasinger] Das SPP 1183 Organic Computing der DFG adressiert grundlegende Herausforderungen in der Entwicklung von Organic Computing Systemen Ziele des SPP Tieferes Verständnis von emergentem globalem Verhalten in selbst-organisierenden Systemen Entwicklung von spezifischen Konzepten und Werkzeugen zur Entwicklungsuntersützung von Organic Computing Systemen für technische Anwendungen 18 Forschungsprojekte in Phase I, zum Beispiel Embedded Performance Analysis for Organic Computing Organic Traffic Control Organic Fault-Tolerant Control Architecture for Robotic Applications Architecture and Design Methodology for Autonomic System on Chip Organic Computing Middleware for Ubiquitous Environments Vorstellung von neun Forschungsprojekten mit Zielen, Status, aktuellen Ergebnissen und Bewertungen, Vertiefung von ausgewählten Projekten Bernhard Bauer, all rights reserved 2007 16
Thema 12: Projekte im SPP 1183 Organic Computing Teil 2 [Betreuer: Holger Kasinger] Das SPP 1183 Organic Computing der DFG adressiert grundlegende Herausforderungen in der Entwicklung von Organic Computing Systemen Ziele des SPP Tieferes Verständnis von emergentem globalem Verhalten in selbst-organisierenden Systemen Entwicklung von spezifischen Konzepten und Werkzeugen zur Entwicklungsuntersützung von Organic Computing Systemen für technische Anwendungen 18 Forschungsprojekte in Phase I, zum Beispiel Embedded Performance Analysis for Organic Computing Organic Traffic Control Organic Fault-Tolerant Control Architecture for Robotic Applications Architecture and Design Methodology for Autonomic System on Chip Organic Computing Middleware for Ubiquitous Environments Vorstellung von neun Forschungsprojekten mit Zielen, Status, aktuellen Ergebnissen und Bewertungen, Vertiefung von ausgewählten Projekten Bernhard Bauer, all rights reserved 2007 17
Organisatorisches Bewerbung E-mail an kasinger@informatik.uni-augsburg.de Name, Matrikelnummer, Studiengang, Semester Bereits gehörte Vorlesungen und Seminare im Hauptstudium Gegebenenfalls weitere qualifizierende Vorkenntnisse Drei priorisierte Themenwünsche STUDIS Zusätzliche Anmeldung in STUDIS zwingend erforderlich Seminararbeit Formatvorlage auf PvS-Website (Springer LNCS, LaTeX) Umfang: 15-20 Seiten (exkl. Anhang) Abgabe aller für die Kompilierung notwendigen Ressourcen + Arbeit im pdf- Format Seminarvortrag Formatvorlage auf PvS-Website (PowerPoint, andere Programme erlaubt) Dauer: ca. 45 min / Person (35-40 min Vortrag, 5-10 min Diskussion) Anrechung des Seminars Alle Themen können in den Software Engineering Bereich eingebracht werden Bernhard Bauer, all rights reserved 2007 18
Organisatorisches Seminarvorträge Jugendbildungsstätte Hindelang Termin Beginn: Montag, 03.03.2008, ca. 14 Uhr in Hindelang Ende: Freitag, 07.03.2008, ca. 14 Uhr in Hindelang Zeit für soziale Events vorhanden Anreise Eigenständig, z.b. in Fahrgemeinschaften oder mit ÖVM Unterkunft In Mehrbettzimmern Jugendherbergsstandard Vollpension Kosten pro StudentIn 4 x 25 = 100 zzgl. An- und Abreise Bernhard Bauer, all rights reserved 2007 19
Wichtige Termine Kickoff-Meeting: 12.07.2007 Bewerbungsschluss: 27.07.2007 Verteilung der Themen: 03.08.2007 Versand von Literaturhinweisen: 10.08.2007 (spätestens) Anmeldung mit Unterschrift: 28.09.2007 1. Besprechung: 30.11.2007 (spätestens) Literaturrecherche abgeschlossen Grobgliederung erstellt Anmeldung in STUDIS: 15.01.2008 (spätestens) 2. Besprechung: 01.02.2008 (spätestens) Feingliederung erstellt Seminararbeit ~90% geschrieben Abgabe der Seminararbeiten: 25.02.2008 (spätestens) Veröffentlichung der Arbeiten: 29.02.2008 (spätestens) Seminarvorträge: 03.03.2008 07.03.2008 Abgabe der Foliensätze: 10.03.2008 Bernhard Bauer, all rights reserved 2007 20