-

- -
-
- Verteilte Systemarchitekturen für vernetzte Communities
Von Peer-to-Peer zu Client/Server und zurück
// netzspannung.org im Interview mit Bernd Freisleben
-
- - -
-
-
-

»File Sharing«, »Cycle Stealing«, »Virtual Communities« und »Collective Intelligence« sind Begriffe, die aktuell großes Interesse finden. Bei allen Konzepten geht es um die gemeinsame Nutzung (»Sharing«) sowohl der zur Verfügung stehenden Rechner-Ressourcen,als auch der menschlichen Arbeitskraft. Wie soll die zu Grunde liegende Infrastruktur organisiert sein: zentral und hierarchisch oder verteilt und mit gleichwertigen Partnern, als »Client /Server« oder »Peer-to-Peer«?

netzspannung: Wie verstehen Sie den Begriff »verteilte Systeme« und was ist der aktuelle Stand der Forschung?

Bernd Freisleben: Zur Beantwortung dieser Frage möchte ich zwei oft zitierte Definitionen verteilter Systeme heranziehen, nämlich einerseits Leslie Lamport’s Definition: »Ein verteiltes System ist ein System, in dem ich keine Arbeit erledigt kriege, weil irgendein Rechner von dem ich nie gehört habe, abgestürzt ist.« Und andererseits die Definition von Andrew Tanenbaum: »Ein verteiltes System ist eine Sammlung unabhängiger Rechner, die dem Nutzer als ein Rechner erscheinen.«

Die erste Definition bezieht sich auf die Ausführung unterschiedlichen Teilaufgaben einer Aufgabenstellung durch eine Menge autonomer Rechnersysteme, die durch ein Netzwerk verbunden sind, während im zweitem Fall diese Rechner gemeinsam eine einzige Aufgabe bearbeiten. In beiden Definitionen ist die Forderung enthalten, dass der eigentliche Verteilungsaspekt den Benutzern verborgen bleibt - man spricht hierbei vom »Single System Image«.

- -

Bernd Freisleben ist Informatiker und Professor für verteilte und parallele Systeme an der Universität Siegen

Ein grosser Teil der aktuellen Forschungsarbeiten beschäftigt sich mit der Gewährleistung dieses »Single System Image«. Beispielsweise wird im Bereich des »Network Computing« die Vision verfolgt, Funktionalität und Rechenleistung von überall aus über das Internet bzw. WWW abrufen zu können (siehe z.B. » The Grid Forum«. Im Bereich des » Mobile and Ubiquitous Computing« verfolgt man das Ziel, spezielle Endgeräte möglichst transparent in das Internet zu integrieren. Gemeint sind sogenannte »Smart Devices«, Alltagsgeräte mit eingebautem Prozessor und eventuell Sensoren, sowie »Internet Information Appliances«, das sind mobile, drahtlos vernetzte Geräte wie Mobiltelefone, PDAs, Kameras und »wearable computers«.«

Wie sieht die historische Entwicklung verteilter Systemarchitekturen aus? Welche technischen Anforderungen und welche sozialen Parameter bestimmten die Entwicklung verschiedener Ansätze, wie z.B. Client-Server und Peer-to-Peer?

Als erste »verteilte« Systemarchitektur könnte man die bereits Anfang der 60er Jahre eingeführte sternförmige Struktur betrachten, in der die Terminals an einen Zentralrechner (»Mainframe«) angeschlossenen wurden. Dieser Ansatz ist eine frühe Form der Client/Server-Architektur, in der die vom Server angebotene Funktionalität von mehreren Clients benutzt wird. Mit der Einführung des ARPAnets 1971 und der Entwicklung des TCP/IP-Protokolls Anfang der 80er Jahre, wurden erste Kommunikationsdienste wie z.B. E-Mail, Telnet und FTP entwickelt. Das FTP (»File Transfer Protocol«) diente der direkten Übertragung von Dateien zwischen unterschiedlichen Rechnern ohne Zwischenschaltung eines Servers im ARPAnet bzw. dem später daraus hervorgehenden Internet. Und daher kann dieses Protokoll als konzeptuelle Urform der Peer-to-Peer-Technologie angesehen werden.

Letztlich gibt es ein Hauptkriterium, auf das man technische und soziale Aspekte der Entwicklung von verteilten Systemarchitekturen zurückführen kann: die gemeinsame Nutzung von Ressourcen aller Art (»Sharing«).

In heutigen internetbasierten Peer-to-Peer-Architekturen bezieht sich die gemeinsame Nutzung von Ressourcen auf Plattenspeicherplatz bzw. Dateien (»File Sharing«), auf Rechenleistung (»Cycle Stealing«) und auf menschliche Arbeitskraft bzw. Wissen (»Collective Intelligence«). Bekannte Beispiele sind gnutella, freenet und mojonation für »File Sharing«, popular power, united devices und moneybee für »Cycle Stealing«-Systeme, worldstreet und opencola für »Collective Intelligence«.

Welche Werkzeuge gibt es zur Unterstützung gemeinsamer Nutzung von Rechner-Ressourcen als Grundlage für kollaborative Informations beschaffung und Wissensentdeckung?

Für Systementwickler gibt es eine große Auswahl verschiedener Plattformen bzw. Frameworks zur Entwicklung verteilter Anwendungen, die Rechner-Ressourcen im Internet nutzen. Beispiele für universitäre Entwicklungen sind Programmer´s Playground und XtremWeb, während die Firmen Produkte wie COSM und FRONTIER anbieten. Zur Einrichtung gemeinsamer Workspaces im Internet gibt es ebenfalls sehr viele Softwaresysteme, die aus den seit mehreren Jahren betriebenen Forschungsarbeiten in den Gebieten des kollaborativen Arbeitens, CSCW und Groupware entstanden sind (siehe z.B. www.usabilityfirst.com/groupware/cscw.txl). Beispiele sind das aus universitären Arbeiten hervorgegangene TEAMWAVE, die Tools der »Non-Profit« Organisation THE CONTACT CONSORTIUM, sowie die von Firmen angebotenen Systeme GROOVE, FRIZZBY oder CONSILIENT. Softwarewerkzeuge die aus Anwendersicht relevanten Funktionalitäten des »File Sharing«, Cycle Stealing« und »Collective Intelligence« realisieren, habe ich bereits genannt.

Wie sehen die technischen Realisierungen dieser Ansätze aus?

Das wohl bekannteste Werkzeug zum »File Sharing« ist NAPSTER; man könnte sagen, dass die generelle Idee des »File Sharing« im Internet durch den von NAPSTER propagierten Austausch von Musikstücken im mp3-Format maßgeblich mitgeprägt wurde. NAPSTER ist kein echtes Peer-to-Peer-System, sondern basiert auf einem zentralen Verzeichnis, in die von registrierten Nutzern angebotenen Daten erscheinen (hierfür geben Nutzer einen Teil ihrer Festplatte frei). Bei Angabe einer Suchanfrage wird einem Nutzer eine Liste anderer Teilnehmer, die die gesuchten Dateien anbieten, mitgeteilt; der Austausch findet dann direkt statt. Gnutella, Freenet oder MojoNation sind dagegen echte Peer-to-Peer File Sharing Systeme, die ebenso wie NAPSTER zunächst von Einzelpersonen oder einer Gruppe von interessierten Personen initiiert wurden und keine zentralen Server mit einem zentralen Verzeichnis verwenden. Jeder Rechner ist hierbei gleichzeitig Client und Server. Suchanfragen werden direkt an einen anderen Rechner gestellt, der die Anfrage eventuell an andere Rechner weiterschickt, bis ein Rechner gefunden ist, der dann die Anfrage direkt beantwortet.

Die notwendige Kooperationsbereitschaft und Freigabe der Festplatte bei solchen Systemen hat mittlerweile zu Softwareprodukten wie SHARESNIFFER geführt, die internetweite Suchen nach »offenen« Rechnern durchführen und Inhalte ohne Einwilligung der Besitzer abrufen. Möglich wird dies durch mangelnde Sicherheitsvorkehrungen, die es insbesondere bei Rechnern mit dem Betriebssystem »Windows« erlauben, standardmäßig Dateien über das Internet zu lesen und zu modifizieren.

Die grundsätzliche Idee des »Cycle Stealing« entstammt aus dem Forschungsgebiet des parallelen Rechnens: die in den 90er Jahren entwickelten, sogenannten Ressourcenmanagement-Systeme für vernetzte Workstations bzw. Workstation-Cluster enthielten Komponenten zur automatischen Ausführung von Jobs auf ungenutzten Rechnern. Kommerzielle »Cycle Stealing« Systeme wie Moneybee, Popular Power oder United Devices und universitäre Projekte wie GLOBUS oder LEGION (als Übersicht siehe www.gridcomputing.com) basieren auf der Nutzung brachliegender Rechenzeit oder Speicherkapazität anderer Rechner im Internet. So können anspruchsvolle Rechenaufgaben verteilt bzw. parallel mit einer eventuell grossen Anzahl vernetzter Rechner durchgeführt werden, ohne dass die Teilnehmer dadurch beeinträchtigt werden - »fremde« Berechnungen laufen im Idealfall nur dann, wenn der Bildschirmschoner aktiv gewesen wäre; man verwendet hierfür manchmal die »Screen Saver Computation« Metapher.

Unter dem Begriff »Collective Intelligence« kann man ein weites Spektrum an Möglichkeiten einordnen. Einerseits fallen hierunter alle Softwarewerkzeuge, die internetbasierte Kooperation und Kollaboration ermöglichen, wie ich sie bereits angesprochen habe. Die zugrunde liegende Idee ist hierbei die Schaffung eines »gemeinsamen Arbeitsraumes«, was mit zahlreichen technischen Problemstellungen verbunden ist, die hier nicht erörtert werden können.

Andererseits gibt es Softwarewerkzeuge, die speziell für die kollektive Informationsbeschaffung und Wissensentdeckung konzipiert wurden. So kann man z.B. mit OpenCOLA Suchagenten an andere Rechner senden und die Relevanz der gefundenen Dokumente vom Agenten bewerten lassen, der hierfür eventuell von anderen Nutzern initiierte Agenten zu Rate zieht. Zusätzlich können Nutzer ihre eigene Bewertung der Nützlichkeit eines Dokuments angeben, die gleichzeitig die Bewertung sowohl anderer »Peers«, als auch anderer Nutzer, von denen die Information kam, beeinflusst. Mit der Zeit entwickelt sich hierdurch eine »intelligente kollaborative Filterung« von Dokumenten, die Empfehlungen von kompetenten Nutzern miteinbezieht. Der Versuch, qualitativ hochwertige Expertenmeinungen zur Wissenserhöhung und Entscheidungsfindung einzusetzen, wird beispielsweise durch das Worldstreet-System im Finanzbereich unternommen. Ich denke, dass wir zukünftig noch sehr viele unterschiedliche Anwendungen der »Collective Intelligence« sowohl aus dem universitären, als auch kommerziellen Umfeld sehen werden, da in diesem Bereich einerseits spannende Forschungsaufgaben und andererseits interessante finanzielle Marktpotentiale stecken.

Was sind die prinzipiellen Eigenschaften verteilter Systemarchitekturen?

Beim Entwurf von verteilten Systemen werden anwendungsspezifische Anforderungen berücksichtigt, die sich im wesentlichen auf die Kommunikation und Koordination innerhalb des Systems auswirken. Daneben gibt es aber auch eine Funktionsdistribution, die unabhängig von der geplanten Anwendung verschieden realisiert werden kann und eher von der geographischen und organisatorischen Verteilung des Systems beeinflusst wird. Beispiele wären die Lokalisierung und Speicherung von Daten, die zentral, dezentral oder repliziert ausgeführt werden kann und eher von technischen Anforderungen abhängen. Die Benutzerverwaltung wird dagegen oft durch organisatorische Vorgaben bestimmt und kann z.B. dezentral durch Verzeichnisdienste aufgebaut werden.

Kommunikation
Für die direkte Kommunikation zwischen zwei Rechnern im Internet sind eine Vielzahl von standardisierten und proprietären Protokollen verfügbar, die anhand verschiedener technischer Randparameter wie Durchsatz, verfügbare Bandbreite, Reaktionszeit aber auch Portabilität und Möglichkeit der Weiterleitung (Firewall) ausgewählt werden können. Sie unterscheiden sich im wesentlichen in der Codierung der Nachrichten und basieren auf dem TCP/IP-Protokoll, ohne das im Internet heute nichts mehr geht. Sicherlich ist aber bei dem Aufbau einer Infrastruktur für eine heterogene Rechnerlandschaft, wie wir sie im Internet vorfinden, die Wahl eines standardisierten und portablen Protokolls (z.B. CORBA oder SOAP) hilfreich. Neben der direkten werden auch indirekte Kommunikationsmodelle realisiert, die eine dritte Instanz als Vermittler verwenden. Dies kommt dann zum Einsatz, wenn zusätzliche, oft zentrale angebotene Funktionalitäten, die die Kommunikationspartner nicht anbieten, genutzt werden sollen. Beispiele hierfür sind die Zwischenspeicherung von Inhalten (Proxy), Filterfunktionalitäten (Suchmaschinen, Übersetzer) oder eine Verteilung von Nachrichten (Relayserver, Mailserver).

Koordination
Eine wesentlich komplexere und vieldiskutierte Frage stellt sich aber nach der Koordination der beteiligten Rechner. Ausgehend von den klassischen Client/Server-Modellen (WWW), die eine streng zentrale organisierte Koordination verfolgen, bis hin zu den oft zitierten Peer-to-Peer-Modellen, die auf eine komplett dezentral ausgerichtete Koordination setzen, finden sich dazwischen eine Vielzahl von Hybrid-Lösungen wie z.B. hierarchische Verzeichnisdienste oder domänenbasierte Email-Infrastruktur-Modelle.

Wird die bereits angesprochene Funktionsdistribution in einem verteilten System betrachtet, so lassen sich im wesentlichen drei Gruppen identifizieren. Zunächst einmal bieten bestimmte Rechner eine besondere Ressource an wie z. B. Rechenleistung, Speicherplatz, Dokumente. Diese Content Server (Inhaltsserver) können ihre angebotenen Ressourcen bei Directory Servern (Nachschlageserver) anmelden, so dass z.B. eine zentrale Registrierung der verfügbaren Dokumente aufgebaut wird. Eine dritte Gruppe, Discovery Server (Erkennungsserver), ist für die Feststellung der verfügbaren Rechner und Ressourcen zuständig, ähnlich einer Telefonvermittlung.

Bei der Betrachtung dieser Eigenschaften finden sich in aktuellen Systemen bereits eine Vielzahl von realisierten Kombinationen, die je nach Ziel und Einsatz differieren. Für die Gruppe der dezentral organisierten Systeme ist das bereits genannte Gnutella ein typischer Vertreter. Jeder Rechner ist gleichzeitig Content, Directory und Discovery Server. Damit wird ein Höchstmaß an Entkopplung und Redundanz erreicht und jede Kontrolle unmöglich gemacht. Der Zugriff auf die Ressourcen (File Sharing) erfolgt auf direktem Wege ohne Umwege über eine dritte Instanz. Dies hat natürliche erhebliche juristische Konsequenzen, was die eventuell illegale oder unentgeldliche Nutzung geistigen Eigentums an digitalen Produkten aller Art angeht, auf die ich aber hier nicht weiter eingehen möchte. Ein technischer Nachteil dieser Strategie liegt allerdings im hohen Bandbreitenbedarf, da bei einer Suche von Ressourcen im Prinzip alle Rechner im System beteiligt sein können. Eine hybride Lösung wird von ICQ genutzt, indem eine zentrale Stelle die Funktion der Directory und Discovery Server übernimmt. Die eigentliche Kommunikation erfolgt dann aber direkt zwischen den beteiligten Rechnern. In der Gruppe der zentral organisierten Systeme finden sich in der Regel Anwendungen, die mit relativ wenig Anforderungen beim Client auskommen müssen. So wird z.B. für internetbasierte Online-Foren ein zentraler Server bereitgestellt, über den die indirekte Kommunikation zwischen den Clients stattfindet und der die Registrierung und Vermittlung zwischen den Clients übernimmt.

Wie ordnen Sie netzspannung.org ein?

Betrachtet man sich weitere existierende Lösungen, so stellt man fest, dass alle Systeme für ein relativ eng abgegrenztes Szenario mit definierten Funktionalitäten entwickelt wurden. Im Gegensatz dazu stellt netzspannung.org ein offenes System dar, das als Grundlage für die Entwicklung verschiedenster Internet-Anwendungen konzipiert ist. Dieses System integriert verschiedene Ansätze verteilter Systemarchitekturen. Zum einen, implementiert es eine domänenbasierte Struktur, die sich praktisch im Internet seit Beginn bewährt hat. Eine Domäne ist hier ein Verbund von Rechnern, die von einer Person oder Institution in zentraler Organisation aufgebaut und verwaltet wird. In dieser Betrachtung wäre jede Website, die aus mehreren Internet- und Datenbankservern besteht, eine Domäne. Andererseits, wird als Verbindung zwischen den Domänen ein dezentraler Ansatz angewendet, in dem die Domänen sich wie Rechner in einem Peer-to-Peer Netzwerk verhalten Das interessante daran ist es, dass sich die Gesamtstruktur von einem reinen Peer-to-Peer Netzwerk, in dem jede Domäne genau einen Rechner enthält, zu einem zentralen Client/Server-System, mit einer einzigen Domäne und vielen Clients, beliebig skalieren lässt. Dies bietet den Nutzern eine breite Palette von Möglichkeiten zur Realisierung eigener Projekte und Anwendungen an, je nachdem welche vorhandene Funktionen des Systems eingesetzt und welche neu realisiert werden sollen, bzw. welche Art von Verwaltung der resultierenden Ressourcen und Anwendungen gewünscht ist. Ein Beispiel dafür ist das netzspannung.org Modell zur Vernetzung von existierenden Medienarchiven. Die benötigte Basis-Systemfunktionen wie die Vermittlung zwischen heterogenen Datenstrukturen, die Benutzerverwaltung und die Zugriffskontrolle, sowie die Annotation, Kategorisierung und Suche von Dokumenten, oder Austausch von Awareness-Informationen, können vom Benutzer auf alle integrierten Archive angewendet und in einem gemeinsamen Nutzer-Interface dargestellt werden. Damit werden nicht nur Recherchen über die grenzen einzelner Online Archive hinaus möglich, sondern auch die Basis für Experimente mit neuen Visualisierungs- und Kommunikationskonzepten in vernetzten Wissensumgebungen gewährleistet.

Danke für das Gespräch.

-

Gesprächsteilnehmer:
Dr. Bernd Freisleben, Informatiker und Professor für verteilte und parallele Systeme an der Universität-Gesamthochschule Siegen.


Das Gespräch für netzspannung.org führten: Jasminko Novak, Stefan Paal

-


¬Intro
¬Termine
¬Termine 2004
¬Termine 2003
¬Termine 2002
¬cast01 Spezial
¬Ausgabe 0
¬Impressum