Netzwerkprogrammierung

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

programmiert April-Juni 2003 von Knut Riechmann
Eric Dahl, Axel Emmer, Andreas Schmitt
Powerpoint-Präsentation
Microsoft Netmeeting Christian Carls / Robert Hladik Zentrum für Allgemeine Wissenschafltiche Weiterbildung der Universität Ulm Eine Einführung.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Internetzugriff mit Strings und Streams
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.
Tiny TP Tiny TP gehört zwar zu den optionalen Komponenten wird aber dringend empfohlen. Tiny TP erfüllt folgende Aufgaben: 1.Zerlegung von großen Nachrichten.
Geschichte und Funktion des Internets.
Paketorientierte Datenübertragung
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Internet und seine Dienste
Netze Vorlesung 11 Peter B. Ladkin
JAVA RMI.
Aufgabe Hardwarenahe Programmierung Bluetooth/Lan-Gateway Frank Reichenbach LAN/WLAN Bluetooth Kommunikation zwischen zwei Clients über Client 1 verbindet.
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
Martin MauveUniversität Mannheim1 3.6 User Datagram Protocol (UDP) RFC 768. J. Postel. User Datagram Protocol unzuverlässiges Transportprotokoll.
Remote Methode Invocation (RMI)
Schulen ans Netz Oberhausener Moderatoren
Einführung in die Technik des Internets
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 4 Folie 2 Message Passing mittels Sockets (1) s.a.
DNS Domain Name System oder Domain Name Service
IP Adresse / DNS / URL Bernd Liebenwein.
Internet: Funktionsweise und Dienste
3 Wie funktioniert TCP/IP?
Mit Schülern ein internetfähiges Netzwerk aufbauen
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,
Rechnerkommunikation I
Referent: Kiron Mirdha Betreuer: Rene Hilden Juli 2012
Socket-Programmierung
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
ABER WAS STECKT DAHINTER?
Julia Grabsch Florian Hillnhütter Fabian Riebschläger
Java für Fortgeschrittene
Internet und SMS Internet und SMS Daniel Rickenbacher Jeremy Deuel.
Grundlagen der Netzwerktechnik
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Warum gibt es Netzwerke?
Abgeleitet aus dem OSI-Referenzmodell sieben Schichten
Oliver Spritzendorfer Thomas Fekete
Netzwerke.
TCP – transmission control protocol Wenn eine Applikation (z. B
Meldungen über Ethernet mit FINS/UDP
Netzwerke.
HTTP IT-Zertifikat Universität zu Köln Allgemeine Technologien II
iMAS Schnittstellen - Übersicht
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
IPv6 Von Judith Weerda Diese Vorlage kann als Ausgangspunkt für die Präsentation von Schulungsmaterialien in einer Gruppensitzung dienen. Abschnitte.
2. Kommunikation und Synchronisation von Prozessen 2
Willkommen zum Brückensemester
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
Das Client-Server-Prinzip und TCP/IP
Internet-Grundtechnologien. Client / Server Client („Kunde“): fordert Information / Datei an im Internet: fordert Internetseite an, z.B.
TCP/IP.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Spezifikation der Module / Programme
Referat von Mustafa.S Daniel.M
Das World Wide Web Stephan Becker TIT05BGR SS06. Das World Wide Web Übersicht Hypertext & Hypermedia HTML Dokumentenidentifikation Dokumententransport.
Paketübertragung mit Sockets Was, wohin? Adressierung durch java.net.InetAddress Bsp: adr=InetAddress.getByName(“localhost“); Pakete sind java.net.DatagramPacket.
Lisa Huber DHBW Mannheim
Webservices SOAP und REST Nicole Fronhofs 1. Betreuer: Prof. Dr. Volker Sander 2. Betreuer: B. Sc. Sebastian Olscher.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Netzwerke Alexander Sczyrba Jan Krüger.
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
Port-Forwarding Der PC möchte vom Internet aus auf den http-Server zugreifen. Er sieht nur die IP-Adresse und den Port des Routers. http-Server PC Router.
Tutorstunde 10.
TCP/IP Transmission Control Protocol/Internet Protocol
 Präsentation transkript:

Netzwerkprogrammierung Java für Fortgeschrittene Kurseinheit 06 Netzwerkprogrammierung Thomas Klutsch Florian Köttner Dienstag, 26. Juli 2011 WS 2011/2012 1 1

Aufbau der Einheit: Einleitung: Socket für Server/Client-Applikation Terminolgie Zugriff auf eine URL Socket für Server/Client-Applikation Server Client RMI für Server/Client-Applikation Netzwerkprogrammierung

Terminologie: Host: am Netz angeschlossener Rechner. 1. Einleitung Terminologie: Host: am Netz angeschlossener Rechner. IP-Adresse: Identifikation eines Hosts, IPv4 als 32-Bit-Zahl, IPv6 128-Bit-Zahl. DNS (Domain Name Service): Zuordnung eines Namens zur IP-Adresse. Kommunikation zweier Host über Datenpakete welche über den IP (Internet Protocol) Standard vermittelt werden (Datenpaket = body + header). Weiterleitung von Paketen über Router (Routing Protokolle). IP als verbindungsloses Protokoll, Daten können verloren/verdoppelt werden TCP/IP, also Transmission Control Protocol als Erweiterung zur korrekten Reihenfolgeeinhaltung und Verlustmanagement bei IP-Paketen. Weitere Protokolle: User Datagram Protocol (UDP) Java: Programmierung auf Sockets, einer API auf TCP-Ebene Netzwerkprogrammierung

Zugriff auf eine URL (Uniform Resource Locator): 1. Einleitung Zugriff auf eine URL (Uniform Resource Locator): Klasse URL aus java.net Netzwerkprogrammierung

1. Einleitung Aufgabe 1: Geben sie den Inhalt der Textdatei unter http://dl.dropbox.com/u/1482728/Text.txt auf der Konsole aus! Erstellen Sie eine neue Klasse mit dem Namen: ReadFromUrl Erstellen Sie ein URL-Objekt mit obiger Pfadangabe! Benutzen Sie geeignete Methoden aus dem Kapitel Input/Output um die Textdatei auszulesen und auf der Konsole anzeigen zu lassen. Netzwerkprogrammierung

Klasse: URL-Connection 1. Einleitung Klasse: URL-Connection Abstrakte Klasse zum Empfang der Inhalte der URL-Objekte enthält verschiedene Methoden um z.B. den Header einer HTTP-Seite auszulesen Klasse: Authenticator Geeignet bei Authentifizierungsbitte/Passwortabfrage Netzwerkprogrammierung

Klasse InetAdress 1. Einleitung Gibt uns Methoden zum Auslesen der IP-Adresse oder des Hostnamens einer URL „wir können also die Rolle des DNS übernehmen“ ebenso kann die lokale IP-Adresse des eigenen Rechners mit getLocalHost() ausgelesen werden Netzwerkprogrammierung

2. Sockets für eine Server/Client-Applikation Bisher: high-level Programmierung ohne Einblick in TCP/IP Protokolle Nun: eigene Server/Client-Applikationen mit sicherer/verlustfreier Verbindung Java-Sockets Ein Socket ist eine Datenstruktur zur Administration von (Netzwerk-) Verbindungen. Ein Socket ist ein Endpunkt einer bidirektionalen Kommunikationsbeziehung zwischen zwei im Netz laufenden Programmen (Prozessen). Endpunkt 1: Server Javaklasse: ServerSocket (TCP) Dieser bietet einen Dienst an und wartet auf eingehende Verbindungen Endpunkt 2: Client Javaklasse: Socket (TCP) Dieser verbindet sich zu einem Server und benutzt den angebotenen Dienst des Servers Netzwerkprogrammierung

2. Sockets Die wichtigsten Klassen aus java.net zur Realisierung von Socketverbindungen (TCP): .Socket .ServerSocket .DataInputStream .PrintStream .DataOutputStream .URL .URLConnection Netzwerkprogrammierung

Erstellung eines Sockets als Serverendpunkt einer Verbindung: 1. Schritt: Ein ServerSocket Objekt erzeugen: ServerSocket listenSocket = new ServerSocket(portNumber); 2. Schritt: Ein Socket Objekt aus dem ServerSocket erzeugen: while (someCondition) { Socket server = listenSocket.accept(); doSomethingWith(server); } 3. Schritt: Ein “input stream” erzeugen: BufferedReader in = new BufferedReader(new InputStreamReader( server.getInputStream())); 4. Schritt: Ein “output stream” erzeugen: PrintStream out = new PrintStream(server.getOutputStream()); 5. Schritt: Nutzdaten senden und empfangen. in.readLine(); out.println(); 6. Schritt: Ströme schließen: out.close(); in.close(); 7. Schritt: Socket schließen: server.close(); Netzwerkprogrammierung

Erstellung eines Sockets als Clientendpunkt einer Verbindung 1. Schritt: Ein Socket Objekt erzeugen (Öffnen eines Sockets): Socket client = new Socket(“hostname”,portNumber); 2. Schritt: Ein “output stream” erzeugen, um Daten zu senden: PrintStream out = new PrintStream(client.getOutputStream()); bzw. DataOutputStream out2 = new DataOutputStream(client.getOutputStream()); 3. Schritt: Ein “input stream” erzeugen, um die Antwort des Servers zu empfangen: DataInputStream in = new DataInputStream(client.getInputStream()); bzw. BufferedReader in = new BufferedReader( new InputStreamReader(Client.getInputStream())); 4. Schritt: Nutzdaten senden und empfangen. in.readLine(); out.println(); aber out2.writeBytes(); 5. Schritt: Ströme schließen: out.close(); in.close(); 6. Schritt: Socket schliessen: client.close(); Netzwerkprogrammierung

2. Sockets Aufgabe 2: Schreiben sie eine Server/Client-Applikation auf Basis von Sockets und dem TCP- Verbindungsprotokoll, welche folgendes ermöglicht: Eine Klasse TCP-Server wartet auf die Verbindung eines Clients. Eine Klasse TCP-Client verbindet sich mit dem Server und liest eine Benutzereingabe auf der Konsole ein. Dies Konsoleneingabe soll über eine Socketverbindung an den Server geschickt werden, welcher die Eingabe in „upper-case“-Darstellung dem User zurückgibt. Nach erfolgreicher Rückgabe wird der Client geschlossen, der Server wartet jedoch weiterhin auf Verbindungen! Netzwerkprogrammierung

3. RMI für eine Server/Client-Applikation Ziel: entfernte Objekte und Methoden aufrufbar! Sicht auf entfernte Dienste wie auf Methoden innerhalb einer Laufzeitumgebung ein Methodenaufruf auf einen Server soll so aussehen, als ob er eine lokale Methode wäre. RMI (Remote Method Invocation) macht es möglich, auf hohem Abstraktionsniveau zu arbeiten und entfernte Methodenaufrufe zu realisieren. Automatisch generierte Stellvertreter nehmen die Daten entgegen und übertragen sie zum Server. Nach der Antwort präsentiert der Stellvertreter das Ergebnis. Netzwerkprogrammierung

3. RMI 3 Teile von RMI: Server stellt das entfernte Objekt mit einer Methodenimplementierung bereit, er leitet also eingehende Anfragen vom Netzwerk an diese Methode weiter. Ein Namensdienst (Registry) verbindet Objekte mit ihren Methoden unter einem eindeutigen Namen. Der Server meldet Objekte mit ihren Methoden beim Namensdienst an. Der Client möchte auf eine Methode des entfernten Objektes zugreifen und frägt demnach erst beim Namensdienst an, um Zugriff zu bekommen. Netzwerkprogrammierung

Der RMI Server Eine entfernte Schnittstelle deklariert Methoden. Eine Klasse implementiert die Schnittstelle und füllt die Methode mit Leben => Remote-Objekt-Implementierung. Netzwerkprogrammierung

3. RMI Der Server meldet das entfernte Objekt unter einem öffentlichen Namen bei der Registry an und muss es vor der Bereitstellung für die Clients exportieren, um für eine eingehende Verbindung bereit zu sein. Netzwerkprogrammierung

3. RMI Der RMI Client Um entfernte Methoden zu nutzen, muss ein entferntes Objekt gesucht und angesprochen werden. Dazu fragen wir den Namensdienst. Der Name für das Objekt setzt sich aus der URL und dem Namen des Dienstes zusammen. Netzwerkprogrammierung

3. RMI Aufgabe 3: Schreiben sie eine Server/Client-Chatapplikation auf Basis von RMI, welche folgendes ermöglicht: Ein Server bietet einen Dienst an, welcher beliebig viele Nutzer zwischenspeichert und jedem Chatteilnehmer eine andere Schriftfarbe gibt. Der Server verwaltet alle Nachrichten und schickt sie an alle teilnehmenden Clients. Eine kleine GUI beschreibt Ereignisse wie connect und disconnect von Benutzern. Clients müssen beim Start der Applikation ihren Namen und eine IP-Adresse des Servers angeben und sind bei erfolgreichem Finden der Adresse mit dem Server verbunden. Eine kleine GUI beim Client ermöglicht die Darstellung der Nachrichten, sowie die Namen der verbundenen Clients und ein Eingabefeld. Netzwerkprogrammierung

Beispiel-Gui für die Applikation: 3. RMI Beispiel-Gui für die Applikation: Netzwerkprogrammierung