Autonomic Computing - Distributed Systems Group
Transcription
Autonomic Computing - Distributed Systems Group
Ausarbeitung - Grundlagen Methodischen Arbeitens (GMA) Jan El-Berry Autonomic Computing Kurzfassung Die stetig wachsende Komplexität von modernen Computersystemen macht eine manuelle Überwachung und Konfiguration zunehmend schwieriger. Die gravierend gestiegenen Wartungskosten der letzten Jahrzehnte, sowie ein zunehmender Einsatz von Rechnernetzen in sehr sensiblen wirtschaftlichen und öffentlichen Bereichen des Alltags, hat den noch recht neuartigen Begriff des „Autonomic Computing“ ins Bewusstsein des technischen Managements gebracht. Auf den folgenden Seiten werden Konzepte von autonomen Computersystemen erläutert sowie eine Bewertung zur Einsetzbarkeit, Reifegrad der Technologie und wirtschaftlichen Relevanz solcher Systeme beschrieben. Weiters werden konkrete Ansätze zur Verwirklichung von „Autonomic Computing“ vorgestellt und kritisch hinterfragt. Inhaltsverzeichnis Inhaltsverzeichnis.................................................................................................................. 3 1. 2. 3. Einleitung....................................................................................................................... 4 Related Work................................................................................................................. 4 Grundlagen.................................................................................................................... 5 3.1. Geschichte............................................................................................................. 5 3.2. Anforderungen ....................................................................................................... 5 4. Generelle Architektur ..................................................................................................... 8 5. Entwicklungen & Produkte ............................................................................................. 9 5.1. IBM .......................................................................................................................10 5.2. SUN ......................................................................................................................11 5.3. HP.........................................................................................................................12 6. Ausblick ........................................................................................................................13 7. Fazit .............................................................................................................................13 Abbildungsverzeichnis..........................................................................................................14 Literaturverzeichnis ..............................................................................................................14 1. Einleitung Auf Grund zunehmender Vernetzung und Computerisierung unserer Gesellschaft nehmen hochkomplexe Computersysteme auf der ganzen Welt Einzug in wesentliche Bereiche des Alltags. Eine zunehmend wissensbasierte und dienstleistungsorientierte Gesellschaft zieht ihre Berechtigung vor allem aus ihrer Arbeitseffizienz und stetiger Verfügbarkeit von Information und Arbeitsleistung. Bis zum jetzigen Zeitpunkt wurden wichtige Effizienzsteigerungen des Workflows durch den Einsatz neuer Technologien und ausgefeilter Softwaresysteme erreicht. Die im Laufe der Zeit immer komplexer gewordenen Rechnernetze, denen diese Entwicklungen zu Grunde liegen, entwickeln sich jedoch zunehmend zu einem Problem, das den scheinbar uneingeschränkten Entwicklungsmöglichkeiten natürliche Grenzen setzt. Diese Grenzen werden vor allem durch die oft aufwändig und daher kostenintensiv gewordene Administration und Wartung der Systeme gesetzt. Die Einarbeitung in die Funktion und die Logik großer Netze oder verteilter Softwarestrukturen, wie auch deren Adaption und Fehlerkorrektur übersteigt nunmehr oftmals die Kosten einer Systemerneuerung bzw. eines kompletten Systemersatzes. Ehemals effizienzsteigernde IT-Komponenten werden nun zu einem Hindernis bei der Erhaltung eines stabilen und hochverfügbaren Systems. Diese natürlichen Grenzen sind vor allem dort anzutreffen wo die geistige Kapazität eines Individuums oder eines Teams nicht mehr ausreicht um entstandene Fehler rasch nachvollziehen und weitsichtig, also ohne eventuelle Auswirkungen auf andere Komponenten, korrigieren zu können. Ohne den massiven Einsatz und der „Entdeckung“ neuer Technologien durch eine Unzahl von Unternehmen hätte dieser recht neue Denkansatz bzw. die Vision von weitgehend autonomen Computersystemen wohl nie dermaßen an Bedeutung gewonnen. Erst durch das Erlangen wirtschaftlicher Relevanz und den Einsatz neuer Technologie unter realen Bedingungen wurden in der Entwicklung noch nicht vorhersehbare Probleme erkannt. Das Konzept des „Autonomic Computing“ wird zur Veranschaulichung oftmals mit dem menschlichen Körper, im Speziellen dem zentralen Nervensystem (engl. „autonomic central nervous system“) verglichen, das zur selbstständigen Regulierung und Kontrolle teils hochkomplexer Vorgänge fähig ist. Es erscheint selbstverständlich dass keine bewusste Anpassung an äußere Umstände lebensnotwendiger Funktionen wie z.B. dem Herzschlag, der Verdauung oder der Virenabwehr erfolgen muss. Äquivalent hierzu sollte nun ein neuer Weg des Selbstmanagements in der IT-Branche zur Vereinfachung komplexer Systeme und zur Fokussierung menschlicher Ressourcen auf die eigentlichen unternehmensrelevanten Arbeitsprozesse eingeschlagen werden. Der englische Begriff des „Autonomic Computing“ der hauptsächlich von IBM geprägt wurde, wird uns in weiterer Folge als Überbegriff für sämtliche Konzepte mit weitgehend äquivalenten Zielen dienen. Im Rahmen dieser Ausarbeitung wird die grundsätzliche Architektur eines Autonomic Computing Systems vorgestellt und produktspezifische Konzepte erläutert und hinterfragt, die das Ziel haben eine derartige Architektur im Grundzügen zu verwirklichen. 2. Related Work [Manoel et al, 2005] – beleuchtet sämtliche allgemeinen und speziellen Aspekte des Autonomic Compuntings inklusive technischer Details, aktueller IBM-Produkte und Konfigurations- sowie Einsatzmöglichkeiten. [IBM, 2001] – Erste konkret formulierte Idee zum Thema Autonomic Computing aus den IBM Labors. Aufstellung wesentlicher, zukunftsweisender Grundprinzipien. Seite 4 von 14 [IBM, 2005] – Architektonische Überlegungen und Entwicklung eines Leitfadens zur Implementiernug eines Autonomic Computing Systems. [Sterritt & Hinchey, 2005] – Beschreibt die grundsätzliche Entwicklung von Autonomic Computing sowie den aktuellen Stand. Einschätzung der Möglichkeit einer Umsetzung im Rahmen von Softwaresystemen. [Ganek & Corbi, 2003] – Zeigt unterschiedliche Einsatzmöglichkeiten und Bedarf von Autonomic Computing auf. Zusammenfassung der Grundprinzipien und Beschreibung der weiterführenden AC-Kategorisierung bestehender Systeme. 3. Grundlagen 3.1. Geschichte Die Geschichte von Autonomic Computing ist bis zum heutigen Zeitpunkt eine vergleichweise Junge. Das Groß der Weiterentwicklung und die eigentliche Idee entsprang den Entwicklungslabors von IBM. Entsprechend machte IBM den Beginn mit seiner Autonomic Computing Initiative und der Veröffentlichung des „Autonomic Computing Manifesto“ welches die prinzipielle Idee der Technologie populärwissenschaftlich umreißen und einen Denkanstoß für zukünftige Entwicklungen geben sollte. Es folgten internationale Konferenzen wie der „Autonomic Computing Workshop“ auf dem Annual International Workshop on Active Middleware Services (AMS) im Jahr 2003 sowie 2004 die Einrichtung einer jährlichen Konferenz des IEEE – der International Conference on Autonomic Computing (ICAC). Betrachtet man nun den Zeitraum in welchem die Thematik des Autonomic Computing an Relevanz gewonnen hat, lässt dieser recht neuartige Denkansatz auf vielversprechende und zukunftsweisende Technologien hoffen. Diese Hoffnung wird durch den Beitritt wichtiger ITUnternehmen wie HP, Sun und Microsoft zur Autonomic Computing Initiative sowie durch die Ausweitung der Thematik auf eine wissenschaftliche Ebene, welche im Rahmen der jährlich stattfindenden IEEE Konferenz bereits einige akademische Arbeiten hervorgebracht hat, bestärkt. Vor allem letzterer Punkt bietet eine vielversprechende und solide Basis für weitere Entwicklungen. 3.2. Anforderungen Ein erster grober Entwurf welcher die prinzipiellen Eigenschaften eines als autonom betrachteten Systems beschreibt, wurde im Jahr 2001 von IBM als „Autonomic Computing Manifesto“ [IBM, 2001] veröffentlicht. Das Manifest beschreibt folgende Vorraussetzungen: 1. „Selbsterkennung“ – Ein autonomes System kennt sich selbst und weiß über seinen Status und damit verknüpfte Eigenschaften bescheid. Es muss sämtliche an das System angefügte Komponenten oder Zusatzsysteme erkennen und in seine Systemidentität aufnehmen können. 2. „Selbstkonfiguration“ – Ein autonomes System muss in der Lage sein sich selbst zu konfigurieren und sich an unterschiedliche, unvorhersehbare Bedingungen anzupassen. Der Gedanke der Selbstkonfiguration geht dabei weit über eine simple Anpassung von Serveroptionen hinaus. Das Gesamtsystem, bestehend aus unter Umständen mehreren tausend Servern muss den Bedingungen entsprechend untereinander synchronisiert seine Eigenschaften (z.B. Durchsatzrate, Error-Logging, Sicherheitslevels,...) adaptieren um den bestmöglichen Arbeitsfluss zu gewährleisten. Seite 5 von 14 3. „Selbstoptimierung“ – Einem autonomen System muss es möglich sein suboptimale Prozesse zu erkennen und diese zu optimieren um ein möglichst effizientes Gesamtsystem zu gewährleisten. Einen Status-Quo im herkömmlichen Sinn darf nicht existieren, da sich die oft komplexen Anforderungen und Bedingungen eines modernen Unternehmens in gewisser Regelmäßigkeit ändern. Alle an das System angeschlossenen Komponenten, unabhängig davon wie Speziell die Aufgabe des Gerätes oder der Software auch sein mag, müssen über einheitliche Schnittstellen angepasst und reguliert werden können. 4. „Selbstheilung“ – Ein autonomes System muss potentielle Fehler und Probleme erkennen und korrigieren bzw. umgehen können ohne den Arbeitsfluss zu behindern. Ist ein Teil des Systems beschädigt oder nicht verfügbar muss es kurzfristig für Ersatz sorgen können um die Gesamtfunktionalität möglichst vollständig aufrecht zu erhalten. Besonders dieses Verhalten ist dem menschlichen Gehirn nachgeahmt, welches versucht bei irreparabler Beschädigung eines Bereichs die benötigten Prozesse in ähnlich strukturierte Teile des Gehirns zu verlagern. Grundsätzliche Regeln zur Definition des Heilungsprozess sollten anfangs von IT-Experten definiert werden. Mit fortschreitender Entwicklung von Autonomic Computing sollte das System selbstständig in das vorgegebene Schema passende neue Regeln zur Selbstheilung erzeugen. 5. „Selbstschutz“ – Ein autonomes System muss in der Lage sein seine Ressourcen vor internen und externen Angriffen zu schützen sowie die Systemintegrität- und Sicherheit in seiner Gesamtheit zu gewährleisten. Das letztendliche Ziel ist also eine Art „digitales Immunsystem“ dem ein ausgefeiltes Network Intrusion System zu Grunde liegt. Dieses sollte bei Gefahr nicht nur den Systemadministrator über ein Eindringen informieren, sondern vor allem die Problemanalyse und Reparatur selbstständig durchführen. 6. „Kontextsensitivität“ – Ein autonomes System muss in der Lage sein sich in einer gegebenen Systemlandschaft zu integrieren und zu interagieren. Das Verhalten inkludiert dabei die Auffindung bestmöglicher Wege mit seiner Umgebung zu kommunizieren was den Kontext der jeweiligen Transaktion sehr Wesentlich macht. Ein anschauliches Beispiel ist der Aufruf einer komplexen Website über ein einfaches Handy. Ein autonomes System ordnet den Kommunikationspartner richtig ein und stellt eine sinnvolle Menge an Informationen der Website zur Verfügung. 7. „Offenheit“ - Ein autonomes System muss in einer heterogenen Systemlandschaft im Rahmen unterschiedlicher Hardware- und Softwarearchitekturen funktionieren wodurch eine Verwendung offener Standards unumgänglich ist. Ein solches System kann also per Definition nicht proprietär sein und muss sich der Doktrin der Open Source Gemeinschaft unterwerfen aus welcher Innovationen wie Linux, Apache und UDDI entstanden sind. 8. „Vielschichtigkeit“ (Selbstmanagement) – Das wahrscheinlich wichtigste Ziel eines autonomen Systems von der Anwenderseite betrachtet ist es, seine eigentliche Komplexität optimal zu verbergen. Eine vom User angeordnete Aufgabe muss vom Autonomic Computing System in Eigenmanagement gelöst werden ohne dass sich der Benutzer mit der Lösungsmethode oder der Implementation auseinandersetzen muss. Dieser „Leitfaden“ zur Entwicklung eines autonomen Systems ist zum jetzigen Zeitpunkt vor allem auf Grund der hohen Dichte von proprietären Lösungen innerhalb einer großen ITInfrastruktur noch weitgehend unverwirklichbar. Doch bereits der grundsätzliche Gedanke sowie die ersten Verwirklichungsversuche ambitionierter IT-Unternehmen sind ein wichtiger Schritt in Richtung eines neuen Zeitalters. Die genannten Regeln lassen sich zur leichteren Seite 6 von 14 Abbildung bestehender Systeme und zur besseren Einschätzung der Autonomiestufe auf vier Kerneigenschaften (CHOP – Eigenschaften) reduzieren: • • • • self-configuring self-healing self-optimizing self-protecting Die vollständige Umsetzung eines autonomen Systems ist zwar noch in weiter Ferne, die Integration von bereits umsetzbaren Eigenschaften und Features in abgeschlossenen Systemen oder Softwarekomponenten geschieht jedoch in einer Vielzahl von Produkten [Sterritt & Hinchey, 2005] Zur Einordnung des Grades der Autonomie bestehender ITInfrastruktur und Systeme dienen die „Levels of Autonomic Computing Maturity“. Abbildung 1: Levels of Autonomic Computing Maturity [Manoel et al, 2005] Das Modell unterteilt den Reifegrad eines Systems in fünf unterschiedliche Stufen [Ganek & Corbi, 2003] • Basic (Level 1) – Repräsentiert im Wesentlichen den Zustand der meisten im Moment eingesetzten Informationssysteme. Grundsätzliche Anforderungen die an das System gestellt werden, können mit Hilfe von ständiger Bereitschaft des ITFachpersonals erfüllt werden. Bei Problemen oder notwendig gewordenen Adaptierungen müssen die Anpassungen von den Verantwortlichen getroffen werden. • Managed (Level 2) – Ermöglicht einem Administrator durch weitgehend zentralisierte Management Tools wichtigsten zur Problemanalyse und Problembehebung benötigten Informationen an wenigen Stellen zu betrachten. Die Informationssammlung und Filterung erfolgt im Wesentlichen automatisch was bereits eine wichtige Kostenersparnis im „human resource“ Bereich zur Folge haben kann. • Predictive (Level 3) – Mit der Einführung offener Schnittstellen und Technologien welche einen gemeinsamen Nenner unterschiedlicher Systemkomponenten ermöglichen, beginnt das System mittels Mustererkennung möglichst optimale Konfigurationen und Kommunikationswege zu ermitteln. Vorschläge zur Seite 7 von 14 Vorgehensweise und Adaptierung des Systems werden dem Administrator über ein die Administrationstools mitgeteilt. • Adaptive (Level 4) – Das System kann auf Basis der ihm zur Verfügung stehenden Informationen über seine Umgebung und sich selbst die richtigen Entscheidungen über prinzipielle Einstellungen selbstständig treffen. Ab diesem Level werden gewisse Adaptierungen des Systems auch ohne Bestätigung durch eine administrative Instanz getroffen. • Autonomic (Level 5) – Level 5 repräsentiert ein autonomes System welches mit Hilfe von wohldefinierten Zielen und Business Policies Entscheidungen trifft. Geschäftsprozesse können vom Benutzer beobachtet und Ziele neu definiert werden. 4. Generelle Architektur Die Architektur eines herkömmlichen technischen Systems orientiert sich vor allem an den letztendlich zur Verfügung gestellten applikationsspezifischen Funktionalitäten und ist normalerweise in eine Laufzeitumgebung welche sich um die Fehlerbehandlung und Ausführung des Programms kümmert, eingebettet (Bsp.: Java Runtime Environment in Verbindung mit einer Java-Applikation). Ein autonomes System besitzt Komponenten die über diesen Kontext hinaus mit dem umgebenden System kommunizieren sowie sich das System als Ganzes überwachen. Diese sind wie folgt spezifiziert [IBM, 2003] : • Negotiation – Interagiert mit der Umwelt und kommuniziert jene Anforderungen welche die Umwelt an das AC-System hat und umgekehrt. Das Ziel der Komponente ist die Generierung von Verhaltensspezifikationen und Regeln mit Hilfe deren optimal mit der Systemumwelt zusammengearbeitet werden kann. Diese Verhaltensspezifikation wird in die „Shared Knowledge“ - Basis (siehe Abbildung 2) eingefügt. • Deliberation – Wird eine neue Spezifikation eingefügt die dem aktuellen Verhaltensmuster nicht entspricht, wird der Deliberation Prozess aufgerufen welcher aus der Spezifikation das entsprechende Verhalten konstruiert. Dieses wird wieder an die Negotiation Komponente weitergeleitet welche über die Ausführung des Verhaltens entscheidet. Dieser auf den ersten Blick unnötige Schritt geschieht unter Anderem deswegen um sicherzustellen dass das Verhalten während des beschriebenen Prozesses auf Grund geänderter Parameter noch nicht obsolet geworden ist. • Observation – Diese Komponente erhält Statusinformationen aus der Systemumwelt mit Hilfe derer die Auswirkungen eines durch die Execution Komponente ausgeführten Verhaltens beobachtet werden kann, ohne zu wissen was einen unter Umständen geänderten Status ausgelöst hat. Aus den Informationen wird eine zur Analyse brauchbare Repräsentation der Daten gewonnen und von der Failure Recovery ausgewertet. • Failure Recovery – Erhält zur Auswertung und zur Evaluierung der weiteren Vorgehensweise Informationen von zwei voneinander unabhängigen Komponenten. Execution liefert den durch die Ausführung der Aktion vorraussichtlich zu erwartenden Zustand der Umwelt. Über Observation erhält die Komponente indirekt den tatsächlichen Zustand. Zur Fehlerbehebung wird die Anzahl und die Art der Unterschiede der Informationen verglichen. Je nachdem wie gravierend die Differenz ausfällt werden entsprechende Gegenmaßnahmen eingeleitet. Bei geringen Abweichungen wird zur Korrektur lediglich ein recovery behavior an die Execution Komponente weitergeleitet. Bei größeren Abweichungen wird das Verhalten neu Seite 8 von 14 spezifiziert und über den Deliberation Prozess an die Negotiation Komponente weitergeleitet welche das fehlerauslösende Verhalten in Execution unter den entsprechenden Umständen ersetzt. • Execution – Führt das ihm übergebene Verhalten aus und Informiert Failure Recovery über die zu erwartenden Auswirkungen. Abbildung 2: Allgemeine AC-Architektur [IBM, 2003] Die auf drei Komponenten eingeschränkte Interaktion zwischen System und Umwelt soll vor allem der Verwirklichung der Eigenschaften Selbstschutz und Vielschichtigkeit dienen. Ein System mit einigen wenigen kontrollierten Kommunikationswegen und Schnittstellen ist weniger anfällig auf Attacken und bietet bessere Möglichkeiten seine interne Komplexität vor dem Benutzer zu verstecken. Die Deliberation – Komponente repräsentiert die Eigenschaften der Selbstoptimierung und Kontextsensitivität wobei eine zufriedenstellende Implementierung dieses Systemteiles ausschließlich mit Hilfe fortgeschrittener Mechanismen künstlicher Intelligenz verwirklicht werden. Die Komponente Failure Recovery ergänzt das System vor allem um Fähigkeiten zur Selbstheilung und zum Selbstschutz, Negotiation dient per Definition der weiterführenden Selbstkonfiguration. Das oben umrissene Modell dient jedoch ausdrücklich nur als grundsätzlicher DesignLeitfaden. Bei der Implementierung eines spezifischen Systems wird eine weitere Verfeinerung des Modells vor allem dann von Nöten sein, wenn sich die Systemteile in lokale und globale Komponenten unterteilen. Auch könnten sich einige Komponenten in der Umsetzung als dermaßen komplex herausstellen, dass eine weitere Gliederung in funktionsspezifische Bereiche erfolgen muss oder diese sogar selbst als AC-System umgesetzt werden müssen. 5. Entwicklungen & Produkte Im folgenden Kapitel soll ein konkreter Implementierungsansatz eines Autonomic Computing Systems erläutert, sowie einige bereits existierende Produkte exemplarisch beschrieben werden, welche bereits Teile dieser Vision verwirklichen. Der Fokus wurde dabei auf Entwicklungen der Firma IBM gelegt. IBM repräsentiert in diesem Bereich quasi den technologischen Vorreiter und unternimmt die wohl vielversprechensten Anstrengungen in Richtung eines ausgereiften und weitgehend autonomen Gesamtsystems. Seite 9 von 14 5.1. IBM Einen ersten konkreten Implementierungsansatz gibt IBM in seinem „Architectural blueprint for autonomic computing“ [IBM, 2005] welcher sich an den bereits beschriebenen Leitfaden orientiert. Hervorzuheben ist dabei, dass dieser Lösungsansatz die aktuellen technischen Gegebenheiten und Möglichkeiten berücksichtigt. Das System bietet weder einen Lösungsansatz für Problemstellungen der künstlichen Intelligenz noch ausgeprägte Fähigkeiten zur selbstständigen Entscheidungsfindung, sondern basiert auf Erkenntnissen und Erfahrungswerten im Gebiet der verteilten Systeme. Wie in Abbildung 3 zu erkennen, wird ein erstes Autonomic Computing System in mehrere hierarchisch organisierte und miteinander verbundene Komponenten unterteilt. Abbildung 3: Architektur eines Autonomic Systems [IBM, 2005] • Managed Ressource – Stellt wie der Name schon sagt eine managebare Resource dar. Diese umfasst theoretisch jede Hard- und Softwarekomponente eines Netzwerks und kann bis zu einem gewissen Grad auch die Fähigkeit des Selbstmanagements besitzen. • Manageability endpoints (Touchpoints) – Definieren die ManagementSchnittstellen zu den als „Managed Ressources“ bezeichneten Endpunkten. Ein Manageability endpoint besteht aus einem sensor zum Empfang von Daten aus der gemanageten Ressource und einem effector zum Ausführen der angeordneten Operationen. Besonders wichtig ist hier die Verwendung von offenen Standards wie WSDM (Web Service Distributed Management). • Autonomic manager – Sind die komplexesten und gleichzeitig wichtigsten Komponenten der Architektur. Auf Grund der vielfältigen Aufgaben der Komponente setzt sich diese aus den Teilen Monitor, Analyze, Plan und Execute zusammen. Analog zu diesen bereits beschriebenen Komponenten formen diese ein dynamisches System welches das Verhalten der ihnen zugeordneten Ressourcen bestimmt. Übergeordneten Elemente (Orchestrating Autonomic Manager) spannen ähnliche Strukturen nochmals über die Einzelsysteme um dem Netzwerk den ausschlaggebenden Charakter eines Autonomic Computing Systems zu verleihen. • Knowledge source – Repräsentiert eine Datenbank oder ein ähnliches Speichermedium in dem unterschiedliche Vorgaben und Verhaltensregeln Seite 10 von 14 gespeichert werden. Wird permanent durch den „Autonomic Manager“ aktualisiert und erweitert. • Manual manager – Ist die Implementierung einer grafischen Benutzerschnittstelle über die ein Benutzer (IT-Spezialist) mit anderen Benutzern kommunizieren und Vorgaben bzw. Policies für übergeordnete „Autonomic Manager“ spezifizieren kann. Eine konkrete Implementierung der beschriebenen Architektur in Form eines Gesamtsystems existiert bis heute nicht. Es gibt jedoch eine Vielzahl an Produkten die die Eigenschaften einzelner Komponenten umsetzen und in der Lage sind in einem gemeinsamen Netzwerk miteinander zu arbeiten und sich gegenseitig zu ergänzen. IBMs „Tivoli“ – Softwareinitiative ist ein Überbegriff für eine Vielzahl an Produkten welche dem Kunden die Möglichkeit von durchgängigem Netzwerk- und Systemmanagements bietet. Beispiele für konkrete Anwendungen der Software wären Datensicherung, Netzwerk- und Rechnerüberwachung sowie automatische Inventarisierung und automatische Softwareverteilung. Da eine detaillierte Beschreibung der Produkte den Rahmen der Arbeit sprengen würde, werden in weiterer Folge drei Produkte der Tivoli – Reihe exemplarisch umrissen: • Tivoli Availability Process Manager – Stellt Eigenschaften zur Verfügung, mit deren Hilfe man den Einfluss von Ereignissen auf kritische Geschäftsabläufe oder Serviceleistungen ermitteln und auswerten kann. Im Rahmen dessen bietet das Produkt also die Möglichkeit zur Klassifizierung von Servicestörungen aus Sicht des Unternehmens. Ein derartiges System repräsentiert am ehesten die Eigenschaften der Selbstoptimierung und Selbstheilung eines Autonomic Computing Systems. • Tivoli Change and Configuration Management Database – Ist ein integriertes Tool zur Management, Überwachung und Koordination sämtlicher Unternehmensprozesse welche das Change- und Configurationmanagement betreffen. Zur Erhaltung der Systemintegrität sowie zur Unterstützung des Entscheidungsfindungsprozesses werden zahlreiche Informationen über IT-Infrastruktur Ressourcen, Konfigurationen sowie physikalische und logische Abhängigkeiten zwischen mehreren Ressourcen gespeichert. Entsprechend dem Namen des Produkts kann es den Bereichen Selbsterkennung und ansatzweise Selbstkonfiguration auf Autonomic Level 3 (siehe Abbildung 1) zugeordnet werden. • Tivoli Capacity Process Manager – Ermöglicht dem Anwender die zentrale Verwaltung aller kapazitätsorientierten Aktivitäten über eine grafische Benutzeroberfläche. Das umfasst die Erstellung, Zuordnung und Überwachung von Kapazitätstasks sowie eine regelmäßige Statusrückmeldung auf Basis voreingestellter Muster. Entspricht einem Automomic Level (siehe Abbildung 1) zwischen Stufe 2 und 3 und dient der Selbstoptimierung. 5.2. SUN Sehr ähnlich wie IBM’s Softwere Tivoli zeigt sich der grundsätzliche Ansatz von SUN mit seiner N1-Softwarereihe. Mit einer Vielzahl von Softwaremodulen welche dazu in der Lage sind jeweils einen Teilaspekt des Autonomic Computing Gedankens in einem Netzwerk umzusetzen, versucht sich SUN am Markt zu etablieren. Die einzelnen Produkte lassen sich auf Grund von weitgehender Betriebssystemunabhängigkeit (Windows, Linux, Mac OS) bis zu einem gewissen Grad in eine bereits bestehende heterogene Systemlandschaft integrieren. Exemplarisch soll ein Kernelement des Systems umrissen werden [SUN, 2007]: • N1 System Manager – Bietet zentrale Administrations-, Monitoring- und Überwachungsmöglichkeiten von SUN – Serversystemen. Interessant erscheint vor allem die automatische Erkennung bestehender sowie zugeschalteter Komponenten Seite 11 von 14 und die Möglichkeit der fein granulierten Kontrolle von Utility Computing Mechanismen (entsprechende Modulen vorausgesetzt). Sun’s N1 System erscheint recht funktionell und aus technischer Sicht sehr ausgereift. Die Hauptproblematik liegt hier aber vor allem in der Verwendung von praktisch ausschließlich proprietären Technologien was die Einsatzmöglichkeit der einzelnen Komponenten in einem heterogenen System mehr oder weniger stark einschränkt. 5.3. HP Eine der größten Entwicklungsinitativen der letzten Jahre stellte die Entwicklung des HP Utility Data Center dar. Mit einem aus technologischer Sicht recht großen Schritt vorwärts wollte sich HP bis 2004 an die Spitze des Autonomic Computing Marktes katapultieren. Das System (bestehend aus einer Kombination von Hard- und Software) sollte ein weitgehend zentrales und teils automatisiertes Systemmanagement von unterschiedlichsten Komponenten (Server, Datenbanken, Netzwerkkomponenten, Sicherheitssystemen) in einer hochgradig heterogenen Systemlandschaft auf Utility Computing – Basis ermöglichen [ZDNet, 2003] Abbildung 4 zeigt den grundsätzlichen Aufbau des HP Uility Data Centers. Den für die Datenverarbeitung sowie für die Datenspeicherung verantwortlichen Elementen (z.B. Server) ist es möglich unter einer Vielzahl an unterschiedlichen (Betriebs-)Systemen zu operieren. Die integrierte Utility Kontrollsoftware managed dabei sämtliche Systeme inklusive aller verbindenden Netzwerkelemente und erlaubt es einem Datacenter Manager über eine zentrale Konsole neue Ressourcen zu aktivieren und bestehende Ressourcen neu zu ordnen. Die OpenView Technologie bietet sogenanntes Enterprise Level Management unter Anderem für die Bereiche Ressourcen- und Sicherheitsmanagement [HP, 2003] Abbildung 4: Aufbau des HP Utility Data Center [HP, 2003] Die Einstellung des Projekts erfolgte im Jahr 2004 auf Grund von mangelnder Rentabilität. Wegen der horrenden Einstiegskosten von ca. 1.000.000 US-Dollar konnten in den ersten Jahren nach Veröffentlichung des Systems nur eine handvoll Kunden aquiriert werden. Neben den extrem hohen Basiskosten wurden dem System ebenfalls zu hohe Consulting – Kosten zur reibungslosen Funktion innerhalb einer heterogenen Netzlandschaft zum Verhängnis. Das Utility Data Center stellt definitiv eines der gewagtesten und aus Sicht des Automomic Computing – Gedankens, fortschrittlichsten Unternehmungen der letzten Jahre dar. Die Pleite des Projekts unterstreicht den Eindruck, dass die Zeit für ein solches Gesamtsystem noch nicht reif zu sein scheint. Der Umweg einer Vereinheitlichung von von Grund auf unterschiedlicher Systeme durch eine übergeordnete Struktur ist ein Weg welcher wie am UDC deutlich zu sehen war, zum scheitern verurteilt ist. Viel eher muss die gesamte IT-Landschaft durch verstärkte Zusammenarbeit und durch den massiven Einsatz offener Standards homogener werden. Seite 12 von 14 6. Ausblick Der derzeitige Stand der Dinge im Bereich Autonomic Computing Development zeigt sich sehr differenzierter Form. Es existiert eine hohe Anzahl an Produkten welche primär einzelne Teile des Autonomic Computing Konzepts umsetzen. Ein umfassendes System dass diese vielen teilweise bereits sehr guten Einzellösungen zu einem Ganzen zusammenfasst, wird in nächster Zukunft vor allem von IBM anvisiert. Die Frage ist jedoch ob ein derartiges System von einer zufriedenstellenden Anzahl an Kunden finanziert werden kann, sich also eine dermaßen risikoreiche Investition von Seiten der Entwicklungsunternehmen überhaupt lohnt. Die Pleite des HP Data Utility Center, das Kunden eine in Ansätzen funktionierende Gesamtlösung bieten sollte, zeigt deutlich dass die Zeit noch nicht reif und die derzeitige ITLandschaft bei weitem zu heterogen für ein solches Unterfangen ist. Die größten Anstrengungen in der Entwicklung von Autonomic Computing Systemen werden derzeit dahingehend unternommen die einzelnen Produkte effizient untereinander kommunizieren zu lassen. Vor allem durch die Übersetzung proprietärer Datenformate und Kommunikationsprotokolle auf offene Standards wie WSDM (Web Services Distributed Management) soll die Interoperabilität unterschiedlicher Systeme gewährleistet werden. Unter den Vorraussetzungen dass sich dieser positive Trend fortsetzt und das „technologische Zugpferd“ IBM finanziell gesund bleibt, ist in den nächsten fünf bist zehn Jahren bereits mit ersten für Großunternehmen leistbare und lohnende Gesamtlösungen zu rechnen. 7. Fazit Die Entwicklung und der Einsatz autonomer Systeme wie sie Paul Horn in seinem Autonomic Computing Manifesto beschreibt, wird in naher Zukunft kaum zu realisieren sein. Die meisten Anforderungen die an ein autonomes System gestellt werden, stellen Entwickler nach wie vor vor eine Vielzahl technischer Probleme. Besonders Komponenten deren Funktion auf Mustererkennung und dem Treffen dynamischer Entscheidungen beruhen, benötigen bis zur Marktreife noch viele Jahre an Forschung und Entwicklung. Indirekt ist hier vor allem das sehr breit gefächerte Forschungsfeld der künstlichen Intelligenz gefordert, welches Strukturen und Systeme bereitstellen muss die mit derartig komplexen Herausforderungen effizient umgehen können. Neben den technischen Herausforderungen muss auch ein prinzipielles Umdenken in der Arbeitsweise führender Unternehmen erfolgen. Ausschließlich durch eine Definition gemeinsamer Standards und Schnittstellen sowie eine massive Fokussierung auf den Open Source Gedanken kann verhindern, dass ein derart ambitioniertes und großartiges Unterfangen bereits im Keim erstickt wird. Autonomic Computing steckt noch in den Kinderschuhen, doch bereits Systeme welche mit heutigem Wissen und unter zahlreichen Einschränkungen entwickelt worden sind erzielen beachtliche Ergebnisse - zukünftige Entwicklungen können also mit Spannung erwartet werden. Seite 13 von 14 Abbildungsverzeichnis Abbildung 1: Levels of Autonomic Computing Maturity [Manoel et al, 2005] .......................... 7 Abbildung 2: Allgemeine AC-Architektur [IBM, 2003] ............................................................. 9 Abbildung 3: Architektur eines Autonomic Systems [IBM, 2005]...........................................10 Abbildung 4: Aufbau des HP Utility Data Center [HP, 2003] .................................................12 Literaturverzeichnis [Sterritt & Hinchey, 2005] Roy Sterritt, Mike Hinchey: Autonomic Computing Panacea or Poppycock?, Proceedings of the 12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS05). [Manoel et al, 2005] Edson Manoel, Morten Jul Nielsen, Abdi Salahshour, Sai Sampath, Sanjeev Sudarshanan: Problem Determination Using SelfManaging Autonomic Technology, IBM Redbook, (2005). [Ganek & Corbi, 2003] A.G. Ganek, T.A. Corbi: The dawning of the autonomic computing era, IBM Systems Journal, 42(1), (2003). [IBM, 2003] zurich.ibm.com: Jana Koehler, Chris Giblin, Dieter Gantenbein, Rainer Hauser: On Autonomic Computing Architectures, (2003). Zu finden unter http://www.zurich.ibm.com/pdf/ebizz/idd-ac.pdf (Mai, 2007) [IBM, 2001] ibm.com: Autonomic Computing, (2001). Zu finden unter http://www.research.ibm.com/autonomic/manifesto/autonomic_computing.pdf (Mai, 2007) [IBM, 2005] ibm.com: An architectural blueprint for autonomic computing, (2005). Zu finden unter http://www03.ibm.com/autonomic/pdfs/AC_Blueprint_White_Paper_4th.pdf (Mai, 2007) [HP, 2003] hp.com: HP Utility Data Center: Enabling Enhanced Datacenter Agility, (2003). Zu finden unter http://h71028.www7.hp.com/enterprise/downloads/udc_enabling.pdf (Mai, 2007) [ZDNet, 2003] news.zdnet.com: Dan Faber: Utility computing: What killed HP's UDC? , (2004). Zu finden unter http://news.zdnet.com/2100-9584_22-5388523.html (Mai, 2007) [SUN, 2007] sun.com: Sun N1 System Manager Overview. http://www.sun.com/software/products/system_manager (Mai, 2007) Zu finden unter Seite 14 von 14