FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1)



Ähnliche Dokumente
2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

Zeichen bei Zahlen entschlüsseln

Client-Server mit Socket und API von Berkeley

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

ISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote

Virtual Private Network

4. Network Interfaces Welches verwenden? 5. Anwendung : Laden einer einfachen Internetseite 6. Kapselung von Paketen

1 Mathematische Grundlagen

3 Das verbindungslose Vermittlungsprotokoll IP

Anleitung zur Nutzung des SharePort Utility

1 Mit einem Convision Videoserver über DSL oder ISDN Router ins Internet

15 Transportschicht (Schicht 4)

EasyWk DAS Schwimmwettkampfprogramm

Web Interface für Anwender

DNÜ-Tutorium HS Niederrhein, WS 2014/2015. Probeklausur

Primzahlen und RSA-Verschlüsselung

Professionelle Seminare im Bereich MS-Office

Agentur für Werbung & Internet. Schritt für Schritt: -Konfiguration mit Apple Mail

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Leichte-Sprache-Bilder

Was meinen die Leute eigentlich mit: Grexit?

SMS/ MMS Multimedia Center

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Anwendungsbeispiele Buchhaltung

Anleitung Grundsetup C3 Mail & SMS Gateway V

teamsync Kurzanleitung

Netzwerkeinstellungen unter Mac OS X

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Statuten in leichter Sprache

Step by Step VPN unter Windows Server von Christian Bartl

Kurzanleitung OOVS. Reseller Interface. Allgemein

Leitfaden zur Einrichtung za-mail mit IMAP auf dem iphone

Übersicht. Was ist FTP? Übertragungsmodi. Sicherheit. Öffentliche FTP-Server. FTP-Software

Automatisches Beantworten von - Nachrichten mit einem Exchange Server-Konto

TCP/UDP. Transport Layer

Local Control Network Technische Dokumentation

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Das Leitbild vom Verein WIR

OP-LOG

Elternzeit Was ist das?

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Anbindung des eibport an das Internet

C.M.I. Control and Monitoring Interface. Zusatzanleitung: Datentransfer mit CAN over Ethernet (COE) Version 1.08

Anleitung über den Umgang mit Schildern

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Rechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können.

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Ein Hinweis vorab: Mailkonfiguration am Beispiel von Thunderbird

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Guide DynDNS und Portforwarding

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

SIMP 1.01 Protokollspezifikation (Mindestanforderung)

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Step by Step Webserver unter Windows Server von Christian Bartl

Bernd Blümel. Verschlüsselung. Prof. Dr. Blümel

Gefahren aus dem Internet 1 Grundwissen April 2010

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

macs Support Ticket System

Kommunikations-Parameter

Inkrementelles Backup

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

Die neue Aufgabe von der Monitoring-Stelle. Das ist die Monitoring-Stelle:

Mit einer Rufnummer bis zu 3 mobile Endgeräte nutzen mit nur einem Vertrag, einer Rechnung und einer Mailbox.

Anleitung für Kunden zum Umgang mit verschlüsselten s von der LASA Brandenburg GmbH

PC-Umzug: So ziehen Sie Ihre Daten von Windows XP nach Windows 8 um

Firmware-Update, CAPI Update

Internet online Update (Internet Explorer)

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Reporting Services und SharePoint 2010 Teil 1

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Print2CAD 2017, 8th Generation. Netzwerkversionen

Registrierung am Elterninformationssysytem: ClaXss Infoline

Was ist Sozial-Raum-Orientierung?

Anleitung C3 IP Tools V loxone.c3online.at. Kontakt & Support. Brielgasse 27. A-6900 Bregenz. TEL +43 (5574) MAIL info@c3online.

Printserver und die Einrichtung von TCP/IP oder LPR Ports

Telefonmodem ISDN DSL VDSL. Telekom 1&1 Telefónica/O2. Vodafone Unitymedia HSE Medianet

Einrichtung von VPN-Verbindungen unter Windows NT

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Scharl 2010 Dokument ist Urheberrechtlich geschützt. Port Forwarding via PuTTY und SSH. Was ist Port forwarding?

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

POP -Konto auf iphone mit ios 6 einrichten

Fax einrichten auf Windows XP-PC

Gezielt über Folien hinweg springen

icloud nicht neu, aber doch irgendwie anders

Anbinden der Visualisierung GILLES TOUCH (VNC)

Webalizer HOWTO. Stand:

Transkript:

1 FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) In dieser Kurseinheit geht es um verteilte Anwendungen, bei denen wir sowohl ein Client- als auch ein Server-Programm selbst entwickeln. Diese Art von Anwendungen bezeichnen wir als eigenständige Client-Server-Anwendungen. Zur Kommunikation werden wir dabei Sockets oder RMI verwenden.

2 Eigenständige Client-Server-Anwendungen

Einleitung und Grundlagen von Rechnernetzen 3 1 Einleitung und Grundlagen von Rechnernetzen Sollten Sie keine Kenntnisse über die Grundlagen von Rechnernetzen haben, wie sie beispielsweise im Fernstudienmodul Rechnernetze vermittelt werden, können Sie sich im Folgenden das grundlegende Wissen über das in Rechnernetzen wichtige Schichtenmodell, IP-Adressen und DNS-Namen sowie die Transportprotokolle UDP und TCP erarbeiten. Das Durcharbeiten der folgenden Seiten wird auch dann empfohlen, wenn Ihr erworbenes Wissen über diese Themenbereiche bereits schon etwas verblasst ist. Lesen Sie den Beginn des Kapitels 5 (S. 219-220) des Lehrbuchs zur Einstimmung auf die folgenden Themengebiete durch. Wenn Sie keine oder mangelnde Kenntnisse über Rechnernetze oder das darüber Gelernte weitgehend wieder vergessen haben, dann lesen Sie Abschnitt 5.1 (S. 220-227) durch. Zusammenfassung Die Funktionen für die Kommunikation in Rechnernetzen werden in unterschiedliche Schichten aufgeteilt, wobei die eine Schicht ihre Funktionen der darüber liegenden Schicht über eine Schnittstelle zur Verfügung stellt. Es handelt sich dabei um folgende Schichten: 1. Bitübertragungsschicht (Physical Layer) 2. Leitungsschicht (Data Link Layer) 3. Vermittlungsschicht (Network Layer) 4. Transportschicht (Transport Layer) 5. Anwendungsschicht (Application Layer) Die ersten beiden Schichten sind abhängig von der verwendeten Netztechnologie (z.b. Ethernet oder WLAN), während die Schichten 3 bis 5 davon unabhängig sind. Die Kommunikation zwischen zwei in derselben Schicht benachbarten Rechnern wird über Protokolle geregelt. Ein Protokoll legt fest, wie die ausgetauschten Daten formatiert sind und welche Protokollnachricht welcher anderen zu folgen hat. Im Internet werden Rechner durch IP-Adressen auf der 3. Schicht adressiert. Das Protokoll dieser Schicht heißt IP (Internet Protocol). Da die IP- Adressen für Menschen nicht leicht zu merken sind, werden alternativ hierarchische Namen verwendet, wobei die höchste Hierarchiestufe wie z.b. de oder com am Ende des Namens steht. Durch DNS (Domain Name System) werden Namen in Adressen übersetzt.

4 Eigenständige Client-Server-Anwendungen Mit Hilfe von Transportprotokollen können nicht nur Rechner, sondern Anwendungen auf Rechnern adressiert werden. Dies geschieht durch Portnummern. Das Transportprotokoll UDP (User Datagram Protocol) hat außer dieser Adressierung keine weiteren Funktionen. Seine Charakteristiken entsprechen daher denjenigen des IP-Protokolls: verbindungslos, unzuverlässig und datagrammorientiert. Im Gegensatz dazu ist das Transportprotokoll TCP (Transmission Control Protocol) verbindungsorientiert, zuverlässig mit Fluss- und Überlastkontrolle sowie datenstromorientiert. Übungsaufgaben 1.1 Nennen Sie Beispiele für Protokolle der Schicht 5! Geben Sie aber nicht nur den Namen des jeweiligen Protokolls an, sondern beschreiben Sie auch, wozu das Protokoll dient und was die Bedeutung einiger damit übertragener Nachrichten ist! 1.2 Anhand welchen Unterschieds aus der Kurseinheit Fortgeschrittene Synchronisationskonzepte in Java kann man sich den Unterschied zwischen Datagrammorientierung und Datenstromorientierung verdeutlichen?

Socket-Schnittstelle 5 2 Socket-Schnittstelle Dieser Abschnitt gibt Ihnen einen Überblick über die Socket-Schnittstelle, ohne auf Details einzugehen. Lesen Sie Abschnitt 5.2 (S. 228-233) des Lehrbuchs. Zusammenfassung Die Socket-Schnittstelle ist eine Schnittstelle zwischen der Transportschicht (Schicht 4) und der Anwendungsschicht (Schicht 5) und damit in der Regel zwischen dem Betriebssystemkern und den Anwendungen. An Sockets können Portnummern gebunden werden. Alle Daten, die über diesen Socket gesendet werden, tragen diese Portnummer als Quellportnummer. Außerdem kommen an diesem Socket nur Daten an, die an die dazugehörige Portnummer als Zielportnummer adressiert sind. Bei der Kommunikation zwischen zwei Anwendungen ergreift einer der Partner die Initiative und sendet die erste Nachricht; dieser Partner wird als Client bezeichnet, der andere als Server. Aus diesem Grund muss der Client die IP-Adresse und die Portnummer des Servers kennen. Das Umgekehrte gilt nicht, da der Server durch die empfangene Nachricht die IP-Adresse und die Portnummer des Absenders erfährt. Es gibt keine 1:1-Beziehung zwischen Sockets und Portnummern auf einem Rechner, sondern es ist im Allgemeinen möglich, dass an mehrere Sockets dieselbe Portnummer gebunden ist. Bei TCP ist dies immer dann der Fall, wenn eine zweite Verbindung von einem Verbindungs-Socket angenommen wird, bevor die erste beendet wurde. Wenn es zu einem Zeitpunkt mehrere Verbindungs-Sockets gibt, wobei diese alle von demselben Socket zur Verbindungsannahme stammen, dann besitzen alle diese Verbindungs-Sockets dieselbe Portnummer. Eingehende Nachrichten werden im TCP-Fall aber nicht nur aufgrund der Zielportnummer verteilt, sondern die IP-Adresse und die Portnummer des Absenders werden dabei ebenfalls berücksichtigt. Die Klasse InetAddress repräsentiert eine IP-Adresse und den dazugehörigen DNS-Namen. Mit Static-Methoden dieser Klasse können in einfacher Weise DNS-Abfragen vorgenommen werden.

6 Eigenständige Client-Server-Anwendungen Übungsaufgaben 2.1 Schreiben Sie ein Programm zur Abfrage von IP-Adressen, wobei die Methode getallbyname der Klasse InetAddress benutzt werden soll! Beim Starten des Programms sollen beliebig viele Kommandozeilenargumente angegeben werden können, die der Reihe nach an getall- ByName übergeben werden. Überlegen Sie bitte auch, wie Sie auf eine UnknownHostException am besten reagieren! Es ist nicht sinnvoll, das ganze Programm sofort abzubrechen. Besser wäre es, weitere Kommandozeilenargumente, falls noch welche vorhanden sind, zu bearbeiten. 2.2 Erweitern Sie Ihr Programm aus der vorigen Aufgabe so, dass Sie zu jedem abgefragten Rechner auch angeben, ob dieser erreichbar ist!

Kommunikation über UDP mit Java-Sockets 7 3 Kommunikation über UDP mit Java-Sockets In diesem Abschnitt wird es konkret. Sie lernen, wie Sie Ihre erste verteilte Anwendung programmieren, die über UDP kommuniziert. Lesen Sie Abschnitt 5.3 (S. 233-240) des Lehrbuchs. Zusammenfassung Mit den Klassen DatagramPacket und DatagramSocket können Anwendungen entwickelt werden, die über UDP kommunizieren. Die Klasse DatagramSocket enthält Methoden zum Senden und Empfangen von Objekten der Klasse DatagramPacket. Bei Anwendungen, die auf UDP basieren, muss man beim Programmieren die Unzuverlässigkeit von UDP mit in Betracht ziehen. Wird beim Empfangen keine Frist angegeben, kann ein Programm im Falle eines Paketverlusts hängen bleiben. Übungsaufgaben 3.1 Können mehrere Clients gleichzeitig auf einem Rechner gestartet werden? Können mehrere Server gleichzeitig auf einem Rechner gestartet werden? 3.2 Der Client setzt zuerst den Zähler auf 0 und sendet dann N-Mal das Kommando increment. Trotzdem kann man nicht sicher sein, dass die letzte Antwort, die der Client vom Server erhält, N ist bzw. dass der Zählerstand auf dem Server unmittelbar danach auf N steht. Nennen Sie mehrere unterschiedliche Gründe für diesen Effekt! Geben Sie für jeden Grund an, ob der zuletzt erhaltene Wert bzw. der Stand des Zählers auf dem Server größer oder kleiner sein kann als N!