Datenkommunikation. Studienarbeit. Wintersemester 2014/2015. Mandl/Bakomenko/Weiß Seite 1. Datenkommunikation



Ähnliche Dokumente
Powermanager Server- Client- Installation

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

Übung: Verwendung von Java-Threads

Hochschule für Angewandte Wissenschaften München Fakultät Informatik und Mathematik

Hochschule für Angewandte Wissenschaften München Fakultät Informatik und Mathematik

Installation Hardlockserver-Dongle

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

HTBVIEWER INBETRIEBNAHME

Herzlich Willkommen bei der nfon GmbH

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester Timer. Sockets.

Man liest sich: POP3/IMAP

Bachelorstudiengang Wirtschaftsinformatik Fakultät Informatik und Mathematik

Dokumentation EGVP-Übertmittlungsfehler bei Server-Engpässen Vorgehensweise Seite 1 von 5

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Übung 8: Semaphore in Java (eigene Implementierung)

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

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

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

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

TimeSafe Installationsanleitung mit InfotechStart

TCP SYN Flood - Attack. Beschreibung Auswirkungen Zuordnung zu Gefährdungskategorie und Attacken-Art Gegenmaßnahmen Quellen

12. Dokumente Speichern und Drucken

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

BIF/SWE - Übungsbeispiel

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Client/Server-Systeme

SEPA Lastschriften. Ergänzung zur Dokumentation vom Workshop Software GmbH Siemensstr Kleve / /

Web Interface für Anwender

Local Control Network Technische Dokumentation

Beispiele, um das Spektrum an Szenarien aufzuzeigen, die mit dem extra Standard möglich sind

Matrix42. Use Case - Anwender kann Datei vom Typ PNG nicht öffnen. Version März

TechNote: TWINFAX Protokollierungen aktivieren

lññáåé=iáåé===pìééçêíáåñçêã~íáçå=

Transmission Control Protocol (TCP)

OP-LOG

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

ObjectBridge Java Edition

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Tevalo Handbuch v 1.1 vom

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

WebCar Mobil Betriebssystem Windows Phone 7.5 Bedienungsanleitung kwse 2012, Albershausen Im Morgen 67

WinWerk. Prozess 4 Akonto. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

ITF2XML. Transferservice. Version 1.1. Tel.: 044 / Fax: 044 / CH-8005 Zürich

Ether S-Net Diagnostik

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Mitarbeiterbefragung als PE- und OE-Instrument

Installation der SAS Foundation Software auf Windows

Kurzeinführung Excel2App. Version 1.0.0

Kommunikations-Parameter

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

Leitfaden zur Nutzung des Systems CryptShare /Sicheres Postfach

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

ICS-Addin. Benutzerhandbuch. Version: 1.0

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

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

Anwendungsfall: Gerichtstermin

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Algorithmische Kryptographie

Anwendungsprotokolle: HTTP, POP, SMTP

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

Fotos in Tobii Communicator verwenden

==============================!" ==

snom Auto-Provisioning

Benutzung der LS-Miniscanner

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

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

NTCS Synchronisation mit Exchange

Zustandsgebundene Webservices

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Anleitung. Schritt für Schritt: iphone und ipad. Richten Sie Ihr -Konto mit Ihrem iphone oder ipad Schritt für Schritt ein.

Leitfaden zur Nutzung von binder CryptShare

Bereit für neue Technologien

ICMP Internet Control Message Protocol. Michael Ziegler

mmone Internet Installation Windows XP

Mediator 9 - Lernprogramm

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Referenzen Typo3. Blog der Internetagentur Irma Berscheid-Kimeridze Stand: Juni 2015

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

WinVetpro im Betriebsmodus Laptop

Installationshilfe DSL unter MAC OS X

Lizenz-Server überwachen

Installation von horizont 4 bei Verwendung mehrerer Datenbanken

Installationshilfe VisKalk V5

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

Themen. Web Service - Clients. Kommunikation zw. Web Services

Windows Server 2008 für die RADIUS-Authentisierung einrichten

Transkript:

Studienarbeit Wintersemester 2014/2015 Mandl/Bakomenko/Weiß Seite 1

Überblick 1. Einführung in die Aufgabenstellung - Lernziele - Überblick über die Aufgabenstellung 2. Das Dako-Framework 3. Teilaufgaben 1-3 Mandl/Bakomenko/Weiß Seite 2

Lernziele Erfahrungen in der Programmierung von Kommunikationsanwendungen (hier: Client-/Server- Anwendungen) sammeln Schichtenorientiertes Denken schulen Problemstellungen der Protokollimplementierung praktisch erfahren - Komplexität anderer Protokolle soll verständlicher werden - Methodisches Vorgehen beim Vergleich von Lösungsansätzen insbesondere in der Leistungsanalyse Mandl/Bakomenko/Weiß Seite 3

Überblick über die Aufgabenstellung Implementierung einer einfachen Echo- Anwendung (Client-/Server) auf der Basis des bereitgestellten Dako-Frameworks Einsatz der Transportprotokolle TCP und UDP Transportzugriff über Sockets Programmieren in einer höheren Programmiersprache wir verwenden Java Leistungsvergleich für die verschiedene Lösungen Mandl/Bakomenko/Weiß Seite 4

Echo-Anwendung Client sendet Anfrage (Echo-Request) Server registriert Client, falls noch nicht erfolgt, in einer Client-Liste Server antwortet mit Response (Echo-Response) Nachrichtenformat ist definiert Echo-PDU Echo-Client 1 Echo-Server RTT 1 RTT = Round Trip Time RTT 2 Mandl/Bakomenko/Weiß Seite 5

Echo-Protokoll (1) Nachrichtenaufbau Einfaches Nachrichtenformat in Klasse EchoPDU definiert: Name des Client-Threads Name des Server-Threads Flag für letzten Request Header Sequenznummer Bearbeitungszeit im Server Füllt Server aus Echo-Nachricht Nutzdaten Füllt Client aus Füllen beide aus Mandl/Bakomenko/Weiß Seite 6

Echo-Protokoll (2): Regelwerk Der Name des Client-Threads wird durch den Client belegt Auf Eindeutigkeit achten, jeder Client-Thread erhält eigenen Namen Thread.setName() Der Name des Server-Threads wird durch den Server belegt Jeder Server-Thread erhält einen eigenen Namen Sequenznummer: Laufender Zähler der Nachrichten eines Clients Flag für letzten Request: Angabe des Client-Threads, ob es seine letzte Echo-PDU ist (Letzter Request = true) Bearbeitungszeit im Server: Zeit, die der Server für die Bearbeitung des Request benötigt (Zeitmessung in Nanosekunden) Echo-Nachricht: Eigentliche Nutzdaten Mandl/Bakomenko/Weiß Seite 7

Grobe Schichtenarchitektur Echo-Client Echo- Protokoll Echo-Server Transport-Instanz Transport-Instanz Internet Protokoll (IP) Mandl/Bakomenko/Weiß Seite 8

Single-threaded versus Multi-threaded Server Serverseitig gibt es große Unterschiede in der Implementierung der nebenläufigen Verarbeitung Single-threaded: Im Wesentlichen übernimmt ein Thread die Bearbeitung aller ankommenden Requests von Clients Multi-threaded: Jeder Client oder jeder Request wird in einem eigenen Thread bearbeitet In diesem Semester behandeln wir multi-threaded Server! Weitere Unterscheidung: Verbindungsorientiert oder verbindungslos Mandl/Bakomenko/Weiß Seite 9

Überblick 1. Einführung in die Aufgabenstellung - Lernziele - Überblick über die Aufgabenstellung 2. Das Dako-Framework 3. Teilaufgaben 1-3 Mandl/Bakomenko/Weiß Seite 10

Dako-Framework: Einführung Das Dako-Framework gibt einen Rahmen für die Implementierung der Echo-Anwendung vor Es unterstützt durch vordefinierte Java-Interfaces und Java-Klassen, wie Abstrahierung von Verbindungen (Connections) Allgemeingültige Basis für Client- und Server Thread-Pooling im Client und im Server die Bereitstellung eines Testrahmens für den Test und die Leistungsmessungen inkl. Test-GUI Eingebaute Logging- und Protokollierungsmechanismen Sammlung von Messdaten für die statistische Aufbereitung der Messergebnisse Mandl/Bakomenko/Weiß Seite 11

Dako-Framework: Einschub: Verwendete Design Patterns Im Dako-Framework werden zwei einfache Design- Patterns verwendet (Hintergrundwissen in der Aufgabenstellung): Decorator Pattern LoggingConnectionDecorator DecoratingConnectionFactory Factory Pattern ConnectionFactory ClientFactory ServerFactory Mandl/Bakomenko/Weiß Seite 12

Dako-Framework: Einschub: Decorator-Pattern Das Pattern ermöglicht es, eine Klasse um zusätzliche Funktionalitäten zu erweitern Kapselung einer bestehenden Objektklasse mit Anreicherung Mandl/Bakomenko/Weiß Seite 13

Dako-Framework: Einschub: Factory-Pattern Mit Hilfe dieses Patterns kann man ein Objekt durch Aufruf einer speziellen Factory-Methode anstatt durch direkten Aufruf eines Konstruktors erzeugen Mandl/Bakomenko/Weiß Seite 14

Dako-Framework: Serverseite am Beispiel von TCP (Auszug) <<interface>> ServerSocket <<interface>> EchoServer impl impl ServerFactory erzeugt TCPServerSocket nutzt TcpEchoServerImpl main erzeugt erzeugt erzeugt <<interface>> Connection impl TcpConnection nutzt <<internal>> EchoWorker Basis-Interfaces und Klassen sind grau gezeichnet run: Bearbeitet alle Requests eines Clients über eine Verbindung Mandl/Bakomenko/Weiß Seite 15

Dako-Framework: Clientseite am Beispiel von TCP (Auszug) BenchmarkingClient <<interface>> ConnectionFactory <<abstract>> AbstractClient main nutzt impl impl erzeugt ClientFactory erzeugt TcpConnection Factory nutzt TcpEchoClientImpl erzeugt run TcpEchoClientImpl ist Client-Thread und sendet alle Requests <<interface>> Connection impl TcpConnection Basis-Interfaces und Klassen sind grau gezeichnet Mandl/Bakomenko/Weiß Seite 16

Dako-Framework: Clientseitiger Ablauf Sequenzdiagramm clientseitig Mandl/Bakomenko/Weiß Seite 17

Dako-Framework: Serverseitiger Ablauf Sequenzdiagramm serverseitig hier mit Tester-Klasse Mandl/Bakomenko/Weiß Seite 18

Dako-Framework: Logging Basisklassen des log4j-paketes von Apache werden genutzt Konfigurationsdateien: log4j.client.properties log4j.server.properties Logging / Debugging in getrennte Logdateien (Client und Server) Verzeichnis log Logsatz schreiben (Typen: INFO, DEBUG, ERROR) bei - Ankommenden PDUs nach dem Empfang (Ereignis als DEBUG, Inhalt als INFO) - Abgehende PDUs, vor dem Senden (Ereignis als DEBUG, Inhalt als INFO) - Methodenaufrufen (DEBUG) - Fehlersituationen (ERROR) Mandl/Bakomenko/Weiß Seite 19

Überblick 1. Einführung in die Aufgabenstellung - Lernziele - Überblick über die Aufgabenstellung 2. Das Dako-Framework 3. Teilaufgaben 1-3 Mandl/Bakomenko/Weiß Seite 20

Teilaufgabe 1: TCP-basierte Lösung Aufbau einer TCP-Verbindung zwischen Client und multi-threaded Server: Serverseitig eigener Worker-Thread für jeden Client- Thread, der die Verbindung bis zur vollständigen Bearbeitung aller Echo-Requests hält (multi-threaded im Server) Clientseite ist ebenfalls multi-threaded Beliebig viele Client-Threads können im Benchmarking- Client gestartet werden Aufgabenstellung Lösung verstehen und zum Laufen bringen Dako-Framework lernen Mandl/Bakomenko/Weiß Seite 21

Teilaufgabe 2: UDP-basierte Lösung Eigenentwicklung einer UDP-basierten Lösung mit multithreaded Server mit einfachen Sicherungsmaßnahmen auf Basis von UDP (UDP-Datagram-Sockets) Zeitüberwachung beim Empfang von Echo-Responses im Client Nachrichtenwiederholung bei Zeitüberschreitung Duplikaterkennung und Verwerfung von Duplikaten auf der Clientseite UdpEchoClient UDP IP Netzwerkzugang UdpEchoServer UDP IP Netzwerkzugang Netzwerk Mandl/Bakomenko/Weiß Seite 22

Teilaufgabe 3: Leistungsbewertung und Vergleich Leistungsbewertung für die beiden Lösungen (TCP und UDP) Verwendete Metrik: RTT - Serverbearbeitungszeit soll auch ermittelt werden Testdurchführung mit den beiden multi-threaded Implementierungen mehrmals (mind. 5 mal) wiederholen RTT-Berechnung: Mittelwert, Minimum, Maximum (über vorgegebene Klasse SharedClientStatistics) Leistungsauswertung Mandl/Bakomenko/Weiß Seite 23

Teilaufgabe 3: Metriken: RTT Definition: - Unter der Round-Trip-Time versteht man die Reaktions- oder Bearbeitungszeit eines Anwendungssystems für eine Anfrage - RTT bezeichnet die Zeitspanne, die erforderlich ist, um eine Nachricht bzw. einen Request von einem Sender zu einem Empfänger zu senden und die Antwort (den Response) des Empfängers wieder im Sender zu empfangen. - Messung in Millisekunden - RTT = T 3 T 0 Client T 0 Server T 1 RTT Requestbearbeitung T 3 T 2 Mandl/Bakomenko/Weiß Seite 24

Teilaufgabe 3: Aufbau der Messumgebung (1) 1 virtueller Clientrechner zur Simulation der Clients (Client- Threads) mit Benchmarking-Client 1 virtueller Serverrechner Testumgebung genau beschreiben: Rechnerausstattung, Netzwerk,... Nachvollziehbarkeit des Benchmarks!! Clientrechner (VM) IC 1 IC 4 Serverrechner (VM) Benchmarking- Client... Benchmarking- IS 1... IS 4 Datensatz IS x IC x Serverimplementierung Clientimplementierung Ethernet-LAN (1 Gbit/s-Switch) Mandl/Bakomenko/Weiß Seite 25

Teilaufgabe 3: Aufbau der Messumgebung (2) VMware-Umgebung wird für Messungen verwendet Jede Gruppe bekommt 2 virtuelle Maschinen mit Windows als Betriebssystem VMs liegen auf unterschiedlichen ESXi-Servern ESXi-Server 1 ESXi-Server 2 Client-VM Server-VM Benchmarking- Datensatz Ethernet-LAN (1 Gbit/s-Switch) Mandl/Bakomenko/Weiß Seite 26

Teilaufgabe 3: Sammlung der Messdaten RTT-Daten in Client-Threads bei jedem Request sammeln Abspeichern der Messergebnisse in einer Datei vordefinierte Java-Klasse Nutzen Mehrfaches Wiederholen jedes Benchmarks (Achtung: zeitintensiv!) Daten anschließend auswerten Mandl/Bakomenko/Weiß Seite 27

Teilaufgabe 3: Auswertung der Messergebnisse Grafische Darstellungen erstellen (über Excel) - Veränderung der Anzahl Client-Threads bei konstanter Nachrichtenlänge, konstanter Denkzeit und 100 Echo-Nachrichten je Echo-Client-Thread - Alle Multi-threaded Varianten in eine Grafik Durchschnittl. RTT in ms Messung Variation der Client-Threads Nutzdatenlänge: 100 Byte Anzahl Nachrichten je Client: 100 Denkzeit: 100 ms 100 200 300 400 500 600 700 800 900 1000 Anzahl Threads Mandl/Bakomenko/Weiß Seite 28