Multiuser /Server Systeme Christoph Nießner Seminar: 3D im Web Universität Paderborn Wintersemester 02/03 Übersicht Was sind /Server Systeme Wie sehen Architekturen aus Verteilung der Anwendung Protokolle für die Kommunikation Beispiel Architektur inkl. CVE Donnerstag, 9. Januar 2003 2
Was sind Server Systeme : Programm das auf Anwendungen eines Server zugreift Server: Programm das verschiedene Dienste zur Verfügung stellt Server Systeme: Zusammenschaltung von vielen s und Servern die zusammen eine Anwendungen bilden. Donnerstag, 9. Januar 2003 3 C/S Architek. - Anforderungen Performance Bandbreite (Traffic) Verzögerung (Latenz) Independent Betriebssystem und Hardware Netzwerkanbindung Server Donnerstag, 9. Januar 2003 4
Server Architekturen einstufig (one-tiered) zweistufig (two-tiered) tiered) light zweistufig (two-tiered) tiered) fat dreistufig (three-tiered) tiered) Erstrechner () Daten, Verarbeitung, Dialog Dialog Verarbeitung, Dialog Dialog Zweitrechner (Server) - Verarbeitung, Daten Daten Verarbeitung Drittrechner (Server) - - - Daten Donnerstag, 9. Januar 2003 5 Architekturen besondere Bsp übernimmt auch Servertätigkeiten (ICQ) ICQ Direkte Kommunikation ICQ - realisiert Dialog, Verarbeitung und Daten - besonders wenig Kommunikation Game Game ICQ Server Game Server Donnerstag, 9. Januar 2003 6
Verteilung Was wird auf und Server verteilt? Statische Daten Algorithmen (Datenverarbeitung) Dialogsysteme Was für Ziele? Bandbreite Latenz Donnerstag, 9. Januar 2003 7 Verteilung light Idee: Server koordiniert die s und übernimmt die Berechnungen der s enthält nur das Dialogsystem Vorteile: Kleiner Keine Veränderung der Algorithmen und Daten möglich Nachteile: Große Latenz Starke Belastung des Servers bei vielen s Donnerstag, 9. Januar 2003 8
Verteilung fat Idee: Dialogsystem und Algorithmen liegen beim Server koordiniert nur die Verbindungen der s Vorteile: Kleine Latenz bei der Verarbeitung Performance Einsparung beim Server Bandbreite gering Nachteile: software sehr groß Veränderung der Algorithmen im möglich Donnerstag, 9. Januar 2003 9 Protokolle Realisieren die Datenübertragung zwischen und Server Sichern die Korrektheit der Daten Reihenfolge Fehlerfreiheit Sichern die Vollständigkeit der Daten Donnerstag, 9. Januar 2003 10
Protokolle OSI Modell IP (Internet Protokoll) TCP (Transmission control Protocol ) UDP (User Datagram Protocol) Donnerstag, 9. Januar 2003 11 Protokolle - IP 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Version header length Type of Service total length identification Flag Fragment offset time to live protocol Type header checksum source address Destination address z.b. Internet 192.168.0.26 192.168.0.40 Donnerstag, 9. Januar 2003 12
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 Donnerstag, 9. Januar 2003 13 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
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 Donnerstag, 9. Januar 2003 15 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
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 Donnerstag, 9. Januar 2003 17 Java RMI RMI Remote Methode Invocation Aufruf von Objektmethoden in entfernten Java VM Methoden Aufrufe gehen über den Stub an das Server Skeleton in der Server VM Registry als Verzeichnisdienst für Remote Aufrufe Donnerstag, 9. Januar 2003 18
Virtual Machine Java RMI Virtual Machine RMI Registry (Naming Service) Object use referenz register Server Object (remote Object) call Stub Server Skeleton Donnerstag, 9. Januar 2003 19 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
CORBA Stub realisiert des Objektinterface beim 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 Donnerstag, 9. Januar 2003 21 CORBA - IDL Alle Objectinterfaces werden mit der IDL beschrieben Compiler zu viele Sprachen vorhanden Stubs und Object Skeletons werden aus der IDL in evtl. verschieden Sprachen generiert IDL Beschreibung des Objectes Server IDL Compiler IDL Compiler Stub Object Skeleton Donnerstag, 9. Januar 2003 22
CORBA Object Object stub Object skeleton 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 s CVE sehr complex, schnell Sound, Chat, Gesten, Latenz <200ms Bandbreite <4kB Donnerstag, 9. Januar 2003 24
: C/S Architektur mit CVE am Beispiel von Quake3 P2 >400Mhz Grafikkarte 16 MB und Open GL Unterstützung 64 MB Speicher Server: Pentium >166 Mhz >128 MB Speicher Keine Anforderungen an Grafikkarte Donnerstag, 9. Januar 2003 25 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