Informatik-Lexikon

O

Objektrelationale Datenbanksysteme
Objektorientierter Datenbankentwurf
Ontologie(n)
Organic Computing
Organizational Memory
OSF Distributed Computing Environment

Ontologie(n)

 

Kurzinfo Ontologie ist ein überlieferter Begriff aus der Philosophie und steht dort für die Lehre vom Sein - genauer: von den Möglichkeiten und Bedingungen des Seienden -, ist also eng verwandt mit der Erkenntnistheorie, die sich mit den Möglichkeiten und Grenzen menschlichen Wahrnehmens und Erkennens auseinander setzt.

 

Erläuterung

In der Informatik steht man in vielen Bereichen vor der Aufgabe, Erkanntes oder Erdachtes zu repräsentieren und Wissen zu kommunizieren, z.B. über Fakten, Sachverhalte oder Regeln in einem technischen Anwendungsbereich, in einem Geschäftsprozess oder in einem juristischen Verfahren oder über die Inhalte von Dokumenten oder Webseiten.

Menschen Können sich gespeichertes Wissen zunutze machen, indem sie auf ihr Grund- und Kontextwissen des jeweiligen Wissensbereichs zurückgreifen, Lehrbücher, Regelwerke, Lexika und Schlagwortregister verwenden und mit den gespeicherten Inhalten verbinden. Sollen dagegen Automaten Such-, Kommunikations- und Entscheidungsaufgaben in Bezug auf das gespeicherte Wissen übernehmen oder Daten austauschen, die selbst Information darüber enthalten, wie sie zu strukturieren und zu interpretieren sind (sog. Metadaten), so benötigen sie dazu eine Repräsentation der zugrunde liegenden Begriffe und derer Zusammenhänge. Dafür hat sich in einigen Zweigen der Informatik in den letzten Jahren der Begriff Ontologie eingebürgert.

Der wohl bekannteste Definitionsversuch stammt von T. Gruber. Dieser bezeichnet Ontologie als „explizite formale Spezifikation einer gemeinsamen Konzeptualisierung" (orig.: "shared conceptualization").

In diesem Sinne beschreibt eine Ontologie also einen Wissensbereich (knowledge domain) mit Hilfe einer standardisierenden Terminologie sowie Beziehungen und ggf. Ableitungsregeln zwischen den dort definierten Begriffen. Das gemeinsame Vokabular ist in der Regel in Form einer Taxonomie gegeben, die als Ausgangselemente (modelling primitives) Klassen, Relationen, Funktionen und Axiome enthält. Da es viele Wissensbereiche - mit einer jeweils eigenen oder sogar mehreren konkurrierenden Terminologien - gibt, macht hier (im Gegensatz zur Philosophie) auch der Gebrauch des Plurals („Ontologien") Sinn.

Neben der Zuordnung zu Anwendungsbereichen kann man Ontologien auch nach ihrem Umfang klassifizieren. So unterscheidet Ron Weber (in Anlehnung an Guarini [5]) drei Stufen von Ontologien: (1)allgemeine, Bereichsübergreifende, "top level ontologies", (2) auf bestimmte Anwendungsbereiche bezogene "domain ontologies", (3) bekannte konzeptuelle Daten- und Klassenmodelle, die lediglich mit dem modischen Namen "Ontologie" aufgewertet werden sollen. Im folgenden sollen nur die Stufen (1)und (2)betrachtet werden.

Wozu werden Ontologien in der Informatik verwendet? Gruninger und Lee [4] unterscheiden drei Anwendungsfelder: Kommunikation, automatisches Schließen und Repräsentation sowie Wiederverwendung von Wissen. Sollen zwei Programme (z.B. Web-Suchmaschinen oder Software-Agenten)miteinander kommunizieren, so müssen sie entweder selbst die Interpretationsvorschrift für die Daten in sich tragen (sind also datenabhängig), oder aber sie liefern diese in Form von Metadaten aus einer beiden Seiten zugänglichen Ontologie mit. - Beim automatischen Schließen können Programme logische Schlüsse schon aufgrund der per Ontologie bekannten Ableitungsregeln ziehen - diese müssen also nicht stets von Neuem übermittelt werden. Ähnlich ist es bei der Wissensrepräsentation und -wiederverwendung (vgl. dazu die ausführliche Darstellung von Staab [12]).

Ontologien sind also in allen mit Wissen befassten Bereichen der Informatik von Bedeutung - wie etwa künstliche Intelligenz, Datenbanken und Informationssysteme (im weitesten Sinne, einschließlich des globalen Informationssystems WWW). Dazu kommen angrenzende Bereiche wie Softwaretechnik und Multimedia-Kommunikation sowie Anwendungsgebiete wie z.B. Medizin, Rechtswesen und Wirtschaftsinformatik.

An den Ontologiebegriff knüpfen sich Zusammensetzungen wie z.B. Ontologie-Entwurf ("ontology design") und Ontologie-Technik ("ontological engineering"). Beide Begriffe machen selbstverständlich nur beim Begriffsverständnis der Informatiker Sinn - in philosophischer Deutung könnten dies höchstens angenommene Vorgehensweisen eines Demiurgen, also eines metaphysischen höheren Wesens sein. Ontological Engineering umfasst - analog zum Software-Engineering - alles, was zur Unterstützung des Ontologie-Lebenszyklus dienen kann [4]. Ein Ontologie-Entwurf kann grundsätzlich durch einen induktiven Ansatz (Bildung größerer Ontologien aus mehreren kleinen "leichtgewichtigen" durch Verbindung - "merging") oder durch einen deduktiven Ansatz (Festlegung allgemeiner Konzepte und Regeln durch ein Gremium oder Konsortium, Überprüfung, Standardisierung und anschließende Spezialisierung für Teilbereiche) geschehen [8].

Der Wert einer Ontologie steht und fällt mit dem Umfang der Anerkennung und Zustimmung ("ontological commitment"), die diese in der betreffenden Fachwelt erfahrt. Im Allgemeinen ist diese Zustimmung umso leichter zu erreichen, je mehr Entscheidungsträger und Betroffene am Entwurfsprozess beteiligt sind. Andererseits steigt der Aufwand in der Regel mit der Zahl der am Entwurf beteiligten Personen.

Besonderes, weltweites Interesse finden Ontologien in jüngster Zeit aufgrund der Semantic-Web-Initiative des WWW-Schöpfers Tim Berners-Lee und seiner Kollegen [1]. Sie beruht auf der Grundidee, Web-Dokumente (jeglicher Größenordnung) mit "Semantik" in Form von Metadaten ("tags") zu versehen, die ihren Inhalt näher beschreiben, und diese durch Ableitungsregeln ("inference rules") miteinander zu verknüpfen. Damit sollen Suchmaschinen und andere elektronische Mechanismen wie Agenten unterstützt werden, benötigte Informationen gezielt und effizient zu finden und miteinander zu verbinden. Ontologien dienen dazu, die dafür benötigten Grundlagen an Metadaten und Verknüpfungsregeln zu liefern. Das bedeutet, dass sich z.B. zwei Agenten über ihre Aufgaben und Ergebnisse mit Hilfe einer beiden verfügbaren Ontologie verständigen können.

Für die Entwicklung und Prüfung von Ontologien sind in den letzten Jahren eine Reihe von Sprachen, Methoden und Werkzeugen entstanden bzw. verfügbar gemacht worden. Im Zusammenhang mit dem Semantik Webansatz sind hier vor allem XML (Extensible Markup Language) und RDF (Resource Description Framework) zu nennen: XML für die Annotierung und Strukturbeschreibung von Daten und Dokumenten, RDF für die Möglichkeit, Ressourcen durch Eigenschaften zu beschreiben und diesen Werte - darunter auch Verweise auf andere Ressourcen - zuzuordnen. Dieser Ansatz fußt auf der bekannten Grundidee, semantische Netze als Graphen aufzufassen.

Die Mächtigkeit dieser Sprachmittel und die Lesbarkeit von Dokumenten lässt sich durch den Einsatz von Schemadefinitionen (XML Schema Definition XSD, und RDF Schema RDFS) beträchtlich steigern.

Daneben hat die US-Behörde DARPA DAML (DARPA Agent Markup Language) als Agenten-Verständigungssprache - "an Esperanto for machines" definiert. Diese wurde im Hinblick auf Ontologien mit OIL (ursprünglich: Ontology Inference Layer, neuerdings: Ontology Interchange Language ) zu DAML+OIL kombiniert und wird vom WWW-Konsortium als Standard für die Repräsentation von Metadaten und Ontologien vorgeschlagen.

Dieser Ansatz beruht auf den von der KI her bekannten Frames sowie auf Description Logics zur Beschreibung von Semantik und logischen Verknüpfungen. (Für nähere Hinweise dazu und zu Werkzeugen wie Ontologie-Editoren und Entwicklungsumgebungen vgl. [12].) Ontologien sind bereits für verschiedene Wissensgebiete entwickelt worden, so z.B. für Entscheidungsunterstützungssysteme (Decision Support Systems, DSS; vgl.dazu [8]) oder für das Wissensmanagement (vgl. [12]). Im kommerziellen Bereich spielen sie - z.B. als Grundlage für E-Business-Systeme - bereits eine wichtige Rolle. Für den Bereich der Informationssysteme hat die IFIP-Arbeitsgruppe FRISCO (Framework of Information System Concepts) ein umfassendes konzeptuelles Rahmenwerk vorgeschlagen, das auch als allgemeine Basis für weitere, spezialisierte Ontologien dienen konnte [2]. Einen damit verwandten Ansatz haben Y. Wand und R. Weber entwickelt [13].

In der Softwaretechnik gewinnen Ontologien zz. in zweierlei Hinsicht an Bedeutung:

  1. Ontologien als Hilfsmittel und Wissensfundus bei der Software-Entwicklung. Will man die Idee von Web-Services, d.h. im Web verteilten, wieder- und weiterverwendbaren Anwendungssystemen oder -komponenten verwirklichen, so müssen diese auf einem von allen potenziellen Benutzern getragenen gemeinsamen Struktur- und Begriffsverständnis des betreffenden Anwendungsgebiets beruhen.
    Ontologien können hier dabei helfen, den Anteil an wiederverwendbaren Ergebnissen (z.B. Konzepten oder Modellen) in den sog. Frühen "Phasen" deutlich zu erhöhen.
  2. Softwaretechnik als Gegenstand einer Ontologie, d.h. als standardisiert zu beschreibendes Wissensgebiet. Für eine solche Software Engineering Ontology hat die SWEBoK-Initiative (Software Engineering Body of Knowledge) wertvolle Vorarbeit geleistet. In diesem Zusammenhang sind auch deutschsprachige Arbeiten an einem "Begriffsnetz" für die Softwaretechnik zu nennen [3, 10].

Die wichtigsten noch ungelösten Probleme mit Ontologien betreffen aus heutiger Sicht die folgenden Punkte:

  • Wie lassen sich gut verwertbare Metadaten für sehr große Ressourcenbestände erzeugen und konsistent weiterentwickeln? Lässt sich das Annotieren von Dokumenten sinnvoll automatisieren?
  • Können Ressourcen klar und eindeutig klassifiziert werden, z.B. in Dokumente, Daten, Metadaten, physische und virtuelle Aktoren (actors), physische Einheiten?
  • Wie lassen sich Metadaten in (möglicherweise überlappende und inkonsistente) Ontologien einordnen? Wie werden Synonyme, Homonyme und zirkuläre Definitionen behandelt?
  • Macht es Sinn, nach einer gemeinsamen, allen Ontologien unterliegenden Top-level-, Universal- oder Meta-Ontologie zu suchen - oder führt dies zu ähnlichen Schwierigkeiten wie die Suche nach einem objektiven Weltbild in der Physik?

Nicht zuletzt stellt sich die Frage nach einer philosophischen Fundierung eines (informatischen) Ontologiebegriffs. Für Philosophen ist die Antwort auf die ontologische Grundfrage "Was ist?" keineswegs so trivial, wie es zunächst scheinen mag, da

  • unsere Wahrnehmung der Wirklichkeit durch unsere Wahrnehmungsorgane gefiltert wird, wir also keineswegs sicher sein können, dass die Welt so beschaffen ist, wie wir sie wahrnehmen;
  • die Beantwortung zwangsläufig mit sprachlichen Mitteln erfolgen muss, wir uns also bei der Beschreibung des Wahrgenommenen möglicherweise nochmals durch die Wahl unserer Begriffe, Worte und Bilder vom eigentlich "Seienden" entfernen.

Die sog. traditionelle Ontologie war von alters her dem Gebiet der Metaphysik zugeordnet. Wahrend sich die Physik mit der Existenz der (materiellen) Dinge, deren Bewegungen und der natürlichen Notwendigkeit der Materie (res concretae) befasst, sind es bei der Metaphysik die Grunde der Dinge und der dahinter stehenden Ideen (res abstractae).

Schon Kant beurteilte die traditionelle Ontologie als .anmaßend" und ersetzt die (doktrinäre) Annahme "gegebener" Objekte durch eine Transzendentalphilosophie, die "die Bedingungen und ersten Elemente aller unserer Erkenntnis a priori enthält" ([10], S.1194) und damit die Erkenntnis als Filter für das "Seiende" einsetzt.

Im 20.Jahrhundert gibt es Versuche zu einer logisch präzisen Fassung, z.B. bei E. Husserl als formale Ontologie mit Mitteln der "reinen Logik". Husserl unterscheidet explizit zwischen dem (materialen, in der Natur verankerten) Ding schlechthin und dessen Sinn, dem keine "realen Eigenschaften" zugeordnet werden können. Die Analyse von Wahrnehmungen und Erlebnissen im Hinblick auf ihren Sinn fuhrt zur Erkenntnis verschiedener "Seinsregionen" und damit zu - jetzt im Plural auftretenden (!) materialen bzw.regionalen Ontologien.

Modernere Ansätze laufen darauf hinaus, der Ontologie ihren metaphysischen Charakter zu nehmen. So ruckt in der analytischen Philosophie der sprachliche Gesichtspunkt ins Zentrum: Eine Ontologie ist sprecherbezogen und gibt dem Hörer oder Leser die Existenzvoraussetzungen an, an die er sich durch das Akzeptieren einer Sprache oder Theorie bindet ([10], S.1199). Eine radikal formalistische Ausprägung dieses Ansatzes formuliert W. van O. Quine: "To be is to be the value of a bound variable" ((zit.n.[11])

Hier kommen sich zu guter Letzt Philosophie und Informatik doch noch nahe: Ontologie wird nicht mehr als metaphysische Deutung des Wesens aller Dinge, sondern als praxisgeleitete sprachliche Kategorisierung von Lebens- und Wissensbereichen verstanden. In diesem Sinne sollte es - trotz der damit verbundenen und von P. Janich mit Recht aufgezeigten Gefahren von Mißverständnissen [9] - auch Informatikern erlaubt und für sie möglicherweise sogar nützlich sein, sich mit Ontologie(n)zu beschäftigen [6].

                   Artikelanfang  Seitenanfang

Literatur

  1. Berners-Lee, T., Hendler, J., Lassila, O.: The Semantic Web. Scientific American, www.scientificamerican.com/2001/0501issue/0501berners-lee.html (Mai 2001)
  2. Falkenberg, E. D., Hesse, W., Lindgreen, P., et al.: FRISCO - A framework of information system concepts. The FRISCO Report. IFIP WG 8.1 Task Group FRISCO (Web version: 1998)
  3. GI-Arbeitskreise "Terminologie der Softwaretechnik" und "Begriffe für Vorgehensmodelle": Informatik-Begriffsnetz. http://www.tfh-berlin.de/~giak/ (Stand v. 01.06.2002)
  4. Gruninger, M., Lee, J.: Ontology - applications and design. Comm. ACM 45(2), 39-41 (2002)
  5. N. Guarino: Formal Ontology and Information Systems. In: Proc. FOIS'98, Trento (Italy), June 1998, pp 3-15. IOS Press, Amsterdam 1998
  6. Hesse, W., v. Braun, H.: Wo kommen die Objekte her? Ontologisch-erkenntnistheoretische Zugänge zum Objektbegriff. In: Bauknecht, K., et al. (eds.): Informatik 2001 . Tagungsband der GI/OCG-Jahrestagung, Bd. II, S. 776-781. Österr. Computer-Gesellschaft 2001
  7. Hesse, W., Barkow, G., v. Braun, H., Kittlaus, H. B., Scheschonk, G.: Terminologie der Softwaretechnik . Ein Begriffssystem für die Analyse und Modellierung von Anwendungssystemen. Informatik Spektrum 17(1), 39-47, und 17(2), 96-105 (1994)
  8. Holsapple, C. W., Joshi, K. D.: A collaborative approach to ontology design. Comm. ACM 45(2), 42-47 (2002)
  9. Janich, P.: Wozu Ontologie für Informatiker? Objektbezug durch Sprachkritik. In: Bauknecht, K., et al. (eds.): Informatik 2001 - Tagungsband der GI/OCG-Jahrestagung, Bd. II, S. 765-769. Österr. Computer-Gesellschaft 2001
  10. Ritter, J., Gründer, K.: Historisches Wörterbuch der Philosophie, Bd. 6. Darmstadt: Wissenschaftliche Buchgesellschaft 1998
  11. Schefe, P.: Softwaretechnik und Erkenntnistheorie. Informatik Spektrum 22(2), 122-135 (1999)
  12. Staab, S.: Wissensmanagement mit Ontologien und Metadaten. Informatik Spektrum 25(3), 194-209 (2002)
  13. Wand, Y., Weber, R.: An ontological model of an information system. IEEE Transact. on Software Eng. 16(11), 1282-1292 (1990)

Hinweis: Die URLs entsprechen dem Stand bei der Veröffentlichung des Artikels und werden nicht aktualisiert.

                   Artikelanfang  Seitenanfang

Autor & Copyright
Wolfgang Hesse
FB Mathematik und Informatik,
Philipps-Universität Marburg

© 2002 Informatik Spektrum, Springer-Verlag Berlin Heidelberg

                   Artikelanfang  Seitenanfang

Organic Computing

Kurzinfo Eine der folgenträchtigsten Entwicklungen der Informatik ist ihr Zusammenspiel mit der Biologie. Einerseits wären z.B. die Kartographierung des menschlichen Erbguts oder die Aufklärung der räumlichen Proteinstrukturen ohne Informatikmethoden unmöglich, andererseits gewinnt die Nutzung biologischer Prinzipien in der Informatik zusehends an Bedeutung. Künftige komplexe computerisierte Systeme werden lebensähnlich – oder „organisch". Dafür müssen die von der Natur verwendeten Organisationsprinzipien genauer erforscht und in Informatiksystemen nutzbar gemacht werden.

Erläuterung

Beherrschung der Komplexität

Technische Systeme werden immer komplexer. Dies ist eine Folge der weiterhin ungebrochenen Entwicklung der Mikroelektronik. Hinzu kommt in den letzten Jahren eine verstärkte Einbettung großer Hardware- und Software-Komplexe in technische Systeme wie Flugzeuge, Fahrzeuge, Telekommunikationsnetze und Fabrikationsanlagen. Hier liegt ein Großteil des Entwicklungs- und Differenzierungspotenzials insbesondere deutscher Produkte. Die schmerzhafte Erfahrung der Hersteller zeigt jedoch bereits heute, dass diese Systeme nur mehr schwer zu beherrschen sind. Eine Extrapolation auf künftige insbesondere sicherheitskritische und noch stärker vernetzte Systeme macht deutlich, dass wir nach neuen Organisationsprinzipien Ausschau halten müssen.

Das Verhalten technischer Systeme steht im Gegensatz zu dem von Lebewesen, die unter den unterschiedlichsten Bedingungen adäquat funktionieren und sich auch wechselnden Bedingungen flexibel anpassen können. Sie sind zu solchen Leistungen auf allen Organisationsebenen (Moleküle, Zellen, Organismen, Gesellschaften) in der Lage. Daher muss es nützliche, robuste und (hoffentlich) relativ einfache allgemeine Strategien dafür geben. Es liegt nahe, Erkenntnisse über die Funktionsweise lebender Systeme für die Entwicklung von künstlichen nutzbar zu machen. Computersysteme, die diesen Anforderungen genügen, nennen wir „organisch". Ein „organischer Computer" (OC) ist definiert als ein selbst-organisierendes System, das sich den jeweiligen Umgebungsbedürfnissen dynamisch anpasst. Organische Computersysteme haben sog. „Self-x-Eigenschaften": Sie sind selbst-konfigurierend, selbst-optimierend, selbst-heilend, selbst-erklärend und selbst-schützend.

Die Vorteile liegen auf der Hand: Organische Computersysteme verhalten sich eher wie intelligente Assistenten als starre Befehlsempfänger. Sie sind flexibel, robust gegenüber (Teil)ausfällen und in der Lage, sich selbst zu optimieren. Der Entwurfsaufwand sinkt, da nicht jede Variante im Voraus programmiert werden muss.

Dem stehen jedoch potenziell gravierende Nachteile gegenüber. Lernende Systeme können Fehler machen, die in technischen, insbesondere sicherheitskritischen Anwendungen aber nicht toleriert werden können. Lernen bedeutet zunächst unproduktiven Aufwand; dies kann zu langen Trainings- und Umkonfigurationszeiten, somit zu langen Reaktionszeiten führen. Schließlich eröffnet die Adaptivität eines Systems auch neue Möglichkeiten für gezielt unerlaubte Beeinflussungen.

Organisationsmuster komplexer Systeme

Systemeigenschaften wurden anhand von natürlichen Systemen (z.B. dissipativen Strukturen [12], autokatalytischen Zyklen [2], Ameisenstaaten) untersucht. Der Natur nachempfundene und im Rechner nachgebildete Systeme werden in der „Artificial-Life-Forschung" untersucht. Systeme, welche aus großen Populationen autonomer Komponenten bestehen, durch evolutive Mechanismen lernen, einen rein lokalen sensorischen Kontext besitzen und massiv miteinander vernetzt sind, scheinen spontan die Fähigkeit zur Selbstorganisation und damit zur Höherentwicklung (im Sinne von emergenten Ordnungsstrukturen) zu besitzen.

Emergenz ist dabei als die Eigenschaft eines Gesamtsystems definiert, welches nicht durch einfache Summation von Teileigenschaften errechnet werden kann. Emergente Phänomene sind charakterisiert durch

  • die Interaktion meist großer Zahlen von Individuen
  • ohne zentrale Kontrolle
  • mit dem Ergebnis der Bildung kohärenter Muster, welche nicht explizit vorprogrammiert wurden (http://www.beart.org.uk/Emergent/).

Ein Beispiel für eine einfache emergente Eigenschaft ist die Resonanzfrequenz eines Schwingkreises: Sie ist weder in der Spule noch im Kondensator allein zu finden sondern entsteht aus deren Zusammenwirken. Eine weitere für lebende Systeme charakteristische Eigenschaft ist die Autopoiese [6], die Fähigkeit eines Systems sich „selbst zu machen", zu erhalten und somit zu leben. Eine zentrale Rolle für das Verhalten komplexer Systeme dürfte auch die Chaostheorie [11] spielen. Sie vermag die relative Stabilität lebender Systeme gegenüber Umwelteinflüssen zumindest qualitativ zu erklären. Erst äußere Ereignisse, welche gewisse Toleranzschwellen überschreiten („system events"), können das System – über instabile Zwischenstufen – zu neuartigen dynamischen Zuständen (Attraktoren) führen. Insbesondere für das Gehirn scheint die Beschreibung als selbstorganisierendes dynamisches System angemessen zu sein (von der Malsburg, in [1], S. 1002ff).

Ähnliche Ansätze und Abgrenzung

Organic Computing ist nicht der erste Versuch, die Natur als Vorbild für technische Systeme zu nutzen. Zelluläre Automaten realisieren das Prinzip der strikten Lokalität und zeigen, wie hieraus globale Muster entstehen (z.B. [9]). Pionierarbeit auf dem Gebiet der biologisch inspirierten Optimierung haben Rechenberg (evolutionäre Algorithmen) und Goldberg (genetische Algorithmen) geleistet. Als weitere höchst fruchtbare Forschungszweige sind hier die künstlichen neuronalen Netze und die genetische Programmierung (Bibliographie in http://www.genetic-programming.org) zu nennen.

Noch näher an der Biologie ist die Artificial-Life-Forschung (s. z.B. [5] und http://www.calresco.org/) anzusiedeln. Ihr Ziel ist die Untersuchung künstlicher, weil im Computer angesiedelter, lebensähnlicher Prozesse. Es geht um die Frage „Was ist Leben?" oder „Wie könnten alternative Lebensformen aussehen?". Leider hat sich die Artificial-Life-Forschung in Bezug auf die technische Nutzung ihrer Ergebnisse nicht hinreichend engagiert.

Evolutive und genetische Algorithmen, Simulated Annealing, künstliche neuronale Netze (Techniken, die auch unter dem Begriff Soft Computing bekannt sind), die Bionik sowie die Robotik versuchen jeweils spezielle Mechanismen der Natur zu simulieren und zu nutzen. Das von IBM als unternehmensweites Leitprojekt propagierte Autonomic Computing [4] verfolgt ähnliche Ziele wie OC, ist aber in seinem Anwendungsbereich vorerst auf die Selbstorganisation von Rechenzentren und Netzen ausgerichtet. Der Bereich der eingebetteten Prozessoren, welche unsere Alltagsumgebung „intelligent" machen sollen, wird im derzeit sehr aktiven Forschungsgebiet des Ubiquitous Computing (z.B. [7, 14]) untersucht.

Organische Computersysteme sind inspiriert von Ideen aus der Biologie. Aber sie basieren (bis auf weiteres) auf herkömmlicher Siliziumtechnologie. Ihre lebensähnlichen Eigenschaften wirken sich auf der Ebene des Gesamtsystems und beim Aufbau und Zusammenspiel ihrer Komponenten aus. Wir meinen mit dem Begriff „organische Computersysteme" weder DNA-basierte Rechner noch Recheneinheiten auf der Basis von Neurocomputern – obwohl solche Technologien sehr wohl längerfristig ins Bild passen.

Erste Beispiele

  • Das Internet stellt eine der komplexesten technischen Strukturen dar. Es wurde jedoch nicht im Detail geplant. Trotzdem sind, wie im Rahmen der „Small-world-Hypothese" (http://smallworld.columbia.edu/) gezeigt wird, Ordnungsstrukturen entstanden, welche Ähnlichkeiten mit denen des Gehirns aufweisen.
  • Ein instruktives Beispiel für ein Problem, das erfolgreich mittels OC bearbeitet wurde, ist die automatische Gesichtserkennung (Würtz in [1], S. 434ff). Biologisch inspirierte Bildverarbeitung zusammen mit Selbstorganisation, elastischem Graphmatching und dem Datenformat der Bündelgraphen hat zur Entwicklung eines leistungsfähigen Gesamtsystems geführt, das die Basis eines der erfolgreichsten kommerziellen Gesichtserkennungssysteme bildet (z.B. http://www.frvt.org). Diese Technik ist direkt von einem auf selbstorganisierenden neuronalen Netzen basierenden Modell der Hirnfunktion abgeleitet (von der Malsburg in [1], S. 365ff). In diesem Beispiel hat die konsequent am Lernen von der Natur ausgerichtete Entwurfsmethodik direkt zu einem technischen Durchbruch geführt.
  • Ein wesentliches Problem bei der Entwicklung autonomer Systeme ist die adaptive Merkmalsfusion. Z.B. sind für das Verfolgen von Personen durch eine Videosequenz verschiedene Merkmale nützlich wie Hautfarbe, Form oder kohärente Bewegung. Die Technik der „demokratischen Integration" [13] stellt eine selbstorganisierte zeitlich veränderliche Gewichtung der einzelnen Merkmale zur Verfügung und erreicht eine deutlich robustere Verfolgungsmethode, die auch mit relativ schnellen Änderungen in der Umwelt umgehen kann.

Entwurf und Modellierung

Es geht im Forschungsgebiet Organic Computing zunächst darum, die natürlichen Phänomene besser und vor allem quantitativ zu verstehen, welche zu Emergenz, Selbstorganisation und autonomem Verhalten führen. Darüber hinaus muss das Ziel aber in einer ingenieurtechnischen Beherrschung solcher Systeme liegen.

Der herkömmliche Entwurfsprozess ist streng hierarchisch und von oben nach unten organisiert (Top-down-Entwurf). Er besteht aus einer Reihe von Modellierungen, beginnend mit einer abstrakten Spezifikation, die über mehrere Ebenen immer weiter verfeinerter Struktur- und Verhaltensbeschreibungen schließlich zu einem Modell führt, das direkt die Fertigung steuert. Die dieser Entwurfsmethodik zugrunde liegende Denkweise ist die möglichst vollständige Umsetzung der Spezifikation in Detailentwürfe – somit also eine vollständige Kontrolle des Verhaltens des resultierenden technischen Systems. Vom Entwickler wird damit erwartet, dass er alle denkbaren Systemzustände vorausgedacht hat.

Mit der Zulassung emergenter oder selbst-organisierender (Teil)systeme wird dieser strikte Topdown-Prozess verlassen. Wir wollen dabei ja gerade erreichen, dass das Zielsystem in gewissen Grenzen ein Verhalten zeigt, welches der Entwickler nicht vorgedacht hat. Hier liegt aber ein fundamentaler Widerspruch zwischen Top-down-Kontrolle und kreativem Bottom-up-Verhalten verborgen. Es ist heute noch nicht klar, wie diese beiden gegenläufigen Tendenzen miteinander vereinbart werden können. Ansätze liegen in Verfahren der Constraint Propagation, dem Einsatz von Assertions [8, 10] und sog. Observer/Controller-Architekturen.

Observer/Controller-Architekturen nehmen Anleihen beim makroskopischen Aufbau des Gehirns vor. Hier existieren neben den direkten Reizreaktionsmechanismen zwischengeschaltete Überwachungsapparate, welche den sensorischen Input filtern und die vom bewussten Gehirn vorgeschlagenen Aktionen einer Bewertung unterziehen. Diese Funktion wird vom limbischen System ausgeführt, welches dem bewussten und logischen Denken die emotionale Färbung aufprägt. Die technische Basis für autonome Controller/Observer ist in einzelnen der heute in Entwicklung befindlichen eingebetteten Prozessoren bereits vorgesehen.

Forschungsziele

Trotz vieler interessanter Forschungsansätze sind zentrale Fragen des OC ungelöst und bedürfen einer übergreifenden Analyse und Kooperation. Es werden drei große Teilgebiete gesehen, welche weitgehend parallel zu bearbeiten sind (Abb. 1). Es sind dies:

  • Verständnis der Prinzipien der Selbstorganisation natürlicher Systeme,
  • Umsetzung dieser Prinzipien in technisch nutzbare Verfahren und Werkzeuge,
  • Praktische Nutzung in technischen Anwendungen.

Abb. 1 Die drei Hauptarbeitsgebiete des OC

Das Studium der OC-Prinzipien kann an Hand von natürlichen aber auch von simulierten selbstorganisierenden Systemen erfolgen. Zu untersuchende Phänomene sind die Emergenz und Selbstorganisation, die Möglichkeit eines begrenzten Bewusstseins, die optimale Gewichtung zwischen konkurrierendem und kooperativem Verhalten sowie die Grenzen des Determinismus in emergenten Systemen.

Aus diesem grundlegenden Verständnis abzuleiten sind Verfahren und Werkzeuge (im Sinne eines OC-Werkzeugkastens), welche die Elemente technischer Anwendungssysteme bilden können.

Die technischen Anwendungen im Bereich der Fahrzeugtechnik, der Telekommunikation oder der Smart Environments (Büro, Home) bilden das Ziel der Arbeiten und dienen ihrer Fokussierung. Insbesondere sollen auf diesen Gebieten auch bereits kurzfristig einsetzbare Teillösungen vorliegen.

Zu den besonders dringlichen Forschungsthemen gehören die Folgenden.

Theorie. Ein grundlegendes theoretisches Verständnis des Verhaltens komplexer Systeme, seien sie biologisch oder technisch, fehlt weitgehend. Hierzu gehören auch Metriken zur quantitativen Beurteilung von Selbstorganisations- und Emergenzphänomenen.

Zielgerichtete Prozesse. OC soll über die bisherigen Ansätze hinausgehen, indem nicht die Entwicklung statischer Strukturen studiert wird, sondern die Organisation zielgerichteter Prozesse. Die Theorie der Selbstorganisation (z.B. [3]) behandelt die Konvergenz einfacher Systeme zu statischen Formen; die Algorithmik beschäftigt sich mit Verfahren, die aus einem gegebenen Input in akzeptabler Zeit einen gewünschten (statischen) Output berechnen. Was Not tut ist das Studium einer Vielzahl von Prozessen, die sich gegenseitig beeinflussen und auf eine ständig variable Umwelt angemessen reagieren. Hierfür ist derzeit keine Theorie in Sicht.

System-Architekturen. Es ist unrealistisch anzunehmen, dass sich ein komplexes technisches System (z.B. die 100 Controller in einem KFZ) spontan und sinnvoll selbst organisiert. Anzustreben ist vielmehr eine evolutive und schrittweise Öffnung und Parametrisierung bestehender Systeme sowie ihre Kontrolle durch höhere Systemkomponenten. Hierzu sind mehrschichtige Observer/Controller-Architekturen zu entwickeln.

Sicherheit und laterale Beschränkung. Lernende und selbstorganisierende Systeme besitzen per definitionem die Möglichkeit zur Weiterentwicklung in vom Entwickler nicht explizit vorgeplante Richtungen. Bei ihrem Einsatz in technischen, häufig sicherheitskritischen Systemen müssen Fehlentwicklungen verhindert werden. Der (kreative) Versuch einer lernenden Ampelsteuerung, alle 4 Ampeln auf Grün zu schalten, darf nicht umgesetzt werden!

Embedded Learning und Einbeziehung von A-priori-Wissen. Lernalgorithmen sind i.a. zeitaufwändig und benötigen beträchtliche Rechenressourcen. Diese stehen in eingebetteten hochgradig verteilten Systemen i. d. R. nicht zur Verfügung. Während das Lernverhalten „ab initio" wissenschaftlich interessant ist, muss in technischen Anwendungen auf Effizienz geachtet werden. Daher ist eine Verwendung von A-priori-Wissen in Form von vom Entwickler vorgegebenen Regeln vorteilhaft, damit das Lernverfahren schneller konvergiert.

Flexible Interaktion mit der Umwelt. Die Wahrnehmungsfähigkeit künstlicher Systeme muss drastisch verbessert werden, um zu brauchbarer Autonomie und natürlicher Benutzerinteraktion zu kommen.

Selbsterklärung. Ein für ein selbstorganisierendes System verantwortlicher Entwickler muss Einblick und Kontrollmöglichkeiten behalten. Die Systeme sollten daher selbst-erklärend sein (eine Eigenschaft, die z.B. ein künstliches neuronales Netz nicht hat).

Ausblick

Organic Computing ist keine etablierte Technologie, sondern ein aktuelles, im Entstehen begriffenes interdisziplinäres Forschungsfeld, das erste Erfolge vorweisen kann. Das gezielte Zusammenführen von Grundlagenarbeiten aus dem Bereich der Biologie und der Neuroinformatik mit Methoden der praktischen und technischen Informatik sowie die verstärkte Ausrichtung auf die industrielle Anwendbarkeit lassen bereits in naher Zukunft interessante Ergebnisse erwarten. Langfristig bietet Organic Computing die Chance, die bereits heute sichtbar werdenden Probleme der Beherrschung komplexer technischer Systeme besser in den Griff zu bekommen. Darüber hinaus besteht begründete Hoffnung, auch ein vertieftes Verständnis und Lösungsansätze für Organisationsprobleme in den Neurowissenschaften und der Molekularbiologie zu finden.

Es ist nicht die Frage, ob adaptive und selbstorganisierende Systeme entstehen – erste Ansätze sind vielfach zu beobachten – sondern wie wir sie gestalten. Dem Albtraum eines autonomen Systems, das seinen eigenen „Willen" durchsetzt, steht die Vision von freundlichen Systemen gegenüber, welche nicht bedient werden sondern dem Menschen dienen

                   Artikelanfang  Seitenanfang

Literatur

  1. Arbib M. A.: Handbook of Brain Theory and Neural Networks, 2.Auflage. MIT Press, 2002.
  2. Eigen M., Schuster P.: The Hypercycle: a principle of natural self-organization. Berlin, Heidelberg, New York: Springer 1979
  3. Jetschke G.:Mathematik der Selbstorganisation. Frankfurt am Main: Harri Deutsch 1989
  4. Kephart J., Chess D.: The Vision of autonomic computing. Computer Magazine, IEEE, 2003
  5. Langton C. G.: Artificial life. In: Langton C. (Hrsg.): Artificial life, SFI Studies in the Sciences of Complexity, Proc. Vol. VI. Redwood City/CA: Addison-Wesley 1989
  6. Maturana H. R.,Varela F. J.: Autopoiesis and cognition: the realization of the living. Dordrecht: Reidel 1980
  7. Mattern F.:Ubiquitous computing: Szenarien einer informatisierten Welt. In: Zerdick A., Picot A., Schrape K., Burgelman J.-C., Silverstone R., Feldmann V., Heger D. K.,Wolff C. (Hrsg.): E-Merging Media – Kommunikation und Medienwirtschaft der Zukunft. (S. 155–174) Berlin, Heidelberg New York Tokio: Springer 2004
  8. Meyer B.:Object-oriented software construction, 2nd edn. Prentice Hall 2000
  9. Neumann von J. et al.:Theory and organization of complicated automata. In: Burks A. W. (Hrsg.):Theory of self-reproducing automata [by] John von Neumann (S. 29–87), Part One. Urbana:University of Illinois Press
  10. Oodes T., Krisp H., Müller-Schloer C.: On the combination of assertions and virtual prototyping for the design of safety-critical systems, ARCS 2002/Trends in Network and Pervasive Computing, Karlsruhe. Berlin Heidelberg New York Tokio: Springer 2002
  11. Ott E.: Chaos in dynamical systems. Cambridge: Cambridge University Press 1993
  12. Prigogine I., Kondepudi D.:Modern thermodynamics: From heat engines to dissipative structures. Chichester: John Wiley & Sons 1998
  13. Triesch J.,Malsburg C. von der:Democratic integration: Self-organized integration of adaptive cues. Neural Computation 13(9), 2049–2074 (2001)
  14. Weiser M.:The computer for the 21st century. Scientific American 265(3), 94–104 (September 1991)

Hinweis: Die URLs entsprechen dem Stand bei der Veröffentlichung des Artikels und werden nicht aktualisiert.

                   Artikelanfang  Seitenanfang

Autor & Copyright
Christian Müller-Schloer
Universität Hannover,
Appelstr. 4, 30167
cms@sra.uni-hannover.de

Christoph von der Malsburg
Rolf P. Würtz

DOI 10.1007/s00287-004-0409-6
© Springer-Verlag 2004

                   Artikelanfang  Seitenanfang

Das OSF Distributed Computing Environment

Erläuterung

Verteilte Anwendungsprogramme auf Rechnernetzen gewinnen immer stärker an Bedeutung in Bereichen wie Büroautomatisierung oder rechnerintegrierte Fertigung. Zur Realisierung solcher Programme sind spezielle Werkzeuge und Laufzeitmechanismen wünschenswert [1]. Das Distributed Computing Environment (DCE) der Open Software Foundation (OSF) [2, 3, 4] ist ein entsprechendes unterstützendes Gesamtsystem.

Die Funktionalität des DCE umfaßt die Kommunikation in heterogenen Systemen mittels RPC, nebenläufige Verarbeitung durch leichtgewichtige Prozesse, verteilte Namensverwaltung, Gewährleistung von Sicherheitsaspekten (z.B. Zugriffsschutz), verteilte Synchronisation der Systemzeit, verteilte Dateiverwaltung und Integration von PCs und plattenlosen Rechnern in eine verteilte Workstation-Umgebung.

Diese Funktionalität wird durch verschiedene dedizierte Teilkomponenten erbracht, die von der OSF aus existierenden Systemvorschlägen aufgrund praxisnaher Kriterien ausgewählt und integriert wurden. Zahlreiche Hersteller sind inzwischen Mitglied der OSF und werden eine DCE-Realisierung in Kürze auf ihren Systemen anbieten (z.B. für OSF/1, DEC/Ultrix, IBM/AIX, SunOS, VAX/VMS und z.T. begrenzt für PC/DOS, OS/2 und OS/400). Durch einheitliche Programmier- und Kommunikationsschnittstellen des DCE für alle Plattformen ist die durchgängige Portabilität von DCE-Anwendungen garantiert; dies ist neben der umfangreichen Funktionalität des DCE ein wesentliches Kriterium für die große praktische Bedeutung dieser Softwareumgebung.

Abbildung 1 zeigt die Gesamtarchitektur des DCE. Alle Komponenten basieren auf lokalen Betriebssystemdiensten (z.B. von Unix) und Transportdiensten (z.B. TCP/IP). Verteilte Anwendungen verwenden die sog. DCE-Basisdienste (kursiv in Abb. 1) explizit über eine in C eingebettete Programmierschnittstelle [5] und die weiteren DCE-Systemdienste implizit über z.T. modifizierte Betriebssystemoperationen. Die DCE-Teilkomponenten machen intern auch gegenseitig voneinander Gebrauch.

Abb 1 Gesamtarchitektur des OSF DCE

Basisdienste

Der Threads Service (Basis: DEC Concert Multithread Architecture) bietet eine portable (POSIX Standard 1003.4a, Draft 4) Implementierung leichtgewichtiger Prozesse (Threads) an. Diese teilen sich einen Adreßraum und ermöglichen die nebenläufige Verarbeitung. Dadurch können z.B. entfernte Aufrufe quasiparallel abgesetzt oder lokale Berechnungen nebenläufig durchgeführt werden.

Der Remote Procedure Call (Basis: DEC/HP Network Computing System) dient zur Kommunikation zwischen verteilt plazierten Modulen einer Anwendung auf der Basis des Client/Server-Modells; ein Client fordert bestimmte Dienste von einem Server in Form entfernter Prozeduraufrufe an. Die Prozedurschnittstellen werden in einer deklarativen Sprache (IDL), Interface Definition Language) in Anlehnung an C beschrieben. Das DCE bietet einen IDL-Compiler sowie Laufzeitmechanismen zur Zuordnung von Servern zu Clients (Binden) und zur IDL-basierten Kodierung und Übertragung entfernter Prozeduraufrufe an. Es sind geschachtelte Parameterstrukturen mit Zeigern und Feldern möglich, deren Daten als Wertparameter übergeben werden. Der DCE-RPC bietet eine wählbare Aufrufsemantik (z.B. At-Most-Once-Semantik für normale Aufrufe, die effizientere Idempotent-Semantik für reine Leseoperationen und die Maybe-Semantik für unbestätigte Aufrufe), nebenläufige Aufrufbearbeitung durch mehrere Server-Threads, geschachtelte Aufrufe und Rückaufrufe vom Server an den Client, sichere (authentisierte, autorisierte und verschlüsselte) Aufrufe und Kommunikation zwischen heterogenen Rechnern mit automatischer Datenformat-Konvertierung.

Der Cell Directory Service (CDS) (Basis: DEC Distributed Naming Service (DNS)) verwaltet logische Namen, z.B. von Servern, und bildet diese auf Netzadressen ab, um den Zugriff z.B. durch Clients, zu ermöglichen. Der verwendete Namensraum ist hierarchisch strukturiert. Auch attributierte Namen sind möglich, was z.B. die Anfrage unter Ressourcen-bezogenen Nebenbedingungen erlaubt. Der CDS wird durch mehrere Server implementiert, was z.B. intern die teilweise Replikation des Namensraums ermöglicht. Clients halten sich einen Cache von Anfrageergebnissen. Hierdurch können Verfügbarkeit und Zugriffseffizienz verbessert werden. Die Programmierschnittstelle wird durch das standardisierte X/Open Directory Service Interface realisiert.

Der Security Service (Basis: MIT/Kerberos [6], ergänzt von HP Security Components) ermöglicht Authentisierung, Autorisierung und Verschlüsselung. Bei der Authentisierung bestätigt ein Client durch Angabe eines geheimen Codes (generiert aus seinem Paßwort) gegenüber einem Server, das es sich bei ihm wirklich um die vorgegebene Identität handelt; dies ist auch umgekehrt für Server möglich. Die Autorisierung ermöglicht die selektive Vergabe von Zugriffsrechten an Clients mittels Zugriffskontrollisten. Die Verschlüsselung von RPC-Nachrichten wird durch geheime Schlüssel realisiert.

Der Distributed Time Service (DTS) (Basis: DEC Distributed Time Synchronization) ermöglicht die Synchronisation der Systemuhren in einer verteilten DCE-Umgebung durch periodischen Austausch der Systemzeit. Es ist auch eine Synchronisation mit externen Zeitgebern möglich. Insgesamt wird hierdurch v.a. die Realisierung Zeitstempelverteilter Algorithmen erleichtert.

Weitere Systemdienste

Der Global Directory Service (GDS) (Basis: Siemens X.500) ergänzt den Cell Directory Service um eine globale Namensverwaltung für große Netze. Der GDS ist konform zur CCITT X.500-Norm, was weltweite Interoperabilität ermöglicht. Neben dem GDS kann auch der Internet Domain Name Service (DNS) als globaler Namensdienst mit dem CDS integriert werden

Das Distributed File System (Basis: Andrew File System [7] der CMU) dient zur netzweiten Dateiverwaltung. Es wird durch mehrere Server implementiert. Clients können innerhalb eines Verwaltungsbereiches lokationstransparent auf verteilt gespeicherte Dateien zugreifen. Der DFS erreicht eine hohe Effizienz und Skalierbarkeit durch ein gezieltes Caching auf den Client-Rechnern. Es ist auch Interoperabilität mit dem SUN Network File System (NFS) möglich; NFS kann als Client auf DFS-Server zugreifen.

Mit Hilfe des Diskless Support (Basis: HP Diskless Client Support) können plattenlose Workstations in eine DCE-Umgebung integriert werden und z.B. auf das DSF zugreifen.

Die PC Integration (Basis: SUN PC/NFS und HP/Microsoft LAN-Manager/X) ermöglicht den Zugang von PCs (mit DOS, UNIX oder OS/2) auf DCE-Server, primär auf DFS und dedizierte Druckerserver.

Gesamtbewertung

Das OSF DCE zeichnet sich durch recht umfassende Funktionalität, gute Komponentenintegration, herstellerübergreifende Interoperabilität in heterogenen Systemen sowie Produktqualität aus. Die Entwicklung verteilter Anwendungen wird durch das DCE auch nach eigenen Erfahrungen deutlich erleichtert.

Die DCE-Programmierschnittstellen sind allerdings teilweise sehr umfangreich und daher mit einigem Lernaufwand verbunden. Die DCE-Systemadministration erfordert aufgrund der umfassenden Funktionalität und der inhärenten Komplexität der DCE-Komponenten deutlich mehr Detailwissen als das herkömmliche Systemmanagement. Zukünftige Erweiterungen sollten an diesen Stellen ansetzen und z.B. vereinfachte objektorientierte Schnittstellen, etwa auf der Basis von C++, sowie weiterführende Management-Werkzeuge anbieten. Wünschenswert wäre auch die Integration verteilter Transaktionsverfahren, was gerade für kommerzielle Anwendungen von großer Bedeutung ist.

Insgesamt dürfen aber die Vorteile des DCE deutlich überwiegen; die Entwicklung verteilter heterogener Anwendungen ohne eine Umgebung wie das DCE wirft ungleich mehr Schwierigkeiten auf. Für die Zukunft bleibt abzuwarten, inwieweit praktisch bedeutsame Erweiterungen und neue Standards verstärkt berücksichtigt werden. Schon heute bietet das DCE aber eine vollständige, fertige Systemumgebung für die kommerzielle Software Entwicklung an.

                   Artikelanfang  Seitenanfang

Literatur

  1. Mühlhäuser, M., Schill, A.: Software Engineering für verteilte Anwendungen, Berlin-Heidelberg: Springer 1992
  2. Open Software Foundation: Introduction to OSF DCE, Cambridge, USA, 1992
  3. Hülsenbusch, R.: Verteilungswerkzeuge: DCE - Integrierte Tools für verteilte Anwendungen, iX, 1, 86-90 (1992)
  4. Schill, A.: Das OSF Distributed Computing Environment: Grundlagen und Anwendung. Berlin-Heidelberg: Springer (im Druck)
  5. Open Software Foundation: DCE Application Develpment Guide, Cambridge, USA, 1992
  6. Steiner, J.G.., Neuman, C., Schiller, J.I.: Kerberos: An Authentication Service for Open Network Systems. Usenix Winter Conf., Berkeley, CA, Jan 1988, p. 191-202
  7. Morris, J.H. Satyanarayanan, M., Conner, M.H., Howard, J.H., Rosenthal, D.S., Smith, F.D.: Andrew: A Distributed Personal Computing Envirenment. Comm. ACM 29 184-201 (1986)

                   Artikelanfang  Seitenanfang

Autor & Copyright
A. Schill
Universität Karlsruhe,
Institut für Telematik
Am Zirkel 2, W-7500 Karlsruhe 1

© 1992 Informatik Spektrum, Springer-Verlag Berlin Heidelberg

                   Artikelanfang  Seitenanfang