Abb. 1 Die drei Hauptarbeitsgebiete des OC

Objektrelationale Datenbanksysteme
Objektorientierter Datenbankentwurf
Ontologie(n)
Organic Computing
Organizational Memory
OSF Distributed Computing Environment
ErläuterungIn 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:
Die wichtigsten noch ungelösten Probleme mit Ontologien betreffen aus heutiger Sicht die folgenden Punkte:
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
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]. |
Hinweis: Die URLs entsprechen dem Stand bei der Veröffentlichung des Artikels und werden nicht aktualisiert. |
|
Autor & Copyright © 2002 Informatik Spektrum, Springer-Verlag Berlin Heidelberg |
ErläuterungBeherrschung der KomplexitätTechnische 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 SystemeSystemeigenschaften 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
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 AbgrenzungOrganic 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
Entwurf und ModellierungEs 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. ForschungszieleTrotz 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:
|
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). AusblickOrganic 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 |
Das OSF Distributed Computing Environment |
ErläuterungVerteilte 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
BasisdiensteDer 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 SystemdiensteDer 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. GesamtbewertungDas 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. |
|
Autor & Copyright © 1992 Informatik Spektrum, Springer-Verlag Berlin Heidelberg |