Paul Horn
Transcription
Paul Horn
Universität Jena, Institut für Informatik LS für Datenbanken und Informationssysteme – Prof. Dr. Küspert Seminar: Aspekte und Werkzeuge der Datenbankadministration “The information technology industry loves to prove the impossible nothing” - Paul Horn Christian Adam Seminararbeit – Autonomic Computing Inhalte Seite 1. Motivation 3 2. Autonomic Computing 4 2.1 Die Vision 4 2.2 Ziele 5 3. Self-Management 6 3.1 Self-Configuring 6 3.2 Self-Optimizing 7 3.3 Self-Healing 7 3.4 Self-Protecting 8 3.5 Self-Organizing 9 3.6 Self-Inspecting 9 4. Architekturelle Überlegungen 10 5. Integrationsstufen 12 6. Ausgewählte heutige Ansätze 14 7. Fazit 15 Christian Adam Seite 2 von 16 Seminararbeit – Autonomic Computing 1. Motivation Historisch betrachtet hat die computergestützte Datenverarbeitung in den letzten 60 Jahren gewaltige Fortschritte gemacht. Es vollzogen sich viele Entwicklungen und Veränderungen in der Informatikbranche. Dabei ist vor allem ein deutlicher Wandel der Benutzerstruktur von Computersystemen zu verzeichnen. Während die ersten Großrechner anfangs von mehreren Benutzern verwaltet und betrieben wurden (1:n), initiierte die spätere Einführung von Personalcomputern eine 1:1 – Beziehung zwischen Benutzer und Rechner, bis hin zum 21.Jahrhundert, in dem die meisten einzelnen Benutzer schließlich eine Mehrzahl an Computersystemen besitzen (n:1). Damit sind nicht nur PCs gemeint, sondern auch andere elektronische Geräte wie beispielsweise Handys und PDAs. Computersysteme werden zunehmend über Netzwerke miteinander verbunden, was vor allem bei größeren Unternehmen eine bedeutende Rolle spielt. Die Interaktion der einzelnen Geräte hat sich dabei enorm vervielfacht. Wirtschaftssubjekte sind gezwungen eine Vielzahl von Softwaresystemen zu unterhalten um einen heterogenen Informationsaustausch mit Kunden, Lieferanten etc. gewährleisten zu können und somit konkurrenzfähig zu bleiben. Dazu müssen ständig neue Softwareprodukte in das Gesamtsystem eines Unternehmens integriert werden, was oft umfangreiche Aufgaben mit sich bringt, z.B. bei der Migration einer Datenbank. Konventionelle Benutzer haben immens hohe Anforderungen an Computersysteme, die im Alltag verwendet werden, insbesondere bezüglich Verfügbarkeit, Performanz und Sicherheit. Andererseits beansprucht jedes einzelne Gerät den Nutzer und dessen Zeit immer mehr, so dass er mit steigender Anzahl an Geräten kontinuierlich mit deren Bedienung überfordert wird. Es werden hoch qualifizierte Spezialisten bzw. Systemadministratoren benötigt, deren Aufgaben in diesem Zuge sehr viel komplexer und zeitaufwendiger werden. Die Hauptaufgaben zielen einerseits auf die Installation und Integration neuer sowie die Wartung, Bedienung, Konfiguration und Optimierung vorhandener Computersysteme ab. Moore´s Law [1] ist ein Indiz für die verblüffende Kontinuität dieses Fortschrittes und zeigt dass jahrelang immer neue Rekorde in der Informationstechnik aufgestellt und ständig neue Soft- und Hardwareprodukte entwickelt wurden. Abb. 1: Moore's Law Christian Adam Seite 3 von 16 Seminararbeit – Autonomic Computing Diese Gesetzmäßigkeit von Gordon Moore ist eine aus empirischer Beobachtung gegründete Faustregel, die besagt, dass durch den technischen Fortschritt sich die Komplexität von integrierten Schaltkreisen etwa alle 24 Monate verdoppelt (siehe Abbildung 1). Forscher meinen, dass das zukünftige Problem der IT-Branche weder mangelnder Speicherplatz noch mangelnde Rechenzeit sein wird, sondern vielmehr wird durch die ständige technische Weiterentwicklung und Vergrößerung der Computersysteme die Komplexität dieser Systeme dem Menschen früher oder später über den Kopf wachsen. Diese Annahme erscheint allerdings extrem paradox, da doch seit Jahrzehnten diese Komplexität von Rechensystemen der große Ansporn aller Entwicklungen war. Des Weiteren wird gemutmaßt, dass dieses Problem den Menschen daran hindern wird den Schritt in die nächste Ära der rechnergestützten Datenverarbeitung zu bewältigen. Um diesem Phänomen der explodierenden Komplexität entgegenzuwirken gibt es den Lösungsansatz bzw. die Vision des Autonomic Computing. Wie der Name schon erkennen lässt, ist das Autonomic Computing darauf angelegt die Gesamtheit der Computersysteme möglichst autonom fungieren zu lassen. Neben der wachsenden technologischen Komplexität gibt es drei weitere zentrale Triebkräfte des Autonomic Computing. Sowohl die steigende Größe der Infrastruktur (immer mehr Benutzer greifen zur gleichen Zeit auf einen Service zu), wie auch die wachsenden Kosten des Systems, zur Instandhaltung und Wartung, und der Mangel an qualifizierten Arbeitskräften und Arbeitsbedingungen verlangen eine grundlegende Lösung. 2.1 Die Vision des Autonomic Computing Die Vision wurde erstmals im März 2001 von Paul Horn auf der "National Academy of Engineers" an der Harvard Universität vorgestellt. Paul Horn arbeitete damals als Vizepräsident der Forschungsabteilung von IBM. Er versuchte den Grundgedanken der Informatik fortzusetzen, Abläufe zu automatisieren und dem Benutzer Aufwand zu ersparen, den er im Umgang mit Computersystemen hat. Als einer der ersten erkannte Paul Horn, dass das zukünftige Grundproblem der Informatik die Komplexität der Systeme sein wird und beschrieb dieses in seinem Manifesto [3]. ”We obliterate barriers and set records with astonishing regularity. But now we face a problem springing from the very core of our success - and too few of us are focused on solving it.” “More than any other I/T problem, this one - if it remains unsolved - will actually prevent us from moving to the next era of computing.” Abb. 2: Paul Horn “The obstacle is complexity. Dealing with it is the single most important challenge facing the I/T industry.” Christian Adam Seite 4 von 16 Seminararbeit – Autonomic Computing Paul Horn wählte den Begriff des Autonomic Computing mit Anlehnung an den medizinischen Begriff des autonomen Nervensystems, da sich viele Parallelen zwischen dem medizinischen und dem ingenieurwissenschaftlichen Begriff aufzeigen lassen. So steuert beispielsweise das vegetative Nervensystem autonom die Vitalfunktionen wie Atmung, Verdauung oder den Stoffwechsel. Es übernimmt somit Routinefunktionen, so dass sich das Gehirn auf komplexere Vorgänge konzentrieren kann. Der Mensch kann deshalb einerseits durch „tiefes Durchatmen“ sein Bewusstsein explizit der Atmung widmen, andererseits ist es ihm möglich bei aktiver sportlicher Betätigung die Atmung zu steigern, ohne dass ihm das direkt bewusst ist. In dieser Weise sollen autonome Systeme funktionieren. Auf Computersysteme übertragen, soll sich ein Administrator nicht mehr um die alltäglichen Probleme kümmern müssen. Routineaufgaben und Probleme wie Speicherengpässe, Geschwindigkeitsprobleme etc. sollen vom System selbstständig gelöst werden (entspricht „unbewusstem Steigern der Atmung“). Nur falls Probleme nicht selbstständig lösbar sind, soll der Administrator informiert werden um entsprechende Maßnahmen einzuleiten (entspricht „eigenem tiefen Durchatmen“). 2.2 Ziele des Autonomic Computing Ziel des Autonomic Computing ist es möglichst viele Aufgaben das System selbstständig lösen zu lassen, ohne dass die Interaktion der Benutzer von Nöten ist. Die Entscheidungsfreiheit liegt beim System. Es trifft dabei alle Entscheidungen immer in Betracht auf die Hauptorientierung des Unternehmens bzw. entsprechend den Vorgaben des Administrators. Diese so genannten Service Level Agreements (SLA) werden explizit spezifisch vorgegeben und stellen eine Zielorientierung für das System dar. Des Weiteren soll das System alle wichtigen Parameter autonom überwachen und bei auftretenden Abweichungen oder Änderungen entsprechende Maßnahmen einleiten. Dem Ideal der Vision entsprechend sollten Lösungen nicht nur für Routineprobleme gefunden werden, sondern sogar für unerwartete Probleme, deren Lösung nicht unmittelbar bekannt ist. Das System soll in gewisser Weise lernfähig sein. Ein weiteres zentrales Ziel ist die Entlastung der Benutzer und Systemadministratoren. Diese haben dementsprechend mehr Zeit für wichtigere Aufgaben und müssen nicht rund um die Uhr vor Ort sein, falls Probleme auftauchen. Administratoren können Problemlösungen hinausschieben während das System andere verfügbare Ressourcen zum Überbrücken beansprucht. Wirtschaftlich betrachtet zielt das Autonomic Computing vor allem auf deutliche Kostenersparnisse und eine gute Ausfallsicherheit der Systeme ab. Erweiterte Systeme können weiterhin mit dem gleichen Personal verwaltet werden. Vorteilhafter Weise wird das Personal schließlich seine Zeit effektiver nutzen können. Christian Adam Seite 5 von 16 Seminararbeit – Autonomic Computing 3. Self-Management [4,5] Der Begriff des Self-Managements ist der zentrale Begriff des Autonomic Computing. Aus dieser Hauptvorstellung werden vier Teilfelder abgeleitet, die den angestrebten Eigenschaften des Autonomic Computing entsprechen und in ihrer Gesamtheit zum Selbst-Management führen sollen. Als Kernfunktionalität zielt Selbst-Management stets auf eine optimale Performance des Systems bezüglich der Erfüllung der SLAs ab. Es muss darum kontinuierlich die eigene Auslastung überprüfen um gegebenenfalls Abb. 3: CHOP Schritte einzuleiten, die Engpässe verhindern. Aus diesem Ansatz resultiert die Self-Optimizing-Eigenschaft. Nach jeder Veränderung des Systems, wie nach einem Optimierungsversuch oder der Integration einer neuen Komponente, ist immer ein Selbsttest vorgesehen. Falls also Fehler aufgetreten sind, soll die Eigenschaft des Self-Healing garantieren, dass diese Fehler autonom lokalisiert und behoben werden. Ein weiterer wichtiger Faktor ist die Sicherheit des Systems vor Angriffen von innen und außen, der auf die Fähigkeit des Self-Protecting schließen lässt. Die Letzte zentrale Eigenschaft ist das Self-Configuring bzw. die Selbstkonfiguation neuer Komponenten. Die Fähigkeit des Self-Managements wird in Fachkreisen auch als CHOP bezeichnet, welches sich aus den Anfangsbuchstaben der vier Eigenschaften ergibt. In den folgenden Abschnitten wird jede Funktion des CHOP tiefgründiger erläutert. 3.1 Self-Configuring Mit der anfangs erwähnten steigenden Anzahl an Computersystemen steigt trivialer Weise auch der Aufwand der Konfiguration und Integration einzelner neuer Systemkomponenten. Subsysteme müssen dabei immer enger miteinander zusammenarbeiten, so dass jede einzelne Konfiguration enorm viel Arbeit für die Administratoren mit sich bringt. Diesem Trend des steigenden Aufwands soll das Selfconfiguring von autonomen Systemen entgegenwirken. Das Autonomic Computing sieht vor, neue Komponenten autonom zu integrieren, stets unter dem Gesichtspunkt der SLAs. Bei der Integration einer neuen Komponente, lernt diese automatisch die Umgebung und Konfiguration des bisherigen Systems kennen und wird im System registriert, so dass ihre Dienste beansprucht werden können. Einfach gesagt gibt der Benutzer nur noch vor „Was“ integriert werden soll und das „Wie“ bewerkstelligt das autonome System. Dabei ist es vor allem wichtig, dass die Konfiguration ohne Unterbrechung bereitgestellter Dienste anderer Komponenten abläuft. Heutige Beispiele, die die angestrebte Richtung des Self-Configuring deutlich machen sind die automatische Vergabe von Netzwerkadressen durch einen Server, Plug`n Play Erweiterungen und selbstkonfigurierende USB-Komponenten. Christian Adam Seite 6 von 16 Seminararbeit – Autonomic Computing 3.2 Self-Optimizing Da die Anzahl der in Unternehmen eingesetzten Soft- und Hardware-Produkte ständig wächst, ist die Funktion des Self-Optimizing ein zentraler Bestandteil des Autonomic Computing. Große Softwarepakete wie DB2 oder SAP bringen hunderte von Parametern mit sich, die alle individuell angepasst werden müssen um optimale Performance des Systems zu garantieren. Auch beim SelfOptimizing ist die Performance immer bezüglich der SLAs zu betrachten, die beispielsweise durch spezifische Rechenzeitangaben oder Zugriffszeiten repräsentiert werden können. Self-Optimizing meint konkret, dass Autonome Systeme stets bemüht sind ihre Effizienz in Bezug auf Performance und Kosten zu steigern. In diesem Zusammenhang fallen dem System auch Aufgaben wie die ständige Überprüfung der Aktualität und Auslastung zu, um bei Änderungen der Zielerfüllung spezielle Parameter anzupassen. Durch Selbsttests soll dementsprechend garantiert werden, dass die Leistungsfähigkeit gehalten oder sogar gesteigert wird. Ein anderer Aspekt des Self-Optimizing ist das Ausgleichen von Leistungsengpässen. Falls das Computersystem an seine Leistungsgrenzen stößt, muss es sich bemühen entweder betreffende Ressourcen von anderen Komponenten zu bekommen oder durch dynamisches Speicherauslagern bzw. dynamische Dateisysteme wieder optimale Performance zu garantieren. Die Fähigkeit des Self-Optimizing wird oft mit einer speziellen Fähigkeit der Iris des menschlichen Auges verglichen. Die Iris passt sich perfekt an die äußeren Einflüsse an, ohne dass der Mensch darauf direkt Einfluss nimmt. Je nach Lichtintensität verengt bzw. vergrößert sie sich um entweder den Sehnerv zu schützen oder bei Dunkelheit die Sehstärke zu verbessern. Im Gegensatz zur Selbstkonfiguration neuer Komponenten, zielt die Eigenschaft des Self-Optimizing eher auf die Einstellungen vorhandener Komponenten und der Auslastung im System ab. 3.3 Self-Healing Die Fehlererkennung und -behebung ist seit geraumer Zeit ein schwerwiegendes Problem, speziell in der Softwareindustrie. Es gibt große Anstrengungen um Fehlerursachen zu erkennen, zu isolieren und schließlich zu beheben. Sowohl entsprechende Maßnahmen zur Erkennung als auch die Folgen einer NichtErkennung können enorme Kosten zu Folge haben. Die Vision des Autonomic Computing involviert deshalb auch die Fähigkeit der Fehlererkennung und Selbstheilung. Eine denkbare mögliche Umsetzung wäre die Implementierung einer autonomen Diagnosekomponente, die zutreffende Logdateien nach der wesentlichen Fehlerursache analysiert. Das Hauptaugenmerk wird dabei auf die Lokalisierung des Fehlers gelegt, um anschließend die betroffene Komponente vom System zu isolieren. Schließlich wird nach zutreffenden Softwarepatches zur Fehlerbehebung gesucht, diese installiert und getestet. Falls keine effektiven Patches vorhanden sind, soll automatisch ein zuständiger Programmierer informiert werden. Enorm wichtig während dieses Prozesses ist, dass für den Benutzer keine Unterbrechung der eigentlichen Arbeit erkennbar sein soll. Christian Adam Seite 7 von 16 Seminararbeit – Autonomic Computing Die Eigenschaft des Self-Healing fordert einerseits auftretende Fehler so gut wie möglich zu lokalisieren und Schritte zu einem fehlerfreien Betrieb einleiten. Anderseits sollen ex ante mögliche Fehlerquellen aufgesucht und entsprechende Maßnahmen eingeleiten werden, bevor der eigentlich Fehler auftreten kann. 3.4 Self-Protecting Da heutzutage Geschäftsprozesse schon teilweise automatisch abgearbeitet werden, können durch den Ausfall eines Soft- oder Hardwaresystems dem Unternehmen hohe Kosten entstehen. Des Weiteren kann fast jeder Amateur simple Virenbaukästen bedienen und Viren erzeugen, die in Grenzfällen wirtschaftliche Schäden in Milliardenhöhe verursachen. Aus diesem Grund wird sehr viel Wert auf die Sicherheit und Zuverlässigkeit eingesetzter Computersysteme gelegt. Demgemäß ist die letzte geforderte Fähigkeit des Autonomic Computing das Self-Protecting. Autonome Systeme sollen sich hierbei in erster Linie vor Attacken von außen, u.a. durch Viren, schützen können. Aber auch das Sichern des Systems vor menschlichen (inneren) Fehlern des Personals oder vor Ausfällen von technischen Komponenten soll gewährleistet werden. Unabdingbare Maßnahmen gegen äußere Fehler sind die Verwaltung von Zugangskontrollen, der Schutz vor unauthorisiertem Zugriff, die Erkennung von „Einbruchsversuchen“ und die automatische Einleitung von Gegenmaßnahmen. Um innere Fehler zu vermeiden könnte das autonome System stets Warnungen melden, falls das Vorhaben eines Administrators bestimmte Dienste einschränkt. Ein treffendes Vergleichsbeispiel für das Self-Protecting wäre hier das Immunsystem, das den Körper vor fast allen schädlichen Angriffen zu schützen versucht. Jene vier zentralen Eigenschaften des Autonomic Computing sind um zwei weitere Charakteristika erweiterbar. Self-Organizing und Self-Inspecting zeigen zusätzliche sinnvolle Funktionen des Autonomic Computing auf, bringen aber auch teilweise Überschneidungen mit den zuvor genannten Eigenschaften mit sich. Self-Organizing ist stark auf Datenbankmanagementsysteme ausgerichtet. In den folgenden Absätzen werden die grundlegenden Ideen der zwei Faktoren genauer erläutert. 3.5 Self-Organizing Self-Organizing eines Systems ist die Fähigkeit der dynamischen Re-Organisation und Umstrukturierung von Daten und deren Anordnung, um auch hier optimale Performance zu garantieren. Speziell in einer Datenbank werden Zugriffspfade, Indizes und Verzeichnisstrukturen anvisiert. Mögliche Aufgaben die dem System zukommen sind das Geben anfänglicher Hilfestellungen bei der Anordnung neuer Daten auf bestimmten Speichersystemen oder später das Verschieben von Daten von einem Datenträger zu einem anderen um beispielsweise Zugriffsgeschwindigkeiten zu optimieren. DB2 und Oracle erlauben in diesem Sinne „Dynamic Online Index Reorganization“ um bessere Speicherausnutzung zu garantieren bzw. Systemressourcen effektiver zu nutzen. Des Weiteren bieten einige Datenbanksysteme ein Feature, das automatisch die Speichergröße der Datenbank senkt, falls ein festgelegter Prozentsatz des bereitgestellten Speichers unbenutzt ist. Die Ausrichtung des Self-Organizing ist dem Self-Optimizing relativ ähnlich, es ist allerdings spezifischer auf die Datenstruktur bezogen. Christian Adam Seite 8 von 16 Seminararbeit – Autonomic Computing 3.6 Self-Inspecting Die Charakteristik des Self-Inspecting fordert, dass Autonome Systeme sich selber kennen, um intelligente Entscheidungen bezüglich aller zuvor genannten autonomen Eigenschaften zu treffen. Grundlage dieser Eigenschaft ist das autonome Sammeln, Speichern und Analysieren von relevanten Informationen über einzelne Komponenten und deren Auslastung. Das System interpretiert diese Informationen um die Performance zu optimieren, potentielle Problemquellen aufzuspüren und auffällige Trends der Systemauslastung zu erkennen. Relevante und interessante Ergebnisse dieser Inspektion werden regelmäßig dem Administrator präsentiert und anderen Komponenten zur Verfügung gestellt, so dass diese gegebenenfalls Schlüsse für das eigene interne Verhalten ziehen können. Heutige Datenbankmanagementsysteme verfügen bereits über einige Tools zur Informationssammlung, wie z.B. das DB2 Health Center oder die Oracle Manager Console. Derartige Features sammeln Informationen über potentielle Fehlerquellen, erstellen Statistiken und geben Empfehlungen über bestimmte Anwendungen. Das db2support utility ermöglicht die Präsentation solcher Statistiken. Abb. 4: Spezielle Softwareprodukte (Stand November 2004) Die Abbildung 4 zeigt Softwareprodukte, die IBM in ihrer Produktlinie von Personalcomputern integriert hat und jeweils spezifisch die Teilaspekte des Autonomic Computing realisieren. Dies sind erste Schritte zur Entwicklung eines autonomen Systems. Da diese Softwareprodukte aber kein ganzes autonomes System repräsentieren, sind dadurch nur Teilerfolge zu verzeichnen. Christian Adam Seite 9 von 16 Seminararbeit – Autonomic Computing 4. Architekturelle Überlegungen [2]; [5] Die Grundstruktur eines autonomen Systems wird nicht durch ein einzelnes autonomes Element repräsentiert. Vielmehr bildet ein Konzept von mehreren interaktiven autonomen Teilelementen das Gerüst eines Computersystems. Diese Teilelemente sind als eigene individuelle Systeme zu betrachten, die Ressourcen besitzen und Dienste für den Benutzer oder andere autonome Elemente zur Verfügung stellen. Jedes autonome Element muss sein internes Verhalten und seine Beziehungen zu anderen autonomen Elementen eigenständig managen. Sie kommunizieren untereinander durch so genannte „Verträge“, die spezielle Anfragen und Angebote enthalten. Die Fähigkeit zum Selbstmanagement kann mit der sozialen Intelligenz eines Ameisenhaufens verglichen werden. Diese entsteht größtenteils durch die Kommunikation und Interaktion zwischen den einzelnen Ameisen. Äquivalent soll die Fähigkeit des Selbstmanagements autonomer Systeme durch die Interaktion der autonomen Elemente und deren Fähigkeit zum Selbstmanagement entstehen. Die Abbildung 5 zeigt die Interaktion mehrerer autonomer Elemente auf. Jedes autonome Element besteht aus mindestens einem Managed Element und einem Autonomic Manager. Ein Managed Element kann eine Hardware-Ressource wie Speicher, CPU und Drucker oder Software wie eine Datenbanken und Verzeichnisdienste sein. Der Autonomic Manager überwacht und kontrolliert das Managed Element und repräsentiert so das gesamte autonome Element. Außerdem implementiert der Autonomic Manager eine Kotrollschleife. Abb. 5: Autonome Elemente und deren Architektur [4] Diese sammelt (Monitor) und analysiert (Analyse) alle benötigten Systemdetails um zu überprüfen ob gewisse Änderungen am autonomen Element notwendig sind. Dazu entwirft sie einen Veränderungsplan (Plan) und anschließend werden die dazu nötigen Prozeduren ausführt (Excecute). Die Automatisierung der vier in Klammern gesetzten Funktionen lässt eine intelligente Kontrollschleife entstehen, welche man auch als MAPE bezeichnet. Christian Adam Seite 10 von 16 Seminararbeit – Autonomic Computing Die Kontrollschleife durchläuft eine Endlosschleife, führt dabei die vier nachfolgend erklärten Funktionen aus und speichert alle relevanten Informationen in einer Wissensbasis (Knowledge Source). (s. Abbildung 6) Abb. 6: Kontrollschleife [2] Monitor Hier sammelt die Kontrollschleife Details des Managed Element mit Hilfe von Touchpoints1 und erstellt analysierbare Symptome über Topologie, Konfiguration, Status, Kapazitäten und Durchlaufzeiten. Analyze Die ermittelten Daten werden analysiert und korreliert. Es wird ein SOLLIST- Vergleich erstellt, so dass zukünftige Ereignisse vorausberechnet und Veränderungen vorgenommen werden können. Änderungen sind angebracht wenn bsw. die SLAs nicht mehr korrekt erfüllt werden. Die Analysefunktion ist also dafür verantwortlich, dass der Autonomic Manager seiner Zielerfüllung gerecht wird. Generierte Änderungsanfragen (change requests) werden an die Plan-Funktion geschickt. Plan Die Plan-Funktion wählt eine adäquate Prozedur aus, die die gewünschten Änderungen an dem Managed Element hervorruft. Diese Prozedur kann sowohl durch einen einzelnen Befehl wie auch durch komplexere Prozessabläufe wirken. Der dabei erstellte Veränderungsplan (change plan) wird an die Execute-Funktion weitergegeben. Execute Letztendlich entwirft die Execute-Funktion die zeitliche Durchführung der geplanten Veränderungen und führt diese aus, bevor die Schleife erneut von vorne beginnt. Knowledge Während die Schleife die einzelnen Funktionen durchläuft, werden auf einer Speicherressource alle relevanten Informationen gesammelt und gespeichert. (Architektur, Beziehungen, Symptome, change requests und change plans) Diese globale Wissensquelle ist für alle Autonomic Managers zugänglich, so dass jeder seine erforderlichen Schlüsse daraus entnehmen kann. 1 Touchpoints stellen Interfaces bzw. Schnittstellen zu einem Managed Elemnt dar. Christian Adam Seite 11 von 16 Seminararbeit – Autonomic Computing Es gibt weitaus tiefgründigere Vorstellungen bezüglich der Architektur eines autonomen Systems, vor allem bezüglich der Implementierung und Interaktionen der Autonomic Managers (Referenzarchitektur von IBM). Jedoch sollten die oben geschilderten Erkenntnisse für eine grobe Anschauung der grundlegenden Architektur autonomer Computersysteme genügen. 5. Integrationsstufen (Autonomic Maturity Levels) “An evolution, not a revolution!” [4] Autonomic Maturity Levels sind spezifizierte Integrationsstufen bzw. Reifegrade, die Entwicklungsstufen von autonomen Systemen darstellen. In diesem Zuge müssen bestehende Systeme schrittweise einen höheren Grad an Selbstverwaltung erlangen. Die Wissenschaft bietet verschiedene Theorien über die Anzahl der Evolutionsstufen. IBM sieht im Jahre 2003 speziell folgende fünf Integrations-Levels vor: Abb. 7: Autonomic Maturity Levels [4] BASIC (Level 1) Auf diesem Niveau befinden sich die meisten kommerziellen Computersysteme. IT-Mitarbeiter führen alle notwendigen Aufgaben und Veränderungen am System selber durch. Das Personal steckt somit enormen Aufwand in das Aufbauen, die Überwachung und Ersetzung der einzelnen Komponenten. Jede individuelle Komponente wird dabei unabhängig von allen anderen verwaltet. Christian Adam Seite 12 von 16 Seminararbeit – Autonomic Computing Managed (Level 2) Im Managed Level wird eine unabhängige und selbstständige Komponente (System-Management tool) eingesetzt, die dem Administrator das Sammeln von Informationen verschiedener Systemkomponenten abnimmt und diese zusammenfasst. Die IT-Mitarbeiter müssen anschließend lediglich erforderliche Maßnahmen einleiten. Zu dieser Ebene können schon einige heutige Softwaresysteme wie DB2 kategorisiert werden, die bereits ansatzweise autonome tools dem Benutzer zur Verfügung stellen. Predictive (Level 3) – „voraussagend“ Die autonome Komponente aus Level 2 erhält eine Analysefähigkeit, um die Systemumgebung zu überwachen. Weiterhin werden dem Entwickler Vorschläge für potentielle Szenarien bereitet. Der Entwickler trifft ab jetzt nur noch eine Auswahl aus den zur Verfügung stehenden Alternativen. Adaptive (Level 4) – „lernfähig“ Ab diesem Abstraktionslevel kann die autonome Komponente selbstständig eine Auswahl der möglichen Szenarien mit Hilfe einer Symptomdatenbank treffen. Die Selektion bzw. Abwägung der Alternativen geschieht immer in Betracht auf zentrale Richtlinien (SLAs), die von den Mitarbeitern spezifisch vorgegeben werden und an denen sich die autonome Komponente orientiert um optimale Performance zu garantieren. Autonomic (Level 5) Der letzte Reifegrad fordert die vollkommene Automation des Systems. Die Richtlinien aus Level 4 werden abstrahiert, so dass globalere Ziele vorgegeben werden können. Hier kann generell die Geschäftspolitik eines Unternehmens präzisiert werden um Geschäftsabläufe autonom vonstatten gehen zu lassen. Christian Adam Seite 13 von 16 Seminararbeit – Autonomic Computing 6. Ausgewählte Heutige Ansätze Die Realisierung der Vision des Autonomic Computing benötigt die Zusammenarbeit von Industrie und Wissenschaft auf der ganzen Welt. Im Forschungsbereich der Industrie haben bereits einige etablierte Unternehmen Softwareprodukte generiert bzw. besitzen konkrete Projekte, die sich derzeit noch in der Entwicklungsphase befinden. Tabelle1 zeigt einen Überblick über einige Projekte Anwendungsfelder. Tabelle 2 zeigt wissenschaftliche Forschungsprojekte, die größtenteils noch in der Entwicklung stehen, aber klaren Vorstellungen unterliegen. Unternehmen Software / Projekt Virus-throtteling Hewlett Packard Anwendungsfeld • • Software Utility Data Center • • IBM eLiza • • Intel Itanium 2 SUN N1 • • • Virenschutz System wird in herabgesetzten Modus ausgeführt um Verbreitung eines Virus zu verhindern Analysetool, analysiert Systemumgebung und verfügbare Ressourcen Lokalisierung fehlerhafter Speicherchips Schutz vor Hackerangriffen Self-Configuring / SelfOptimizing Fehlererkennung/-behebung Self-Configuring Verwaltet Speicher und Ressourcen Tabelle 1: Industrielle Projekte [6] Universität Edinburgh Uni Großbritannien Monash Uni Australien Uni of California Berkeley Uni of Maryland Baltimore County Software / Projekt Neuromation eLiza ROC - Recovery Oriented Computing OceanStore • Autonome Erfassung der Datenstruktur • Unterstützt termingerechte Geschäftsabwicklung Unterstützt hochverfügbare Internetdienste Fehlerreparatur Persistenter Datenzugriff auf globalen Datenspeicher Kooperation autonomer Komponenten Kollektive Zielerfüllung • • • • eBiquity • Tabelle 2: Wissenschaftliche Projekte [6] Christian Adam Anwendungsfeld Seite 14 von 16 Seminararbeit – Autonomic Computing 7. FAZIT Die Vorstellung des Autonomic Computing ist eine fantastische Vision. Allerdings liegt momentan die Betonung auf dem Wort „Vision“. Autonomic Computing in seiner vollen Entfaltung bedarf noch einer enorm langen Entwicklungszeit und wahnsinnig viel Forschungsaufwand. Doch wie Paul Horn meinte lohnt es sich diese Herausforderung anzunehmen. Dazu sind kollektive Forschungsarbeiten zwischen Industrie und wissenschaftlichen Abteilungen unabdingbar. Erworbene Erkenntnisse und Wissen müssen einem offenen Informationsaustausch unterliegen um die Ziele des Autonomic Computing vollkommen auszuschöpfen. Eine Hürde werden dabei die Überzeugungsarbeiten an Unternehmen und Forschungsabteilungen sein. Diese Wirtschaftssubjekte müssen sowohl teilweise Kosten des Forschungsaufwandes tragen, als auch die Risiken eines nicht vollständig entwickelten autonomen Systems auf sich nehmen. Mit der Umsetzung der Vision sollen Administratoren nicht ersetzt, sondern vielmehr entlastet werden. So können sie sich auf wesentliche Aufgaben konzentrieren, während autonome Tools konventionelle Routineaufgaben durchführen. Den Administratoren kommt in diesem Zuge maximal noch die Aufgabe der Überwachung der autonomen Abläufe zu. Genau in diesem Punkt könnte ein Problem auftauchen, welches man in der Wissenschaft als „Autonomation Paradoxon“ bezeichnet. Die Fehlerrate des Menschen beim Überprüfen automatisch generierter Ergebnisse ist oft schlechter, als hätte er selber aktiv daran mitgearbeitet. Somit könnte der Mensch in gewisser Hinsicht selbst eine Grenze der vollen Automation werden. Darüber hinaus wird die Leistungsfähigkeit von Hardware als eine weitere Beschränkung des Autonomic Computing angesehen. Selbst ein optimal realisiertes autonomes System kann mangelnder Hardware nicht entgegenwirken. Beispielsweise werden Sylvester weiterhin alle Handynetze ausfallen, da alle SMS-Proxy-Server der Mobilfunkanbieter hoffnungslos überlastet sind und das auch autonome Systeme nicht ausgleichen können. Christian Adam Seite 15 von 16 Seminararbeit – Autonomic Computing Literaturverzeichnis • [1] www. Wikipedia.org • [2] IBM „An architectural blueprint for autonomic computing” June 2005 Third Edition • [3] Paul Horn „Autonomic Computing Manifesto” WWW.RESEARCH.IBM.COM/AUTONOMIC/MANIFESTO • [4] G. Ganek/ T. A. Corbi „The dawning of the autonomic computing era” IBM SYSTEMS JOURNAL, VOL 42, NO 1, 2003 • [5] Jeffrey Kephart/ David Chess „The vision of Autonomic omputing” January 2003 • [6] Siew Fan Wong „ISRC Future Technology Topic Brief” • [7] Said Elnaffar, Wendy Powley, Darcy Benoit, and Pat Martin „Today’s DBMSs: How autonomic are they?” September 2003 Christian Adam Seite 16 von 16