Peer-to-Peer Networking und JXTA


Hausarbeit, 2004

51 Seiten, Note: 1,3


Gratis online lesen

Inhaltsverzeichnis

1 Einleitung
1.1 Allgemein
1.2 Client-Server vs. Peer-to-Peer
1.3 P2P Einsatzmöglichkeiten

2 JXTA
2.1 Einleitung
2.2 JXTA-Überblick
2.3 Konzepte von JXTA
2.3.1 Peers
2.3.2 Groups
2.3.3 Messages
2.3.4 Advertisements
2.3.5 Services
2.3.6 Pipes
2.4 JXTA-Protokolle
2.4.1 Peer Endpoint Protokoll
2.4.2 Peer Resolver Protokoll
2.4.3 Peer Discovery Protokoll
2.4.4 Pipe Binding Protokoll
2.4.5 Rendezvous Protokoll
2.4.6 Peer Information Protokoll

3 PdfShare
3.1 Übersicht über PdfShare
3.2 PdfShare Details
3.3 Ausgewählte Auszüge aus dem Quellcode
3.3.1 Verbindung zur NetPeerGroup
3.3.2 Erstellung einer eigenen PeerGroup
3.3.3 Initialisierung des CMS
3.3.4 Dateien veröffentlichen
3.3.5 Dateien in der PeerGroup suchen
3.3.6 Ausgewählte Dateien herunterladen
3.3.7 XML-Darstellung eines ContentAdvertisement

4 Ausblick

A Anhang

A.1 Hinweise zur Verwendung des Programms

A.2 Klassendiagramm

A.3 Quellcode PdfShare

A.3.1 Datei SharedPdf.java

A.3.2 Datei AdvertisementViewer.java

A.3.3 PnFiles.java

A.3.4 PdfList.java

A.3.5 PdfShare.java

A.3.6 PdfShareException.java

A.3.7 IController.java

A.3.8 PdfShareController.java

A.3.9 PdfShareSearchListener.java

A.3.10 GschwindListRequest.java

A.3.11 CmsConnection.java

A.4 Literaturverzeichnis

Verzeichnis der Algorithmen

1 Beispiel einer Peer id

2 Group Advertisement

3 ContentAdvertisement

4 Verbindung zur NetPeerGroup

5 Erstellung einer eigenen PeerGroup

6 Initialisierung des CMS

7 Dateien veröffentlichen

8 Dateien in der PeerGroup suchen

9 Ausgewählte Dateien herunterladen

10 XML-Darstellung eines ContentAdvertisement

1 Einleitung

Dieses Dokument behandelt das Thema P2P Networking. Anhand einer JXTA Java Anwendung soll gezeigt werden, wie PDF-Dokumente ausgetauscht werden können. Nach einem Überblick über die Peer-to-Peer Technologie wird das JXTA- Framework vorgestellt. Anschließend wird die Anwendung PdfShare vorgestellt.

1.1 Allgemein

Peer-to-Peer (P2P) ist in den letzten Jahren ein oft genutztes Schlagwort im Soft- warebereich geworden. In der breiten Öffentlichkeit ist das Thema durch Pro- gramme wie Napster1, Gnutella2 oder Kazaa3 bekannt geworden. Die P2P-Technologie wurde dazu verwendet, Musik und Filme im Internet auszutauschen. Wegen der Problematik des Tauschens urheberrechtlich geschützer Dateien, bewegen sich viele Nutzer von P2P Tauschbörsen im Bereich der Illegalität. Leider hat dadurch der Begriff P2P-Technologie immer einen negativen Beigeschmack.

Ein weiterer Bereich, in dem dei P2P-Technologie nicht mehr wegzudenken ist, ist InstantMessaging. Der Geoinformatik-Service schreibt dazu: „Das Instant Mes- saging ist eine Kommunikationsform, die es den Internet-Nutzern erlaubt, fest- zustellen, ob ein anderer Teilnehmer gerade online ist. Sollte dies der Fall sein, können Nachrichten direkt verschickt werden, so dass eine online-Unterhaltung in Echtzeit möglich wird.“4

1.2 Client-Server vs. Peer-to-Peer

P2P-Systeme haben eine komplett andere Funktionsweise als traditionelle Client- Server Architekturen. Klaus Epple definiert die Client Server Architektur wie folgt: „Die Client-/Server-Architektur ist definiert als eine Rollenverteilung im Rechnernetz, bei der der Client eine Dienstleistung anfordert, die von einem Ser- ver erbracht wird.“5 Das Client/Server Prinzip wird gut auf der folgenden Abbil- dung dargestellt.6

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1: Darstellung des Client/Server Prinzips

Im LexIcon wird der Begriff P2P sehr gut beschrieben: „Alle an das Netz ange- schlossenen Rechner sind gleichberechtigt, sie können gleichermaßen als Client und als Server agieren. Anders als in einem Client-Server-Modell können dadurch Ressourcen, also Programme, Dateien oder auch Rechenleistung und Festplatten- platz, direkt unter den Peers ausgetauscht bzw. verteilt werden.“7 Das Peer-to-Peer Prinzip wird sehr gut auf der folgenden Abbildung dargestellt.8

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2: Darstellung des Peer-to-Peer Prinzips

Alle Clients bilden zusammen eine Comunity. Alle Teilnehemer haben einerseits das Bedürfnis z.B Pdf Dokumente zu finden und herunterzuladen, andererseits können sie ohne großen Aufwand selbst Ihre Dokumente zur Verfügung stellen. In diesem Zusammenhang erscheint der besondere Umstand, das jeder Teilnehn- mer an der Comunity gleichberechtigt ist, erwähnenswert.

Desweiteren ist die zentrale Dienstleistung eines Servers nicht mehr erreichbar, wenn bei einem klassischen Client-Server-System der Server abgeschaltet wird. Die Kommunikation zwischen den Clients muss somit über den Server laufen.

Wenn bei einem Peer-to-Peer-System hingegen ein Peer ausfällt, so ist die von diesem Peer erbrachte Dienstleistung nicht mehr erreichbar. Der große Vorteil an der P2P Technologie ist nun, das alle anderen Dienste und Peers weiterhin erreich- bar sind.

1.3 P2P Einsatzmöglichkeiten

Beispiele für in der Praxis eingesetzte P2P-Systeme sind z.B.:

- Jabber

Dies ist ein OpenSource InstantMessenger.

- Groove9

Groove ist eine Groupware Anwendung, bei der sich die Teilnehmer zu Gruppen zusammenschließen können. Innerhalb dieser Gruppen können Da- teien ausgetauscht, gechatted oder miteinander gesprochen werden.

- Gnutella

Gnutella ist ein Projekt, bei dem wie Napster Musikdateien getauscht wer- den können. Der große Unterschied besteht darin, dass hier keinen zentralen Server zum finden der Peers verwendet werden.

- seti@home10

Ist ein Beispiel für Grid-Computing. Die unbenutzte Rechenleistung der Teilnehmer an diesem Projekt wird genutzt, um nach außerirdischer Intelli- genz zu suchen.

E. Chtcherbina und T. Wieland fassen die Gemeinsamkeiten sehr gut zusammen:

„Ziel beim P2P-Computing ist es meist, in einem Net auf mehrere Peers verteil- te Ressourcen (...) aufzufinden und gemeinsam zu Nutzen. Der Zugriff auf diese Ressourcen erfolgt dabei nicht unberechtigt, sondern wird vom Nutzer des jewei- ligen Peers autorisiert (...)“.11

2 JXTA

2.1 Einleitung

JXTA ist ein OpenSource Java Framework um Peer-to-Peer Anwendungen zu ent- wickeln und stammt ursprünglich von der Firma Sun. JXTA stammt von dem Wort juxtapose ab und bedeutet soviel wie nebeneinander stellen. Bei den bisheri- gen Peer-to-Peer System existiert das Problem, dass jedes System seine eigenen Protokolle entwickelt. Dies führt zwangsläufig dazu, dass der Enwickler die Pro- tokolle im einzelnen kennen muss. Ziel bei der Entwicklung war es, dem späterem Entwickler die Entwicklung zu vereinfachen. JXTA hat den Vorteil, dass es sich um eine offene Plattform handelt, bei der der Entwickler sich keine Gedanken über die Protokolle machen muss. JXTA ist in erster Linie eine Spezifikation. Für diese Spezifikation gibt es verschiedene Implementierungen für unterschiedliche Programmiersprachen:

Java12, C13, Perl14, Python 15, Ruby 16 und Smalltalk 17.

Das Nachrichtenformat von JXTA basiert auf dem flexiblen Datenformat XML. Bei XML ist es nicht nur möglich Inhalte zu formatieren, sondern auch den Inhalt hierarchisch zu strukturieren. Die XML-Technologie bietet desweiteren die Mög- lichkeit, die Richtigkeit der Struktur des XML-Dokuments zu prüfen. Dazu wird entweder eine Document Type Definition (DTD) oder XML Schema notwendig. Mit diesen beiden Technologien ist es nun möglich, die XML-Datei auf die rich- tige Struktur zu prüfen.

Die Kommunikation der Peers ist bei JXTA über diverse Protokolle wie z.B. HTTP, TCP, SMS oder Bluetooth realisierbar. Durch die Unabhängigkeit von der Programmiersprache und des Protokolls ergibt sich die Geräteunabhängigkeit. JX- TA ist z.B. für die Java2 MicroEditon18 verfügbar. Dadurch ist es möglich, dass selbst Handys oder PDA’s19 Peer-to-Peer Anwendungen nutzen können. So ist es denkbar, dass z.B zwei Handys ihre Fotos über das Protokoll Bluetooth über eine P2P-Anwendung austauschen können.

2.2 JXTA-Überblick

Die JXTA Plattform gliedert sich in drei Schichten20:

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3: Archtiekturübersicht über JXTA

- Anwendungsschicht (JXTA Applications)
- Diensteschicht (JXTA Services)
- Plattformschicht (JXTA Core)

Dies soll nun etwas näher beschreiben werden.

- Auf der untersten Schicht befindet sich der Kern von JXTA. Hier sind die Protokolle und Konzepte realisiert, auf denen JXTA aufbaut. Elemente die- ser Schicht sind Peers, Peergruppen, Pipes; die im nachfolgendem Abschnitt erläutert werden. Um die Flexibilität so groß wie möglich zu halten, sind auf dieser Ebene ausschließlich die grundlegenden Mechanismen imple- mentiert.
- Die nächste Schicht stellt die Diensteschicht dar. Hier werden, aufbauend auf den Konzepten und Protokollen von JXTA, komplexere Dienste zur Ver- fügung gestellt, z.B. eine Suchfunktion, ein komplexer Authentifizierungs- mechanismus oder der ContentManagement Service21. Implementierungen für diese Schicht sind einerseits von Sun, aber auch von der Comuinity ver- fügbar.
- Die oberste Schicht ist schließlich die Anwendung, die JXTA verwendet. Diese kann sowohl auf Dienste- als auch auf die Kernschicht zurückgreifen, um ihre Funktion zu realisieren.

2.3 Konzepte von JXTA

Beim Umgang mit JXTA kommt der Entwickler immer wieder mit speziellen Be- griffen in Berührung. Von daher sollen diese Begriffe hier nun kurz vorgetsellt werden.

2.3.1 Peers

Jedes Programm, dass an dem JXTA Netzwerk teilnimmt, wird als Peer bezeich- net. Meist ist der Peer identisch mit dem Gerät im Netzwerk, auf dem es sich befidnet. Es besteht aber auch die Möglichkeit, dass das gleiche Programm auf einem Rechner aus zwei unterschiedlichen Verzeichnissen gestartet wird, somit befidnen sich dann auf dem Rechner zwei Peers. Dies ermöglicht es auch, die Peer-to-Peer Anwendung auf einem Rechner zu testen. 22

Jedes Peer wird durch eine spezielle ID respräsentiert.

Algorithmus 1: Beispiel einer Peer id

urn:jxta:uuid-59616261646162614A7874615032503 3198B2E58DE3A4357B84FCF1E2DF4CBF503

2.3.2 Groups

Peers, mit ähnlichem Interesse, können zu PeerGroups zusammengeschaltet wer- den. Alle Peers sind Mitglied in der PeerNetGroup, in der dann die entsprechen- den Untergruppen angelegt werden. Peers können in mehreren Gruppen enthalten sein. Das Programm PdfShare nutzt die Gruppe gschwindPdfShare . Dies hat den Vorteil, dass die Suche nach Pdf-Dokumenten nur in dieser speziellen Grup- pe erfolgt. Dies hat Geschwindigkeitsvorteile. 23 Alle speziellen Informationen zu der Gruppe sind in dem GroupAdvertisement zusammengefasst.

Algorithmus 2: Group Advertisement

Abbildung in dieser Leseprobe nicht enthalten

2.3.3 Messages

Die Komminikation zwischen den einzelnen Peers wird über Messages realisiert. Dies sind in der Regel strukturierte Dokumente (XML), es können auch binäre Dokumente versendet werden. Bei der Anwendung PdfShare sind dies die Pdf- Dokumente.24

2.3.4 Advertisements

Advertisements kommen in vielfältiger Weise im JXTA Umfeld vor. Advertise- ments sind spezielle Messages, die dazu genutzt werden die Anwesenheit im P2P Netz oder die Dienste bekannt zu geben. Solche Advertisements sind z.B. Peer(Group) Advertisements, Pipe Advertisements oder Service Advertisement. 25

Bei der PdfShare Anwendung werden ContentAdvertisements verwendet. Diese repräsentieren z.B. eine PDf-Datei, die von anderen Peers heruntergeladen werden kann.

Algorithmus 3: ContentAdvertisement

Abbildung in dieser Leseprobe nicht enthalten

2.3.5 Services

Jeder Peer kann im JXTA Umfeld sogenannte Dienste anbieten, wie auch nutzen. So ein Service ist z.B. der ContentManagementService. Dieser Service unterstützt den Entwickler bei der Entwicklung von FileSharing Anwendungen. 26 Dies ist der grundlegende Service der PdfShare Anwendung. Weitere Services sind z.B.:

- Pipe Service
- Membership Service
- Access Service
- Discovery Service
- Resolver Service

2.3.6 Pipes

Pipes dienen der Verbindung zwischen Peers und zum Versand von Messages. Dabei wird zwischen unidirektional und asynchronen Pipes unterschieden. 27

2.4 JXTA-Protokolle

JXTA besteht aus einer Anzahl an Protokollen. Die folgende Grafik gibt einen Überblick über die Hierarchie der Protokolle.28

[...]


1 http://www.napster.com/

2 http://www.gnutella.com

3 http://www.kazaa.com/us/index.htm

4 [GS04]

5 Vgl. [Epp04] 6Quelle: [Kri04]

6 Quelle: [Kri04]

7 Vgl. [vL04]

8 Quelle: [Kri04]

9 http://www.groove.net

10 http://setiathome.berkeley.edu/

11 [CW04]

12 Download unter: http://download.jxta.org/stablebuilds/index.html

13 Homepage: http://jxta-c.jxta.org/ servlets/ProjectHome

14 Homepage: http://jxtaperl.jxta.org/ servlets/ProjectHome

15 Homepage: http://jxtapy.jxta.org/servlets/ProjectHome

16 Homepage: http://jxtaruby.jxta.org/servlets/ProjectHome

17 Homepage: http://smalltalkjxta.jxta.org/servlets/ProjectHome

18 Homepage: http://jxme.jxta.org/

19 PersonalDigitalAssistant

20 [SM04b]

21 Dieser Service wird in der Beispeilanwendung PdfShare verwendet

22 Vgl. [SM04a], Seite 7

23 Vgl. [SM04a], Seite 7

24 Vgl. [OTG02], Seite 35

25 Vgl. [Gra02], Seite 26

26 Vgl. [Gra02], Seite 30

27 Vgl. [BGK02], Seite 45

28 Quelle: [Gra02], Seite 16

51 von 51 Seiten

Details

Titel
Peer-to-Peer Networking und JXTA
Hochschule
Leuphana Universität Lüneburg
Veranstaltung
Netzwerke
Note
1,3
Autor
Jahr
2004
Seiten
51
Katalognummer
V108826
Dateigröße
764 KB
Sprache
Deutsch
Anmerkungen
Hausarbeit über P2P Networking, allgemiene Einführung und abgerundet mit der Vorstellung einer Java Software
Schlagworte
Peer-to-Peer, Networking, JXTA, Netzwerke
Arbeit zitieren
Dominik Dary (Autor), 2004, Peer-to-Peer Networking und JXTA, München, GRIN Verlag, https://www.grin.com/document/108826

Kommentare

  • Noch keine Kommentare.
Im eBook lesen
Titel: Peer-to-Peer Networking und JXTA



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden