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

Slides:



Advertisements
Ähnliche Präsentationen
Internet inter net.
Advertisements

programmiert April-Juni 2003 von Knut Riechmann
DI Christian Donner cd (at) donners.com
Basis-Architekturen für Web-Anwendungen
© 2003 Guido Badertscher Spontane Vernetzung - UPnP 9. Jänner 2004 Spontane Vernetzung Guido Badertscher.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
2 Kommunikationssysteme bieten Kommunikationsdienste an, die das Senden und Empfangen von Nachrichten erlauben (sending & receiving messages) bestehen.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Konfiguration eines VPN Netzwerkes
Java News & Music Der Chat
FH-Hof Sockets in Java Richard Göbel. FH-Hof Kommunikation über das Internet - Grundlagen Ein Rechner wird im Internet über die so genannte IP- Adresse.
DO...WHILE Anweisung.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Geschichte und Funktion des Internets.
1 NetWork File System © April 2002, G. Hellberg Network File System Konfiguration und Einsatz.
mit Java implementiert (Java 2 Standard Edition)
Objektorientierte Programmierung JDK-Klassenbibliothek
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
XML in Client-Server und GRID Architektur
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
Einführung in die Technik des Internets
Datenströme DVG Datenströme.
Überlegungen zur Architektur eines Fachinformations-Netzwerkes am Beispiel des CeGIM Mehrwert ist es nicht nur, Daten von ihren Quellen zu den Nutzern.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Einführung MySQL mit PHP
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Diplomverteidigung Konzeption und Realisierung der Server-Komponente für ein P2P-File-Sharing-System, bei dem die User am Umsatz beteiligt sind Vortragender: Holger.
Verteidigung der Diplomarbeit
Evaluierung des ITU-T.124 Telekonferenzstandards
WI + SE 7/8 Prof. Dr. Oliver Haase Abschlusspräsentation Roman Sauber.
Installationsdiskette booten Startdiskette und CD-1 einlegen und den Rechner starten Auswahl: Deutsch Auswahl: Farbbildschirm Auswahl: Deutsch Auswahl:
3 Wie funktioniert TCP/IP?
Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,
Vortrag D. Braun, Praktikum. Übersicht Pleopatra API Pleopatra Tools Twitter Demonstration Ausblick.
Socket-Programmierung
Seminar XML-Technologien - WML Seminar XML-Technologien W ireless M arkup L anguage Christian Spieler.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
UNIVERSITÄT ZU KÖLN HISTORISCH-KULTURWISSENSCHAFTLICHE INFORMATIONSVERARBEITUNG REUSABLE - CONTENT SS 2013 MARIA WAGNER ReST.
Julia Grabsch Florian Hillnhütter Fabian Riebschläger
Allgemeine Technologien I Sitzung am Mailserver
Internet und SMS Internet und SMS Daniel Rickenbacher Jeremy Deuel.
Jabber Seminar XML Technologien SS 2002 Mark Kunzmann.
1 Peer to Peer – GNUTELLA Seminar Innovative Netztechnologien Christophe LE ROQUAIS, den 17. Juni 2002.
INSTANT MESSAGING LI Xiaohui LIU Miao ZHOU Guanpei Universität Salzburg WAP Präsentation WS 2005/06.
Java Server Pages Sergej Keterling
Management- und Web Services- Architekturen
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Netzwerke.
TradingCenter Markus Block Ronald Kutschke P2P Applikation basierend auf Suns JXTA Technologie im Rahmen des.
Javelin Internet-based parallel computing using Java.
Hauptseminar 2001 „Parallele Programmierung in Java“ - JPVM- Java Parallel Virtual Machine Referent: Sebastian Steininger.
Real World Windows Azure Die Cloud richtig nutzen.
Telefonie Geräte und Dienste, die eine direkte Sprachkommunikation ermöglichen. Basisgerät: das Telefon.
1 Karim El Jed TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund
VPN – Virtual Private Network
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
->Prinzip ->Systeme ->Peer – to – Peer
Datenbanken im Web 1.
Internet-Grundtechnologien. Client / Server Client („Kunde“): fordert Information / Datei an im Internet: fordert Internetseite an, z.B.
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Webserver, Apache und XAMPP
ROS – Robot Operating System
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
 Präsentation transkript:

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