52
Rechnernetz-Technologie OSI 7-Schichtenmodell Verteilte Anwendungen, allgemeines Client-Server-Modell Softwareschnittstellen: Sockets, benannte Pipes und RPC Web: HTTP-Protokoll in der Rechnernetz-Anwendungsschicht Architektur von Web-Applikationen: Clientseitige Verarbeitung Serverseitige Verarbeitung Multi-Tier-Architekturen von Web-Applikationen Peter Sobe 1 1. Internet-Grundlagen und Überblickswissen Internettechnologien

1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Rechnernetz-Technologie OSI 7-Schichtenmodell Verteilte Anwendungen,

allgemeines Client-Server-Modell Softwareschnittstellen: Sockets, benannte Pipes und RPC

Web: HTTP-Protokoll in der Rechnernetz-Anwendungsschicht

Architektur von Web-Applikationen: Clientseitige Verarbeitung Serverseitige Verarbeitung Multi-Tier-Architekturen von Web-Applikationen

Peter Sobe 1

1. Internet-Grundlagen und Überblickswissen

Internettechnologien

Page 2: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

OSI-Referenzmodell: Open Systems Interconnection Reference Model

Eingeführt 1983 von der ISO (Internationale Normungsorganisation)Zu dieser Zeit existierte TCP/IP bereits, das bis dahin durch ein 4-Schichtenmodell erklärt wurde.

Ein Schichtenmodell ordnet verschiedenen Netzwerk-Techniken jeweils eine Schicht zu. Die oberen Schichten bauen auf der Funktionalität und den Schnittstellen der unteren Schichten auf.

Peter Sobe 2

OSI –Modell (1)

Internettechnologien

Page 3: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Peter Sobe 3

OSI –Modell (2)

Internettechnologien

Page 4: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

1: Bitübertragungsschicht – umfasst mechanische und elektrische Elemente, das Übertragungsmedium und dieübertragungstechnischen Verfahren

2: Sicherungsschicht - Techniken zum Zugriff auf das Übertragungsmedium, Datenflusskontrolle, Fehlererkennung und Fehlerkorrektur

3: Vermittlungsschicht – Weiterleitung der Datenübertragung über ein Kommunikationsnetz aus mehreren Leitungssegmenten und Schaltstellen (Router)

4: Transportschicht – Ende-zu-Ende-Steuerung für Datenströme

Peter Sobe 4

OSI –Modell (3)

Internettechnologien

Page 5: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

5: Sitzungsschicht – synchronisierter Datenaustausch, weitere Mechanismen wie z.B. RPC (Remote Procedure Call)

6: Darstellungsschicht – Herstellung einer systemunabhängigen Darstellung der Daten, ggf. Anpassung an verschiedene Darstellungsformate, Zusätzlich: Datenkompression und Verschlüsselung

7: Anwendungsschicht – verschiedene Anwendungen, wie z.B. Dateitransfer (SCP,FTP), Email, Webserver/Webbrowser

Peter Sobe 5

OSI –Modell (4)

Internettechnologien

Page 6: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Angelehnt an TCP/IP mit Internetschicht und Transportschicht

Peter Sobe 6

Einfacheres 4-Schichten-Modell (1)

Internettechnologien

Rechner 1

4 Anwendungs-schicht

http, ftp,smtp, pop,

....3

Transport-schicht

TCP

2Internet-schicht

IP

1 Netzzugangs-schicht

Rechner 2

4 Anwendungs-schicht

http, ftp,smtp, pop,

....3

Transport-schicht

TCP

2Internet-schicht

IP

1 Netzzugangs-schicht

realer Datenaustausch mit elektr. Signalen

logischer Datenaustausch

Page 7: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Die beiden entscheidenden Schnittstellen, die Internetschichtund die Transportschicht gut zu erkennen. Darüber liegt dann die Anwendungsschicht, die die bekannten Internetdienste enthält.

Der Name Internettechnologien kommt natürlich von der Internetschicht. Man rechnet alles, was direkt auf diese Internetschicht aufsetzt oder darüber liegt zu den Internettechnologien. In der Literatur ist oft der Begriff Web-Technologie zu finden.

Peter Sobe 7

Einfacheres 4-Schichten-Modell (2)

Internettechnologien

Page 8: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Wir betrachten zwei Rechner, die über das Netz verbunden sind. Auf jedem Rechner läuft eine Anwendung, die beide miteinander kooperieren, d.h. Daten austauschen. Eine Anwendung wird als Server bezeichnet, die andere als Client. Der Server stellt einen Dienst bereit und der Client ist die Anwendung, die den Dienst in Anspruch nimmt.

Gefordert:Ein Protokoll, das bestimmt wie der Datenaustausch zwischen Server und Client funktioniert. Zeitliche Abfolge der Nachrichten und Regeln für Client

und Server Inhalt und Format der einzelnen Nachrichten

Peter Sobe 8

Client-Server-Modell –Grundlage für die Internettechnologien

Internettechnologien

Page 9: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Werden im Internet Dienste von allgemeinem Interesse zur Verfügung gestellt, müssen die Protokolle publiziert werden. Oft werden dann auch Clients zur Verfügung gestellt, über die solche Dienste genutzt werden können.

Zugangspunkte für Dienste (Adressen) müssen bekannt sein: Adresse des Servers (IP-Adresse) Unterscheidung der Zugangspunkte, wenn ein Server mehr

als einen Dienst bereit stellt (Port)

Die Adressierung ist Aufgabe der Vermittlungsschicht (Schicht 3, Network Layer) im OSI-Modell IP-Schicht (Internet Schicht) im TCP/IP-Schichtenmodell

Peter Sobe 9

Client-Server-Modell –Grundlage für die Internettechnologien

Internettechnologien

Page 10: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Ein Dienst wird mit einer so genannten Portnummer versehen. Portnummer und Rechner (IP-Nummer) bilden ein Socket und sind im Internet eindeutig definiert. Damit gelingt es beim Datenversand im Internet durch TCP das Ziel der Daten, den Server, eindeutig zu adressieren.

Peter Sobe 10

Client-Server-Modell –Adressierung der Server

Internettechnologien

Server: www.htw-dresden.de IP-V4-Adr.: 141.56.16.49

WWW-Server an Port 80

FTP-Server an Ports 20,21

Page 11: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Ein Client wird durch seine IP-Adresse ausgewiesen.Jede Verbindung wird clientseitig einem anderem Port zugeordnet. Damit kann der Client mehrere Verbindungen gleichzeitig aufrecht erhalten.

Ports für Client-Prozesse werden durch Portmapper dynamisch vergeben. Der Client-Port wird dem Server beim Verbindungs-aufbau mitgeteilt.

Eine TCP-Verbindung (Socket-Verbindung) ist demnach durch das 4-Tupel

(Server-IP-Addr, Server_Port, Client-IP-Addr, Client-Port)gekennzeichnet.

Peter Sobe 11

Client-Server-Modell –Adressierung der Clients

Internettechnologien

Page 12: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Ein Server, mehrere Clients:

Peter Sobe 12

Client-Server-Modell –Szenarien (1)

Internettechnologien

Server-IP-Adr,Server-Port

C1-IP-Adr,C1-Port

C2-IP-Adr,C2-Port

C3-IP-Adr,C3-Port

Clients Server

Wenn Clients auf unterschiedlichen Rechnern laufen, dann unterscheiden sich C1-IP-Adr, C2-IP-Adr und C3-IP-Adr.Wenn Clients auf dem gleichen Rechner laufen (z.B. mehrere Nutzer), dann unterscheiden sich ihre Port-Nummern, z.B. C2-Port ≠ C1-Port

Page 13: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Ein Client, mehrere Server:

Peter Sobe 13

Client-Server-Modell –Szenarien (2)

Internettechnologien

S1-IP-Adr,S1-Port

Client-IP-Adr,Client-Port

Client Server

Wenn Server auf unterschiedlichen Rechnern laufen, dann unterscheiden sich S1-IP-Adr und S2-IP-Adr.Wenn verschiedene Server auf dem gleichen Rechner laufen, dann unterscheiden sich ihre Port-Nummern, z.B. S2-Port ≠ S1-Port.

→ Nachrichten unterschiedlicher Verbindungen sind immer unterscheidbar.

S2-IP-Adr,S2-Port

Page 14: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

TCP (Transmission Control Protocol) –Verbindungsorientiertes Protokoll aus OSI Schicht 4

setzt Adressierung und Paket-Vermittlung voraus (IP) arbeitet intern wie dargestellte Socket- und Pipe-

Kommunikation TCP garantiert Reihenfolge der Daten und Fehlerfreiheit – bei

verlorenen Paketen werden diese wiederholt übertragen Auf TCP bauen viele Internetdienste auf, z.B. HTTP, FTP

Peter Sobe 14

TCP und UDP (1)

Internettechnologien

Page 15: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

UDP (User Datagram Protocol) ist das verbindungslose Pendant zu TCP. Das verbindungslose UDP kann schneller sein.

setzt Adressierung und Paket-Vermittlung voraus (IP) einzelne Pakete werden übertragen, ohne explizite

Verbindung keine Reihenfolgegarantie Pakete können verloren gehen einige Dienste, wie z.B. Audio-Streaming verwenden UDP

Peter Sobe 15

TCP und UDP (2)

Internettechnologien

Page 16: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Eine Socket-Verbindung ist eine verbindungsorientierte Kopplung zwischen zwei Prozessen, typischerweise einem Server und einem Client. Die Verbindung wird explizit aufgebaut, danach kann bidirektional kommuniziert werden. Die Verbindung wird geschlossen, wenn sie nicht mehr benötigt wird.Vergleichbar mit Telefongespräch!

Peter Sobe 16

Client-Server-Kommunikation –per Socket-Verbindung (1)

Internettechnologien

Prozess-1 Prozess-2

Page 17: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Phasen einer Socket-Verbindung als Sequenz-Diagramm

Peter Sobe 17

Client-Server-Kommunikation –per Socket-Verbindung (2)

Internettechnologien

Server Client

bind (es, address) … Angabe des Ports

listen(es)

s = accept(es)

connect(s, address) … IP-Adresse und Port

write(s, …)

write(s, …) read(s, …)

read(s, …) write(s, …)

read(s, …)

close(s) close(s)

es = socket () s = socket ()

Page 18: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

• Der Server bindet eine Dienst an einen bekannten Port (bind) und akzeptiert Verbindungen (accept).

• Ein Client verbindet sich mit einem Dienst an einem bekannten Port (connect).

• Beide Prozesse können Daten senden und empfangen.Funktionen: write() / read() oder send() / recv()

• Welcher Prozess wann sendet und wann empfängt, muss durch das Protokoll zwischen Server und Client geklärt sein.

• Ein Server erzeugt typischerweise nach dem Annehmen einer Verbindung (accept) einen neuen Thread für die Verbindung. Der verbleibende Thread nimmt wieder neue Verbindungen an (Multi-Client-Server).

Peter Sobe 18

Client-Server-Kommunikation –per Socket-Verbindung (3)

Internettechnologien

Page 19: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Server source code (C language, important parts only):

int entry_sock;entry_sock = socket(AF_INET,SOCK_STREAM,0);

/*connect sock_address with local address and a unique port */ sock_address.sin_port = htons( (unsigned short int)(port_base +

process_id*proc_inc)); sock_address.sin_addr.s_addr = INADDR_ANY;

// everyone may connect sock_address.sin_family = AF_INET;

rc = bind(entry_sock, (void*)&sock_address, sizeof(sock_address));

19

C-Quellcode des Socket-Server-Programms (1)

P. Sobe Internettechnologien

Page 20: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Server source code (C language, important parts only) continued:

listen(entry_sock, BACKLOG);do {

// wait for a new connectionaddrlen = sizeof(client_sock_address); new_sock = accept(entry_sock, (void*)&client_sock_address, &addrlen ); /* connection_fun starten */ params_not_copied=1;

pthread_create(&connection_thread,NULL,(void*)&connection_fun,NULL); /* wait for thread until parameters got copied*/ do { } while(params_not_copied);

} while(1);

20

C-Quellcode des Socket-Server-Programms (2)

P. Sobe Internettechnologien

Page 21: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Server source code (C language, important parts only) continued:

void connection_fun(void *param){selected = new_sock;params_not_copied=0;…// communicate with client according a user-specified protocolread(selected,&pmessage, MSG_LEN);

write(selected,&pmessage, MSG_LEN);

close(selected);}

21

C-Quellcode des Socket-Server-Programms (3)

P. Sobe Internettechnologien

Erklärung:pmessage ist hier die Datenstruktur, die zum Nachrichtenaustausch dient. Sie ist MSG_LEN Bytes lang.

Page 22: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Client source code (C language, important parts only):

sock = socket(AF_INET,SOCK_STREAM,0); serv_addr.sin_addr.s_addr = inet_addr(server_ipaddress); serv_addr.sin_port = htons(server[i].port); serv_addr.sin_family = AF_INET; rc = connect(sock, (struct sockaddr *) &serv_addr, sizeof(serv_addr));

printf("client connected to %s:%d rc=%d \n", server_ipaddress, server[i].port, rc);

write(sock, &pmessage, MSG_LEN);

read(sock, &pmessage, MSG_LEN);

close( sock );

22

C-Quellcode des Socket-Client-Programms

P. Sobe Internettechnologien

Page 23: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Die „benannte Pipe“ (NamedPipe) ist ein alternativer Mechanismus, zwei Prozesse über das Netzwerk zu verbinden.Eine „benannte Pipe“ kann wie eine Datei angesehen werden,die auf der Seite des Server-Rechners eingerichtet ist und einen Kanal zwischen zwei verteilten, kooperierenden Prozessen darstellt. Einer schiebt Daten in den Kanal hinein (Schreiben) und der andere holt sich diese Daten auf der anderen Seite aus dem Kanal heraus (Lesen).

Auf der Clientseite wird über eine URL \\hostname\pipe\pipename der Eingang des Kanals als Datei-Equivalent bereitgestellt.

Peter Sobe 23

„Benannte Pipe“ als Kommunikationskanal (1)

Internettechnologien

Der Datenaustausch läuft danach wie eine normale Dateioperation auf einem lokalen Rechner ab. Auf der Serverseite wird nur der pipenameals Handle zum lokalen Eingang des Kanals bereitgestellt. Damit wird der Kommunikationskanal als eine Art virtuelle Datei angesehen und der Datenaustausch über normale Dateioperationen realisiert.

Page 24: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Peter Sobe 24

Pipe als Kommunikationskanal (2)

Legende: Ablaufsteuerung vom Protokoll der Kooperation a bhängig

Austausch Daten

notwendiger Ablauf

Aktion Aktion

erzeugt Pipe

Wa rtet auf Pipe verfü gbar

Schließt Datei an Pipe an

Wa rtet auf ankomm ende Verbi ndung

em pfängt Daten

Sendet Daten

se ndet Daten

em pfängt Daten

CreateNamedPipe() WaitNamedPipe()

ConnectNamedP ipe() CreateFile()

ReadFile() WriteFile()

WriteFile()

DisconnectNamedP ipe()Löst die Verbi ndung

ReadFile()

CloseHandl e()Schließt Handle

Schließt HandleCloseHandle()

Server Client

Page 25: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Pipe-Funktionen des Servers

Erzeugen von Pipes - CreateNamedPipe()Der Server muss auf seinem Rechner die Pipe erzeugen und dabei die Funktionalität angeben. Bei der Erzeugung gibt er statt seinem eigenen Computernamen einen Punkt an und legt den Pipenamen fest, z. B.: \\.\pipe\p1

Beim Server dient der Punkt (.) als Rechnername. Beim Client muss dann anstatt des Punkts der Rechnername angegeben werden. Beispiel als C-Quelltext: hPipe=CreateNamedPipe("\\\\.\\pipe\\p1", PIPE_ACCESS_INBOUND,

PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, 256,256,1000,NULL);

Pufferlängen für Ein- und Ausgabe sind 256 Bytes, als Time-out Zeit gilt 1000 ms und es sind keine Sicherheitsattribute gesetzt.Peter Sobe 25

Pipe als Kommunikationskanal (3)

Internettechnologien

Page 26: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Warten auf Client-Verbindungen - ConnectNamedPipe()Mit der ConnectNamedPipe()-Funktion leitet der Server einen Warteprozess auf eine Clientanforderung ein. Der erste Parameter ist das Pipe-Handle, der zweite Parameter ist NULL oder enthält einen Pointer auf eine overlapped-Struktur. Beispiel: ConnectNamedPipe(hPipe,NULL);

Aufheben der Client-Verbindungen - DisConnectNamedPipe()Mit der DisConnectNamedPipe()-Funktion beendet der Server eine Verbindung zu einem Client. Der einzige Parameter ist das Pipe-Handle. Der Rückkehrwert ist bei Erfolg verschieden von 0.Beispiel: DisConnectNamedPipe(hPipe);

Schließen des Pipe-Handles - CloseHandle()Mit der CloseHandle ()-Funktion schließt der Server das Handle zu einer Pipe.Beispiel: CloseHandle(hPipe);

Peter Sobe 26

Pipe als Kommunikationskanal (4)

Internettechnologien

Page 27: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Pipe-Funktionen des ClientWarten auf die Verfügbarkeit der Pipe - WaitNamedPipe()Mit der WaitNamedPipe()-Funktion wartet der Client auf die Pipe, die der Server erzeugen muss. Der erste Parameter enthält sowohl host- als auch pipe-Namen in der Form \\hostname\pipe\pipename. Der zweite Parameter enthält eine time-out-Angabe.

Anschluß an eine Pipe - CreateFile()Mit der CreateFile()-Funktion realisiert der Client das Öffnen der Pipe als eine Datei. Der erste Parameter enthält das pipe-Handle in der Form \\hostname\pipe\pipename. Beispiel: hPipe=Create(“\\\\iserver.informatik.htw-dresden.de\\pipe\\p1“, GENERIC_WRITE, 0, NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );

Peter Sobe 27

Pipe als Kommunikationskanal (5)

Internettechnologien

Page 28: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Datenaustausch mit der Pipe Der Client bedient sich hier normaler Datei-Operationen der Windows-oder Unix-Plattform. Im Wesentlichen kommen dabei die ReadFile()-und WriteFile()-Funktionen zum Einsatz. Beispiele:

WriteFile( hPipe, text, strlen(text)+1, &nBytesWritten, NULL ); ReadFile( pipe, buffer, 127, &numBytesRead, NULL );

Bemerkung: text ist hier die Adresse eines Speicherbereichs, der die zu übertragende Nachricht enthält!

In einigen Fällen ist es zweckmäßig, nach der Schreiboperationen die Pipe-Funktion FlushFileBuffers() aufzurufen. Der einzige Parameter ist das Pipe-Handle. Damit wird gewartet, bis die kooperierende Anwendung alle Informationen gelesen hat.Peter Sobe 28

Pipe als Kommunikationskanal (6)

Internettechnologien

Page 29: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Beenden der Verbindung mit der Pipe – CloseHandle()Der Client beendet die Verbindung mit der Pipe durch Aufruf der CloseHandle()-Funktion.

Peter Sobe 29

Pipe als Kommunikationskanal (7)

Internettechnologien

Page 30: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

A new paradigm hides message transfer: Birrell and Nelson, 1984Remote procedure call (RPC):• A program calls a subroutine or procedure in another address

space• RPC is initiated by a client: procedure call and wait for return• request message to server (hidden)• server calls procedure locally and transfers the parameters• response message (hidden)• client continues operation• Sun RPC (UNIX), later Microsoft RPC,• later CORBA and Java RMI for object-oriented languages

Peter Sobe 30

Remote Procedure Call (1)

Internettechnologien

Page 31: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

RPC:

Peter Sobe 31

Remote Procedure Call (2)

Internettechnologien

Client

rc=calculate(p1,p2,p3, &solution);

Server

wait … calculate

client- und server-Stub

Page 32: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

server stub: receives messages, extracts parameters and calls corresponding procedures on the server side, results are sent back to the client

32

Remote Procedure Call (3/3)

P. Sobe

client-stub: provides proximity procedures that collect parameters and compose messages to server, receive responses and copy back results

Verschiedene RPC-Infrastukturen:Sun RPC (UNIX), later Microsoft RPC, CORBA and Java RMI for object-oriented languages, XML-RPC, SOAP-PHP-Webservice

Stubint calc(int x, int y)

OS and network stack

r = calc(a,b);

res = calc(par1,par2);

OS and network stack

Stub: receive and calllocal procedure

Internettechnologien

Page 33: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Web – basierend auf dem Internet Das Internet war bereits eher als das Web vorhanden, mit

verteilten Anwendungen, Dateitransfer, Netzwerk-Dateisystemen (NFS)

Web: entstanden durch Vorhandensein des HTTP-Protokolls, der HTML-Sprache, URLs und DNS (Domain Name Service)

Nutzung des Webs: ein klassisches Client/Server-Szenario Mit dem Web erfolgte eine Kultur- und Wirtschaftsrevolution, da

sich dadurch die Verhaltensweisen der Menschen, die Organisation wirtschaftlicher Prozesse und auch politische Aspekte geändert haben.

Web 2.0: kollaboratives Web, inhaltlich kein serverzentriertes Web mehr

Peter Sobe 33

WWW - (World Wide) Web

Internettechnologien

Page 34: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Hypertext Transport Protocol, größtenteils zum Austausch von Hypertext (HTML, xHTML) benutzt

Herkunft:• Das Protokoll wurde ab 1989 von Roy Fielding, Tim Berners-

Lee und anderen am CERN entwickelt• Zusammenspiel mit den Konzepten URL und HTML.

URL: Unified Ressource LocatorHTML: Sprache zum Aufschreiben von Hypertext-Dokumenten→ Geburt des WWW, (bzw. Web)

• Zur Kommunikation ist HTTP auf ein zuverlässiges Transportprotokoll angewiesen. Dafür wird in nahezu allen Fällen TCP verwendet (Quelle wikipedia)

Peter Sobe 34

HTTP Protokoll (1)

Internettechnologien

Page 35: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Über HTTPS kann die Übertragung aber verschlüsselt erfolgen. HTTPS nutzt SSL aus Transportschicht (Secure Socket Layer) und TLS. Ein HTTPS-Dienst wird typischerweise auf Port 443 angeboten.

HTTP-Eigenschaften: HTTP ist zustandslos Anfrage, Antwort, Ende: keine komplexen

Kommunikationsszenarien Der Zustand eines Clients (Browsers) kann nur über s.g. Cookies

verwaltet werden Typischer Protokollablauf:• Anfrage an Server: Zum Beispiel GET-Request mit Angabe des

Dokumentennamen und des Servers• Antwort: OK, Infos über Server und HTML-Dokument

Peter Sobe 35

HTTP Protokoll (2)

Internettechnologien

Page 36: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Typischer Protokollablauf:• Anfrage an Server:

GET /~sobe/Ueb_Internet/anfang.html HTTP/1.1Host: www2.htw-dresden.de

• Antwort:HTTP/1.1 200 OKDate: Sun, 20 Mar 2011 11:59:21 GMTServer: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g mod_perl/2.0.4 Perl/v5.10.0Vary: Accept-EncodingContent-Length: 1538Connection: closeContent-Type: text/html; charset=iso-8859-1< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN„

"http://www.w3.org/TR/html4/loose.dtd" >< html> ...

Peter Sobe 36

HTTP Protokoll (3)

Internettechnologien

Page 37: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

HTTP-Operationen im Überblick:GET – Anfordern einer Ressource mit Angabe einer URLPOST – Senden von Daten zum Server (z.B. für Formulare)HEAD –Anfordern eines Headers zu einer Ressource PUT – Hochladen einer Ressource,

bei Webservern oft nicht implementiert DELETE – Löschen einer Ressource,

bei Webservern oft nicht implementiert TRACE – Empfangen und Zurücksenden der AnforderungOPTIONS – Server liefert eine Liste der unterstützten

Operationen zurück CONNECT – nur für Proxy-Server

Das Hochladen von Web-Inhalten und Löschen erfolgt meistens durch andere Protokolle (z.B. SFTP Secure File Transfer Prot.) oder SSH (Secure Shell)

Peter Sobe 37

HTTP-Protokoll (4)

Internettechnologien

Page 38: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Weiteres in Kapitel 2

Detailinformationen zum HTTP-Protokoll in RFCs (Request for Comments die De Facto-Standards darstellen)RFC 1945 (HTTP/1.0) http://tools.ietf.org/html/rfc1945RFC 2616 (HTTP/1.1) http://tools.ietf.org/html/rfc2616

Peter Sobe 38

HTTP-Protokoll (5)

Internettechnologien

Page 39: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

HTML – Hypertext Markup LanguageAuszeichungssprache für Web-Seiten

xHTML - eXtensible Hypertext Markup LanguageXML-konformes HTML, weitestgehend gleiche Elemente wie HTML, nun aber streng wohlgeformt

HTML und xHTML wurden inzwischen ersetzt durch HTML5

Peter Sobe 39

HTML und xHTML

Internettechnologien

Page 40: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

In HTML lassen sich JavaScript-Programme einbetten, die auf der Clientseite durch einen Interpreter ausgeführt werden. Damit lassen sich gewisse „dynamische Effekte“ bei der Anzeige eines HTML-Dokumentes erreichen. Das nennt man clientseitiges Scripting. Es bleibt es bei einer Client-Server-Anwendung, d.h. einer 2-Schichten-Anwendung (2-Tier).

Effekte: Anzeigen neuer Bilder zeitgebergesteuerte Animationen Reaktion auf Mausereignisse, Änderung von Eigenschaften von Objekten (Farbe, Stil,…), Öffnen neuer Fenster, Message-Boxen und Dialogfenster Prüfung von Nutzereingaben auf Korrektheit, vor Absenden an Server

Peter Sobe 40

Architektur von Web-Anwendungen (1)

Internettechnologien

Page 41: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Client-seitiges Scripting (Fortsetzung):Ein JavaScript kann auf Eigenschaften von Objekten der grafischen Oberfläche zugreifen und über Methoden Manipulationen durchführen. Das wird durch ein Document Object Model (DOM) ermöglicht.

Architektur-Klassen:2-Tier: Web-Anwendung ohne Scripting,

auch Webanwendungen mit clientseitigem Scripting3-Tier: Webanwendungen mit serverseitigem Scripting4-Tier: Webanwendungen mit serverseitigem Scripting und einer

weiteren funktionalen Ebene (meistens eine Datenbank)

Peter Sobe 41

Architektur von Web-Anwendungen (2)

Internettechnologien

Page 42: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Im Webbrowser, JavaScript • auf Client-Seite ausgeführt• Script-Code wird innerhalb der HTML-Seite übertragen• Script-Code ist typischerweise im Head eingebettet• Das Script kann die Webseite dynamisch verändern, oder

Nachrichtenboxen oder Dialoge initiieren• Nachladen von Inhalten vorerst nicht möglich, ohne eine neue

Webseite zu laden

Andere Programme können auch als HTTP-Client fungieren, um zum Beispiel Daten aus dem Web zu laden und zu verarbeiten.

Peter Sobe 42

Clientseitige Verarbeitung (1)

Internettechnologien

Page 43: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

JavaScript – Beispiel:

…<html><head><title>Die Seite mit dem Datum</title><script language=“JavaScript“> function date() {

var j,m,t;var aktuellesdatum = new Date();t = aktuellesdatum.getDate();m = aktuellesdatum.getMonth()+1;j = aktuellesdatum.getYear()+1900;

document.Formular.Datum.value=t+"."+m+"."+j; } </script></head>

Peter Sobe 43

Clientseitiges Verarbeitung (2)

Internettechnologien

<body … onload=“date()“><form name=“Formular“><input size=10 name=“Datum“/></form></html>

Page 44: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Andere Programme (Vielzahl von Programmiersprachen) können auch als HTTP-Client fungieren, um zum Beispiel Daten aus dem Web zu laden und zu verarbeiten.

Beispiel CURL-Bibliothek, Sprache C:if( handle = url_fopen("http://deinedaten.org/daten.xml", "r") ) {

while(!url_feof(handle)) {url_fgets(buffer, sizeof(buffer), handle);// Weiterverarbeitung des Inhalts von buffer

}url_fclose(handle);

}

Peter Sobe 44

Clientseitige Verarbeitung (3)

Internettechnologien

Beispiel angelehnt an: curl.haxx.se/libcurl/c/fopen.html, Zugriff am 29.3.2017

Page 45: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Die Aufbereitung von Web-Inhalten erfolgt oft durch Programmverarbeitung auf dem Server.

Typische serverseitige Skript-Technologien: CGI + „irgendetwas, das auf dem Server ausgeführt werden

kann und Hypertext zurückliefert“ , typisch ist CGI in Verbindung mit einem Perl-Skript

PHP – eine Sprache, die in HTML eingebettet ist und direkt im Webserver interpretiert wird

Anwendungen, die innerhalb Servlet-Containern ausgeführt werden, die eine Verbindung zu Web-Servern herstellen (Java + Servlet Container, ASP.Net arbeitet ähnlich)

Anwendungen, die selbst einen Web-Server als Software-Komponente ausführen Peter Sobe 45

Serverseitige Verarbeitung (1)

Internettechnologien

Page 46: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

PHP - Hypertext Processor auf Server-Seite ausgeführt Die Ausgabe des Scrips erzeugt Seiteninhalt nur die Ausgabe des Scripts wird per HTTP übertragen PHP-Syntax ist an C und Perl angelehnt

Beispiel:<html>…<script language=“php“>

$i=1;while($i<11) { echo “<br> \n“; $i=$i+1 }

</script>…</html>

Peter Sobe 46

Serverseitige Verarbeitung (2)

Internettechnologien

Page 47: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Active Server Pages (Microsoft ASP.NET) Konzept: Mischung von Webseitencode in HTML mit Programmcode (Visual Basic oder C#) Varianten: eingebetteter Code (Inline, durch <% … %> eingefaßt) Code-behind Modell: gesonderte Quelltextmodule mit Klassen,

die Methoden für Web-Elemente bereitstellen

Durch ASP-Framework werden auch Elemente zur clientseitigen Interaktion mittels JavaScript bereitgestellt

Code wird übersetzt und innerhalb des IIS (Microsoft Webserver) ausgeführt. Entwicklung: Microsoft Visual StudioTest: Visual Web Developer (lokaler Webserver)

Peter Sobe 47

Serverseitiges Vearbeitung (3)

Internettechnologien

Page 48: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Beispiel für eine ASP.NET- Webseite:

<%@ Page Title="Beispiel" Language="vb" MasterPageFile="~/Site.Master" AutoEventWireup="false“ CodeBehind="Default.aspx.vb„ Inherits="WebAppASPNET._Default" %>

<asp:Content ID="HeaderContent" runat="server„ ContentPlaceHolderID="HeadContent">

</asp:Content><asp:Content ID="BodyContent" runat="server"

ContentPlaceHolderID="MainContent"><h2> Eine ASP.NET-Beispielanwendung </h2><% For i = 1 To 3 %><p> Hallo </p><% Response.Write(i)

Next%>

</asp:Content>

Peter Sobe 48

Serverseitige Verarbeitung (4)

Internettechnologien

HTML-, Head- und Body-Tags werden serverseitig automatisch erzeugt. Inhalte können durch Code-behind Module programmiert werden.

gewöhnliche HTML- Elemente

eingebetteter Code (hier Visual Basic)

Page 49: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Peter Sobe 49

Serverseitige Verarbeitung (5)

Internettechnologien

Mehrere Welten:

PHP-basierte Webanwendungen

oft gekoppelt mit MySQL-Datenbank

ASP.NET-basierte Webanwendungen

Gekoppelt mit Microsoft-Plattform, z.B. MS SQL-Server

Wir werden in der Vorlesung und im Praktikum vorrangig PHP benutzen.

Java Servlet, oder JSP im Tomcat Servlet Container, oder JBossApplication Server

Page 50: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Peter Sobe 50

Multi-Tier-Anwendungen

Internettechnologien

Page 51: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Peter Sobe 51

Multi-tier Anwendungen

Internettechnologien

Page 52: 1. Internet-Grundlagen und Überblickswissen · 2017. 3. 29. · Internet-Grundlagen und Überblickswissen Internettechnologien. OSI-Referenzmodell: Open Systems Interconnection Reference

Netzwerke erlauben, Verbindungen zwischen Anwendungsprozessen auf verschiedenen Rechner herzustellen, z.B. durch Socket-Verbindungen oder benannte Pipes

Client/Server – verbreitetes Paradigma für verteilte Systeme Web: Webserver und Client(Browser) Protokolle: Standards/Festschreibungen wie und mit welchen

Nachrichtenformaten kommuniziert wird. Web: HTTP-Protokoll,

transportiert wird: HTML, XML, eingebettete Inhalte, Dateien Client und Serverseite sind programmierbar …

clientseitig und/oder serverseitig durch verschiedene Sprachen Je nach Trennung in verschiedene Schichten (tiers):

2-tier, 3-tier, 4-tier -Web-Anwendungen (Multitier …)

Peter Sobe 52

Zusammenfassung

Internettechnologien