CS5001 Verteilte Systeme

Größe: px
Ab Seite anzeigen:

Download "CS5001 Verteilte Systeme"

Transkript

1 Prof. Dr. Th. Letschert CS5001 Master of Science (Informatik) - Netzwerkprogrammierung - Th Letschert FH Gießen-Friedberg

2 Plattformen der Verteiltheit Netzwerk-Programmierung : als interagierende Prozesse Themen: ein Blick zurück Socket-API Server-Struktur einfache Abstraktionen oberhalb der Socket-Ebene in Java 2

3 Plattformen der Verteiltheit Plattformen der Verteiltheit : ein Blick zurück 3

4 Plattformen der Verteiltheit Ende 1980er Plattformen der Verteiltheit ~ Ende 1980-er LAN- / X25-Zeitalter : LANs und Fern-Netze: getrennte Welten wichtige Protokolle (Protokoll-Stack kein Standard-Bestandteil eines BS) Netbios ~1984 eingeführt als API für LAN-Controller, IBMs PC_LAN Netze ungerouteter Protokoll-Stack (keine Schicht-3 / keine Router) SPX/IPX: Protokoll in Novell-Netzen, bis Mitte der 1990er Markt-beherrschend basierend auf Xerox Internetworking Protokollen geroutetes Protokoll ähnlich zu TCP/IP X25 Protokoll (Schicht 2 / 3) in Telekom-Netzen dominierend in kommerziellen eingesetzten Fern-Netzen TCP/IP kommerziell (fast) bedeutungslos Einsatz (fast) nur in Fern-Netzen von Universitäten und Forschungsinstituten 4

5 Plattformen der Verteiltheit 1980er Plattformen der Verteiltheit : 1980-er Anwendungsplattform LANs Netzwerk-Betriebssysteme für Standard-Dienste Betriebssysteme (d.h. DOS) wird um Zugriff auf gemeinsame Ressourcen erweitert DOS-Aufrufe (Interrupts) werden abgefangen und umgeleitet typische Ressource: File- / Drucker-Server (unter speziellem Multitasking-BS) Entwicklung angepasster verteilter Anwendungen auf der Ebene von Interrupt-Handlern C- / Assembler-Routinen Anwendungsplattform Fern-Netze Kommerzielle Systeme: X25, Proprietäre Protokolle mit entspr. speziellen APIs Forschung: OSI-Protokolle, TCP/IP mit speziellen APIs 5

6 Plattformen der Verteiltheit 1980er Anwendungsplattform Beispiel: Datenpaket unter IPX empfangen Interrupt-Handler schreiben (in Assembler) Empfangs-Routine in C schreiben System-Kontext: Kein User-Stack Grobe Analyse des ECB Ablage der Daten im Userspace Anwendungs-Programm System-Kontext: Kein User-Stack Register-Paar ES:SI enthält Zeiger auf ECB ECB, Event-Control-Block: Datenstruktur mit Info über das Ereignis und mit Zeigern auf Fragmente des empfangenen Datenpakets Aufruf C-Routine zur Annahme der Daten Interrupt-Handler installieren Test ob Daten angekommen Daten annehmen, verarbeiten / Fehler behandeln Notwendige Kenntnisse der Anwendungsentwickler Assembler / C / komplexe APIs (Kontroll-Blöcke) BS: Interrupts, Scheduling-/Tasking-Probleme, Funktion bestimmter Register, Stack, Stack-Frames, User-Space vs. System-Space,... Protokoll: Paketformat,... 6

7 Plattformen der Verteiltheit Ende 1980er Plattformen der Verteiltheit ~ Ende 1980-er Protokolle BS mit integriertem Protokoll-Stack installierbare Protokolle Unix-Varianten: TCP/IP Mainframes, Mini-Computer (z.b. DEC): proprietäre Protokolle (Lan-) Netz-Server (Netware): IPX/SPX (Lan-) Netz-Server (IBM / MS, bis Bruch mit IBM->NT), OS/2): NETBIOS PC: Netbios (IBM/MS), SPX/IPX (Netware), TCP/IP (Sun) Mainframes, Mini-Computer: X25, TCP/IP, OSI-Protokolle Typische Anwendungsplattform Fernnetze: wie Ende 1980er, X25 LANs: Netbios, SPX/IPX mit speziellen APIs (abhängig von Protokoll- und Protokoll-Implementierung und BS) Notwendige Kenntnisse der Anwendungsentwickler weit verbreit: LANs (vor allem unter Netware), X25 in Fernetzen LANs unter NETWARE, NETBIOS: BS (Protokoll-Installation, -Konfiguration), API WANs unter X25, TCP/IP, propr. Protokollen: BS-spezifische APIs 7

8 Plattformen der Verteiltheit Frühe 1990er Plattformen der Verteiltheit ~ Frühe 1990-er Protokolle BS mit integriertem Protokoll-Stack installierbare Protokolle Unix-Varianten, Mini-Computer: TCP/IP Mainframes, Mini-Computer (z.b. DEC): proprietäre Protokolle (Lan-) Netz-Server (Netware): IPX/SPX (Lan-) Netz-Server (MS-NT): NETBIOS PC: Netbios (IBM/MS), SPX/IPX (Netware), TCP/IP (Sun) Mainframes, Mini-Computer: X25, TCP/IP Typische Anwendungsplattform Beginn der Vereinheitlichung der LAN- / WAN-Netze unter TCP/IP Socket-API für TCP/IP und SPX/IPX NETBIOS-API für Netbios-basierte LANs Interaktion auf API für Nutzung von Schicht-4-Diensten, z.b. via Socket-API 8

9 Plattformen der Verteiltheit Frühe 1990er Interaktion auf Schicht-4 Rechner-Identifikation (IP-Adresse, DNS-Name,..) Anwendungs-Identifikation (Port, well-known-port,..) Datenaustausch (Pakete senden/empfangen, Verbindungen aufbauen nutzen,..) Verteilte Anwendung: Mangement von Inter-Prozess-Kommunikation Entwicklung einer verteilte Anwendung ~ Socket-Programmierung Notwendige Kenntnisse der Anwendungsentwickler LAN / WAN: Schicht-4- API (Netbios / Socket-) API, Protokolle, Konfiguration der Protokoll-SW WAN: BS-spezifische Schicht-4-APIs Tiefere BS-Kenntnisse nicht mehr notwendig 9

10 Plattformen der Verteiltheit Mitte 1990er Plattformen der Verteiltheit ~ Mitte 1990-er Protokolle alle BS mit integriertem Protokoll-Stack TCP/IP weit verbreitet Trennung der Technologie von LAN und WAN beendet Anwendungsplattformen typisch: Nutzung einer Schicht-4-API (Sockets) Forschungsthema, Anwendung durch fortgeschrittene Entwickler Abstraktion von Schicht-4 Diensten Unterstützung durch spezielle Dienste z.b. RPC Middleware, SOA,... Bereitstellung von Standardlösungen in Bibliotheken z.b. Namensdienste Standard-Code-Bausteine (generiert / bereit gestellt) z.b. OSI: Presentation- / Session-Layer z.b. XDR Integration in Programmiersprachen 10

11 Plattformen der Verteiltheit Mitte 1990er Protokoll-Stack bis Schicht-4 in BS integriert Anwendungs-Protokolle als Anwendungsprogramme Schicht-4- (Socket-) API in Programmiersprachen integriert Höherwertige Unterstützung der Verteilung Wetzwelt / OSI: als Schicht-4 / -5 konzipiert Informatik Forschung: Nicht erfolgreich (Warum?) Fortsetzung der Integration in das BS (transparente Verteiltheit) Praxis: Beginn der Middleware Bibliotheken Generierungs-Werkzeuge Standard-Dienste zur Unterstützung der Entwickler / Entlastung von StandardAufgaben 11

12 Plattformen der Verteiltheit Plattformen der Verteiltheit : als interagierende Prozesse 12

13 Plattformen der Verteiltheit Verteiltes Systeme auf Schicht-4 Diensten System = interagierende Prozesse in der Regel Client-Server-Struktur Interaktion: Kommunikation über Socket-API Themen Nutzung der Socket-API Struktur der Prozesse (der Server) Nebenläufigkeit der System-Komponenten 13

14 Protokolle: OSI / Internet Schicht 7 Anwendungs-Protokolle Schicht 6 Session/Presentation -> Middleware-Protokolle Schicht 5 Schicht 4 Internet-Protokolle Schicht 3 Schicht 2 Schicht 1 ISO/OSI Protokolle Protokoll - (De-) Multiplexing Rahmen- / Paket-Struktur 14

15 Schicht-4 Service Access Point (SAP) : Sockets TFTP SMTP FTP verbindungslos verbindungsorientiert (De-)Multiplexing Anwendungen System... NFS Port TCP Socket-API... UDP P-ID IP P-ID Ethernet Token-Ring Seriell 15

16 Schicht-4 API: Socketkommunikation Sockets Schnittstelle zur Schicht-4-Implementierung (BS) ursprünglich BSD-Unix, heute 'alle' Systeme (z.b. WinSock) Schicht-4 unabhängige Schnittstelle heute meist für TCP/IP Protokollstack Verbindungsendpunkt (SAP Service-Accesspoint) UPD Server stellt Daten-Socket bereit wartet auf Daten-Pakete von Client und antwortet TCP Server stellt Verbindungs-Socket bereit wartet auf Verbindungswünsche von Clients Verbindung -> Daten-Socket -> bi-dirketionaler Datenstrom zum Client 16

17 Socket-Abstraktionen: Zugriff auf Schicht-4-API in Sprachen integriert Java (Package java.net) ServerSocket lokale Adr: IP+Port Server: accept Socket Client: ferne Adr: IP+Port Verbindungsaufbau, Server: autom: ferne Adr Komminikation als Klassenbibliotheken z.b. C++: ACE (Adapitve Communication Environment) etc.: diverse andere Kommunikation C# (Namespace system.net) low-level: Socket IPEndPoint, IPAddress,... high-level: TCP-Client TCP-Listener andere: Perl, TCL, Python,... 17

18 Prozesse / Threads: Nebenläufigkeit in Komponenten Prozesse/ Threads bestehen aus Komponenten, die durch Nachrichten kommunizieren Komponenten sind in der Regel nebenläufige Systeme, die aus Threads und/oder Prozessen bestehen Nebenläufige Komponente Verteiltes System 18

19 als interagierende Prozesse als interagierende Prozesse: Struktur der Komponenten / Server 19

20 Struktur der Komponenten / Server : Nebenläufigkeit in Komponenten Nebenläufigkeit vereinfacht SW-Organisation unabhängige Ereignisverarbeitung, z.b. blockiernde I/O-Operationen möglich Verbesserung des Durchsatzes Nutzung mehrerer CPUs, Parallelität in sonstiger HW Nebenläufigkeit in Client/Server-Systemen besonders wichtig für Server hohe Anforderungen effiziente HW-Nutzung (hohe Last) hohe Anforderung an Verfügbarkeit 20

21 Struktur der Komponenten / Server : Server-Architektur Architektur des Servers Ziele keine ignorierten Service-Anforderungen ( Denial-of-Service ) hoher Durchsatz Einflussfaktoren Randbedingungen Plattformeigenschaften (HW / BS) Struktur der Anwendung Nutzung der Anwendung Protokoll-Struktur Verbindungslos / Verbindungsorientiert Request-Response / Sessions-Konzept 21

22 Serverarchitektur : Einflussfaktor Protokollstruktur Protokollstruktur synchrones Request-Response Protokoll Neue Anfragen erst nach Antwort auf die vorhergehende Einsatz Neue Anfragen hängen von der Antwort ab Kurze Bearbeitungszeit + geringe Netz-Latenz (LAN) Einfachheit vor Performanz synchrones Protokoll asynchrones Request-Response Protokoll Anfragen und Antwort entkoppelt Einsatz Anfragen und Antworten sind nicht eng gekoppelt (z.b. HTTP-Gets) Latenz im Netz groß (WAN) Performanz vor Einfachheit asynchrones Protokoll 22

23 Serverarchitektur : Einflussfaktor Protokoll Dienstdauer Protokoll mit kurz andauerndem Dienst (short duration service) Dienst umfasst eine kurze (feste) Zeitdauer Oft eine Frage / eine Antwort Oft verbindungslos Beispiele: HTTP ARP Time Protokoll mit lang andauerndem Dienst (long duration service) Dienst umfasst eine (unbestimmt) lange Zeitdauer Oft Austausch mehrerer Nachrichten Oft verbindungsorientiert Beispiele Telnet FTP etc. 23

24 Serverarchitektur : Einflussfaktor Dienststruktur interner Dienst Dienst wird im Adressraum des Servers ausgeführt geringere Latenzzeit Server in größerer Gefahr (Absturz / Hänger) Bindung: Dienst statisch externer Dienst dynamisch zum Server gebunden Dienst wird in eigenem Adressraum ausgeführt (Prozess starten) höhere Latenzzeit Server weniger in Gefahr Beispiel inetd kann konfiguriert werden Dienste intern oder extern auszuführen kurze Dienste intern / Lange Dienste extern 24

25 Serverarchitektur : Einflussfaktor Dienststruktur zustandsloser Dienst (stateless service) Dienst wird ohne Zustandsinformation im Server ausgeführt, jede Anfrage enthält alle Informationen, die notwendig sind, um sie auszuführen Beispiel: einfache Dienste, NFS HTTP (ohne Cookies, etc.) zustandsbehafteter Dienst (stateful service) Anfragen werden in Zustand ausgeführt, Zustand Verbindungs-/Sitzungs -Zustand: Protokoll wickelt FSM (endlichen Automat) ab dauerhafter Zustand: Zustand dauerhaft (über die Dauer einer Sitzung hinaus) Zustand Absturz-resistent Beispiel: Telnet / FTP: Sitzungszustand Naming-Services: Absturz-resistent 25

26 Serverarchitektur : Einflussfaktor Dienststruktur einfacher Dienst (single service server) Server ist auf einen Dienst spezialisiert Jeder Dienst benötigt seinen eigenen Server Erhöhter Ressourcenbedarf / adminstrativer Aufwand Robust multipler Dienst (multi-service server) Server bedient mehrere Dienste Server bedient mit internem oder externem Dienst Geringerer Rssourcenverbrauch / adminstrativer Aufwand weniger robust 26

27 Serverarchitektur: Einflussfaktor Bereitschaft Temporärer Server (one shot server) Server wird auf ein Anfrage/Sitzung hin erzeugt, bedient nur diese geringer Ressourcenbedarf erhöhte Latenz stehender Server (standing server) Server wird bei Systemstart erzeugt existiert permanent im Adressraum Beispiel Apache Web-Server 27

28 Serverarchitektur: Einflussfaktor Verbindungs-/Sitzungskonzept Verbindungen und Sitzungen Verbindung (Connection) Schicht-4 Konzept Fehler-/Flusskontrolle erfordert Verbindung (Verbindung = Information über den Zustand der Kommunikation) Sitzung (Session) Anwendungskonzept logische Verbindung der Kommpunikationspartner für die Dauer einer Interaktion OSI-Modell: Session-Layer (so praktisch nie realisiert) 28

29 Verbindung / Session : Beispiel HTTP Beispiel HTTP basiert auf TCP-Verbindung Request-Response Kommunikation Session nach HTTPProtokoll= Frage / Antwort reale Session der Anwendung oft länger Anwendung: Session = Einkaufstour HTTP: Session = Request / Response Schicht-4 : TCP Verbindung Schicht-3 : IP / verbindungslos Schicht-2 : Ethernet / verbindungslos Schicht-1 : physikalische Verbindung 29

30 Verbindung / Session : Multiplexing Verbindungen und Sitzungen ohne Multiplexing der Sitzungen Jede Beziehung Client (Thread) Service-Provider (Thread) (Session / Sitzung) hat ihre eigene Verbindung mit Multiplexing der Sitzungen Eine gemeinsame Verbindung für jede Beziehung Client Service-Provider Sitzungen Client-Threads Sitzungen Server-Threads Client-Threads TCP-Verbindung Server-Threads TCP-Verbindungen 30

31 Serverarchitektur: iterativer Server Iterativer Server behandelt eine Anfrage komplett ab bevor die nächste betrachtet wird WS-Strategie Warteschlange für eintreffende Anfragen Ignorieren geeignet für Dienste mit kurzen Bearbeitungszeiten unregelmäßig und eher selten angefragte Dienste Struktur for ever: retrieve request perform service send response 31

32 Serverarchitektur: iterativer Server Vorteil einfach kein Thread- / Prozess-Overhead Nachteil eventuell schlechte Nutzung der Plattform-Fähigkeiten mehrere CPU's, asynchroner DMA-Transfer,... schlechte Antwortzeiten / Verlust von Anfragen eventuell Sende-Wiederholung bei Time-out -> Problemverschärfung 32

33 Serverarchitektur: Nebenläufiger Server Nebenläufiger Server bearbeitet mehrere Anfragen gleichzeitig Threads (oder Prozesse) Service-Art single service : ein Dienst multiple service : verschiedene Dienste Einsatz I/O-intensive Dienste lang andauernde Dienste Struktur Thread (Prozess) pro Verbindung / Session Thread (Prozess) pro Anfrage 33

34 Serverarchitektur: Nebenläufiger Server Struktur: Thread pro Session / Verbindung do for ever { handle = accept new connection; thread = get SessionThread(handle); thread.start(); } Connection-Handler while (! finished ) { msg = handle.getmsg(); answer = preform service handle.send(answer) } Protocol / Session=-Handler neuer Client Connection-Handler Client C Client B Client A Protocol/Session-Handler Server Clients 34

35 Serverarchitektur: Nebenläufiger Server Struktur: Thread pro Aufgabe: Leader / Follower request = handle.getmsg(); answer = preform service handle.send(answer) if (! finished ) { followerthread = Synchronizer.getThread (); followerthread.activate(handle); } do for ever { handle = accept new connection; thread = get LeaderThread(handle); thread.activate(handle); } Worker-Tread Connection-Handler Worker Clients Leader Followers Conn.Handler Synchronzier Leader nimmt die Anfrage an, gibt sie an den Follower weiter der damit zum Leader wird Leader / Followers Muster, synchron 35

36 Serverarchitektur: Reaktiver Server Reaktive Server (Reactive Server) Verarbeiten mehrere Anfragen / Verbindungen virtuell gleichzeitig ein Thread / Prozess leichtgewichtiges (Anwendungs-) Multitasking Struktur for ever requestevents = select() for each event in requestevents receive request perform service send response 36

37 Serverarchitektur: Reaktiver Server Vorteil kein Thread / Prozess Overhead Nachteil kein Ausnutzen von Plattform-Parallelismus Probleme in einer Verbindung / Verarbeitung (Deadlock / Loop) betrifft den gesamten Server komplexere Programmierung Programmierung kurze / zustandslose Dienste: OK Dienst mit Client-spezifischem Kontext : FSM (endlicher Automat) pro Client verwalten lange andauernde Dienste (z.b. Filetransfer) blockieren Server oder müssen mit Unterbrechungen (auf Anwendungsebene) realisiert werden (Multitasking auf Anwendungsebene) 37

38 Serverarchitektur: Reaktiver Server Struktur Warte auf I/O-Ereignis an einem von mehreren Handlern (select) Verarbeite Ereignis synchroner Event-Demultiplexer BS: select-system-call Java: SocketChannel Clients Client-spezifische Kontexte Server Reaktiver Server 38

39 Serverarchitektur: Reaktiver Server Reaktor-Muster Gestaltung reaktiver Server beobachtet channel bearbeitet I/O-Ereignis z.b. channel Nach Douglas C. Schmidt: Reactor, An Object Behavioral Pattern for Demultiplexing and Dispatching Handles for Synchronous Events. 39

40 Serverarchitektur: Halb reaktiver / Halb nebenläufiger Server Mischform: Halb reaktiv / Halb nebenläufig (Half-sync / Half async) Annahme der Anfragen / Verbindungen reaktiv Weiterverarbeitung iterativ Clients Worker IO-Thread Queue Clients Half-Sync / Half-Async mit Task-Queue Worker Leader Followers Half-Sync / Half-Async mit Leader- und Follower-Threads Synchronzier Struktur 40

41 Serverarchitektur: Thread-Management Threads erzeugen / aufspannen (Thread Spawning) Erzeugungs-Strategien Im Voraus erzeugen (eager spawning) Bei Bedarf erzeugen (on demand spawning) Im Voraus erzeugte Threads bei Start erzeugen und in einem Pool platzieren vermeidet Erzeugungs-/Vernichtungs-Overhead erfordert Thread-Verwaltung Größe des Thread-Pools ~ Zahl der CPUs ~ Last ~ dynamisch variabel ~ Last ~ aktuelle Länge der Warteschlange der Anfragen 41

42 Serverarchitektur: Thread-Management Bei Bedarf erzeugen (on demand spawning) Vorteil Ressourcen-Schonung einfacher Nachteil Schlecht konfigurierbar Performance Probleme längere Reaktionszeit 42

43 Serverarchitektur: Thread-Management Task-basierte Thread-Zuteilung pro Aufgabe ein Thread IO-Thread Task-1 Task-2... Muster z.b.: Pipes and Filters Message Nachrichten-basierte Thread-Zuteilung pro Nachricht / Session / Verbindung ein Thread Message Task-1 Task-2... Muster z.b.: Half-sync / Half-Async Message Task-1 Task

44 Server-Architektur: Threading-Strategie Threading-Strategie ein Thread select Bedienen der Ereignisse andere Aktivitäten zwei Threads select / Ereignise bedienen andere Aktivitäten OK bei 1-Prozessor System (welcher Server ist das noch?) Thread-Pool Thread: select Thread-Pool: Ereignisse bedienden Anpassbar an System Schlecht: select blockiert Mehrere Threads / Thread-Pools Thread: select Thread(-Pool) A: Ereignisklasse A Thread(-Pool) B: Ereignisklasse B etc. Ereignisbehandlung konfigurierbar (Wichtigkeit,...) 44

45 Server-Architektur: Thread-Erzeugung / Thread-Aufgaben Thread-Erzeugung und Thread-Aufgaben Thread-Erzeugung Wann / Wie werden Threads erzeugt Thread vs. Task Welche Aufgaben werden den Threads zugeteilt Thread vs. I/O Ereignis welche(r) Thread(s) bearbeiten I/O-Ereignisse 45

46 Plattformen der Verteiltheit Plattformen der Verteiltheit : Einfache Abstraktionen über der Socket-Ebene in Java 46

47 Abstraktionen oberhalb der Socket-Ebene in Java Einfache Abstraktionen über der Socket-Ebene in Java: URL 47

48 URL Uniform Resource Locator Ein URL lokalisiert Web-Ressourcen: Wo und wie finde ich etwas Beispiele: shttp://meine.bank.de URL Aufbau Beispiel Scheme (Protocol) Zugriffsprotokoll http Authority Besitzer Path lokaler Weg zur Ressource /home/~hg51/index.html Query-String Suche in der Ressource searchstring=java Fragment Id (Ref) Index in der Ressource #intro einzelne Bestandteile können fehlen 48

49 URL Uniform Resource Locator Syntax / Beispiel (aus RFC 3986): foo://example.com:8042/over/there?name=ferret#nose foo Schema example.com:8042 Authority /over/there Path name=ferret Query nose Fragment Zeichensatz: US-ASCII-Zeichen in der Codierung 'der Umgebung' (umgebender Text / Übertragungs-Protokoll) a.. z, A.. Z, 0.. 9, -,., _, ~ (Alphanumerisch, Punkt, Bind-/Unterstrich, Tilde) Zeichen mit besonderer Bedeutung: /? # [ :! $ & ' ( ) * +, ; = % %HEX-Code für alle anderen und die mit besonderer Bedeutung z.b. %25 für %. Sonderformen möglich, z.b. + für ' ' (Blank) Hexcode ist abhängig von der (impliziten) Codierung! 49

50 URL in Java java.net Class URL Umschlagklasse für einen URL: java.net.url mit: Konstruktoren zur Konstruktion getter-/setter-methoden für die URL-Komponenten Methoden zum Aufbau einer Verbindung zur Ressource Verbindungsaufbau basiert auf Protocol-Handler Protocol-Handler von JVM implementiert (abhängig von der JVM) von der Anwendung zur Verfügung gestellt 50

51 URL in Java Beispiel : Test welche Protokoll-Handler stellt die JVM zur Verfügung? import java.net.malformedurlexception; import java.net.url; public class JVMProtocolHandler { public static void main(string[] args) { String[] standardprotocols = { "http", "https", "ftp", "mailto", "telnet", "file", "ldap"}; for ( String p : standardprotocols) try { URL url = new URL(p+"://some.where"); System.out.println(p + "\t is OK"); } catch(malformedurlexception e) { System.out.println(p + "\t is not supported"); } } } mögliche Ausgabe Die Tests auf Wohlgeformtheit der URL sind grob und nicht Protokollspezifisch (z.b. mailto-url ist nicht korrekt). Die Verfügbarkeit des Handlers wird geprüft. - Kein Test ob die URL erreichbar ist. http https ftp mailto telnet file ldap is is is is is is is OK OK OK OK not supported OK not supported 51

52 Zugriff auf URL-Ressource java.net Class URL Zugriff auf die Daten der Ressource auf die eine URL zeigt mit Hilfe der URL-Methoden: InputStream openstream(); verbindet sich mit der Ressource liefert InputStream zum Lesen der Daten URLConnection openconnection(); erzeugt Verbindung zur Ressouce zm lesen / schreiben von Daten, Zugriff auf weitere Info URLConnection openconnection(proxy proxy); erzeugt Verbindung via Proxy Object getcontent(); liest Daten der Ressource und erzeugt ein Objekt aus diesen Daten Object getcontent(class[] classes); liest Daten und erzeugt ein Objekt daraus, die Klassen sind Vorschläge für die Klasse des neu erzeugten Objekts 52

53 Zugriff auf URL-Ressource / Beispiel openstream public class URLViewer { public static void main(string[] args) { Scanner scan = new Scanner(System.in); String urlstring = scan.nextline(); try { URL url = new URL(urlString); InputStream ins = url.openstream(); int c; while ( (c = ins.read())!= -1 ) { System.out.print((char)c); } } catch (MalformedURLException e) { System.err.println("malformed url "+e); } catch (IOException e) { e.printstacktrace(); } } } erzeugt: Zugriff auf lokalen Tomcat mit der URL-Eingabe: <!doctype html public "-//w3c//dtd html 4.0 transitional//en" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso "> <title>apache Tomcat/5.0</title>... etc... 53

54 Zugriff auf URL-Ressource / Beispiel getcontent public class URLContentGetter { public static void main(string[] args) { Scanner scan = new Scanner(System.in); String urlstring = scan.nextline(); Class[] urltypes = { String.class, Image.class, InputStream.class }; try { URL url = new URL(urlString); Object obj = url.getcontent(urltypes); if ( obj instanceof String ) { System.out.println("String found at "+urlstring); } else if ( obj instanceof Image ) { System.out.println("Image found at "+urlstring); } else if ( obj instanceof InputStream ) { System.out.println("InputStream found at "+urlstring); } else System.out.println("Can not handle "+urlstring); } catch (MalformedURLException e) { System.err.println("malformed url "+e); } catch (IOException e) { e.printstacktrace(); } } } Eingabe: file:///home/thomas/documents/pictures/applelogo.gif Ausgabe: Image found at file:///home/thomas/documents/pictures/applelogo.gif 54

55 Zugriff auf URL-Ressource / Beispiel openconnection public class ConnectionOpener { public static void main(string[] args) { Scanner scan = new Scanner(System.in); String urlstring = scan.nextline(); try { URL url = new URL(urlString); URLConnection connection = url.openconnection(); System.out.println(connection.getContentEncoding()); System.out.println(connection.getContentType()); Object obj = connection.getcontent( new Class[]{ String.class, InputStream.class}); if ( obj instanceof String ){ System.out.println("String found: "+(String)obj); } if ( obj instanceof InputStream ){ System.out.println("InputStream found "); } } catch (MalformedURLException e) { System.err.println("malformed "+e); } catch (IOException e) { e.printstacktrace(); } } } Eingabe: Ausgabe: null text/html;charset=iso InputStream found 55

56 Abstraktionen oberhalb der Socket-Ebene in Java Einfache Abstraktionen über der Socket-Ebene in Java: URI 56

57 URI Uniform Resource Identifier Ein URI identifiziert eine Ressource Verallgemeinerung der URL URL lokalisiert URI identifiziert die Identifikation kann auch lokalisieren, sie muss aber nicht. Alle URLs sind URIs (aber nicht umgekehrt) URI Verwendung: als URL / zur Identifikation in div. XML-Technologien Beispiele: tel: urn:isbn: urn:oasis:names:specification:docbook:dtd:xml:4.1.2 URI Aufbau Scheme Name Beispiel : Schema-spezifischer Teil urn : oasis:names:specification:docbook:dtd:xml:

58 URI Uniform Resource Identifier URI Schemes Beispiele ( URI Scheme Description Reference acap application configuration access protocol [RFC2244] cid content identifier [RFC2392] dns Domain Name System [RFC4501] fax fax [RFC3966] file Host-specific file names [RFC1738] ftp File Transfer Protocol [RFC1738] http Hypertext Transfer Protocol [RFC2616] https Hypertext Transfer Protocol Secure [RFC2818] imap internet message access protocol [RFC2192] info Information Assets with Identifiers in Public Namespaces [RFC4452] ldap Lightweight Directory Access Protocol [RFC4516] mailto Electronic mail address [RFC2368] news USENET news [RFC1738] nfs network file system protocol [RFC2224] nntp USENET news using NNTP access [RFC1738] pop Post Office Protocol v3 [RFC2384] tel telephone [RFC3966] telnet Reference to interactive sessions [RFC4248] urn Uniform Resource Names [RFC2141] 58

59 URI / URL / URN URI Uniform: Syntax entspricht RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax. Resource: Irgendetwas Identification: Identifizieren / Lokalisieren / Holen URL URN URI Entwicklung: Identifizieren / Lokalisieren Ausgangskonzept URL: Identifizieren / Holen URI : Verallgemeinerung von URL URN: Uniform Resource Name Identifikation einer Ressource unabhängig von Ort und Zugriffsmethode/Möglichkeit ( Ein http-uri ist ein URL ) URN wird (eventuell) abgebildet auf URL-1, URL-2,... URI seit 2001 ( URI ist Oberbegriff URL informales Konzept lokalisierbarer Ressourcen ( Klick-bar ) URN ist Schema (hierachisch aufgebaut) (urn:xx:yy:zz) Resolution (Auflösung): nicht global geklärt (dns-uris haben global definierte Auflösung, andere nicht) 59

60 URI in Java java.net Class URI java.net.uri Umschlagklasse für URIs (konstruieren / analysieren) Vergleich zur java.net.url eher konform zu aktuellen WEB-Standards URI identifiziert nur: kein (direkter) Verbindungsaufbau relative und absolute URIs möglich 60

61 URI / URL / URLConnection Idee Schema -> Protokoll -> Protokoll-Handler Klassen In the early days of Java, Sun promised that protocols could be installed at runtime from the server that used them. [...] However, the loading of prtocol handlers from web sites was never implemented, and Sun doesn't talk much about it anymore. Elliotte Rusty Harold in Java Network Programming, O'Reilly URL / URLStreamHandler / URLConnection... definieren zusammen Protokoll-Handler Bewertung OK für vordefinierte Schemata (Protokolle) speziell für HTTP GET / POST (?) Neue Protokolle ~> müssen JVM bekannt gegeben werden Umständliche / Verwirrende API, kaum Mehrwert gegen Sockets Kaum genutzt Neue / Eigene Protokolle ~> Socket-Kommunikation 61

62 URI in Java / Beispiel get-abfrage Verbindungsaufbau via URL public class URIViewer { public static void main(string[] args) { try { URI uri = new URI( "http", //Scheme null, //Authority " ", //Host 8080, //Port "/hg51webapp/getfactorizer", //Path "zahl=12&submit=los+gehts", //Query null //Fragment ); URL url = uri.tourl(); InputStream ins = url.openstream(); int c; while ( (c = ins.read())!= -1 ) { System.out.print((char)c); } } catch (MalformedURLException e){ e.printstacktrace(); } catch (URISyntaxException e) { e.printstacktrace(); } catch (IOException e) { e.printstacktrace(); } } } 62

63 URI in Java / Beispiel get-abfrage / HTML als HTML anzeigen public class URIViewer { public static void main(string[] args) { try { URI uri = new URI( "http",null," ", 8080,"/hg51WebApp/GetFactorizer", "zahl=12&submit=los+gehts",null); URL url = uri.tourl(); InputStream ins = url.openstream(); byte[] bytea = new byte[1024]; int c; int i = 0; while ( (c = ins.read())!= -1 ) { bytea[i++] = (byte)c; } JEditorPane jp = new JEditorPane(); jp.setcontenttype("text/html"); jp.settext(new String(byteA, 0, i, "UTF8")); JFrame jf = new JFrame("Result"); jf.setcontentpane(jp); jf.setsize(512, 254); jf.setdefaultcloseoperation(jframe.exit_on_close); jf.setvisible(true); } catch (MalformedURLException e){ e.printstacktrace(); } catch (URISyntaxException e) { e.printstacktrace(); } catch (IOException e) { e.printstacktrace(); } } } 63

Technische Grundlagen von Internetzugängen

Technische Grundlagen von Internetzugängen Technische Grundlagen von Internetzugängen 2 Was ist das Internet? Ein weltumspannendes Peer-to-Peer-Netzwerk von Servern und Clients mit TCP/IP als Netzwerk-Protokoll Server stellen Dienste zur Verfügung

Mehr

Transmission Control Protocol (TCP)

Transmission 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

Mehr

Anwendungsprotokolle: HTTP, POP, SMTP

Anwendungsprotokolle: HTTP, POP, SMTP Anwendungsprotokolle: HTTP, POP, SMTP TCP? UDP? Socket? eingesetzt, um Webseiten zu übertragen Zustandslos Nutzt TCP Client schickt Anfrage ( HTTP-Request ) an Server, Server schickt daraufhin Antwort

Mehr

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik)

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Prof. Dr. Th. Letschert CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Vorlesung 8 Th Letschert FH Gießen-Friedberg Nebenläufige und verteilte Programme Netzwerk-Programme

Mehr

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2) 14. URIs Uniform Resource Identifier 14-1 14. URIs Uniform Resource Identifier 14-2 Motivation Das WWW ist ein Hypermedia System. Es enthält: Resourcen (Multimedia Dokumente) Verweise (Links) zwischen

Mehr

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen 2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen Dienste des Internets Das Internet bietet als riesiges Rechnernetz viele Nutzungsmöglichkeiten, wie etwa das World

Mehr

IAC-BOX Netzwerkintegration. IAC-BOX Netzwerkintegration IACBOX.COM. Version 2.0.1 Deutsch 14.05.2014

IAC-BOX Netzwerkintegration. IAC-BOX Netzwerkintegration IACBOX.COM. Version 2.0.1 Deutsch 14.05.2014 IAC-BOX Netzwerkintegration Version 2.0.1 Deutsch 14.05.2014 In diesem HOWTO wird die grundlegende Netzwerk-Infrastruktur der IAC- BOX beschrieben. IAC-BOX Netzwerkintegration TITEL Inhaltsverzeichnis

Mehr

SAP NetWeaver Gateway. Connectivity@SNAP 2013

SAP NetWeaver Gateway. Connectivity@SNAP 2013 SAP NetWeaver Gateway Connectivity@SNAP 2013 Neue Wege im Unternehmen Neue Geräte und Usererfahrungen Technische Innovationen in Unternehmen Wachsende Gemeinschaft an Entwicklern Ausdehnung der Geschäftsdaten

Mehr

Modul 7 Uniform Resource Identifier (URI)

Modul 7 Uniform Resource Identifier (URI) Modul 7 Uniform Resource Identifier (URI) M. Leischner Internetkommunikation Folie 1 Was ist ein URI? Ein URI identifiziert eine abstrakte Ressource Ein URI stellt ein universelles Konzept zur Identifikation

Mehr

Man liest sich: POP3/IMAP

Man liest sich: POP3/IMAP Man liest sich: POP3/IMAP Gliederung 1. Einführung 1.1 Allgemeiner Nachrichtenfluss beim Versenden von E-Mails 1.2 Client und Server 1.2.1 Client 1.2.2 Server 2. POP3 2.1 Definition 2.2 Geschichte und

Mehr

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

Rechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können. Rechnernetzwerke Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können. Im Gegensatz zu klassischen Methoden des Datenaustauschs (Diskette,

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0.

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0. Konfigurationsanleitung Access Control Lists (ACL) Funkwerk Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0 Seite - 1 - 1. Konfiguration der Access Listen 1.1 Einleitung Im Folgenden

Mehr

KN 20.04.2015. Das Internet

KN 20.04.2015. Das Internet Das Internet Internet = Weltweiter Verbund von Rechnernetzen Das " Netz der Netze " Prinzipien des Internet: Jeder Rechner kann Information bereitstellen. Client / Server Architektur: Server bietet Dienste

Mehr

Programmiermethodik. Übung 13

Programmiermethodik. Ü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

Mehr

Kontrollfragen: Internet

Kontrollfragen: Internet Kontrollfragen: Internet 1. Zählen Sie mindestens 5 Internet-Dienste auf. 2. Was ist eine virtuelle Verbindung? Vergleichen Sie eine virtuelle TCP/IP-Verbindung mit der Leitungsvermittlung (analoge Telefonverbindung).

Mehr

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

How-to: Webserver NAT. Securepoint Security System Version 2007nx Securepoint Security System Inhaltsverzeichnis Webserver NAT... 3 1 Konfiguration einer Webserver NAT... 4 1.1 Einrichten von Netzwerkobjekten... 4 1.2 Erstellen von Firewall-Regeln... 6 Seite 2 Webserver

Mehr

TCP/IP-Protokollfamilie

TCP/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

Client/Server-Systeme

Client/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

Mehr

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

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version 7.4.4. - Optional einen DHCP Server. 1. Dynamic Host Configuration Protocol 1.1 Einleitung Im Folgenden wird die Konfiguration von DHCP beschrieben. Sie setzen den Bintec Router entweder als DHCP Server, DHCP Client oder als DHCP Relay Agent

Mehr

Wiederholung: Beginn

Wiederholung: Beginn B) Webserivces W3C Web Services Architecture Group: "Ein Web Service ist eine durch einen URI eindeutige identifizierte Softwareanwendung, deren Schnittstellen als XML Artefakte definiert, beschrieben

Mehr

Netzwerk. Um den Hostnamen angezeigt zu bekommen $ hostname $ hostname -f Um den Hostnamen zu ändern $ hostname <neuerhostname>

Netzwerk. Um den Hostnamen angezeigt zu bekommen $ hostname $ hostname -f Um den Hostnamen zu ändern $ hostname <neuerhostname> Tutorium Anfänger Übersicht Netzwerk Netzwerk Netzwerk Damit ein Rechner in einem Netzwerk aktiv sein kann, braucht er einen einzigartigen Hostnamen Der Hostname dient zur Identifikation des Rechners Netzwerk

Mehr

Client-Server-Prinzip

Client-Server-Prinzip Client-Server-Prinzip Kommunikation im Internet erfolgt nach dem Client-Server-Prinzip: Client sendet eine Anfrage (fordert eine Dienstleistung an) Server sendet die Antwort (bietet eine Dienstleistung

Mehr

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

ARCHITEKTUR VON INFORMATIONSSYSTEMEN ARCHITEKTUR VON INFORMATIONSSYSTEMEN File Transfer Protocol Einleitung Das World Wide Web war ja ursprünglich als verteiltes Dokumentenverwaltungssystem für die akademische Welt gedacht. Das Protokoll

Mehr

Installation des GeoShop Redirector für Apache (Stand 14.8.2007) ================================================================

Installation des GeoShop Redirector für Apache (Stand 14.8.2007) ================================================================ Installation des GeoShop Redirector für Apache (Stand 14.8.2007) ================================================================ 0 Überblick ----------- Die Installation des GeoShop Redirector im Apache

Mehr

Online-Publishing mit HTML und CSS für Einsteigerinnen

Online-Publishing mit HTML und CSS für Einsteigerinnen mit HTML und CSS für Einsteigerinnen Dipl.-Math. Eva Dyllong Universität Duisburg Dipl.-Math. Maria Oelinger spirito GmbH IF MYT 07-2002 Grundlagen Frau erfahrt, wie das Internet aufgebaut ist, aus welchen

Mehr

Betriebskonzept E-Mail Einrichtung

Betriebskonzept E-Mail Einrichtung Betriebskonzept E-Mail Einrichtung www.bolken.ch Klassifizierung öffentlich - wird an die E-Mail Benutzer abgegeben Versionenkontrolle Version Status Verantwortlich Datum 4.0 Genehmigt Gemeinderat 25.03.2015

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

CCNA Exploration Network Fundamentals. ARP Address Resolution Protocol

CCNA Exploration Network Fundamentals. ARP Address Resolution Protocol CCNA Exploration Network Fundamentals ARP Address Resolution Protocol ARP: Address resolution protocol 1. Eigenschaften ARP-Cache Aufbau 2. Ablauf Beispiel Flussschema 3. ARP-Arten 4. Sicherheit Man-In-The-Middle-Attacke

Mehr

Überblick. Netzprogrammierung 7b. Zustand in Web Anwendungen. Zustand in HTTP HTTP ist zustandslos Zwei Interaktionen sind unabhängig voneinander

Überblick. Netzprogrammierung 7b. Zustand in Web Anwendungen. Zustand in HTTP HTTP ist zustandslos Zwei Interaktionen sind unabhängig voneinander Überblick 1. Zustand in Web Anwendungen Netzprogrammierung 7b. Zustand in Web Anwendungen Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

Mehr

TCP/UDP. Transport Layer

TCP/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?

Mehr

Analyse und Darstellung der Protokollabläufe in IPv6-basierten Rechnernetzen

Analyse und Darstellung der Protokollabläufe in IPv6-basierten Rechnernetzen Analyse und Darstellung der Protokollabläufe in IPv6-basierten Rechnernetzen Diplomarbeit Harald Schwier Vortragsthema: Integration von IPv6 in IPv4-basierte Netze Harald Schwier 26.05.2005 Themen der

Mehr

Protokolle. Konrad Rosenbaum, 2006/7 protected under the GNU GPL & FDL

Protokolle. Konrad Rosenbaum, 2006/7 protected under the GNU GPL & FDL TCP/IP: Standard Protokolle Konrad Rosenbaum, 2006/7 DNS - Domain Name System hierarchische, global verteilte Datenbank löst Namen in IP-Adressen auf Host hat einen primären Nameserver, der Fragen selbst

Mehr

Einführung in die Netzwerktechnik

Einführung in die Netzwerktechnik Ich Falk Schönfeld Seit 8 Jahren bei eurogard GmbH Entwickler für Remoteserviceprodukte Kernkompetenz Linux Mail: schoenfeld@eurogard.de Telefon: +49/2407/9516-15 Ablauf: Was bedeutet Netzwerktechnik?

Mehr

Workflow, Business Process Management, 4.Teil

Workflow, Business Process Management, 4.Teil Workflow, Business Process Management, 4.Teil 24. Januar 2004 Der vorliegende Text darf für Zwecke der Vorlesung Workflow, Business Process Management des Autors vervielfältigt werden. Eine weitere Nutzung

Mehr

ICMP Internet Control Message Protocol. Michael Ziegler

ICMP Internet Control Message Protocol. Michael Ziegler ICMP Situation: Komplexe Rechnernetze (Internet, Firmennetze) Netze sind fehlerbehaftet Viele verschiedene Fehlerursachen Administrator müsste zu viele Fehlerquellen prüfen Lösung: (ICMP) Teil des Internet

Mehr

Konfigurationsanleitung Network Address Translation (NAT) Funkwerk. Seite - 1 - Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.

Konfigurationsanleitung Network Address Translation (NAT) Funkwerk. Seite - 1 - Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1. Konfigurationsanleitung Network Address Translation (NAT) Funkwerk Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.1 Seite - 1 - 1. Konfiguration von Network Address Translation 1.1

Mehr

Uniform Resource Identifiers (URI) und Domain Name Service (DNS)

Uniform Resource Identifiers (URI) und Domain Name Service (DNS) Kurzvortrag zum Thema: Uniform Resource Identifiers (URI) und Domain Name Service (DNS) Beschreiben Sie Aufbau und Einsatzzweck von URI, URL und URN. Lesen Sie die dazu passenden RFCs. Was ist der Domain

Mehr

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte: Installation des GeoShop Redirector für IIS (Stand 24.8.2007) ============================================================= 0 Überblick ----------- Die Installation des GeoShop Redirector für IIS (Internet

Mehr

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

4. Network Interfaces Welches verwenden? 5. Anwendung : Laden einer einfachen Internetseite 6. Kapselung von Paketen Gliederung 1. Was ist Wireshark? 2. Wie arbeitet Wireshark? 3. User Interface 4. Network Interfaces Welches verwenden? 5. Anwendung : Laden einer einfachen Internetseite 6. Kapselung von Paketen 1 1. Was

Mehr

2.3 Applikationen. Protokolle: TCP/IP. Telnet, FTP, Rlogin. Carsten Köhn

2.3 Applikationen. Protokolle: TCP/IP. Telnet, FTP, Rlogin. Carsten Köhn 2.3 Applikationen Telnet, FTP, Rlogin Carsten Köhn Protokolle: TCP/IP Application umfasst Dienste, die als Prozesse des Betriebssystems ausgeführt werden SMTP, FTP, HTTP, MIME Transport regelt die Kommunikation

Mehr

RESTful Web. Representational State Transfer

RESTful Web. Representational State Transfer RESTful Web Representational State Transfer 1 Warum REST? REST ist die Lingua Franca des Webs Heterogene (verschiedenartige) Systeme können mit REST kommunizieren, unabhängig von Technologie der beteiligten

Mehr

15 Transportschicht (Schicht 4)

15 Transportschicht (Schicht 4) Netzwerktechnik Aachen, den 16.06.03 Stephan Zielinski Dipl.Ing Elektrotechnik Horbacher Str. 116c 52072 Aachen Tel.: 0241 / 174173 zielinski@fh-aachen.de zielinski.isdrin.de 15 Transportschicht (Schicht

Mehr

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: 7. Intrusion Prevention System 7.1 Einleitung Sie konfigurieren das Intrusion Prevention System um das Netzwerk vor Angriffen zu schützen. Grundsätzlich soll nicht jeder TFTP Datenverkehr blockiert werden,

Mehr

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze

Informatik 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

Mehr

8. Bintec Router Redundancy Protocol (BRRP) 8.1 Einleitung

8. Bintec Router Redundancy Protocol (BRRP) 8.1 Einleitung 8. Bintec Router Redundancy Protocol (BRRP) 8.1 Einleitung Im Folgenden wird die Konfiguration von BRRP gezeigt. Beide Router sind jeweils über Ihr Ethernet 1 Interface am LAN angeschlossen. Das Ethernet

Mehr

Gefahren aus dem Internet 1 Grundwissen April 2010

Gefahren aus dem Internet 1 Grundwissen April 2010 1 Grundwissen Voraussetzungen Sie haben das Internet bereits zuhause oder an der Schule genutzt. Sie wissen, was ein Provider ist. Sie wissen, was eine URL ist. Lernziele Sie wissen, was es braucht, damit

Mehr

Sicherheitsdienste für große Firmen => Teil 2: Firewalls

Sicherheitsdienste für große Firmen => Teil 2: Firewalls Seite 21 Sicherheitsdienste für große Firmen => Teil 2: Firewalls Sicherer Zugang zum World Wide Web (HTTP, FTP etc.) Sicherer Übergang zum Internet: Firewalls und Intrusion Detection Verzeichnisdienste

Mehr

Web Grundlagen zum Spidering

Web Grundlagen zum Spidering May 22, 2009 Outline Adressierung 1 Adressierung 2 3 4 Uniform Resource Locator URL Jede Seite im Internet wird eindeutig über eine URL identiziert, z.b. http://www.christianherta.de/informationretrieval/index.html

Mehr

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Architektur Verteilter Systeme Teil 2: Prozesse und Threads Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

2. Architektur von Kommunikationssystemen

2. 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

Mehr

Man unterscheidet zwischen LAN (Local Area Network) und WAN (Wide Area Network), auch Internet genannt.

Man unterscheidet zwischen LAN (Local Area Network) und WAN (Wide Area Network), auch Internet genannt. Netzwerk Ein Netzwerk wird gebildet, wenn mehrere Geräte an einem Switch mit Netzwerkkabeln angeschlossen werden. Dabei können die einzelnen Geräte miteinander kommunizieren und über ein Netzwerkprotokoll

Mehr

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

FOPT 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

Mehr

WLAN Konfiguration. Michael Bukreus 2014. Seite 1

WLAN Konfiguration. Michael Bukreus 2014. Seite 1 WLAN Konfiguration Michael Bukreus 2014 Seite 1 Inhalt Begriffe...3 Was braucht man für PureContest...4 Netzwerkkonfiguration...5 Sicherheit...6 Beispielkonfiguration...7 Screenshots Master Accesspoint...8

Mehr

Session Management und Cookies

Session Management und Cookies LMU - LFE Medieninformatik Blockvorlesung Web-Technologien Wintersemester 2005/2006 Session Management und Cookies Max Tafelmayer 1 Motivation HTTP ist ein zustandsloses Protokoll Je Seitenaufruf muss

Mehr

Anleitung zur Nutzung des SharePort Utility

Anleitung zur Nutzung des SharePort Utility Anleitung zur Nutzung des SharePort Utility Um die am USB Port des Routers angeschlossenen Geräte wie Drucker, Speicherstick oder Festplatte am Rechner zu nutzen, muss das SharePort Utility auf jedem Rechner

Mehr

Verteilte Systeme - 2. Übung

Verteilte Systeme - 2. Übung Verteilte Systeme - 2. Übung Dr. Jens Brandt Sommersemester 2011 1. Server-Entwurf a) Beschreiben Sie was sich hinter den Begriffen statusloser bzw. statusbehafteter Server verbirgt. Statusloser Server

Mehr

MCRServlet Table of contents

MCRServlet Table of contents Table of contents 1 Das Zusammenspiel der Servlets mit dem MCRServlet... 2 1 Das Zusammenspiel der Servlets mit dem MCRServlet Als übergeordnetes Servlet mit einigen grundlegenden Funktionalitäten dient

Mehr

BFV Widgets Kurzdokumentation

BFV Widgets Kurzdokumentation BFV Widgets Kurzdokumentation Mit Hilfe eines BFV-Widgets lassen sich die neuesten Ergebnisse und die aktuellen Tabellen des BFV auf der eigenen nicht kommerziellen Webseite mit wenig Aufwand einbeten.

Mehr

7.4 Verteilungsabstraktion in heterogener Umgebung

7.4 Verteilungsabstraktion in heterogener Umgebung 7.4 Verteilungsabstraktion in heterogener Umgebung Szenario: reiner Maschinencode (native code) bei unterschiedlichen Rechnerarchitekturen, unterschiedlichen Betriebssystemen, unterschiedlichen Übersetzern,

Mehr

Connectivity Everywhere

Connectivity Everywhere Connectivity Everywhere Ich bin im Netz, aber wie komme ich sicher nach hause? Tricks fuer mobile Internet Nutzer Überblick Sicherheitsprobleme beim mobilen IP-Nutzer Konventionelle Loesung: IP-Tunnel

Mehr

Stefan Dahler. 1. Remote ISDN Einwahl. 1.1 Einleitung

Stefan Dahler. 1. Remote ISDN Einwahl. 1.1 Einleitung 1. Remote ISDN Einwahl 1.1 Einleitung Im Folgenden wird die Konfiguration einer Dialup ISDN Verbindungen beschrieben. Sie wählen sich über ISDN von einem Windows Rechner aus in das Firmennetzwerk ein und

Mehr

DynDNS Router Betrieb

DynDNS Router Betrieb 1. Einleitung Die in dieser Information beschriebene Methode ermöglicht es, mit beliebige Objekte zentral über das Internet zu überwachen. Es ist dabei auf Seite des zu überwachenden Objektes kein PC und/oder

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

HTBVIEWER INBETRIEBNAHME

HTBVIEWER INBETRIEBNAHME HTBVIEWER INBETRIEBNAHME Vorbereitungen und Systemvoraussetzungen... 1 Systemvoraussetzungen... 1 Betriebssystem... 1 Vorbereitungen... 1 Installation und Inbetriebnahme... 1 Installation... 1 Assistenten

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

Uni-Firewall. Absicherung des Überganges vom Hochschulnetz zum Internet am Wingate (Helmut Celina)

Uni-Firewall. Absicherung des Überganges vom Hochschulnetz zum Internet am Wingate (Helmut Celina) Uni-Firewall Absicherung des Überganges vom Hochschulnetz zum Internet am Wingate (Helmut Celina) Was ist eine Firewall? oder 2 Was ist eine Firewall? Eine Firewall muss ein Tor besitzen Schutz vor Angriffen

Mehr

Verteilte Systeme CS5001

Verteilte 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,

Mehr

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen? Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen? Januar 2012 CommitWork GmbH Seite 1 Info@CommitWork.de www.commitwork.de Motivation Modernisierung eines Systems mit

Mehr

Klausur IA12.0/13.0 353 Rechnernetze am 4.2.2002

Klausur IA12.0/13.0 353 Rechnernetze am 4.2.2002 Klausur IA12.0/13.0 353 Rechnernetze am 4.2.2002 Dauer : 100 Minuten keine externen Hilfsmittel Aufgabe 1 : (20 Punkte) Bestimmen Sie für jede nachfolgend gegebene IP-Hostadresse die zugehörige IP-Teilnetzadresse

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python 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

Mehr

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht Themen Anwendungsschicht DNS HTTP Anwendungsschicht OSI-Schicht 7, TCP/IP-Schicht 4 Dienste für den Nutzer/Anwender Unabhängig von den niederen Schichten Verschiedene Dienste bzw. Services DNS HTTP FTP,

Mehr

ISA Server 2006 - Exchange RPC over HTTPS mit NTLM-Authentifizierung

ISA Server 2006 - Exchange RPC over HTTPS mit NTLM-Authentifizierung Seite 1 von 24 ISA Server 2006 - Exchange RPC over HTTPS mit NTLM-Authentifizierung Die Informationen in diesem Artikel beziehen sich auf: Microsoft ISA Server 2006 Microsoft Windows Server 2003 SP1 Microsoft

Mehr

Was ist LDAP. Aufbau einer LDAP-Injection. Sicherheitsmaßnahmen. Agenda. LDAP-Injection. ITSB2006 WS 09/10 Netzwerkkonfiguration und Security

Was ist LDAP. Aufbau einer LDAP-Injection. Sicherheitsmaßnahmen. Agenda. LDAP-Injection. ITSB2006 WS 09/10 Netzwerkkonfiguration und Security Agenda Was ist LDAP Aufbau einer Sicherheitsmaßnahmen Was ist LDAP Abstract RFC4510 The Lightweight Directory Access Protocol (LDAP) is an Internetprotocol for accessing distributed directory services

Mehr

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung 2015-02-25 1 of 6 Application Note Anbindung von Kunden-Software an SpiderControl Web Visualisierung Version ApplicationNote_AnbindungFremdsoftware /Version Seite 1 / 6 Version Datum Kommentar Autor 0.1

Mehr

Musterlösung Klausur SS 2004

Musterlösung Klausur SS 2004 Musterlösung Klausur SS 2004 Fachrichtung: Informatik Lehrveranstaltung: Verteilte Systeme Dozent: Prof. G. Bengel Tag: 15.6.04 Bearbeitungszeit: 90 Minuten Name:... Matr.Nr.:... Punkte:... Note:... Hilfsmittel:

Mehr

Seminar: Konzepte von Betriebssytem- Komponenten

Seminar: Konzepte von Betriebssytem- Komponenten Seminar: Konzepte von Betriebssytem- Komponenten Denial of Service-Attacken, Firewalltechniken Frank Enser frank.enser@web.de Gliederung Was sind DoS Attacken Verschiedene Arten von DoS Attacken Was ist

Mehr

Seite - 1 - 8. Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung

Seite - 1 - 8. Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung 8. Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung Sie konfigurieren den OOBA, um die Webzugriffe mit HTTP ins Internet zu kontrollieren. Das Aufrufen von Webseiten ist nur authentifizierten Benutzern

Mehr

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant? Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS

Mehr

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

Proxy. Krishna Tateneni Übersetzer: Stefan Winter Krishna Tateneni Übersetzer: Stefan Winter 2 Inhaltsverzeichnis 1 Proxy-Server 4 1.1 Einführung.......................................... 4 1.2 Benutzung.......................................... 4 3 1

Mehr

IMAP und POP. Internet Protokolle WS 12/13 Niklas Teich Seite 1

IMAP und POP. Internet Protokolle WS 12/13 Niklas Teich Seite 1 IMAP und POP Internet Protokolle WS 12/13 Niklas Teich Seite 1 IMAP UND POP Inhaltsverzeichnis» Post Office Protocol» Internet Message Access Protocol» Live Beispiel mit telnet Internet Protokolle WS 12/13

Mehr

VS7 Slide 1. Verteilte Systeme. Vorlesung 7 vom 27.05.2004 Dr. Sebastian Iwanowski FH Wedel

VS7 Slide 1. Verteilte Systeme. Vorlesung 7 vom 27.05.2004 Dr. Sebastian Iwanowski FH Wedel VS7 Slide 1 Verteilte Systeme Vorlesung 7 vom 27.05.2004 Dr. Sebastian Iwanowski FH Wedel Inhaltsverzeichnis für die Vorlesung Zur Motivation: 4 Beispiele aus der Praxis Allgemeine Anforderungen an Verteilte

Mehr

Dieser Artikel beschreibt die Veröffentlichung eines Microsoft SQL Server 2000 über einen ISA Server 2004.

Dieser Artikel beschreibt die Veröffentlichung eines Microsoft SQL Server 2000 über einen ISA Server 2004. SQL Server Veröffentlichung ISA Server FAQ Kapitel höher Erstellen einer Firewallrichtlinie Systemrichtlinien Websiten sperren Windowsupdate V5 Zeitsynchronisation Mailzugriff SMTP Server veröffentlichen

Mehr

Virtual Private Network

Virtual Private Network Virtual Private Network Allgemeines zu VPN-Verbindungen WLAN und VPN-TUNNEL Der VPN-Tunnel ist ein Programm, das eine sichere Verbindung zur Universität herstellt. Dabei übernimmt der eigene Rechner eine

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Virtual Desktop Infrasstructure - VDI

Virtual Desktop Infrasstructure - VDI Virtual Desktop Infrasstructure - VDI Jörg Kastning Universität Bielefeld Hochschulrechenzentrum 5. August 2015 1/ 17 Inhaltsverzeichnis Was versteht man unter VDI? Welchen Nutzen bringt VDI? Wie funktioniert

Mehr

Swissdec Standards. Was ist bei der Internetanbindung einer Swissdec-zertifizierten Lohnbuchhaltung zu beachten.

Swissdec Standards. Was ist bei der Internetanbindung einer Swissdec-zertifizierten Lohnbuchhaltung zu beachten. Swissdec Standards Was ist bei der anbindung einer Swissdec-zertifizierten Lohnbuchhaltung zu beachten. Version 20100909 Ausgabe 14.04.2015 Access Kommunikation Der Datentransport von der Lohnbuchhaltung

Mehr

STARFACE SugarCRM Connector

STARFACE SugarCRM Connector STARFACE SugarCRM Connector Information 1: Dieses Dokument enthält Informationen für den STARFACE- und SugarCRM-Administrator zur Inbetriebnahme des STARFACE SugarCRM Connectors. Inhalt 1 Inbetriebnahme...

Mehr

Konfiguration von Exchange 2000 zum versenden und empfangen von Mails & Lösung des SEND after POP Problems

Konfiguration von Exchange 2000 zum versenden und empfangen von Mails & Lösung des SEND after POP Problems Konfiguration von Exchange 2000 zum versenden und empfangen von Mails & Lösung des SEND after POP Problems Hier die notwendigen Einstellungen in der Administratorkonsole des Exchange 2000 Zuerst müssen

Mehr

ISA Server 2004 Einzelner Netzwerkadapater

ISA Server 2004 Einzelner Netzwerkadapater Seite 1 von 8 ISA Server 2004 - Konfiguration mit nur einer Netzwerkkarte Die Informationen in diesem Artikel beziehen sich auf: Microsoft ISA Server 2004 In diesem Artikel wird auf die Konfiguration von

Mehr

Networking. Motivation Grundlagen von Sockets Klasse Socket Klasse ServerSocket Exceptions Klasse URL

Networking. 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,

Mehr

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

Themen. 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

Mehr

Kontrollfragen Firewalltypen

Kontrollfragen Firewalltypen Kontrollfragen Firewalltypen Paketlter Die vier Grundaktionen des Paketlters Ein Paketfilter repräsentiert das Urgestein der Firewallthematik. Er arbeitet mit so genannten Regelketten, welche sequentiell

Mehr

Netzwerkprogrammierung & Threads

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

Mehr

Proseminar: Website-Management-Systeme

Proseminar: Website-Management-Systeme Proseminar: Website-Management-Systeme Thema: Web: Apache/Roxen von Oliver Roeschke email: o_roesch@informatik.uni-kl.de Gliederung: 1.) kurze Einleitung 2.) Begriffsklärung 3.) Was ist ein Web? 4.) das

Mehr

Walther- Übungsaufgabe 24. Januar 2016 Rathenau- Routing Name: Gewerbeschule Freiburg DHCP Klasse: E3FI1T Seite 1 Punkte: /20 Note:

Walther- Übungsaufgabe 24. Januar 2016 Rathenau- Routing Name: Gewerbeschule Freiburg DHCP Klasse: E3FI1T Seite 1 Punkte: /20 Note: Fach: ITS Walther- Übungsaufgabe 24. Januar 2016 Gruppe: Rathenau- Routing Name: Gewerbeschule VLANs Freiburg DHCP Klasse: E3FI1T Seite 1 Punkte: /20 Note: Hinweise Liebe Leute, bitte versucht so gut als

Mehr

Windows Server 2008 für die RADIUS-Authentisierung einrichten

Windows Server 2008 für die RADIUS-Authentisierung einrichten Windows Server 2008 für die RADIUS-Authentisierung einrichten Version 0.2 Die aktuellste Version dieser Installationsanleitung ist verfügbar unter: http://www.revosec.ch/files/windows-radius.pdf Einleitung

Mehr