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