Autonomic Computing - IT-Sicherheitsinfrastrukturen (Informatik 1)

Transcription

Autonomic Computing - IT-Sicherheitsinfrastrukturen (Informatik 1)
— Autonomic Computing —
Einführung und Überblick über aktuelle Forschung
Andreas Ganser ∗
RWTH Aachen
Kurzdarstellung
Zunehmend wird die Zuverlässigkeit von Computersystemen in speziellen Anwendungsbereichen wichtiger. Jedoch
fehlen in diesen Bereichen oft die Erfahrungen oder Mittel
für reine Hochverfügbarkeits-Systeme. Deshalb wird dort
gerne auf das, häufig günstigere, Autonomic Computing gesetzt. Darunter subsummieren sich Computersysteme, die
hauptsächlich aus Standardkomponenten bestehen und im
Verbund betrachtet meist sehr heterogen sind. Trotzdem
setzt sich das Autonomic Computing als Ziele selbstkonfigurierend, selbstoptimierend, selbstheilend und selbstschützend zu sein. Folglich müssen Fehler von solchen Computersystemen selbständig erkannt und klassifiziert oder gar in
gewisser Weise vorausgesehen werden können. Dann sollten sie anhand von Wissensbasen weitestgehend „intelligent“ eine Entscheidung zugunsten einer Aktion treffen können. Diese Aktionen des Systems können je nach Fehlerfall
sog. rückwärtige, vorwärts gerichtete oder rekonfigurierende Maßnahmen sein.
Beginnend mit einer Klassifizierung von Fehlern, über
die Erklärung der obigen Begriffe des Autonomic Computing, bis hin zu einen Einblick, wie Entscheidungen getroffen werden, soll im Folgenden ein kurzer Überblick über die
aktuelle Forschung gegeben werden.
1. Motivation
Bei der Entwicklung des Arpanet spielte angeblich die
Ausfallsicherheit für den Fall eines atomaren Erstschlags
eine wesentliche Rolle (tatsächlich sollte diese Eigenschaft
nur für das zugehörige Telefonnetz gelten [15]). Trotzdem
sind heute die Routen im Internet meist mehrfach redundant
ausgelegt. Somit ist beim Ausfall eines oder mehrerer Netzwerkknoten weiterhin die Kommunikation unter den restlichen Netzwerkknoten weitgehend sichergestellt. Auf Pro∗ Dieser
Beitrag entstand im Rahmen des Konferenzseminars „Verlässliche Verteilte Systeme“, das im Wintersemester 2005/2006 vom Lehrund Forschungsgebiet Informatik 4 der RWTH Aachen durchgeführt wurde.
tokollebene ist diese Ausfallsicherheit heute als die Routingeigenschaft der TCP/IP-Protokollfamilie bekannt; genau
genommen handelt es sich um das Border Gateway Protocol, kurz BGP. Interessant ist daran, dass das Internet dadurch in seiner heutigen Struktur eine selbstheilende Eigenschaft erlangt. Denn: fällt ein Netzwerkknoten aus, werden
die Datenpakete einfach über einen anderen Netzwerkknoten geroutet. Darüber hinaus beinhaltet das Internet auch eine selbstschützende Eigenschaft. Denn Sackgassen existierten schon auf Protokollebene nicht.
Mitte der Neunziger entstanden Peer-to-Peer Netzwerke.
Dabei wurde eine weitere selbst-X Eigenschaft geboren, da
bei solchen Netzwerken die Daten redundant gehalten werden. D.h. sobald gewisse Daten innerhalb des peer-to-peer
Netzwerkes verteilt sind, gehen sie selbst dann nicht verloren (mit einer hohen Wahrscheinlichkeit), wenn der Quellhost das Netzwerk verläßt. Diese Daten sind somit gegen
Defekte im Sinne von Ausfall geschützt, also selbstreparierend; ebenso sind sie selbstschützend.
Auch das SETI@home Projekt entstand Mitte der Neunziger und demonstriert die Idee des verteilten Rechnens.
Dabei teilt ein zentraler Dienst besonders große Rechenaufgaben in verhältnismäßig kleine Aufgaben auf. Clients
mit freien Resourcen können diese Pakete anfordern und
leisten dann die Rechenarbeit. Anschließend schicken sie
das Ergebnis zurück. Natürlich ist hierbei nicht gewährleistet, dass die Pakete zurückgeliefert werden. Die wesentliche Idee ist allerdings, dass mit einer bestimmten Protokollbasis die Möglichkeit geschaffen wurde, Rechenaufgaben
aufzuteilen. Diese Idee ist um 2000 weiterentwickelt worden und seit dem unter dem Begriff Grid Computing geläufig.
Als zur selben Zeit aufgrund von XML der Hype um die
WebServices entstand, wurde die Grid Computing Idee auf
ein XML basierendes Protokoll portiert. Als Standard gibt
es heute dazu die Open Grid Services Architecture, kurz
OGSA.
Werden nun all diese Ideen zusammengefasst, ein wenig
kombiniert und um einfache Schlüsse ergänzt, so sind die
Grundlagen für Autonomic Computing gelegt, wie es 2002
von IBM erklärt und definiert wurde. Hinzu kommen aller-
2.2. Typen von Fehlern
dings noch ein paar zusätzliche Techniken [17].
IBM sieht auch dringenden Bedarf für Autonomic Computing Computersysteme. Denn in der IT-Industrie wird
komplexeren Anforderungen traditionell durch komplexere Computersysteme begegnet [9]. Das funktioniert solange
die Komplexität der Computersysteme selber überschaubar
bleibt. Heutzutage ist das bei großen Computersystemen jedoch nicht mehr der Fall; und dennoch wächst die Komplexität der Computersysteme weiter. Der Grund von Seiten
der Hardware liegt beim Moore’schen Gesetz, dass noch eine Zeit lang steigende Rechenleistung für Hardware voraussieht.
Zudem wächst aufgrund des ständig breiteren Anwendungsfeldes von Computersystemen, die Verschiedenartigkeit der Computersysteme und Komponenten exponentiell
[2]. Schon heute wird deshalb eine „complexity crisis“ [9]
befürchtet. Damit ist eine Zeit gemeint, in der die Komplexität der Computersysteme selber das Problem ist – womit noch nicht die Zusammenarbeit von verschiedenartigen
Computersystemen gemeint ist. In großen Firmen existieren schon heute viele Computersysteme, die aufgrund ihrer
Komplexität schwer zu konfigurieren sind. Entsprechend
hoch sind die Betriebskosten, da die Mitarbeiter teilweise überfordert sind. Folglich kommt es immer häufiger zu
Fehlern in der Administration, die bei Servern schnell teure
Ausfallzeit nach sich ziehen können – im Falle einer Bank
würde ein 72 Stunden dauernder Totalausfall den Bankrott
bedeuten.
Gemäß ihrer Art stehen den einzelnen Fehlertypen entsprechende Wissenschaftler Pate für den Namen. So werden
reproduzierbar auftretende Fehler als Bohr-Fehler bezeichnet, deren Namensgeber Niels Bohr [1] durch das Bohr’sche
Atommodell [1] bekannt ist. Die Idee in diesem Atommodell ist, dass die Elektronen in einem Atom fest vorgeschriebene Bahnen verfolgen und somit zu jedem Zeitpunkt ihr
Aufenthaltsort bestimmbar ist. Im Sinne der Fehlertypen
sind Bohr-Fehler somit reproduzierbar.
Darüber hinaus werden zufällig auftretende Fehler als
Heisenberg-Fehler bezeichnet. Hier wurde Werner Heisenberg [1] zum Namensgeber, da die Heisenberg’sche Unschärferelation [1] bei Atomen folgendes aussagt: Zu einem Zeitpunkt, zu dem die Position eines Elektrons in einem Atom gemessen wird, ist sie schon durch die Messung
verändert; Heisenberg-Fehler sind somit nicht reproduzierbar.
Der Chaostheoretiker Benoît Mandelbrot [1] wurde zum Paten der reproduzierbar und scheinbar zufällig auftretenden
Fehler, der Mandel-Fehler. Der Grund für die Namenwahl
ist in seinen Arbeiten zur Chaostheorie [1] zu finden.
Zuletzt gibt es noch Fehler, die eigentlich nur bei einer
Code-Inspektion gefunden werden und in dead-Code [10]
vorhanden sind. Folglich werden die Codestellen zur Laufzeit niemals ausgeführt und produzieren keine Fehler. Diese Fehler wurden nach Erwin Schrödinger [1] benannt. Er
hat in dem Gedankenexperiment die „tote Katze“ [1] gezeigt, dass eine Katze sozusagen tot und lebendig sein kann;
analog existiert der Schrödinger-Fehler und existiert doch
nicht.
Für die Belange des Autonomic Computings sind die Bohrund die Mandelbrot-Fehler relevant — eine Übersicht der
Fehlertypen liefert Tabelle 1.
2. Fehlerarten und deren Klassifizierung
Für die Diskussion von Autonomic Computing ist es
sinnvoll, sich zunächst Gedanken über mögliche Fehlerarten und deren Klassifizierung zu machen; denn diese Klassifizierung ermöglicht später Entscheidungen oder nicht.
2.1. Motivation
Tabelle 1. Fehlertypen
Bezeichnung
Auftreten
Bohr-Fehler
reproduzierbar
Heisenberg-Fehler
nicht reproduzierbar
Mandel-Fehler
reproduzierbar, scheinbar zufällig
Schrödinger-Fehler tritt nicht auf
Zunächst lohnt ein Blick auf die möglichen Typen von
Fehlern sowie deren Klassifizierung. Insbesondere ist diese
Klassifizierung von Relevanz, sollen doch Autonomic Computing Computersysteme später auch auf unvorhergesehene
Fehler angemessen reagieren können. Das ist ganz besonders dann einfach möglich, wenn die auftretenden Fehler
von einem gewissen Typ sind.
Leider sind viele Fehler durch falsche Konfigurationen verursacht. Entsprechend groß erscheint das Optimierungspotential in diesem Bereich. In einzelnen Schätzungen [9]
wird gar behauptet, dass bis zu 40 Prozent der auftretenden Fehler mangelhafter Konfiguration zuzuordnen sind.
Dementsprechend könnten diese Fehler zu einem großen
Teil durch geeignete Konfigurationswerkzeuge und Automatisierung vermieden werden.
2.3. Fehlermodelle
Fehler können in Computersystemen verschiedene Auswirkungen erzielen. Bei stop-Fehlern [3] wird eine Exception ausgegeben und die Anwendung arbeitet weiter, sofern
es möglich ist. Insbesondere ist es bei diesen Fehlern oft
möglich die System- und Laufzeitparameter zu bestimmen
und eine detaillierte Fehlerdiagnose durchzuführen. Bei
F-2
crash-Fehlern [3] stürzt die Anwendung soweit ab, dass sie
nicht mehr reagiert. In diesem Falle kann nur sehr schwer
eine weitere Diagnose erfolgen. Ein Beispiel für crashFehler sind die blue-screens der MS-Windows Betriebsystemfamilie. Außerdem gibt es noch die byzantinischenFehler [3], die zufällig auftreten. Hier wird der Fehler im
ersten Moment nicht bemerkt. Allerdings treten mit der Zeit
unerwünschte Nebenwirkungen auf, die durch diesen Fehler verursacht werden; entsprechend schwer sind diese Fehler zu finden.
Bei Rückwärtsbehebung wird nach einem festgestellten
Fehler zum letzten gültigen Punkt zurückgekehrt. Von dort
aus werden dann die Berechnungen erneut durchgeführt.
Dieses Vorgehen ist bei Datenbanken üblich, wo ein Rollback zum letzten Checkpoint möglich ist. Dann können auf
diese Daten aufsetzend die anschließenden, protokollierten
Transaktionen wiederholt werden.
2.5. Fehlervorhersage und Vorbeugung
Teilweise sind durch Trendanalysen von Prozessen Fehlervorhersagen möglich. Per Betrachtung von Abhängigkeiten zwischen System- und Laufzeitparametern lassen
sich Schlüsse über das Verhalten des betrachteten Prozesses
ziehen. Besonders wichtig sind bei diesen Trendanalysen
die jüngere Vergangenheit und die Abhängigkeiten zu anderen Prozessen. Diese können per Abhängigkeitsgraphen
modelliert werden. Diese Aspekte können zusammen mit
der Betrachtung der Kommunikationsabhängigkeiten gute
Fehlervorhersagen liefern.
Wird dann ein Fehler vorausberechnet, so tritt die Fehlerprävention ein. Je nach Anwendung und Computersystem
können verschiedene Maßnahmen zur Abwendung getroffen werden. Z.B. kann die Speicherbereinigung aktiviert
werden oder ein Fallbacksystem genutzt werden, ebenso
könnte das Load Balancing geändert werden.
2.4. Fehlerbehandlung
Vor der Fehlerbehandlung steht die Fehlerdiagnose, die
einen Fehler möglichst einem Modell zuordnet. Auf die
Fehlerdiagnose soll hier nicht weiter eingegangen werden,
da dieser Aspekt beim Autonomic Computing eine besondere Rolle einnimmt.
Bei der Fehlerbehandlung hingegen ist es günstig, wenn als
Basis im Computersystem ein gewisser Grad an Redundanz
vorhanden ist. Hier läßt sich Redundanz in zwei Dimensionen unterscheiden [16]. Einerseits gibt es die physikalische
Redundanz. Sie liegt wor, wenn Hardware oder Software
mehrfach vorhanden ist. Andererseits gibt es zeitliche Redundanz. Sie liegt vor, wenn Berechnungen mehrfach durchgeführt werden.
Beim Begegnen von Fehlern ist der erste Schritt die Fehlerkompensierung, wobei die bekannten Fehlertoleranzverfahren eingesetzt werden. Dazu zählen u.a. Korrekturcodes,
Fehlermaskierung durch Mehrheitsentscheidungen usf. [7],
desweiteren kann sog. Fehlerausgrenzung betrieben werden. Eine einfache Möglichkeit wäre, die fehlerhafte Komponente durch Rekonfiguration des Systems zu entfernen.
Problematisch kann das Verlagern eines Prozesses auf ein
anderes Computersystem sein. Denn meist sind verteilte Systeme von heterogener Struktur. Deshalb kann schon die
Architektur des anderen Computersystems ein Problem darstellen. Falls nicht, so ist es dennoch recht wahrscheinlich,
dass die Systemumgebung von dem ursprünglichen System
abweicht.
Wurden bislang hauptsächlich Fehler betrachtet, die durch
Hardware bedingt sind, so lassen sich softwarebedingte
Fehler durch Vorwärtsbehebung [7] (Kap. 7) oder Rückwärtsbehebung [7] (Kap. 6) behandeln. Im ersten Fall wird
bei einem festgestellten Fehler u.U. nur eine Interpolation aus bisherigen Ergebnissen errechnet. Das kann sinnvoll
sein, weil evtl. keine Zeit für aufwendige Neuberechnungen ist. So kann die Positionsbestimmung eines Flugzeugs
bei kurzzeitig fehlerhaften Berechnungen aus der bisherigen Position, der Flugbahn und der Geschwindigkeit die aktuelle Position ermittelt werden. Aus offensichtlichen Gründen sollte diese Interpolation nicht lange fortgesetzt werden.
3. Grundlagen des Autonomic Computing
Als Anforderungen an Hochverfügbarkeitssysteme werden i.a. die Reaktionszeit, die Sicherheit, die Verfügbarkeit und die Zuverlässigkeit genannt. Diese Anforderungen
sind nicht allgemein definierbar und werden deshalb entsprechend den Anforderungsspezifikationen individuell für
ein Projekt festgelegt. Häufig ist dabei ein gewisser Kompromiss zwischen diesen Faktoren vonnöten.
3.1. Die Vision des Autonomic Computing
Trotzdem geht die Vision des Autonomic Computings
von diesen Begriffen aus und beläßt sie als Grundlage abstrakt – immerhin handelt es sich beim Autonomic Computing um ein Modell für Eigenschaften von Computersystemen, das von IBM entwickelt wurde. Der Begriff Autonomic Computing ist von IBM mit Bedacht gewählt und
soll sich an den Begriff des autonomen Nervensystems anlehnen. Der Hintergrund ist, dass der menschliche Körper
gewisse Vorgänge, wie das Atmen, den Herzschlag, den
Lidschlag usf. dem Bewußtsein weitgehend entkoppelt hat.
Stattdessen kann sich das Bewußtsein den wesentlichen
Herausforderungen einer Situation widmen. So ist es dem
Menschen einerseits möglich das Bewußtsein explizit der
Atmung zu widmen und „tief durchzuatmen“; dadurch wird
F-3
1.2
6
das Atmen zur Handlung. Andererseits ist es ihm möglich
äquate Lösungen mit Prioritäten versehen. Beispielsweise
bei sportlichen Aktivitäten die Atmung zu steigern, ohneist es gewöhnlich unakzeptabel ein Computersystem zu eidass
die Aufmerksamkeit
Sportlers
erfordert.
less es
vulnerable
to attacks on its des
runtime
infrastructure
and business data.ner
A Zeit neuzustarten, in der die Last traditionell hoch ist.
self-protecting
IT environment
can detect
or intrusive
behavior as Deshalb
it
Auf
Computersysteme
übertragen
sollhostile
sich ein
Administrawird diese Aktion möglichst in Zeiten geringer
occurs and take autonomous actions to make itself less vulnerable to
tor
nicht mehr um die alltäglichen Probleme eines ComLast verlegt. Damit das Computersystem bis dahin weiunauthorized access and use, viruses, denial-of-service attacks, and general
putersystems
kümmern müssen. Speicherengpässe, Geterhin akzeptabel arbeitet, kann zusätzlich vorgeschrieben
failures.
schwindigkeitsprobleme o.ä. sollen Computersysteme aufsein, dass ein Speicherbereich vergrößert, ein Teildienst
bauend auf einer Wissensbasis selber lösen können. Ist ein
ausgelagert oder ein ganzer Prozess auf ein anderes ComProblem nicht
von dem Computersystem
putersystem verlagert wird.
Autonomic
computing
concepts lösbar, so wird es
an den Administrator weitergeleitet.
In an autonomic environment, components work together, communicating with
Entsprechend
Autonomic
Computing
Computersy3.2. Definition des Autonomic Computings
each other and sollen
with high-level
management
tools. They
can manage or control
steme
die Administratoren
themselves
and each other. entlasten, indem sie sie durch
Tools unterstützen und Routineaufgaben sogar komplett
Components can manage themselves to some extent, but from an overall Um Autonomic Computing definieren zu können, muss
übernehmen.
Diese Anstrengungen sind durchaus gerechtsystem standpoint, some decisions need to be made by higher-level components
es genauer in den wissenschaftlichen Kontext eingebettet
fertigt,
doch bei trade-offs
Routineaufgaben
nicht that
selten
that canpassieren
make the appropriate
based on policies
are in place.
werden. Dort wird das Autonomic Computing in den BeFehler. Doch die Vision des Autonomic Computing geht
Let us start by looking at how a single entity is managed in an autonomicreich der self-managing Computersysteme und der selfüber
die Routineaufgaben hinaus und setzt das Ideal auch
environment. Figure 1-2 represents the control loop that is the core of thegoverning Computersysteme eingeordnet; eben genau in
auf
unerwartete
Probleme Lösungen zu finden.
autonomic architecture.
den Bereich, der durch künstliche Intelligenz gesteuerten
Computersysteme und somit in den Kontext von Projekten
wie ELIZA [18]. Autonomic Computing sollte dabei nicht
Autonomic Manager
verwechselt werden mit Autonomous Computing oder Systemen die KI einsetzen.
Analyze
Plan
Im einzelnen fordert Autonomic Computing nach [12] (Seite
4) an ein Computersystem, dass es vier Kernmerkmale erfüllt: es muss self-configuring, self-healing, self-optimizing
und self-protecting sein. Häufig wird in diesem Fall dann
Knowledge
Monitor
Execute
von einem self-CHOP Computersystem gesprochen.
3.3. Bedeutung der Kernmerkmale
Managed Resource Touchpoint
Sensors
Effectors
Gewöhnlich bestehen Computersysteme aus vielen Teilbausteinen. Entsprechend übertragen sich die Eigenschaften
des Autonomic Computings in einem bottom-up Prozess
von Autonomic Elementen (je gemäß Abbildung 1) zu Autonomic Computing Computersystemen, falls alle Elemente die Kernmerkmale erfüllen. Dazu ist es wichtig, dass sich
die Elemente selbst „kennen“ (know-itself Eigenschaft), also über ihren eigenen Status genügend Informationen besitzen (Sensors in Abbildung 1).
Ein Computersystem ist nach [12]
Managed Resource
Figure 1-2 Autonomic computing control loop
Abbildung 1. Zusammenhaenge nach [12]
Die grundlegenden Ideen zum Autonomic Computing
haben sich aus den Ideen aus Abschnitt 1 entwickelt
oder wurden
abstrahiert.
SoTechnology
sind aus der AusfallProblem Determination
Usingdaraus
Self-Managing
Autonomic
sicherheit des Internets die Eigenschaften self-healing und
self-protecting geworden; wohingegen die Eigenschaften
des peer-to-peer Netzwerkes zu self-repairing und selfprotecting abstrahiert wurden. Weiterhin entwickelte sich
aus dem SETI@home Projekt die OGSA – und gerade die
OGSA ist fundamental für das Autonomic Computing, da
sie die Basis für heterogenes verteiltes Rechnen auf Grundlage von WebServices bietet.
Das Fundament von Autonomic Computing Computersystemen hingegen besteht aus einer Wissensbasis (Knowledge in Abbildung 1), die Entscheidungen ermöglicht. Dazu
wird eine Menge von Regeln (Policies) erstellt, die dem System Abhängigkeiten verdeutlichen und verschiedene, ad-
• self-configuring, wenn sich jede neue Komponente
automatisch in eine bestehende Umgebung einfügen
kann, ohnedass eine spezielle, manuelle Installation
nötig ist. Dieses Merkmal erfüllen heute bereits viele Komponenten: beginnend mit Plug ’n Play Erweiterungskarten über Hotplugging bei SCSI oder PCI Express, bishin zu PCMCIA, FireWire und USB.
• self-healing, wenn es selbständig Fehler entdecken
(Sensors und Monitor in Abbildung 1), diagnostizieren (Analyze in Abbildung 1) und beheben (Plan, und
Execute in Abbildung 1) kann. Dieses Merkmal erfüllt
F-4
z.B. das Internet im Bereich des Routings von Datenpaketen: fällt ein Netzwerkknoten aus, sucht sich ein
Paket einen anderen Weg zum Ziel.
• self-optimizing, wenn es seinen Kontext so anpassen
kann, dass die einzelnen Arbeitsprozesse besser ablaufen und dies auch regelmäßig versucht. Dieses Merkmal läßt sich z.B. durch dynamisches Speicherauslagern erfüllen. Wird der Speicher einer Anwendung
knapp, bekommt sie vom Betriebssystem zusätzlichen
Speicher zugewiesen. Ein weiteres Beispiel sind dynamische Dateisysteme.
Eine notwendige Voraussetzung für self-optimizing
Computersysteme ist die self-configuring Eigenschaft.
• self-protecting, wenn es selbständig Angriffe und
Schäden von Angriffen erkennen und beheben kann.
Methoden, wie Angriffe erkannt werden können, sind
z.B. Intrusion Detection o.ä. Schäden können hingegen
von Malwareeffekten bishin zu bösartigen Einbrüchen
in das Computersystem reichen.
Voraussetzung für self-protecting Computersysteme sind die Eigenschaften self-healing und selfconfiguring.
Eine Übersicht über die vier Kernmerkmale liefert die Abbildung 2.
SelfConfiguring
SelfHealing
SelfOptimizing
SelfProtecting
Figure 1-1 Autonomic computing attributes
Abbildung 2. Kernmerkmale
Self-configuring
Bis ca. 2002 hatten viele Hersteller ihre eigenen Standards
für Log-Dateien. Aus diesem Grund entwickelten IBM und
Cisco die CBEs (common base events). Ein Jahr später
schlugen IBM und Cisco der OASIS (Organization for the
Advancement of Structured Information Standards) vor die
CBEs zum Standard für Log-Dateien zu erheben. Da nun im
Rahmen des Autonomic Computing mit WebServices gearbeitet wird, wurde hieraus das WSDM 1.0 (WebService
Distributed Management) entwickelt, das seit März 2005
ein OASIS Standard ist. Zwischenzeitlich haben sich viele
große Hersteller von Hard- und Software diesen Standards
angeschlossen, darunter Microsoft, Oracle und SAP.
Aufbauend auf diese Standards, kann eine Wissensbasis nun
Entscheidungen über das System fällen. Die dafür notwendigen Policies, werden per UML modelliert und dann in
DLR transferiert. Bei DLR handelt es sich um eine Teilmenge von FO (first-order-logic), die mehrstellige Relationen zuläßt und im Gegensatz zu FO entscheidbar ist. Wichtig ist, dass sich alle UML-Modelle in DLR transformieren
lassen; das stellt [8] sicher. Die Entscheidungen aufgrund
einer Wissensbasis in DLR können dann mit verschiedenen
Verfahren (FaCT oder RACER, Details in [11]) getroffen
werden. Im Modell des Autonomic Computings wird einfach von „automated reasoning procedures“ gesprochen.
Somit können für sich autonomic Elements in ein größeres
Computersystem eingebunden werden und mit ihrem Anteil
zu den Policies weiterhin sicherstellen, dass die zusammengefügten Elemente ein Autonomic Computing Computersystem bilden.
3.5. Reifegrade zum Autonomic Computing
Vom heutigen Standpunkt aus stellt Autonomic Computing bei Computersystemen einen Idealfall dar. Deshalb
wurden von Beginn an von IBM Abstufungen an Reifegraden (maturity level) vorgeschlagen [9], bis tatsächliches
Autonomic Computing erreicht ist. Beginnend mit dem
Basic Level und dem Managed Level über Predicted Level
und Adaptive Level bishin zum Autonomic Level kann
demnach ein Computersystem fünf Reifegerade annehmen:
With the ability to dynamically configure itself, an IT environment can adapt
immediately, with minimal intervention, to the deployment of new•components
or kommerziellen Computersysteme befinDie meisten
3.4. Autonomic
Elements
changes in the IT environment.
den sich heute im Basic Level, d.h. alle Komponenten
werden voneinander getrennt administriert. EntspreDa das Self-healing
Autonomic Computing zur Umsetzung autonochend komplex und aufwendig wird die AdministraSelf-healing
IT environments
can detectzwischen
problematic
operations (either
mic Elements
benötigt,
ist Kommunikation
den
through
predictions
or otherwise) and kann
then initiate corrective
action
tion bei
steigender Anzahl von verschiedenen KompoElementen proactively
erforderlich.
Denn
ein Computersystem
without disrupting system applications. Corrective action could mean
that
nenten.a
nur dann self-configuring
sein,
wenn
es
ausreichende
Inproduct alters its own state or influences changes in other elements of the
formationen
über die Gegebenheiten
vorfinden
kann.
environment.
Day-to-day operations
do not
falterSomit
or fail because •of Werden
events at bereits
the
System-Management Tools eingesetzt,
component
IT environment
as a whole
more resilient as
ist eine weitere
Basislevel.
des The
Autonomic
Computings
derbecomes
Inum
Informationen der Computersysteme zentral zu
changes
are
made
to
reduce
or
help
eliminate
the
business
impact
of
failing
formationsaustausch zwischen Computersystemen in Form
sammeln, so wird vom Managed Level gesprochen.
components.
von Log-Dateien. Gewöhnlich werden jedoch verschiedene
Komponenten
verschiedenster Hersteller eingesetzt. Des• Bei zusätzlicher Auswertung der Informationen mit
Self-optimizing
halb ist fürSelf-optimization
die Analyse einheitliches
notwendig.
Hilfe
von Analysetools und dem Versuch aus den Inrefers to the Logging
ability of the
IT environment to efficiently
maximize
resource allocation and utilization to meet end users’ needs with minimal
intervention. In the near term, self-optimization primarily addresses the
complexity of managing system performance. In the longF-5
term, self-optimizing
components might learn from experience and automatically and proactively tune
themselves in the context of an overall business objective.
Self-protecting
A self-protecting environment allows authorized people to access the right data
• Verschiedene Typen von Dynamik führen zu verschiedenen Handlungsgeometrien
formationen mögliche Szenarien zu errechnen, ist der
Predictive Level erreicht. Eine übliche Beschreibung
findet sich auch in der Formulierung von „Was wäre Wenn“-Szenarien.
• Dynamik wird als Frequenz / Häufigkeit des Auftretens interpretiert
• Können die Computersysteme außerdem noch automatisiert auf die Szenarien reagieren, indem sie eine
Symptomdatenbank nutzen, handelt es sich um den
Adaptive Level.
• time-delay Graphen, in denen unterschiedliche Verhaltensmuster gesucht werden
• basierend auf Lyapunov-Exponenten werden Stärke
und Häufigkeit des Auftretens gewichtet
• Wird letztlich diese Symptomdatenbank schon während der Systemspezifikation komplett als Wissensbasis spezifiziert und sind Schlussfolgerungen daraus
möglich, so ist das Autonomic Level erreicht.
• Poincaré Graphen zur Messung der sog. fraktalen Dimension
4.3. dezentralisierte Kontrolle
4. Forschungsbereiche
Bei dezentralisierter Kontrolle (decentralized control)
wird versucht, eine optimale Struktur für große Computersysteme zu finden. Die Motivation dazu liegt darin, dass eine globale Wissensbasis nicht immer vorhanden sein kann
oder muss. Deshalb geht es in diesem Forschungsbereich
darum, wie Wissen redundant gehalten werden muss und
wie es aufgeteilt werden kann. Folglich müssen anhand der
jeweiligen Teilwissensbasis die folgenden drei Kernfragen
für ihre Komponenten beantwortet werden können:
Gerade beim Zusammenfügen jeweils für sich autonomic Elemente, tauchen Probleme auf, die gelöst werden
wollen. Aber nicht nur in diesem Bereich gibt es noch akuten Forschungsbedarf. Insgesamt läßt sich das aktuelle Forschungsinteresse in drei Gebiete unterteilen [5]. Das sind
die multi-agent Systeme, die Theorie dynamischer Systeme
und die denzentralisierte Kontrolle.
4.1. multi-agent Systeme
• Wie ist das erwünschte Verhalten?
Die Idee bei multi-agent Systemen ist es, einen alternativen Ansatz zur Modellierung des Computersystems zu finden. Dabei werden die Policies agentenbasiert (objektorientiert) modelliert, statt gleichungsbasiert. Das entspricht
der Vorstellung, sich die Interaktionen anzusehen, statt der
Algorithmen – abkürzend wird hier von agend-based model (ABM) und equation-based model (EBM) gesprochen.
Durch das Konzept der multi-agent Systeme können Sachverhalte modelliert und analysiert werden, die Algorithmen
nicht darstellen können. Das wird insbesondere klar, wenn
die self-adapting Eigenschaft beim Autonomic Computing
in Betracht gezogen wird.
• Welche Parameter erzielen das gewünschte Verhalten?
• Durch welchen Kontrollmechanismus wird es erzielt?
Um die dezentralisierte Kontrolle nun als minimal und
ausreichend zu erachten, werden fünf Kriterien herangezogen, die alle zu erfüllen sind [4]. Zunächst wird nach der
Kontrollierbarkeit des Computersystems gefragt. Das kann
insbesondere bei großen Computersystemen eine komplexe
Fragestellung sein. Außerdem wird nach den Grenzen
gefragt, da gewisse Systemparameter das gewünschte
Verhalten beeinflussen können. Desweiteren steht die Stabilisierung des Systemverhaltens zur Disposition, wie sie
auch bei der Theorie dynamischer Systeme [20] betrachtet
wurde. Hier kommen allerdings noch Störungen und lokale
Handlungen hinzu, die das Systemverhalten beeinflussen
können.
Als konkreter Ansatz läßt sich z.B. ein marktorientiertes
Modell realisieren, wobei die Zusammenhänge der Marktwirtschaft auf die dezentralisierte Kontrolle übertragen
werden. So wird den einzelnen Komponenten eine speziell
definierte Gesundheit zugeordnet, die in direktem Zusammenhang zu ihrer internen Struktur steht. Entsprechend
verkörpern sie eine gewisse Energie auf dem virtuellen
Marktplatz. Anhand dieser werden sie als Dienstleister
ausgewählt oder nicht.
Alternativ gibt es einen „blue-print“ Ansatz, der sich
4.2. Theorie dynamischer Systeme
In der Theorie dynamischer Systeme (dynamical systems
theory) wird versucht die Ordnung und die Dynamik der
Computersysteme zu modellieren und zu analysieren. Die
Computersysteme werden anhand der sog. system model
theory [19] modelliert und dann analysiert. Als Grundlage
der Analyse dienen Erkenntnisse aus der Chaostheorie (z.T.
Quantenphysik) und der Komplexitätstheorie. Ein zentrales Problem in diesem Teilbereich ist die Frage nach einer
geeigneten Metrik. Derzeit gibt es diverse Techniken, die
Ergebnisse zu analysieren. Darunter befinden sich folgende
Ansätze, die hier nur genannt sein sollen (Details jeweils in
[19]):
F-6
wiederum in drei verschiedene Ansätze unterteilt. Zunächst
gibt es den Ansatz der expliziten Präsenz, d.h. ein „Dienst“
bestimmt selber sein Vorhandensein auf dem virtuellen
Markt. Als nächstes gibt es einen Ansatz, bei dem ein
zentraler Koordinator explizit die Zuweisung übernimmt
- und als letztes einen Ansatz, bei dem die Propagation
von Informationen die zentrale Rolle spielt. Hier ist jeweils
bekannt, wie es um den eigenen „Nachbarn“ steht.
Darüber hinaus läßt sich dezentralisierte Kontrolle noch
mit vielen weiteren Ansätzen realisieren. Dazu gehören:
auf Beschränkungen basierende dezentralisierte Kontrolle,
genetische bzw. evolutionäre dezentralisierte Kontrolle,
dezentralisierte Kontrolle über künstliche physikalische
Kräfte und Gesetze und dezentralisierte Kontrolle über sich
anpassende Organisationen.
Autoren als BCT (behaviour capture and test) [13] bezeichnet.
Auf die BCT Methode aufbauend, läßt sich die ARV (adaptive runtime verification) [6] entwickeln, die die obigen
Annahmen bzgl. unvorhersehbarer Fehler fallen läßt. Das
wird möglich, indem die möglichen Fehler in die Kommunikationsstruktur eingebettet werden. Dadurch ist nun das
Modellieren der endlichen Automaten adaptiert und somit
zur Laufzeit das Erstellen der Modelle möglich. Das Testen
verläuft dann analog zu BCT.
Ein wesentliches Problem bei diesen beiden Verfahren ist,
dass teilweise mit genauer Betrachtung von Referenzen gearbeitet werden muss. Dementsprechend sind diese Ansätze
nicht black-box und erfordern deshalb genauere Untersuchungen bzgl. der Sicherheit der einzelnen Komponenten.
Grundlage für die Methoden ist, dass die Log-Dateien einheitlich, also z.B. als CBE, vorliegen.
Insgesamt ergibt sich somit folgende Übersicht über die
aktuellen Forschungsgebiete:
6. NASA Missionen
Tabelle 2. Forschungsgebiete
Bezeichnung
Anwendungsbereich
multi-agent Systeme
Modellierung des Systems
Theorie dyn. Systeme
Analyse des Systems
dezentralisierte Kontrolle Kontrolle des Systems
Autonomic Computing stellt in der Raumfahrt einen
dringenden Bedarf dar. Denn dort ist es nicht immer
möglich, Kontakt zu Raumschiffen, Satelliten o.ä. zu
halten. Trotzdem müssen diese auch ohne Kontakt zum
Kontrollzentrum funktionsfähig bleiben. Sind bei einem
Raumschiff noch die Besatzungsmitglieder vorhanden, die
einen Teil der Entscheidungen übernehmen können, so
ist das z.B. bei der Raumsonde Voyager etwas anderes.
Schon alleine die Übertragung der Informationen zwischen
der Sonde und dem Kontrollzentrum dauert so lange, dass
kurzfristige Entscheidungen nicht vom Kontrollzentrum
aus gegeben werden können. Trotzdem können unerwartete
Fehler auftreten, die behandelt werden müssen.
Entsprechend hoch ist das Interesse der NASA [14] an
der Forschung im Bereich der self-governing und selfmanaging Computersysteme also Autonomic Computing.
Am Beispiel der Raumfahrt lassen sich zudem die vier
Kerneigenschaften des Autonomic Computings erläutern:
5. Laufzeitverifikation
Um eine Laufzeitverifikation von Elementen eines Computersystems zu erzielen, wird zunächst ein Modell für eine
feste Anzahl an möglichen Fehlern betrachtet. Somit können während der Laufzeit keine unvorhergesehenen Fehler
auftreten. Deshalb kann bereits vorab analysiert und modelliert werden, wie sich alle möglichen Fehler auswirken können. Dazu werden ausgehend von gesammelten Log-Daten
Invarianten im I/O- und Interaktionsverhalten gesucht. Die
Invarianten für das I/O-Verhalten können durch Beschreiben der Referenzen einer Komponente per boolescher Variablen erfolgen. Beim Interaktionsverhalten ist die Analyse hingegen schwieriger. Da allerdings per Annahme keine
unvorhergesehenen Fehler auftreten, läßt sich das Interaktionsverhalten zwischen Komponenten durch endliche Automaten beschreiben. Diese werden in einem rekursiven Ansatz erstellt – in [13] wird dafür ein Algorithmus namens
kBehaviour vorgeschlagen.
Sind nun die Invarianten formuliert, läßt sich beim Austausch von Komponenten einfach durch duales Verfolgen
der Läufe auf den Automaten feststellen, ob die neuen Komponenten das gewünschte Verhalten zeigen. Da dieser Test
in zwei Phasen, dem Protokollieren von Log-Dateien und
dem Ableiten des Verhaltens der Komponente sowie dem
anschließenden Test besteht, wird dieses Verfahren von den
• self-configuring: In der Raumfahrt ändern sich die Bedingungen ständig und somit müssen sich die Gerätschaften ständig anpassen.
• self-optimizing: Die Satellitenpositionen werden automatisch aufeinander abgestimmt und liefern zusammen genauere Ergebnisse.
• self-healing: Funktioniert Software aufgrund von
Strahlung nicht mehr richtig wird sie neugestartet.
• self-protecting: Strahlung von Sonnenerruptionen wird
vorausberechnet und sensible Systeme werden zum
Schutz heruntergefahren und ausgeschaltet.
F-7
7. Fazit
[4] De Wolf, Tom , Samaey, Giovanni, Holvoet, Tom, and Roose, Dirk. Decentralised Autonomic Computing: Analysing
Self-Organising Emergent Behaviour using advanced numerical Methods. In Proceedings of the First International
Workshop on Autonomic Computing Principles and Architectures, 2005.
[5] De Wolf, Tom and Holvoet, Tom. Towards Autonomic Computing: agent-based modelling, dynamical systems analysis,
and decentralised control. In Proceedings of the First International Workshop on Autonomic Computing Principles and
Architectures, page 10, 2003.
[6] Denaro, Giovanni, Mariani, Leonardo, Pezze, Mauro,
and Tosi, Davide.
Adaptive Runtime Verification
for Autonomic Communication Infrastructures.
citeseer.ist.psu.edu/729269.html, 2005.
[7] Echtle, Klaus. Fehlertoleranzverfahren. Springer-Verlag,
1990.
[8] Franconi, Enrico.
Description Logics for Conceptual
Design, Information Access, and Ontology Integration.
http://www.ontoquery.dk/phd-course/franconi.pdf, 2002.
[9] Ganek, A. G. and Corbi, T. A. The Dawning of the Autonomic Computing Era. IBM Systems Journal, 42 Vol 1:5–18,
2003.
[10] Indermark, Klaus. Programmanalyse und Compileroptimierung, 2004.
[11] Lanfranchi, G., Della-Peruta, P., Perrone, A., and Calvanese,
D. Toward a new Landscape of Systems Management in an
Autonomic Computing Cnvironment. IBM Systems Journal,
42 Vol 1:119–128, 2003.
[12] Manoel, Edson, Nielsen, Morten Jul, Salahshour, Abdi,
Sampath, Sai K.V.L., and Sudarshanan, Sanjeev. Problem
Determination Using Self-Managing Autonomic Technology. IBM, 2005.
[13] Mariani, Leonardo and Pezze, Mauro. Behavior Capture and
Test: Automated Analysis of Component Integration, 2005.
[14] Rouff,
Christopher,
Hinchey,
Michael,
Rash,
James,
Truszkowski,
Walter,
and
Sterritt,
Roy.
Autonomicity
of
NASA
Missions.
http://csdl.computer.org/comp/proceedings/icac/2005/2276
/00/22760387.pdf, 2005.
[15] Tannenbaum, Andrew S. Computer Networks. Prentice Hall
PTR, 2002.
[16] Tannenbaum, Andrew S. Distributed Systems - Principles
and Paradigms. Prentice Hall PTR, 2002.
[17] D. M. M. Waldrop. Autonomic Computing - The Vision of
Self-Management, 7 2003.
[18] Weizenbaum, Joseph. ELIZA - A Computer Program for the
Study of Natural Language Communication between Man
and Machine, volume 9. Communications of the ACM,
1966.
[19] Whisnant, K., Kalbarczyk, Z. T., and Iyer, R. K. A System
Model for dynamically reconfigurable Software. IBM Systems Journal, 42 Vol 1:45–59, 2003.
[20] Wischy, M. A. (Siemens) and Roller, D. , (University
of Stuttgart). Cybernetics and General Systems Theory
(GST) Principles for Autonomic Computing Design.
http://csdl.computer.org/comp/proceedings/icac/2005/2276
/00/22760389.pdf, 2005.
Wie der Überblick zeigt, ist Autonomic Computing einerseits eine phantastische Vision [17], aber andererseits
bedarf es noch sehr viel Forschung, um es bzw. sie zu verwirklichen. Sind die Ansätze zur künstlichen Intelligenz
Anfang der 80er Jahre noch gescheitert, weil die Ideale zu
ehrgeizig waren, erscheint die Vision des Autonomic Computing, auf die Ideen der Zeit aufbauend, letztlich doch realisierbar.
Insgesamt ist es auch nicht Ziel des Autonomic Computings die Administratoren vollständig zu ersetzen, wie es
bei Ideen der künstlichen Intelligenz beabsichtigt war. Vielmehr sollen sie sich auf die wesentliche Arbeit konzentrieren können und die Routineaufgaben, die die Tools erledigen, nur noch überprüfen.
Doch genau da entsteht ein neues Problem. Denn der
Mensch ist ein sehr schlechter passiver Beobachter. Was
allgemein als das „Autonomation Paradoxon“ bezeichnet
wird, bedeutet nichts anderes, als dass die Fehlerrate beim
Überprüfen automatisch generierter Ergebnisse schlechter
sind, als hätte derjenige aktiv an dem Ergebnis mitgearbeitet – und letztlich erscheint ein Pilot, der vom Kontrollieren
gelangweilt, die entscheidende Warnmeldung übersieht als
wenig erstrebenswert.
Darüber hinaus wird, trotz aller Maßnahmen, das Autonomic Computing fehlender Hardware nicht entgegenwirken
können. So wird es auch bei optimal realisiertem Autonomic Computing noch zum traditionellen Ausfall der Handynetze in Deutschland und BeNeLux um die Jahreswende kommen, weil einfach zu viele SMS verschickt werden
und dadurch die SMS-Proxy-Server der Mobilfunkanbieter
hoffnungslos überlastet sind.
8. Danksagung
Ich möchte den drei Reviewern für ihre Mühe, Anmerkungen und Hinweise sehr danken. Ein ganz besonderer
Dank geht an Matthias Botzen und Christian Brüffer für
ihre schier endlose Mühe, ihre zahlreichen Hinweise,
Kritikpunkte und endlose Diskussionen über Sprache und
Ausdruck.
Literatur
[1] Brockhaus. Enzyklopädie in 24 Bänden, 20. neubearbeitete
Auflage. F.A. Brockhaus AG, Mannheim, 2001.
[2] Chess, D. M., Palmer, C. C., and White, S. R. Security in an
Autonomic Computing Environment. IBM Systems Journal,
42 Vol 1:107–118, 2003.
[3] Coulouris, George, Dollimore, Jean, and Kindberg, Tim.
Distributed Systems: Concepts and Design, Third Edition.
Pearson Education, 2001.
F-8