Entwicklung von Peer-to-Peer-Anwendungen mit Hilfe der JXTA-Technologie Hauptseminar Wintersemester 2002/2003 Bearbeiter: Dirk Michael Betreuer: Dr. Ing.

Презентация:



Advertisements
Похожие презентации
Konzeption und Realisierung eines plattformübergreifenden Web-Services zur Verwaltung von Nutzerkonten für virtuelle Waren Verteidigung der Diplomarbeit.
Advertisements

Die Geschichte der Entwicklung der Informations-Technologie.
Melder EduardTAI-109. Gliederung Adware,Spyware Phishingm,Pharming,Vishing Spam.
Wir wollten das Problem studieren. Warum studieren die Menschen in 21. Jahrhundert die Fremdsprache?
hanna vlad
Stellungnahmen. Leserbrief als Stellungnahme. Die Stellungnahme ist die schriftliche oder mündliche Antwort auf die Darstellung eines Themas. Stellungnahmen.
Wie ist der Verkehr in einer Grossstadt? Wie orientiert man sich hier?
Schnittgrößen beim Drehen Ein Referat von Christoph Samer Fragen bitte zum Schluss! Danke!
Sprechfertigkeit Sprechen Zusammengestellt by Nina Silivanova, Schule 32, Stadt Belowo.
Überall in Deutschland ist der Advent die stimmungsvollste Zeit des Jahres bis zum Heiligen Abend am 24. Dezember. An diesem Tag feiern die Christen die.
Wie verstehst du das Sprichwort? Sport macht gesund und stark! WebQuest.
Ziele : 1 Bekanntschaft mit dem Lebenslauf und Schaffen von B. Brecht, mit seinem Beitrag in nationale Kultur Deutschlands und in Weltkultur. 2. Erwachen.
Personal-Computer und Internet. Die Informationen und der Informationsaustausch spielen in unserem heutigen Leben die ausschlaggebende Rolle. In der Schule,
Belgorod im INTERNET. Die Grundfrage des Projekts: Wie ist Belgorod im Internet vorgestellt? Die Hypothese: Die Ausländer wissen nicht viel von Belgorod,
Hauptseminar zum Thema Digital Rights Management – Was ist das und wer macht sowas? bearbeitet von Anja Beyer.
Das Ministerium der Bildung und der Wissenschaft Republik Kasachstan SU namens Schakarima die Stadt Semey Hat die Arbeit erfüllt: Sagiyeva B.K. Hat die.
Выполнили: Кривец Людмила Акопян Мариам. Руководитель: Полуэктова Раиса Ивановна.
11.Klassе Pawlow R. Schepetowa N. Wanina M.. Die Hauptschule entwickelte sich aus der Oberstufe der Volksschule und erhielt 1964 im Rahmen des Hamburger.
Der Avalkredit. Das Bankaval oder Avalkredit ist im Bankwesen die Übernahme von Bürgschaften, Garantien und sonstigen Gewährleistungen durch Kreditinstitute.
Jugendliche trinken immer mehr Alkohol, und fangen immer früher an. Daran sind die Alcopops nicht ganz unschuldig. Aber auch Bier und Schnäpse werden.
Транксрипт:

Entwicklung von Peer-to-Peer-Anwendungen mit Hilfe der JXTA-Technologie Hauptseminar Wintersemester 2002/2003 Bearbeiter: Dirk Michael Betreuer: Dr. Ing. Jürgen Nützel

Gliederung Seite 1 Übersicht über Peer-to-Peer-NetzwerkeEinführung in die JXTA-TechnologieErklärung der wichtigsten KonzepteZusammenfassung und Ausblick

Übersicht: Peer-to-Peer-Netzwerke Seite 2 dezentral organisiertes Netzwerk direkter Austausch von Ressourcen zwischen den einzelnen Systemen gleichzeitig Client als auch Server im Gegensatz dazu: zentral organisiertes Netzwerk Client/Server-Architektur Anwendungsgebiete für P2P-Netzwerke File Sharing Distributed Computing Instant Messaging

Übersicht: Peer-to-Peer-Netzwerke Seite 3 echtes P2P A BD C Beispiel: Gnutella Beispiel: SETI AB CD Server assistiertes P2P Ausprägungen von P2P-Netzwerken

Einführung in die JXTA-Technologie Seite 4 Was ist JXTA ? gedacht für die einfache Entwicklung von komplexen P2P-Anwendungen kein Design der grundlegenden Kommunikationsmechanismen nötig Sammlung an Protokollen für Kommunikation Implementationen für verschiedene Sprachen (JXTA J2SE Platform) abgeleitet vom Wort juxtapose, bedeutet nebeneinander stellen Woher kommt JXTA ? ursprünglich Forschungsprojekt von SUN Microsystems nun in der Hand einer öffentlichen Entwicklergemeinde Lizenzierung SUN Project JXTA Software License abgeleitet von Apache Software License Version 1.1 Vorteile von JXTA Unabhängig von einer Programmiersprache Unabhängig von Hardware und Betriebssystem Interoperabilität

Einführung in die JXTA-Technologie Seite 5 Übersicht über die JXTA-Protokolle Transport (TCP, HTTP) Transport- protokolle Peer Endpoint Protocol Peer Resolver Protocol notwendig Weiterleiten von Botschaften Empfang und Versand Peer Discovery Protocol Pipe Binding Protocol Rendezvous Protocol Peer Information Protocol optional Auffinden von Ressourcen Aufbau eines virtuellen Kanals Verteilung von Nachrichten Abfrage von Statusinformationen

Voraussetzungen für JXTA J2SE Platform Seite 6 JXTA J2SE Platform: Referenzimplementierung in JAVA Voraussetzungen JDK oder höher Bibliotheken der JXTA J2SE Platform Implementierung LOG4J der Apache Software Foundation

Begrifflichkeiten Seite 7 Peergruppen Zusammenschluss mehrerer Peers zu einer Gruppe hierarchischer Aufbau, oberste Ebene Net Peer Group Gründe: gemeinsame Interessen, sichere Umgebung Relay Peer dient zum Weiterleiten von Nachrichten zum Zielpeer notwendig für Überwindung von Firewalls oder NAT-Umgebungen Rendezvous Peer dient zum Verteilen von Nachrichten an alle bekannten Peers Reichweite nur innerhalb der Peergruppe Advertisements Metadatenstruktur zur Beschreibung von Ressourcen XML-Dokumente Pipes virtueller Kommunikationskanal zwischen zwei oder mehreren Peers Point-to-Point-Pipe, Propagated-Pipe unidirektional, asynchron

Aufbau eines JXTA-Netzwerks Seite 8 Net Peer Group Sample Group R1 R2A B Gruppe veröffentlichen Suchanfrage Antwort Pipe-Adv. veröffentlichen Suchanfrage nach Pipe-Adv. Antwort Kommunikations- kanal Anlegen der Gruppe Sample Group R1 A

Versenden von Botschaften Seite 9 Austausch von Botschaften ist Basis für Kommunikation Peer Endpoint Protocol, Peer Resolver Protocol Routing von Botschaften zum Zielpeer Überwindung von Firewalls (über HTTP-Port) Peer A will Botschaft nach Peer E senden Internet Rl1 Rl2 Rl3 ABC DEF Relay Peer

Seite 10 Internet R1 R2 R3 ABC DEF Rendezvous Peer Verteilung von Botschaften Versenden von Suchanfragen, Veröffentlichen von Ressourcen Discovery Protocol, Rendezvous Protocol Rendezvous Peers dienen als Verteilerstationen nur innerhalb einer Gruppe

Erzeugen eines Peers Seite 11 public void startPeer() throws PeerGroupException { PeerGroup netPeerGroup = null; netPeerGroup = PeerGroupFactory.newInstance(); } Erster Start des Peers Konfiguration: Name des Peers, IP-Adresse und Port, Nutzername und Kennwort bekannte Rendezvous- und Relay Peers Anlegen eines lokalen Caches für Speicherung der Advertisements Bei jedem weiteren Start erfolgt Anmeldung entweder manuell über Eingabe der Daten in ein Loginfenster automatisches Login durch Code im Quelltext System.setProperty("net.jxta.tls.principal", username); System.setProperty("net.jxta.tls.password", password);

Suchen von Ressourcen Seite 12 Beispiel: Suchen der Gruppe Sample Group public PeerGroupAdvertisement findGroup() throws IOException { DiscoveryService ds = netPeerGroup.getDiscoveryService(); for (int i = 0; i < 5; i++) { Enumeration enum = ds.getLocalAdvertisements( DiscoveryService.GROUP, "Name", "Sample Group"); if ((enum != null) && (enum.hasMoreElements())) return (PeerGroupAdvertisement)enum.nextElement(); ds.getRemoteAdvertisements(null, DiscoveryService.GROUP, "Name", "Sample Group", 1, null); }

Aufbau eines Kommunikationskanals Seite 13 A Output Pipe B Input Pipe Erstellung und Veröffentlichung eines Pipe-Advertisements Aufbau einer Input-Pipe Warten auf eingehende Botschaften (asynchron, unidirektional) Pipe-Binding-Protocol Suchen des Pipe-Advertisements des Zielpeers Aufbau einer Output-Pipe Versenden von Botschaften

Aufbau eines Kommunikationskanals Seite 14 PipeAdvertisement padv = getPipeAdvertisement(); PipeService ps = netPeerGroup.getPipeService(); OutputPipe op = ps.createOutputPipe(padv, 10000); Message msg = ps.createMessage(); … op.send(msg); Erstellung einer Output-Pipe zum Versenden von Botschaften PipeAdvertisement padv = getPipeAdvertisement(); PipeService ps = netPeerGroup.getPipeService(); InputPipe ip = ps.createInputPipe(padv); while (true) { Message msg = ip.waitForMessage(); receiveMessage(msg); } Erstellung einer Input-Pipe zum Empfang von Botschaften

Versand und Empfang von Dateien Seite 15 public void sendFile(String filename, PipeService ps, OuputPipe op) throws IOException { FileInputStream fis = new FileInputStream(filename); int length, count = 0; byte[] buffer = new byte[100000]; do { length = fis.read(buffer); Message msg = ps.createMessage(); msg.setString("FILENAME", filename); msg.setString("PACKAGE_SIZE", String.valueOf(length)); msg.setString("PACKAGE_NO", String.valueOf(++count)); msg.setBytes("CONTENT", buffer); op.send(msg); } while (length != -1); fis.close(); } Versenden einer Datei

Versand und Empfang von Dateien Seite 16 public void receiveMessage(Message msg) throws IOException { String filename = msg.getString("FILENAME"); String length = msg.getString("PACKAGE_SIZE"); String no = msg.getString("PACKAGE_NO"); byte[] buffer = msg.getString("CONTENT"); int l = (Integer.valueOf(length)).intValue(); int n = (Integer.valueOf(length)).intValue(); RandomAccessFile raf = getFileHandle(filename); if (l != -1) { raf.seek((n-1) * ); raf.write(buffer, 0, l); } else { raf.close(); } Empfang eines Teilstückes einer Datei

Zusammenfassung und Ausblick Seite 17 Zusammenfassung Einfache Entwicklung von P2P-Anwendungen mit JXTA möglich Protokolle übernehmen grundlegende Kommunikationsaufgaben Sprach-, Hardware- und Betriebssystemunabhängigkeit durch XML Relay-Peers zur Überwindung von Firewalls Rendezvous-Peers als Verteilerstationen Referenzimplementierung in JAVA Open Source Ausblick eigene intelligentere Implementation der Protokolle möglich Sicherheitsaspekte (sichere Übertragung, sichere Gruppen) Entwicklung für mobile Endgeräte (JXTA J2ME) Mitwirkung an der Weiterentwicklung von JXTA eigene Projekte mit JXTA

Vielen Dank für Ihre Aufmerksamkeit