Web

Jxta soll Standard für P2P werden

16.05.2001
Angesichts laufend neuer Peer-to-Peer-Anwendungen will Sun mit "Jxta" einen umfassenden technischen Standard für derartige Programme schaffen. Kritiker bezweifeln, ob die anarchische P2P-Szene eine solche übergreifende Spezifikation braucht.

CW-Bericht von Wolfgang Sommergut

MÜNCHEN (COMPUTERWOCHE) - Angesichts laufend neuer Peer-to-Peer-Anwendungen möchte Sun mit "Jxta" eine einheitliche technische Grundlage für derartige Programme schaffen. Es definiert mehrere Protokolle sowie Kommunikationsmechanismen. Kritiker bezweifeln, ob die anarchische P2P-Szene einen solchen übergreifenden Standard braucht.

Den in letzter Zeit geradezu wuchernden P2P-Applikationen (siehe dazu das P2P Directory von O´Reilly), ist gemeinsam, dass sie vorwiegend auf wenige Funktionen beschränkt sind. Dazu zählen File Sharing (etwa Napster oder Gnutella), Instant Messaging (beispielsweise Jabber), Collaboration (unter anderem Groove Networks) oder die Nutzung verteilter Rechenleistung (Seti@home). Dennoch muss jede von ihnen alle dafür typischen P2P-Basisdienste selbst implementieren. Das sind etwa Mechanismen zum Auffinden anderer Rechner oder Benutzergruppen sowie solche für den Transport der Daten oder ihrer Verschlüsselung.

Jxta versucht einen gemeinsamen Nenner für solche P2P-Anforderungen zu finden. Angesichts der Spezialisierung der meisten Programme auf wenige Funktionen gilt es, eine solche Plattform nicht mit Features zu überfrachten, aber andererseits so viel zu bieten, dass sich ihre Nutzung für Entwickler lohnt. Um dieser Anforderung entgegen zu kommen, ist Jxta modular aufgebaut. Auf der untersten Ebene definiert es den so genannten Technology Layer, der im wesentlichen Dienste für den Beitritt von Peers zu Gruppen umfasst, Mechanismen zur Kommunikation bereitstellt ("Peer Pipes") und Authentifizierung leistet ("Peer Monitoring"). Darauf setzt eine Service-Schicht auf, die funktionsreichere Bausteine für die Anwendungsentwicklung beherbergt. Dabei könnte es sich etwa um Komponenten für den Online-Chat handeln. Erst darauf würden Programme wie Napster oder Groove aufsetzen, freilich befreit von ihren eigenen Infrastrukturfunktionen.

Im Gegensatz zu schon lange existierenden Anwendungen für altbekannte Peer-to-Peer-Funktionen (beispielsweise "talk" für Instant Messaging unter Unix oder "Timbuktu" für P2P-Collaboration) setzt Jxta wie viele der neuen Programme auf Internet-Technologien. Dazu zählt etwa der Datentransport via HTTP-Tunneling, um Schwierigkeiten mit Firewalls zu vermeiden. Besonders auffällig jedoch ist die durchgängige Verwendung von XML-basierten Protokollen. Jxta definiert davon gleich sechs Stück, deren Funktion von der Entdeckung anderer Teilnehmer über das Beitreten und Verlassen von Gruppen bis zum Abfragen von Routing-Informationen reicht (eine genauere Beschreibung finden Sie hier).

Wie schon bei Java handelt es sich bei Jxta primär um eine Spezifikation, die andere Hersteller selbständig umsetzen können und für die Sun einen Referenzimplementierung liefert. Während die Unix-Company bei Java mit dem JDK eine beispielhafte Realiserung vorgibt, besteht diese bei Jxta bisher in einer Java-Ausführung der Basisdienste, eines Kommandozeilen-Programms ("jxta shell") zum Aufruf der Jxta-Basisfunktionen und diverser, von Unix her bekannter Dienste wie "grep", "man" oder "who". Das Angebot vervollständigt ein experimentelle P-to-P-Software namens "InstantP2P" (alle Programme können von http://www.jxta.org heruntergeladen werden). Trotz der bis dato nur in Java existierenden Umsetzung von Jxta macht die Spezifikation laut Sun keinerlei Festlegungen auf eine Sprache oder einer bestimmte Hardware. Vielmehr erwartet Bill Joy, der federführend an der Entwicklung von Jxta beteiligt war, dass Implementierungen in C++, Perl oder gar Microsofts C# entstehen werden. Derartige Beiträge sollen besonders dem von Sun eingerichteten Open-Source-Projekt "jxta.org" entspringen. Um freien Entwicklern einen Anreiz zur Teilnahme zu bieten, stellte der Unix-Anbieter Jxta unter die liberale Apache-Lizenz. Damit reagiert die Company nicht nur auf Kritik an den restriktiven Bedingungen der Java-Nutzung, sondern erhofft sich auch eine entsprechende Verbreitung der Technologie bei den Entwicklern von P2P-Applikationen. Kritiker bezweifeln nämlich den Nutzen einer übergreifende Plattform für derartige Software.

Als ein zentraler Einwand gilt dabei, dass sich aufgrund des spezifischen Charakters solcher Anwendungen allgemeine Dienste kaum definieren lassen. Ihre jeweilige Funktionalität spiegele sich primär in den verwendeten Protokollen wider (siehe dazu http://www.openp2p.com/lpt/a/816). Hinzu komme, dass bestimmte Design-Entscheidungen von Jxta nur für kleinere Gruppen ausgelegt seien. So finden sich die beteiligten Peers gegenseitig ohne einen vermittelnden Server über Broadcasting - die als "Rendezvous" konfigurierten Rechner übernehmen nur die Zwischenspeicherung von Gruppen- und Peer-Informationen. Eine solche Architektur funktioniert nicht ohne weiteres mit tausenden von Usern, wie sie bei großen Instant-Messaging-Diensten anzutreffen sind. Zudem bleibt ein erwarteter Nutzen gemeinsamer Grundfunktionen aus: Anwendungen, die darauf aufbauen, sind nicht ohne weiteres zueinander kompatibel. Ihre Anwender können sich zwar gegenseitig lokalisieren, aufgrund der programmspezifischen Nachrichtenformate scheitern aber Versuche zur Kommunikation.

Hinsichtlich der Akzeptanz eines Standards stimmt nicht zuletzt der anarchische Charakter von Communities skeptisch, die sich um bestimmte P2P-Anwendungen scharen. Die oft spontan entstehenden Anwendungen folgen nicht den Anliegen von professionellen Anwendern in puncto sauberer Architektur, sondern dienen häufig dem Austausch zweifelhafter Inhalte (siehe dazu "What´s On Freenet?").