Netzwerkprogrammierung & Threads
|
|
- Fabian Falk
- vor 6 Jahren
- Abrufe
Transkript
1 Netzwerkprogrammierung & Threads Praktikum aus 1
2 Netzwerkprogrammierung & Threads Netzwerkprogrammierung URL, URLConnection, UDP, TCP Threads Praktikum aus Parallele Programme, Synchronisation, 2
3 Netzwerkprogrammierung Grundlagen (1/2) Kommunikation zwischen verteilten Programmen Host Computer Java Virtuelle Maschine Host Computer Java Java Virtuelle Maschine JVM, Web Server, Datenbank, Ftp.. Netzwerk-Betriebssystem Netzwerk-Betriebssystem Netzwerk 3
4 Netzwerkprogrammierung Grundlagen (2/2) ISO OSI, IP und Java - OSI 7 Schichten Application Presentation Session Transport Network Data Link Physical Internet http, ftp, telnet,... TCP, UDP Internet Protocol Ethernet, Token Ring, FDDI,.. java.net URL etc. Streams Socket InetAddress 4
5 Netzwerkprogrammierung HTTP und URLs Hypertext Transfer Protocol (HTTP/1.1) Uniform Resource Locator protocol :// host [:port] /filepath [ref] RFC Beispiele: ftp:// file://d:/tmp/bsp.html 5
6 Netzwerkprogrammierung Verwendung von URLs Ein Objekt der Klasse java.net.url repräsentiert eine Ressource im Internet try { URL u = new URL(" catch(malformedurlexception e) { // URL(String protocol, String host, int port, String file) Parsen: u.getprotocol(); u.gethost(); //... (File, Port, Ref) Direktes Lesen von einer URL: InputStream in = u.openstream(); 6
7 Netzwerkprogrammierung URLConnection Verbindung wird durch ein URLConnection Objekt repräsentiert und bei dessen Instanziierung aufgebaut. Generell ist das Erzeugen einer Connection zu einem Url ein mehrstufiger Prozess. URLConnection uc = u.openconnection(); u.connect(); Datenaustausch erfolgt über Streams der URLConnection InputStream ui = uc.getinputstream(); OutputStream uo = uc.getoutputstream(); HttpURLConnection HttpURLConnection http_uc = (HttpURLConnection)uc; uc.getrequestmethod(); uc.getresponsemessage(); 7
8 Netzwerkprogrammierung Beispiel: "mailto:" import java.io.*; import java.net.*;... System.setProperty("mail.host", smtp.tiscover.com"); URL u = new URL("mailto:godot@world.net"); URLConnection conn = u.openconnection(); PrintWriter out = new PrintWriter( new OutputStreamWriter(conn.getOutputStream())); out.println("subject: Test"); out.println(); out.println("hello World!"); out.close();... 8
9 Netzwerkprogrammierung TCP/IP, UDP Internet Protocol (IP) Routing der IP-Pakete (versehen mit Empfänger, Sender) Transport Control Protocol (TCP) Verbindung über gemeinsamen Kommunikationskanal Stückelt Nachricht in mehrere durchnummerierte Pakete Überprüft ob Paket Ziel erreicht hat, ansonsten Wiederholung Empfänger setzt Pakete in richtiger Reihenfolge wieder zusammen Uniform Datagram Protocol (UDP) Keine ständige Verbindung - zustandslos Jedes Paket wird einzeln gesendet Paket kann verloren gehen, keine Kontrolle Multicast ist möglich 9
10 Netzwerkprogrammierung Sockets Sockets sind die Schnittstelle zwischen Anwendung und Netzwerkverbindung Host:Port zur Identifizierung der Anwendungen Host Client 9951 UDP: Pakete TCP: Stream Host Http- Server Die "Server"-Anwendung wartet auf einem vereinbarten Port auf Verbindungsaufnahmen durch Client-Anwendungen 10
11 Netzwerkprogrammierung UDP paketorientiert Datenaustausch basiert auf Paketen (Datagramme) DatagramPacket repräsentiert Datenpaket Paket zum Senden: DatagramPacket(byte[] buf, int length, <Host>, <Port>) Paket zum Empfangen: DatagramPacket(byte[] b, int len) DatagramSocket zum Senden und Empfangen public void send(datagrampacket d); public void receive(datagrampacket d); 11
12 Netzwerkprogrammierung UDP Senden/Empfangen Initialisierung DatagramSocket socket = new DatagramSocket(9998); Request schicken InetAddress address = InetAddress.getByName("host"); DatagramPacket packet = new DatagramPacket(buf, buf.length, address, 8889); socket.send(packet); Response empfangen packet = new DatagramPacket(buf, buf.length); socket.receive(packet); String received = new String(packet.getData()); 12
13 Netzwerkprogrammierung TCP verbindungsorientiert Kommunikation erfolgt bidirektional über Sockets Socket := (Host, Portnummer) Implementierung des Datenaustausches mit Streams Client stellt Verbindung her durch Instanziierung eines Socket Objektes Server ist implementiert durch ServerSocket und wartet auf einer bestimmten Portnummer auf Anfragen: public Socket accept(); Verbindungsabbruch durch Schließen des Sockets 13
14 Netzwerkprogrammierung Verbindungsaufbau Client Socket s = new Socket(<Host>,<Port>); InputStream si = s.getinputstream(); OutputStream so = s.getoutputstream(); Server (gestartet auf <Host>) ServerSocket ss = new ServerSocket(<Port>); Socket s = ss.accept(); // blockierend InputStream from_so = s.getinputstream(); OutputStream to_si = s.getoutputstream(); Das Socket Objekt repräsentiert die Verbindung 14
15 Netzwerkprogrammierung Datenaustausch Lesen vom InputStream, schreiben auf den OutputStream Protokoll muss vereinbart werden Kodierung der Daten Koordination der Aktivitäten (Kontrollfluss) Beispiel: Simple Mail Transfer Protocol (RFC-821) Zeilenweiser Austausch von Kommandos und Statusantwort Client sendet Kommando an den SMTP-Server (z.b. "MAIL Server antwortet mit Status-Code (z.b. "250 OK\r\n") 15
16 Netzwerkprogrammierung & Threads Netzwerkprogrammierung URL, URLConnection, UDP, TCP Threads Praktikum aus Parallele Programme, Synchronisation, 16
17 Threads Eigenschaften "Heavy-weight" Prozess Adressraum Ausführungszustand Programmzähler, Ausführungs-Stack eventuell mehrere Threads "Light-weight" Prozess (Thread) teilt sich den Adressraum mit seinem Parent und anderen Threads jeder Thread ist ein eigener, sequentieller Kontrollfluss mit einem eigenen Programmzähler, Ausführungs-Stack und Zustand User-Thread Daemon-Thread: terminieren automatisch, wenn der letzte nicht-daemon Thread beendet wird Paralleler Ablauf des Parent-Prozesses und aller Threads 17
18 Threads Praktikum aus Implementierung von Threads Ableiten von der Klasse java.lang.thread und Überschreiben der Methode run Implementierung des Interfaces Runnable und Übergabe des Objekts an ein Thread Objekt im Konstruktor class Clock implements Runnable { public void run() {... Clock clk = new Clock(); Thread clkthread = new Thread(clk).start(); 18
19 Threads Beispiel: SimpleThread Praktikum aus Thread void run() void start() Runnable Leer- Implement ierung VM erzeugt OS-Thread und ruft run() auf SimpleThread void run() Hauptprogramm von SimpleThread public class ThreeThreadsTest { public static void main (String[] args) { new SimpleThread("Jamaica").start(); new SimpleThread("Fiji").start(); new SimpleThread( Bora").start(); 19
20 Threads Lebenszyklus yield wait Alive Created start Running sleep [sleeptime is over] Suspended new notify[all] interrupt Stopped 20
21 Threads SimpleThread Sequenzdiagramm ThreeThreadsTest:Class main new jamaica:simplethread start run new fiji:simplethread start run 21
22 Threads Thread, Runnable und Object Object notify () notifyall () wait ()... Thread Thread (name: String) Thread (r: Runnable) start () run () sleep (millis:long) yield () interrupt () isinterrupted () join () isdaemon () setdaemon ()... <<realizes>> <<interface>> Runnable run() 22
23 Threads Beispiel: Time Server Praktikum aus public class TimeServer { public static void main (String args[]) throws IOException { ServerSocket server = new ServerSocket(1234); while (true) { System.out.println("Waiting for client..."); Socket client = server.accept(); System.out.println("Client from" + client.getinetaddress() + "connected."); TimeHandler handler = new TimeHandler(client); new Thread(handler).start(); 23
24 Threads Beispiel: Time Handler Praktikum aus public class TimeHandler implements Runnable { private Socket client; public TimeHandler(Socket _client) { client = _client; public void run () { try { DataOutputStream out = new DataOutputStream( new BufferedOutputStream(client.getOutputStream())); Date date = new Date(); System.out.println(date.toString()); out.writeutf(date.tostring()); out.flush(); client.close(); catch (IOException e) { System.err.println(e); 24
25 Threads Prioritäten Jeder Thread hat bestimmte Priorität public final static int MAX_PRIORITY = 10; public final static int NORM_PRIORITY = 5; public final static int MIN_PRIORITY = 1; Priorität kann selbst definiert werden: public final void setpriority(int np); public final int getpriority(); Thread mit höchster Priorität läuft bis zum Thread- Ende Scheduling nur für Threads mit gleicher Priorität 25
26 Threads Synchronisation (1/2) Praktikum aus Schlüsselwörter Variablen: volatile Codeblöcke und Methoden: synchronized Blöcke können auch verschachtelt sein Jedes Objekt hat einen Monitor (realisiert Lock) Eintritt in einen synchronized Block des Objekts nur möglich, wenn Zählerstand des Monitors auf 0, bei Eintritt wird Zählerstand erhöht. Nicht-synchronized Methoden können immer ausgeführt werden. synchronized wird nicht vererbt Object Monitor int count holder waiter 0..1 * Thread 26
27 Threads Synchronisation (2/2) Praktikum aus <Object>.wait() ein Thread, der einen Lock auf <Object> hat, wird unterbrochen und kommt in eine Warteschlange Monitor wird freigegeben (Zähler auf 0 gesetzt) <Object>.notify() oder notifyall() Ein Thread H (holder) gibt Zustandsänderung bekannt Ein Thread W (waiter) kommt aus der Warteschlange und blockt, bis H Monitor freigibt durch: Beenden, bzw. Verlassen des synchronized Blocks Geht selbst in Warteposition mit wait() Wenn W Monitor erhält, wird er aktiviert 27
28 Threads Praktikum aus Producer / Consumer Beispiel (1/2) Producer Thread Consumer Thread put() Data Object get() Consumer muss mit dem Lesen warten bis aktuelle Daten vorhanden sind Producer muss mit dem Schreiben warten, bis Consumer die aktuellen Daten abgeholt hat 28
29 Threads Praktikum aus Producer / Consumer Beispiel (2/2) Producer run () Wartet bis Daten von C. gelesen Data 1 val : int 1 newvalue : boolean get (): int put (i:int) class Producer extends Thread { Data dat; Producer(Data dat) { this.dat = dat; public void run() { while (1==1) { dat.put(i);... Wartet bis Daten von P. geliefert Consumer run () class Consumer extends Thread { Data dat; Consumer(Data dat) { this.dat = dat; public void run() { while (1==1) { System.out.println(dat.get());... 29
30 Threads Praktikum aus Implementierungsdetails (1/2) Schreiben auf Data public synchronized void put(int i) { while (newvalue) { try { wait(); catch(interruptedexception e) { val = i; newvalue = true; notifyall(); 30
31 Threads Praktikum aus Implementierungsdetails (2/2) Lesen von Data public synchronized int get() { while (!newvalue) { try { wait(); catch(interruptedexception e) { newvalue = false; notifyall(); return val; 31
32 Threads Gruppen Gruppierung von Threads Gemeinsame Eigenschaften, gemeinsame Manipulation Jeder Thread gehört zu einer Thread Gruppe (Zuordnung bei Instanziierung) public Thread(ThreadGroup group,string name) public final ThreadGroup getthreadgroup() Klasse ThreadGroup public ThreadGroup(String name) public ThreadGroup(ThreadGroup parent,string name) public static int enumerate(thread[] tarray) public void destroy() Thread Gruppen können geschachtelt sein (Baum) public ThreadGroup getparent() 32
33 Ende der 3. Übung 33
Netzwerkprogrammierung & Threads
& Threads Praktikum aus Softwareentwicklung 2 Netzwerp. - 1 & Threads URL, URLConnection, UDP, TCP Threads Parallele Programme, Synchronisation, Netzwerp. - 2 Grundlagen (1/2) Kommunikation zwischen verteilten
MehrVerbindungen zu mehreren Clients. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 23: Netzwerkprogrammierung/ Kommunikation 2
Universität Osnabrück 1 Verbindungen zu mehreren Clients 3 - Objektorientierte Programmierung in Java Vorlesung 23: Netzwerkprogrammierung/ Kommunikation 2 Wie könnte das bereits vorgestellte Programm
Mehr5. Threads, Serverprozesse und Benachrichtigungen
5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische
Mehr4. Thread- und Netzwerk- Programmierung
4. Thread- und Netzwerk- Programmierung 4.1 Ziel dieses Kapitels 4.2 Prozeß versus Thread 4.3 Thread-Programmierung 4.4 TCP/IP Grundlagen 4.5 TCP Programmierung 3. TCP/IP und Threads 3-1 4.1 Ziel dieses
MehrTransmission Control Protocol (TCP)
Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile
MehrReferat: Netzwerkprogrammierung in Java
1.)ISO/OSI und Internet Referenzmodell Referat: Netzwerkprogrammierung in Java ISO/OSI 7 Schichtenmodell (1-Bitübertragung, 2-Sicherung, 3-Netzwerk, 4-Transport, 5-Sitzung, 6- Darstellung, 7-Anwendung)
MehrVS4 Slide 1. Verteilte Systeme. Vorlesung 4 vom 29.04.2004 Dr. Sebastian Iwanowski FH Wedel
VS4 Slide 1 Verteilte Systeme Vorlesung 4 vom 29.04.2004 Dr. Sebastian Iwanowski FH Wedel Inhaltsverzeichnis für die Vorlesung Zur Motivation: 4 Beispiele aus der Praxis Allgemeine Anforderungen an Verteilte
MehrJava und Netzwerkkommunikation
Java und Netzwerkkommunikation Ziel: Kommunikation über Rechnergrenzen hinweg Grundlagen Sockets in Java Java-Netzwerk-Einführung Seite 1 Grundbegriffe Senden und Empfangen von Daten! Frau B Herr A Sender
MehrProgrammiermethodik. Übung 10
Programmiermethodik Übung 10 Sommersemester 2011 Fachgebiet Software Engineering andreas.koch@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA 6 Client/Server Kommunikation in Java Vorstellung HA 7
MehrBeispiel Time Client/Server
Beispiel Time Client/Server /** * * Programmbeschreibung: * --------------------- * Dieses Programm ermittelt über eine TCP/IP-Verbindung die Uhrzeit eines * entfernten Rechners, wobei es sowohl die Rolle
MehrDr. Monika Meiler. Inhalt
Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer
MehrKommunikation und Synchronisation von Prozessen
Kommunikation und Synchronisation von Prozessen 1. Hintergrundinformation 2. Umsetzungsmöglichkeiten Teil 1 Hintergrundinformation Grundansatz Vorspanntext Lehrplan 12.2: Betrachtet werden Situationen
MehrInformatik B. Vorlesung 17 Netzwerkprogrammierung. Dr. Ralf Kunze
Vorlesung 17 Netzwerkprogrammierung 1 Rückblick URL-Objekt Socket Verbindung zu einem Server aufbauen Webserver aus Clientsicht 2 Serverimplementation Server bauen keine eigene Verbindung auf, sondern
MehrAdvanced Network Programming
1 Advanced Network Programming Inhalt Netzwerkkommunikation Protokolle Verbindungsaufbau, -kontrolle, Datentransfer Socketprogrammierung TPC und UDP Client- und Serversockets verbindungsorientierte Server
MehrProgrammieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets.
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 19 2 / 19 Über einen Socket kann eine Anwendung die Implementierung des Netzwerkprotokolls des darunter liegenden Betriebssystems
MehrTCP und UDP Sockets in Java
TCP und UDP Sockets in Java Grundlegende Mechanismen Server reserviert Port: Klient: - Server: bind Server nimmt Verbindungswünsche an Klient: - Server: listen Klient möchte sich verbinden Klient: connect;
MehrParallele Prozesse. Prozeß wartet
Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:
MehrInformatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze
Vorlesung 16 Netzwerkprogrammierung 1 Netzwerkprogrammierung Mit Java-Programmen ist es möglich, Verbindungen über Netze aufzubauen Die Basisfunktionalität zur Netzwerkprogrammierung stellt das Paket java.net
MehrProgrammiermethodik. Übung 13
Programmiermethodik Übung 13 Sommersemester 2010 Fachgebiet Software Engineering andreas.scharf@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA9 Mancala Showroom Client/Server Kommunikation in Java
MehrThread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen
Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von
MehrBeispiel E-Mail senden
Beispiel E-Mail senden E-Mail senden erfolgt nach dem SMTP-Protokoll auf Port 25 Das SMTP-Protokoll hat folgendes Format (RFC 821, RFC 2821) HELO Sendender Host MAIL FROM:
Mehr2 Verbindungslose Kommunikation mit UDP
2 Verbindungslose Kommunikation mit UDP Das User Datagram Protocol (UDP) stellt grundlegende Funktionen zur Verfügung, um mit geringem Aufwand Daten zwischen kommunizierenden Prozessen austauschen zu können.
MehrSocket-Programmierung unter Java
Datenströme -Programmierung unter Java 1 - Grundlagen: Datenströme JAVA unterscheidet Streams und Reader/Writer Zur Dateneingabe: InputStream oder Reader Zur Datenausgabe: OutputStream oder Writer Verwende
MehrPROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker
Netzwerkprogrammierung PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Steffen Helke, Marcus Mews Technische Universität Berlin Fachgebiet Softwaretechnik 17. Juni 2013 Übersicht Grundlagen
Mehr1. Netzwerkprogrammierung für mobile Geräte
1. Netzwerkprogrammierung für mobile Geräte Lernziele 1. Netzwerkprogrammierung für mobile Geräte Themen/Lernziele: Konzepte der verbindungslosen Kommunikation beherrschen Client/Server-Anwendungen auf
MehrProgrammieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets.
Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Timer Sockets SMTP-Client 2 / 26 Timer Mit einem Timer können bestimmte Aktionen periodisch wiederkehrend durchgeführt
MehrJan Distel. Im Rahmen der Veranstaltung Fortgeschrittene Programmierung in Java
Jan Distel Im Rahmen der Veranstaltung Fortgeschrittene Programmierung in Java Jan Distel - Diplomarbeitskolloquium 02.07.2010 1. Allgemeines 2. Datagram-Sockets 3. Sockets 4. Server-Sockets 5. Socket-Channels
Mehr2.2 Prozesse in Java
2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.
MehrNetzwerkprogrammierung
Netzwerkprogrammierung 1 Netzwerkverbindungen Das Entwurfsziel von Java war: Einfache Verbindung zwischen Rechnern und SetBox-Systemen. Das Standardpaket java.net hilft bei allen Netzwerkverbindungen.
MehrNetzwerke. Netzwerk-Programmierung. Sven Hartmeier.
Netzwerk-Programmierung Netzwerke Sven Hartmeier shartmei@techfak.uni-bielefeld.de Übersicht Netzwerk-Protokolle Protokollfamilie TCP/IP Transmission Control Protocol (TCP) erste Schritte mit sockets Netzwerk-Programmierung
MehrNetworking. Motivation Grundlagen von Sockets Klasse Socket Klasse ServerSocket Exceptions Klasse URL
Networking Motivation Grundlagen von Sockets Klasse Socket Klasse ServerSocket Exceptions Klasse URL Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Netzwerkprogrammierung in Java Programme schreiben,
MehrAusgewählte Implementierungsprobleme
Ausgewählte Implementierungsprobleme Rebecca Tiarks 18. Dezember 2008 1 / 30 Inhaltsverzeichnis 1 2 3 Persistenzproblem & CSV Binärformat 2 / 30 Themenübersicht 1 18. Dez: + 2 8. Jan. Swing 3 15. Jan TCP,
MehrVerteilte Systeme CS5001
Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,
MehrKlausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)
Ein Prozess kann unmittelbar vom Zustand 1. Running in den Zustand Ready 2. Running in den Zustand Blocked 3. Ready in den Zustand Running Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Der Adressraum
MehrNetworking. Motivation und Grundlagen Klasse Socket SMTP-Protokoll Exceptions. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H.
Networking Motivation und Grundlagen Klasse Socket SMTP-Protokoll Exceptions Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Networking Motivation und Grundlagen Sockets Klasse URL SMTP-Protokoll
MehrDr. Monika Meiler. Inhalt
Inhalt 16 Rechnerkommunikation verteilte Systeme... 16-2 16.1 Netzwerktechnologie... 16-2 16.1.1 Adressen... 16-2 16.1.2 s und s... 16-3 16.2 Server/Client-Programmierung... 16-4 16.2.1 Aufbau einer Server/Client-Verbindung...
MehrPraktikum aus Softwareentwicklung 2, Stunde 5
Praktikum aus Softwareentwicklung 2, Stunde 5 Lehrziele/Inhalt 1. Threads Threads Threads sind parallele, oder auf Rechnern mit nur einer CPU quasi-parallele, Programmabläufe in Java. Sie können beispielsweise
Mehr1. Netzwerkprogrammierung für mobile Geräte
1. Netzwerkprogrammierung für mobile Geräte Lernziele 1. Netzwerkprogrammierung für mobile Geräte Themen/Lernziele: Konzepte der verbindungslosen Kommunikation beherrschen Client/Server-Anwendungen auf
MehrDr. Monika Meiler. Inhalt
Inhalt 16 Rechnerkommunikation verteilte Systeme... 16-2 16.1 Netzwerktechnologie... 16-2 16.1.1 Adressen... 16-2 16.1.2 s und s... 16-3 16.2 Server/Client-Programmierung... 16-5 16.2.1 Aufbau einer Server/Client-Verbindung...
Mehr1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells.
Übung 7 1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. 2.) Charakterisieren Sie kurz das User Datagram Protokoll (UDP) aus der Internetprotokollfamilie
Mehr31 Network Programming
31 Network Programming 31.2 Sockets Network / Inter-Network UDP connectionless, unreliable TCP connection oriented, reliable OODS 1997-2000 Michael Golm Network Programming 31.218 OODS 1997-2000 Michael
MehrTechniken der Projektentwicklung
Themen Threading Netzwerk Techniken der Projektentwicklung Threading & Netzwerkprogrammierung Ingo Lütkebohle Termin 13 Ingo Lütkebohle Techniken der Projektentwicklung 1 Themen heute Themen Threading
Mehr12. Threads in Java. Sequentielle Abarbeitung (2) Beispiel: Thread (1) Sequentielle Abarbeitung (1)
12. Threads in Java Einführendes Beispiel 12. Threads in Java 12. Threads in Java Einführendes Beispiel Sequentielle Abarbeitung (2) Ein Thread ist eine Folge von Anweisungen, die unabhängig von anderen
MehrJava-Programmierung. Remote Method Invocation - RMI
Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig
MehrEinführung in die Programmierung Blockkurs Java
Michael Bader 8. 12. April 2002 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()
MehrE.1 Object Request Brokers
E Überblick über die 4. Übung E Überblick über die 4. Übung 1 Komponenten eines ORBs Lösungsskizze Aufgabe 2 RPC und ORB Aufrufsemantiken Hinweise Aufgabe 3 Kommunikationsschicht: tauscht Daten zwischen
MehrFOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1)
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
MehrThread-Konzept in objektorientierten Programmiersprachen. Threads. Threads in Java
Thread-Konzept in objektorientierten Programmiersprachen 1 Threads ein Thread ist ein eigenständiges Programmfragment, das parallel zu anderen Teilen eines Programmes ablaufen kann alle Threads eines Programmes
MehrNETZWERKPROGRAMMIERUNG IN JAVA. Sun Microsystems hat eine generelle Aufteilung dieser Aufgabe in die zwei Teile vorgenommen:
In diesem Kapitel: Was ist ein Protokoll Handler? Schreiben eines URLStreamHandler Schreiben eines Protokoll Handler URLStreamHandler Factories Protokoll Handler Beispiele und Techniken 11. Protokoll Handler
MehrNebenläufige und verteilte Programme CS2301
Nebenläufige und verteilte Programme CS2301 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Netze mit aktiven und reaktiven Knoten Produzent Konsument: aktiv / passiv / reaktiv
Mehri n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging
Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des
MehrProzesse. Prozesse sind Programme. Prozesse können aus Unterprozessen bestehen. Prozesshierarchie Unterprozesse Threads
Threads Prozesse, Parallelität, Nebenläufigkeit, Threads, Erzeugung, Ausführung, Kommunikation, Interferenz, Kritischer Bereich, Deadlock, Synchronisation. Prozesse Prozesse sind Programme mehrere Prozesse
MehrBeispiel für überladene Methode
Beispiel für überladene Methode class Gras extends Futter {... abstract class Tier { public abstract void friss (Futter x); class Rind extends Tier { public void friss (Gras x) {... public void friss (Futter
Mehr2. Architektur von Kommunikationssystemen
2. Architektur von Kommunikationssystemen 2.1 2.2 TCP/IP-basierte Protokollarchitektur Digitale Kommunikationssysteme Prof. Dr. Habermann / Dr. Hischke 12-01 / 1 Das OSI-Referenzmodell wird ausführlich
MehrNebenläufige Programmierung in Java: Threads
Nebenläufige Programmierung in Java: Threads Wahlpflicht: Fortgeschrittene Programmierung in Java Jan Henke HAW Hamburg 10. Juni 2011 J. Henke (HAW) Threads 10. Juni 2011 1 / 18 Gliederung 1 Grundlagen
MehrNebenläufigkeit mit Java
Nebenläufigkeit mit Java Einheit 03: Synchronisation Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Synchronisation von Threads Locks Java Monitor-Konzept Lock Freigabe Zusammenspiel
MehrTCP/IP-Protokollfamilie
TCP/IP-Protokollfamilie Internet-Protokolle Mit den Internet-Protokollen kann man via LAN- oder WAN kommunizieren. Die bekanntesten Internet-Protokolle sind das Transmission Control Protokoll (TCP) und
MehrÜbung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012
Übung zu Grundlagen der Betriebssysteme 10. Übung 18.12.2012 Aufgabe 1 a) Was versteht man unter einem kritischen Abschnitt oder kritischen Gebiet (critical area)? b) Welche Aufgabe hat ein Semaphor? c)
MehrKommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen
Kommunikationsnetze Gliederung 1. Socket-Programmierung unter C 2. Socket-Programmierung unter Java Gliederung Berkeley Sockets (Erste freie TCP/IP-Implementierung in Berkeley UNIX): SOCKET: Erzeugen eines
MehrNetworking. JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H.
Networking Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Networking Grundlagen Klasse Socket Klasse ServerSocket Klasse URL Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 2 Netzwerkprogrammierung
MehrKlausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007
Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007 Name: Vorname: Matrikelnummer: Studiengang: E-Mail: Schreiben Sie zunächst sofort Ihren Namen und Matrikelnummer auf
MehrTipps und Hinweise zum Bezug der Beitragssatzdatei V5.0
Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0 Die Beitragssatzdatei in der Version 5.0 wird nur über https Download auf einer frei zugänglichen Webseite auf den folgenden Seiten bereitgestellt.
MehrBreitband ISDN Lokale Netze Internet WS 2009/10. Martin Werner, November 09 1
Telekommunikationsnetze 2 Breitband ISDN Lokale Netze Internet Martin Werner WS 2009/10 Martin Werner, November 09 1 Breitband-ISDN Ziele Flexibler Netzzugang Dynamische Bitratenzuteilung Effiziente Vermittlung
MehrSynchronisation in Java. Invisible Web
Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections
MehrJava I/O, Serialisierung und Netzwerkprogrammierung
Java I/O, Serialisierung und Netzwerkprogrammierung Philipp Güttler 16. Dezember 2009 Universität Ulm, Abt. SGI Progwerkstatt 2 19 Gliederung Java I/O, Serialisierung und Netzwerkprogrammierung 16. Dezember
MehrEinführung. Internet vs. WWW
Einführung Bernhard Plattner 1-1 Internet vs. WWW "the Internet is the entirety of all computers which are interconnected (using various physical networking technologies) and employ the Internet protocol
MehrComputeranwendung in der Chemie Informatik für Chemiker(innen) 5. Internet
Computeranwendung in der Chemie Informatik für Chemiker(innen) 5. Internet Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL5 Folie 1 Dr. Jens Döbler Internet Grundlagen Zusammenschluß
MehrJava RMI Remote Method Invocation
Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert
MehrKapitel 4: Design von Client/Server-Software. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes
Kapitel 4: Design von Client/Server-Software Definition: Client und Server Client Ein Client ist ein Dienstnutzer, der von einem Server aktiv einen Dienst anfordert und anschließend darauf wartet, dass
MehrTCP/IP Protokollstapel
TCP/IP Protokollstapel IP: Hauptaufgabe ist das Routing (Weglenkung) und Adressierung IP ist ein ungesichertes, verbindungsloses Protokoll Arbeitet auf Schicht 3 UDP: User Datagram Protocol UDP ist ein
MehrClient/Server-Systeme
Frühjahrsemester 2011 CS104 Programmieren II / CS108 Programmier-Projekt Java-Projekt Kapitel 3: /Server-Architekturen H. Schuldt /Server-Systeme Ein zweischichtiges /Server-System ist die einfachste Variante
MehrRechnernetze. 6. Übung
Hochschule für Technik und Wirtschaft Studiengang Kommunikationsinformatik Prof. Dr. Ing. Damian Weber Rechnernetze 6. Übung Aufgabe 1 (TCP Client) Der ECHO Service eines Hosts wird für die Protokolle
MehrBetriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)
Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen) 1 Prozesse Bei Betriebssystemen stoßen wir des öfteren auf den Begriff Prozess als wahrscheinlich am häufigsten verwendeter und am unklarsten
MehrPython Programmierung. Dipl.-Ing.(FH) Volker Schepper
Python Programmierung String Operationen i = 25 text1 = "Ich bin " text2 = " Jahre alt" print (text1 + str(i) + text2) print ("ich bin", i, "Jahre alt") print ("ich bin %s Jahre alt" % i) >>> Ich bin 25
MehrTCP/UDP. Transport Layer
TCP/UDP Transport Layer Lernziele 1. Wozu dient die Transportschicht? 2. Was passiert in der Transportschicht? 3. Was sind die wichtigsten Protkolle der Transportschicht? 4. Wofür wird TCP eingesetzt?
MehrParallele und funktionale Programmierung Wintersemester 2015/ Übung Abgabe bis , 10:00 Uhr
3. Übung Abgabe bis 10.11.2015, 10:00 Uhr Aufgabe 3.1: Java-Synchronisation a) An welchen Stellen im Code kann das Schlüsselwort synchronized verwendet werden? b) Wie nennt sich die Synchronisations-Art,
MehrPraktikum Datenbanken und verteilte Systeme SS Java Server Pages und Servlets -
Praktikum Datenbanken und verteilte Systeme SS 2008 - Java Server Pages und Servlets - Verteilte Systeme und Informationssysteme (VSIS) Department Informatik Universität Hamburg Infrastruktur vsispoolx
MehrVerteilte Systeme. 2. Die Client-Server-Beziehung und daraus resultierende Techniken. 2.2 Nebenläufigkeitstechniken in Java
VS22 Slide 1 Verteilte Systeme 2. Die Client-Server-Beziehung und daraus resultierende Techniken 2.2 Nebenläufigkeitstechniken in Java Sebastian Iwanowski FH Wedel VS22 Slide 2 Was ist Nebenläufigkeit?
MehrTIA Portal V13 Kommunikation mit S7-1500
TIA Portal V13 Kommunikation mit S7-1500 Seite 1 Anmerkungen zum Webmeeting Fragen bitte hier eingeben Bitte Lautsprecher an / Mikro & Video aus Sie brauchen nichts mitzuschreiben à Download hier. mit
MehrTCP/IP Socket Programmierung in C# (Ci sharp) Multicast und Broadcast
TCP/IP Socket Programmierung in C# (Ci sharp) Multicast und Broadcast AUFGABE: Schreiben Sie das Beispiel in JAVA um Multicast und Broadcast Bei allen TCP Verbindungen handelt es sich um bidirektionale,
MehrTCP-Sockets in Java und C. Verteilte Systeme Hochschule Regensburg Vorlesung 4, 25.04.2012 Universitätsstraße 31, 93053 Regensburg
TCP-Sockets in Java und C Hochschule Regensburg Vorlesung 4, 25.04.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Ziel: Threads sollen unabhängig von ihrer Position kommunizieren
MehrDistinguished Lectures Series im SS04. And now YOU ARE HERE. Verwendung der Oberklasse Thread
Distinguished Lectures Series im SS04 And now... MDA-gestütztes Architekturmanagement im Volkswagen-Konzern: Ein Erfahrungsbericht Dr. Frank Derichsweiler, Architekturmanagement, AUDI AG Repository für
MehrThemen. Web Service - Clients. Kommunikation zw. Web Services
Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur
MehrVS3 Slide 1. Verteilte Systeme. Vorlesung 3 vom 22.04.2004 Dr. Sebastian Iwanowski FH Wedel
VS3 Slide 1 Verteilte Systeme Vorlesung 3 vom 22.04.2004 Dr. Sebastian Iwanowski FH Wedel Inhaltsverzeichnis für die Vorlesung Zur Motivation: 4 Beispiele aus der Praxis Allgemeine Anforderungen an Verteilte
MehrMobile und Verteilte Datenbanken
Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung
Mehr4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs
4. s Ein kleiner Einstieg Erinnerung: HTTP und HTML Idee von Web n und Containern Erstellung einfacher s (zunächst software technisch übelst unstrukturiert) Literatur: B. Basham, K. Sierra, B. Bates, Head
MehrDezentrale Kontrolle: Aktive Objekte. Aktive Objekte Die Klasse AnimatorThread Aktivierung Objekte beobachten Die Java-Klasse Thread
Dezentrale Kontrolle: Aktive Objekte Aktive Objekte Die Klasse AnimatorThread Aktivierung Objekte beobachten Die Java-Klasse Thread Passive Objekte Bieten Dienste auf Abruf an: - eine Zahl von der Konsole
MehrClient-Server mit Socket und API von Berkeley
Client-Server mit Socket und API von Berkeley L A TEX Projektbereich Deutsche Sprache Klasse 3F Schuljahr 2015/2016 Copyleft 3F Inhaltsverzeichnis 1 NETZWERKPROTOKOLLE 3 1.1 TCP/IP..................................................
MehrVersuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.
Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung
Mehr39 Object Request Brokers. 40 Components of an ORB. 40.1 Stubs and Skeletons. 40.1.1 Stub
39 Object Request Brokers 40.1 Stubs and s invoke methods at remote objects (objects that run in another JVM) Stub: Proxy for remote object example ORBs: RMI, JavaIDL : Invokes methods at remote object
MehrSystemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007
Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung
Mehr4. Servlets Ein kleiner Einstieg
4. Servlets Ein kleiner Einstieg Erinnerung: HTTP und HTML Idee von Web Servern und Containern Erstellung einfacher Servlets (zunächst software technisch übelst unstrukturiert) Literatur: B. Basham, K.
MehrMobile und Verteilte Datenbanken
Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste
MehrProjektaufgabe Peer-To-Peer Chat Programm
Projektaufgabe Peer-To-Peer Chat Programm Betreuer: Dipl. Ing. Thomas Kehrt kehrt@cs.tu-dortmund.de September 10, 2014 1 Einführung Im Rahmen des Vorkurses wird für fortgeschrittene Studenten eine Projektarbeit
MehrDas Monitorkonzept Brinch-Hansen
Das Monitorkonzept (nach Hoare/Brinch Brinch-Hansen 1974) Nur ein Prozess bzw. Thread kann zu einem bestimmten Zeitpunkt im Monitor aktiv sein => gegenseitiger Ausschluss, mutual exclusion. Geschützte
MehrNebenläufige Programmierung I
Nebenläufige Programmierung I Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, Dirk Pattinson 07/03 Ziele 2 Grundlegende Begriffe der nebenläufigen Programmierung verstehen lernen
MehrDas ISO / OSI -7 Schichten Modell
Begriffe ISO = Das ISO / OSI -7 Schichten Modell International Standardisation Organisation Dachorganisation der Normungsverbände OSI Model = Open Systems Interconnection Model Modell für die Architektur
MehrInternet - Grundzüge der Funktionsweise. Kira Duwe
Internet - Grundzüge der Funktionsweise Kira Duwe Gliederung Historische Entwicklung Funktionsweise: -Anwendungen -Rechnernetze -Netzwerkschichten -Datenkapselung -RFC -Verschiedene Protokolle (Ethernet,
Mehr