Kapitel 4: Design von Client/Server-Software

Slides:



Advertisements
Ähnliche Präsentationen
Aufbau eines Netzwerkes
Advertisements

Be.as WEB Technologie
Einer der Dienste im Internet
DI Christian Donner cd (at) donners.com
Basis-Architekturen für Web-Anwendungen
Kapitel 8: Nachrichtenbasierte Kommunikation mit JMS
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Datenbankzugriff im WWW (Kommerzielle Systeme)
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten.
Netzwerke im Dialogmarketing
Die Firewall Was versteht man unter dem Begriff „Firewall“?
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Ausnahmen HS Merseburg (FH) WS 06/07.
Vergleich von LAN - Protokollen
Anwendungen in Rechnernetzen Tobias Wawryniuk
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.
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
DNS – Domain Name System
Client-Server-Architekturen
1 NetWork File System © April 2002, G. Hellberg Network File System Konfiguration und Einsatz.
Bs Kommunikation Kommunikation zwischen Benutzerprozessen (IPK) stellt andere Anforderungen als auftragsorientierte Kommunikation in mikrokernbasierten.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
JAVA RMI.
Martin MauveUniversität Mannheim1 3.6 User Datagram Protocol (UDP) RFC 768. J. Postel. User Datagram Protocol unzuverlässiges Transportprotokoll.
Virtual Private Networks
Einführung in die Technik des Internets
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
von Julia Pfander und Katja Holzapfel E 12/2
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.
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,
Rechnerkommunikation I
Referent: Kiron Mirdha Betreuer: Rene Hilden Juli 2012
1 Übersicht Absicherung Internet Layer Absicherung Transport Layer Absicherung Application Layer.
Geschichte des Internet
Socket-Programmierung
Vorteile eines lokalen Netzwerks?
PSI - Überblick und Szenarien
Julia Grabsch Florian Hillnhütter Fabian Riebschläger
Netzwerkprogrammierung
Internet und SMS Internet und SMS Daniel Rickenbacher Jeremy Deuel.
Netzwerke Ein Referat.
Präsentation von Lukas Sulzer
Netzwerke.
Domain Name Service Grundlagen, Implementierung im Active Directory und Integration von Win2k-Domains in bestehende Umgebungen Kay Sander.
Meldungen über Ethernet mit FINS/UDP
HTTP IT-Zertifikat Universität zu Köln Allgemeine Technologien II
Hauptseminar 2001 „Parallele Programmierung in Java“ - JPVM- Java Parallel Virtual Machine Referent: Sebastian Steininger.
Willkommen zum Brückensemester
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
->Prinzip ->Systeme ->Peer – to – Peer
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
KRITERIEN Fortgeschrittene über den Kurs hinausgehend kurze Erklärung der Fachbegriffe Vergleiche mit anderen Sprachen übersichtlich, ansprechend Lay Out.
Datenbanken im Web 1.
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Schutzvermerk nach DIN 34 beachten TCP / IP. Schutzvermerk nach DIN 34 beachten TCP / IP und das OSI-Referenzmodell Process / Application Host-to-Host.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Middleware in Java vieweg 2005 © Steffen Heinzl, Markus Mathes Kapitel 6: Verteilte Objekte durch RMI.
Middleware in Java vieweg 2005 © Steffen Heinzl, Markus Mathes Kapitel 1: Architektur verteilter Systeme.
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
Paketübertragung mit Sockets Was, wohin? Adressierung durch java.net.InetAddress Bsp: adr=InetAddress.getByName(“localhost“); Pakete sind java.net.DatagramPacket.
Eine komplexe Netzanwendung Webserver und Datenbankserver im Netzwerk in einer Anwendung einrichten.
Netzwerk - Programmierung
Netzwerk - Programmierung
Firewall.
Tutorstunde 10.
 Präsentation transkript:

Kapitel 4: Design von Client/Server-Software

Definition: Client und Server Ein Client ist ein Dienstnutzer, der von einem Server aktiv einen Dienst anfordert und anschließend darauf wartet, dass der Server den angeforderten Dienst erbringt. Server Ein Server ist ein Dienstanbieter, der für einen Client eine bestimmte Funktionalität in Form eines Dienstes erbringt und passiv darauf wartet, dass ein Client eine Anforderung an ihn stellt.

Aufgaben eines Servers Server müssen neben der Kommunikation mit dem Client und der Erbringung des Dienstes noch weitere Aufgaben realisieren: Authentifizierung: Identifikation des Clients Autorisierung: Rechte eines Clients prüfen Datenschutz: Schutz personenbezogener Daten Datensicherheit: Schutz der Daten vor Manipulation Schutz des Betriebssystems Þ Server sind komplexer als Clients

Vor- und Nachteile des Client/Server-Modells Vorteile: in heterogenen Umgebungen einsetzbar Begriffe Client/Server sind in Theorie/Praxis gefestigt Interaktion zwischen Client/Server klar definiert ermöglicht auch Entwurf von Hardware Nachteile: keinerlei Transparenz Anwendung kann sowohl Client- als auch Server- Funktionalität besitzen relativ altes Entwurfsmodell

Entwurf von Client und Server parametrisierbar vs. nicht parametrisierbar iterativ vs. parallel verbindungslos vs. verbindungsorientiert Server statuslos vs. statusbehaftet

Entwurfsaspekte eines Clients parametrisierbar Benutzer kann Kommunikations- parameter vorgeben iterativ genau ein Ausführungsfaden verbindungslose UDP als Transport- protokoll nicht parametrisierbar Client verwendet immer die selben Kom- munikationsparameter parallel mehrere Ausführungs- fäden verbindungsorientiert TCP als Transport- protokoll

Entwurfsaspekte eines Servers statuslos Server speichert keinerlei Verlaufs- informationen über die Kommunikation iterativ genau ein Ausführungsfaden verbindungslos UDP als Transport- protokoll statusbehaftet Server speichert Verlaufsinformationen über die Kommuni- kation parallel mehrere Ausführungs- fäden verbindungsorientiert TCP als Transport- protokoll

Antwort- und Bearbeitungszeit Zeit, die der Server zur Bearbeitung einer Anfrage benötigt Antwortzeit: Zeit, die aus Sicht des Clients vergeht, bis auf eine Anfrage eine Antwort eintrifft

Antwortzeit bei iterativem und parallelem Server

Multiprotokoll-Server Ein Multiprotokoll-Server unterstützt gleichzeitig mehrere Transportprotokolle. Oftmals werden die Transportprotokolle so gewählt, dass eine verbindungslose und verbindungsorientierte Kommunikation möglich wird. Vorteile: Einsparung von Systemressourcen Codewiederverwendung

Multiservice-Server Ein Multiservice-Server bietet mehrere Dienste gleichzeitig für ein bestimmtes Transportprotokoll an. Beispielsweise kann ein Server gleichzeitig einen TIME- und DAYTIME-Dienst für UDP oder TCP anbieten. Vorteile: Einsparung von Systemressourcen Codewiederverwendung

Super-Server Ein Super-Server bietet mehrere Dienste gleich- zeitig für mehrere Transportprotokolle an. Dadurch kommt es zu einer starken Einsparung von Systemressourcen. Viele Linux-Systeme liefern beispielsweise den Super-Server inetd mit. Vorteile: starke Einsparung von Systemressourcen Codewiederverwendung

Master/Slave-Prinzip (1) Viele parallele Server werden nach dem Master/Slave-Prinzip implementiert. Der Master wartet in einer Endlosschleife auf das Eintreffen von Anforderungen an einem bestimmten Port. Trifft eine Anforderung ein, erzeugt der Master einen Slave und delegiert die Bearbeitung der Anfrage an diesen. Anschließend wartet der Master wieder auf neue Anforderungen. Der Slave bearbeitet die erhaltene Anforderung und kommuniziert dazu über einen eigenen Port mit dem Client.

Master/Slave-Prinzip (2)

Socket-API (1) Socket-Primitive: Die Socket-API wurde erstmals 1982 durch die University of California in Berkeley als Teil von BSD UNIX 4.1c eingeführt. Durch sie sollte ein einfacher Zugriff auf die Funktionen des Protokoll- Stacks zum Senden und Empfangen von Daten ermöglicht werden. Socket-Primitive: socket bind listen accept connect read/write sendto/recvfrom close

Socket-API (2) neuen Kommunikationsendpunkt für UDP oder TCP erzeugen bind Socket lokale Adresse zuordnen (Socket an Adresse binden) listen Socket in passiven Zustand versetzen accept blockierend auf einen Verbindungswunsch warten

Socket-API (3) Aufbau einer Verbindung zum Server connect Aufbau einer Verbindung zum Server read/write Empfangen und Senden von Daten sendto/recvfrom Datagramm senden und empfangen close Socket schließen und Ressourcen freigeben

verbindungslose Socket-Kommunikation

verbindungsorientierte Socket-Kommunikation

Socket-API unter Java Adress- und Namensauflösung UDP-Kommunikation InetAddress Inet4Address Inet6Address UDP-Kommunikation DatagramPacket DatagramSocket TCP-Kommunikation ServerSocket Socket

Adressklassen

Auflösung eines Host-Namens InetAddress ipAddr = null; try { // Namensauflösung ipAddr = InetAddress.getByName("www.fh-fulda.de"); } catch(UnknownHostException e) e.printStackTrace(); System.exit(-1);

DatagramPacket und DatagramSocket Ein DatagramSocket repräsentiert einen UDP- Socket und besitzt die drei wichtigen Konstruktoren DatagramSocket() DatagramSocket(int port) DatagramSocket(int port, InetAddress laddr) Ein DatagramPacket repräsentiert ein UDP-Paket und besitzt die Konstruktoren DatagramPacket(byte[] buf, int length) DatagramPacket(byte[] buf, int length, InetAddress address, int port)

Socket und ServerSocket Die Klasse Socket repräsentiert einen Kommunikationsendpunkt, über den Daten gesendet bzw. empfangen werden können. Die wichtigsten Konstruktoren sind: Socket() Socket(String host, int port) Ein ServerSocket ist ein passiver Socket und wird nur von Servern verwendet. Die beiden wichtigsten Konstruktoren von ServerSocket sind: ServerSocket(int port) ServerSocket(int port, int backlog)

Dateizugriff mit dem FILE-Protokoll (1)

Dateizugriff mit dem FILE-Protokoll (2) OPEN Dateiname Öffnet die angegebene Datei. READ Liest die nächste Zeile aus der zuvor geöffneten Datei. WRITE Zeile Schreibt eine neue Zeile an das Ende der Datei. CLOSE Schließt die zuvor geöffnete Datei. SHUTDOWN Der Client beendet die Kommunikation mit dem Server.

Literatur Anatol Badach, Erwin Hoffmann: Technik der IP-Netze – TCP/IP incl. IPv6; Hanser 2001; http://www.fehcom.de /tipn Douglas E. Comer, David L. Stevens: Internetworking with TCP/IP – Volume 3: Client-Server Programming And Applications; Prentice Hall 2001; http://www.cs.purdue.edu/homes/comer/netbooks.html Guido Krüger: Handbuch der Java-Programmierung (4. Auflage); Addison Wesley 2004; http://www.javabuch.de Martin Pollakowski: Grundkurs Socketprogrammierung mit C unter Linux; vieweg 2004; http://www.fh‑gelsenkirchen.de/fb01/homepages/ pollakowski/socket/index.html Sun Microsystems Inc.: JDK 5.0 Documentation; http://java.sun.com/j2se/1.5.0/docs/index.html, http://java.sun.com/j2se/1.5.0/docs/api/index.html Christian Ullenboom: Java ist auch eine Insel; Galileo Computing 2004; http://www.galileocomputing.de/openbook/javainsel4/

Aufgaben In „Middleware in Java“ finden Sie Wiederholungs-, Vertiefungs-, Programmieraufgaben zu den vorgestellten Themen. Zur Festigung und Vertiefung des Erlernten wird eine Bearbeitung der Aufgaben empfohlen.