Monitoring unternehmenskritischer Anwendungen unter Verwendung modellbasierter Performance Constraints Bachelor–Kolloquium Andreas Textor atext001@student.informatik.fh-wiesbaden.de Fachbereich Design Informatik Medien Fachhochschule Wiesbaden — University of Applied Sciences Referent: Prof. Dr. Reinhold Kröger Korreferent: Dipl.-Inform. (FH) M.Sc. Marcus Thoss Abgabe: 03. September 2008 15. August 2008
Inhaltsverzeichnis Grundlagen 1 Einbettung in das PerManEntA-Projekt Object Constraint Language Constraints auf Modellebene 2 Workflow-Modell als Graph Umsetzung in OCL Software 3 Architektur Associator Evaluator Module Fallbeispiel PICTURES 4 Zusammenfassung und Ausblick 5 Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 2 / 31
Grundlagen Einbettung in das PerManEntA-Projekt Inhalt Grundlagen 1 Einbettung in das PerManEntA-Projekt Object Constraint Language Constraints auf Modellebene 2 Workflow-Modell als Graph Umsetzung in OCL Software 3 Architektur Associator Evaluator Module Fallbeispiel PICTURES 4 Zusammenfassung und Ausblick 5 Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 3 / 31
Grundlagen Einbettung in das PerManEntA-Projekt Das PerManEntA-Projekt Projekt im Labor für Verteilte Systeme, FH Wiesbaden „Performance Management of Enterprise Critical Applications“ Projektpartner Lufthansa Systems Passenger Services GmbH tang-IT Consulting GmbH Zielsetzung Unterstützung für Performance-Management verteilter Applikationen Messpunkte in UML-Modell Rückführung von Messdaten ins UML-Modell Generierung von Instrumentierungsinfrastruktur Erkennung von Workflows und Selbstmanagement Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 4 / 31
Grundlagen Einbettung in das PerManEntA-Projekt Modellbasierte Instrumentierung Instrumentierung: Anbringen von Schnittstellen zur Gewinnung von Leistungsdaten Im PerManEntA-Projekt Quellcode-basierte Instrumentierung Modellbasierte Instrumentierung bedeutet: Keine manuelle Änderung des Quellcodes, sondern eines Instrumentierungsmodells Weniger fehlerträchtig Schnellere Umsetzung ✦ Weniger Kosten Möglichkeit der Integration in andere Systeme Elemente des Instrumentierungsmodells (Instrumentation Entities) Punkte: Zuordnung zu einzelner Code-Stelle Patterns: Logische Gruppierung von Punkten oder weiteren Patterns Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 5 / 31
Grundlagen Einbettung in das PerManEntA-Projekt Workflow-Modell 1/2 Ziel: Vereinfachte Abbildung von Arbeitsabläufen Nutzt und erweitert Instrumentierungsmodell Vorhandene Modelle wie BPMN oder UML-Aktivitätsdiagramme zwar ähnlich, aber nicht direkt verwendbar Elemente: Workflow - Top-Level-Element (auch Verschachtelung) - Einzelner Befehl oder Programmabschnitt Action - Verzweigung Branch - Zusammenführung einer Verzweigung Merge Parallel - Parallelausführung Elemente besitzen Eingangs- und Endpunkte; Verbindung zweier Elemente durch identischen Punkt Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 6 / 31
Grundlagen Einbettung in das PerManEntA-Projekt Workflow-Modell 2/2 Abbildung von Instrumentierungspunkten zu Workflow-Punkten Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 7 / 31
Grundlagen Object Constraint Language Inhalt Grundlagen 1 Einbettung in das PerManEntA-Projekt Object Constraint Language Constraints auf Modellebene 2 Workflow-Modell als Graph Umsetzung in OCL Software 3 Architektur Associator Evaluator Module Fallbeispiel PICTURES 4 Zusammenfassung und Ausblick 5 Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 8 / 31
Grundlagen Object Constraint Language Object Constraint Language (OCL) Deklarative Sprache zur Formulierung von Ausdrücken und Bedingungen in objektorientierten Modellen Seit UML-Version 1.1 Bestandteil der UML, seit 1.4 auch verwendbar mit MOF und MOF-basierten Modellen (Meta Object Facility) Für die Spezifikation von Randbedingungen, die nicht grafisch modelliert werden können Jedes Constraint steht im Kontext eines Modellelements Arten von Constraints (Ausschnitt) Invariants: Müssen zu jeder Zeit erfüllt sein Pre- und Postconditions: Müssen bei Beginn/Ende der zugehörigen Methode erfüllt sein Definitions: Definition von Attributen und Operationen, die nicht im Modell enthalten sind Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 9 / 31
Grundlagen Object Constraint Language Beispiel Invarianten context Person inv : self.hatFuehrerschein implies self.alter >= 18 context Auto inv : erstzulassung >= baujahr Preconditions context Person::losfahren(auto : Auto) pre : hatFuehrerschein Definitions context Person def : besitztVW() : Boolean = autos->collect(hersteller)->includes(’VW’) Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 10 / 31
Constraints auf Modellebene Workflow-Modell als Graph Inhalt Grundlagen 1 Einbettung in das PerManEntA-Projekt Object Constraint Language Constraints auf Modellebene 2 Workflow-Modell als Graph Umsetzung in OCL Software 3 Architektur Associator Evaluator Module Fallbeispiel PICTURES 4 Zusammenfassung und Ausblick 5 Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 11 / 31
Constraints auf Modellebene Workflow-Modell als Graph Workflow-Modell als Graph Darstellung des Workflow-Modells als Graph erleichtert Definition von Algorithmen Workflow wird als gerichteter, knotengewichteter Graph ● ❂ ✭ ❱❀ ❊❀ ❢ ✮ mit der Gewichtungsfunktion ❢ ✿ ❱ ✦ ❘ aufgefasst Elemente werden Knoten, Eingangs-/Endpunkte werden Kanten Knotengewicht steht für die Dauer Darstellung des Graphen ähnelt entsprechendem Aktivitätsdiagramm Beispiel: A, C, D, F sind Actions; B ist Branch; E ist Merge Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 12 / 31
Constraints auf Modellebene Workflow-Modell als Graph Ausführungspfade Definition Ausführungspfad Ein Ausführungspfad P ✒ ❱ ist definiert als eine endliche Folge von Knoten, bei der der ✐ -te Knoten durch eine gerichtete Kante mit dem ✐ ✰ ✶ -ten Knoten verbunden ist: P ❂ ✭ ✈ ✶ ❀ ✈ ✷ ❀ ✿ ✿ ✿ ❀ ✈ ❦ ✮ mit ✈ ❥ ✷ ❱ ✽ ✶ ✔ ❥ ✔ ❦ und ✭ ✈ ✐ ❀ ✈ ✐ ✰✶ ✮ ✷ ❊ ✽ ✶ ✔ ✐ ❁ ❦ Dauer eines Ausführungspfades Die Dauer eines Ausführungspfades berechnet sich aus der Summe der Knotengewichte seiner Ausführungsschritte: ❦ ❳ ❞ ✭ P ✮ ❂ ❢ ✭ ✈ ✐ ✮ ✐ ❂✶ Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 13 / 31
Constraints auf Modellebene Workflow-Modell als Graph Dauer zwischen zwei Workflow-Punkten Benutzer kann zwei beliebige Workflow-Punkte angeben, um die Dauer des Pfades zu erhalten Algorithmus stellt sicher, dass es ein gültiger Ausführungspfad ist Berücksichtigung für Schleifen: Letzte Dauer des Schleifenkörpers Berücksichtigung für Parallelausführung: Maximale Dauer der Ausführungsstränge Beispiel 1: Dauer von 1 nach 6 mit P ❂ ✭ ❆❀ ❇❀ ❈❀ ❊ ✮ ❂ ❢ ✭ ❇ ✮ ✰ ❢ ✭ ❈ ✮ ✰ ❋ ✭ ❊ ✮ Beispiel 2: Dauer von 1 nach 5 mit P ❂ ✭ ❆❀ ❇❀ ❉❀ ❊ ✮ ❂ ❢ ✭ ❇ ✮ ✰ ❢ ✭ ❉ ✮ Beispiel 3: Dauer von 1 nach 4 mit P ❂ ✭ ❆❀ ❇❀ ❉ ✮ ✦ undefiniert! Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 14 / 31
Constraints auf Modellebene Umsetzung in OCL Inhalt Grundlagen 1 Einbettung in das PerManEntA-Projekt Object Constraint Language Constraints auf Modellebene 2 Workflow-Modell als Graph Umsetzung in OCL Software 3 Architektur Associator Evaluator Module Fallbeispiel PICTURES 4 Zusammenfassung und Ausblick 5 Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 15 / 31
Constraints auf Modellebene Umsetzung in OCL Umsetzung in OCL getDurationBetween -Methode liefert die Dauer zwischen zwei Workflow-Punkten (im Graph: Kanten) Bedingungen werden in Kontexten definiert, bei deren Durchlauf die Dauer feststeht Beispiel: Die Dauer von 1 nach 6 darf maximal 10 Einheiten betragen: context WFPoint::enter(parent : Workflow) pre: self.id = ’6’ implies parent.getDurationBetween( parent.point(’1’), self) <= 10 Abfragen über die Durchlaufreihenfolge der Elemente sind auch möglich. Beispiel: E darf nur über 4 betreten werden. context WorkflowPart::pointEntered(point : WFPoint) pre: self.id = ’E’ implies point.id = ’4’ Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 16 / 31
Software Architektur Inhalt Grundlagen 1 Einbettung in das PerManEntA-Projekt Object Constraint Language Constraints auf Modellebene 2 Workflow-Modell als Graph Umsetzung in OCL Software 3 Architektur Associator Evaluator Module Fallbeispiel PICTURES 4 Zusammenfassung und Ausblick 5 Andreas Textor (FH Wiesbaden) Monitoring mittels modellbasierter Constraints 15. August 2008 17 / 31
Recommend
More recommend