Download Entwicklungen im Web 2.0 aus technischer
Transcript
223 File Sharing File Sharing gehört zu den bekanntesten und verbreitetsten P2P-Anwendungen im Internet. Ein File-Sharing-System ist ein dezentraler Datenspeicher, in dem Dateien mit einem Algorithmus gesucht und heruntergeladen werden können. Ein Teilnehmer kann beliebige Dateien für andere zum Download bereitstellen und umgekehrt Dateien von anderen Teilnehmern herunterladen. Der große Vorteil des P2P-File-Sharings liegt in der guten Skalierbarkeit. Da häufig getauschte Dateien in der Regel redundant gespeichert sind und daher von mehreren Quellen gleichzeitig heruntergeladen werden können, kommt es auch bei einer großen Anzahl von Downloads derselben Datei selten zu Engpässen in der Bandbreite. Bekannte Beispiele für FileSharing-Netzwerke sind Gnutella [4], BitTorrent [3] oder Freenet [21]. Kommunikation und Kollaboration Kollaborative P2P-Anwendungen dienen dazu, die Zusammenarbeit zwischen Nutzern in Echtzeit zu erleichtern. Da P2P-Systeme auf die Erzeugung von dynamischen Netzwerken mit variierenden Teilnehmern ausgelegt sind, eignen sie sich in natürlicher Weise für kollaborative Anwendungen. Eine der ersten P2P-Anwendungen in diesem Bereich waren die Instant-Messaging(IM)-Systeme, mit denen Textnachrichten in Echtzeit zwischen Teilnehmern ausgetauscht werden konnten. Mittlerweile unterstützen neuere Anwendungen auch Sprach- und Videokommunikation sowie den direkten Austausch von Dateien. Das Skype-Netzwerk [18] ist eine solche Anwendung, wobei hier der Fokus auf Sprachdiensten liegt. Die P2P-Kollaborationssoftware Groove [11] bietet einen gemeinsamen Arbeitsbereich, der neben den oben genannten Funktionen weitere Dienste wie gemeinsame Diskussionsforen, Kalender und Dateifreigaben unterstützt. Groove synchronisiert automatisch alle Änderungen an Elementen des Arbeitsbereiches zwischen den Teammitgliedern. Die Änderungen können auch offline vorgenommen werden – die Synchronisierung erfolgt dann, sobald sich das betroffene Teammitglied mit dem Netzwerk der übrigen Mitglieder verbindet. Häufig verfügen kollaborative Anwendungen über eine Teilnehmerliste, die anzeigt, welche Mitglieder gerade online sind, d. h., zu welchen Mitgliedern eine Verbindung aufgebaut werden kann. Diese Funktion ist besonders für Dienste mit Echtzeitkommunikation wichtig. Zur Aktualisierung dieser Liste muss der Status sämtlicher Mitglieder ständig kontrolliert werden. Da dies in einem reinen P2P-Netzwerk einen großen Kummunikationsaufwand bedeuten würde, kommt für diese Aufgabe meist ein zentraler Server zum Einsatz, bei dem sich alle Mitglieder an- und abmelden. 2.2 Eigenschaften P2P-Anwendungen bestehen aus einem Zusammenschluss aus gleichberechtigten Knoten zu einem Netzwerk und stellen damit einen Gegensatz zu den zentralisierten Client-ServerArchitekturen dar. Aus dem Paradigma der Dezentralisierung ergeben sich für Anwendungen mit P2P-Architekturen einige grundlegende Eigenschaften, die sie von anderen Architekturen unterscheidet (vgl. [12]).