Multiuser Client/Server Systeme

Werbung
Multiuser
Client/Server Systeme
Christoph Nießner
Seminar:
3D im Web
Universität Paderborn
Wintersemester 02/03
Übersicht
„
„
„
„
„
Was sind Client/Server Systeme
Wie sehen Architekturen aus
Verteilung der Anwendung
Protokolle für die Kommunikation
Beispiel Architektur inkl. CVE
Donnerstag, 9. Januar 2003
2
1
Was sind Client Server Systeme
„
Client:
„
„
Server:
„
„
Programm das auf Anwendungen eines Server
zugreift
Programm das verschiedene Dienste zur Verfügung
stellt
Client Server Systeme:
„
Zusammenschaltung von vielen Clients und Servern
die zusammen eine Anwendungen bilden.
3
Donnerstag, 9. Januar 2003
C/S Architek. - Anforderungen
„
Performance
Bandbreite (Traffic)
„ Verzögerung (Latenz)
„
„
Independent
Client
Client
Server
Betriebssystem und Hardware
„ Netzwerkanbindung
„
Client
Donnerstag, 9. Januar 2003
4
2
Client Server Architekturen
Erstrechner
(Client)
Zweitrechner
(Server)
Drittrechner
(Server)
einstufig
(one(one-tiered)
Daten,
Verarbeitung,
Dialog
-
-
zweistufig
(two(two-tiered)
light Client
Dialog
Verarbeitung,
Daten
-
zweistufig
(two(two-tiered)
fat Client
Verarbeitung,
Dialog
Daten
-
dreistufig
(three(three-tiered)
Dialog
Verarbeitung
Daten
5
Donnerstag, 9. Januar 2003
Architekturen – besondere Bsp
Client übernimmt auch
Servertätigkeiten (ICQ)
- besonders wenig Kommunikation
Direkte
Kommunikation
ICQ
Client
- Client realisiert Dialog,
Verarbeitung und Daten
Game
Client
Game
Client
ICQ
Client
Game
Server
ICQ
Server
Donnerstag, 9. Januar 2003
6
3
Verteilung
„
Was wird auf Client und Server verteilt ?
Statische Daten
„ Algorithmen (Datenverarbeitung)
„ Dialogsysteme
„
„
Was für Ziele ?
Bandbreite
„ Latenz
„
Donnerstag, 9. Januar 2003
7
Verteilung – light Client
„
Idee:
„
„
„
Vorteile:
„
„
„
Server koordiniert die Clients und übernimmt die
Berechnungen der Clients
Client enthält nur das Dialogsystem
Kleiner Client
Keine Veränderung der Algorithmen und Daten möglich
Nachteile:
„
„
Große Latenz
Starke Belastung des Servers bei vielen Clients
Donnerstag, 9. Januar 2003
8
4
Verteilung – fat Client
„
Idee:
„
„
„
Vorteile:
„
„
„
„
Dialogsystem und Algorithmen liegen beim Client
Server koordiniert nur die Verbindungen der Clients
Kleine Latenz bei der Verarbeitung
Performance Einsparung beim Server
Bandbreite gering
Nachteile:
„
„
Clientsoftware sehr groß
Veränderung der Algorithmen im Client möglich
9
Donnerstag, 9. Januar 2003
Protokolle
„
„
Realisieren die Datenübertragung zwischen
Client und Server
Sichern die Korrektheit der Daten
Reihenfolge
„ Fehlerfreiheit
„
„
Sichern die Vollständigkeit der Daten
Donnerstag, 9. Januar 2003
10
5
Protokolle – OSI Modell
„
„
„
IP (Internet Protokoll)
TCP (Transmission
control Protocol )
UDP (User Datagram
Protocol)
11
Donnerstag, 9. Januar 2003
Protokolle - IP
0
1
2
3
Version
4
5
6
7
8
9
10
header length
11
12
13
14
15
Type of Service
total length
identification
Flag
Fragment offset
time to live
protocol Type
header checksum
source address
Destination address
192.168.0.26
Donnerstag, 9. Januar 2003
z.B. Internet
192.168.0.40
12
6
Protokolle - IP
„
„
„
„
„
„
Datenübertragung von einem Sender zu einem
Empfänger über verschieden Netzwerke hinweg
Paket orientiert
Verbindungsloses Protokoll
Möglichkeit von Paket Verlust
Möglichkeit von Reihenfolge Vertauschungen
Keine Reparatur von defekten Paketen
13
Donnerstag, 9. Januar 2003
Protokolle - TCP
0
1
2
3
4
5
6
7
8
9
10 11 12
13
14
15
port number of the source
port number of the Destination
Sequenz number
acknowledgement number
offset
reserved
flags
window
checksum
Urgent Pointer
Options (variabel)
Padding (variabel)
Donnerstag, 9. Januar 2003
14
7
Protokolle - TCP
„
„
„
„
„
„
Verbindungs orientierte Packetvermittlung
zwischen 2 IP Adressen
Fehlerkorrektur bei defekten Paketen
Erneutes Senden bei verlorenen Paketen
Sicherung der Reihenfolge der Pakete
Langsam da Protokoll viel Overhead benötigt
Kein Multicast
15
Donnerstag, 9. Januar 2003
Protokolle - UDP
0
1
2
3
4
5
6
7
8
9 10
11
12
13
14
15
port number of the source
port number of the Destination
length of UDP
checksum of UDP
Daten …..
Donnerstag, 9. Januar 2003
16
8
Protokoll - UDP
„
„
„
„
„
„
„
Verbindungslose Übertragung zu einer IP
Adresse
Multicast fähig
Kein Acknowledge
Fehlererkennung, keine Fehlerkorrektur
Keine Kontrolle ob alle Pakete ankommen
Keine Beachtung der Reihenfolge
Schnell durch wenig Sicherung
17
Donnerstag, 9. Januar 2003
Java RMI
„
„
„
„
RMI – Remote Methode Invocation
Aufruf von Objektmethoden in entfernten Java
VM
Methoden Aufrufe gehen über den Client Stub
an das Server Skeleton in der Server VM
Registry als Verzeichnisdienst für Remote
Aufrufe
Donnerstag, 9. Januar 2003
18
9
Java RMI
Virtual Machine
Virtual Machine
RMI Registry
(Naming Service)
Client
Object
register
use
e
ref
z
ren
Server Object
(remote Object)
call
Client
Stub
Server
Skeleton
19
Donnerstag, 9. Januar 2003
CORBA
„
„
„
„
„
CORBA – Common Object Request Broker
Architekture
Objekte sollen ohne Kenntnis von
Aufenthaltsort und Implementierung benutzbar
sein
Kernidee ist der ORB (Object request Broker)
Erste Version 1991 von der OMG veröffentlicht
CORBA 2.0 1994 mit IIOP Protokoll
Donnerstag, 9. Januar 2003
20
10
CORBA
„
„
„
„
Client Stub realisiert des Objektinterface beim
Client
Object Skeleton realisiert das Objektinterface
für den ORB
IDL – Interface Definition Language angelehnt
an C
IIOP Protokoll setzt sich aus GIOP und
TCP/IP zusammen
21
Donnerstag, 9. Januar 2003
CORBA - IDL
„
„
„
Alle Objectinterfaces werden mit der IDL beschrieben
Compiler zu viele Sprachen vorhanden
Client Stubs und Object Skeletons werden aus der IDL
in evtl. verschieden Sprachen generiert
IDL Beschreibung
des Objectes
Client
IDL Compiler
Client Stub
Donnerstag, 9. Januar 2003
Server
IDL Compiler
Object Skeleton
22
11
CORBA
Client
Object
Client
Object
Client
stub
Object
skeleton
Client
stub
Object
skeleton
ORB
Object Request Broker
IIOP (TCP/IP)
ORB
Object Request Broker
Donnerstag, 9. Januar 2003
23
C/S Architektur mit CVE am
Beispiel von Quake3
„
„
„
„
„
„
First Person Shooter von IdSoft 1999
max 64 Clients
CVE sehr complex, schnell
Sound, Chat, Gesten,
Latenz <200ms
Bandbreite <4kB
Donnerstag, 9. Januar 2003
24
12
C/S Architektur mit CVE am
Beispiel von Quake3
„
Client:
P2 >400Mhz
„ Grafikkarte 16 MB und Open GL Unterstützung
„ 64 MB Speicher
„
„
Server:
Pentium >166 Mhz
„ >128 MB Speicher
„ Keine Anforderungen an Grafikkarte
„
25
Donnerstag, 9. Januar 2003
Referenzen
„
„
„
„
CORBA: Object Management Group
www.omg.org
Java RMI: http://developer.java.sun.com
RFC: www.rfc.com
Quake3: IdSoft www.idsoftware.com
Donnerstag, 9. Januar 2003
26
13
Herunterladen