Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000
Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen Teil 3 Verteilungsplattformen Teil 4 verteilte Objektmodelle
Das Client/Server-Konzept (1) Anwendungen werden in einzelne Komponenten zerlegt, und zwar: Ein oder mehrere Clients Ein oder mehrere Server Die Client-Komponenten fordern zur Bearbeitung einer Aufgabe sogenannte Dienste an, die von den Server-Komponenten zur Verfügung gestellt werden. 1
Das Client/Server-Konzept (2) Das Client/Server-Konzept definiert: die Bezeichnung der Anwendungskomponenten: Client (nutzt Dienste) oder Server (bietet einen Dienst an) und den zeitlichen Ablauf einer Interaktion zwischen Client und Server. 2
Das Client/Server-Konzept (3) Es handelt sich bei der Client Server- Interaktion keineswegs um eine eins-zu-eins- Kommunikation, denn ein Client kann mehrere Server zur Bearbeitung einer Aufgabe in Anspruch nehmen. ein Server kann Aufträge mehrerer Clients zu bearbeiten haben. Außerdem sind die Rollen der Anwendungsbausteine nicht fest vergeben, denn Ein Server kann zur Bearbeitung eines Auftrages selbst einen Dienst in Anspruch nehmen damit wird er zum Client. 3
Definition eines Client/Server-Systems Anhand der folgenden 6 Merkmale werden Client/Server-Systeme identifiziert: Bildung von Diensten Aufteilung der Applikation in Clients und Server. Verteilung von Diensten Anwendungskomponenten können sich auf verschiedenen Rechnern befinden. Interoperabilität der Dienste Die Anwendungskomponenten arbeiten an einer gemeinsamen Aufgabe. Kapselung von Diensten Den Clients ist es egal, wie die Servern intern arbeiten. Nachrichtenbasierter Datenaustausch Daten werden über Nachrichten zwischen den Anwendungskomponenten ausgetauscht. Standort-Transparenz Die Clients wissen nicht, auf welchen Rechnern sich die Server befinden. 4
Bestandteile eines Client/ Server-Systems Hardware: Rechner, Peripheriegeräte, Kommunikationsausrüstung. Software: Unterscheidung folgender Elemente: Infrastrukturfunktionen Bildschirmausgabe, Datenverwaltung, Kommunikationsmechanismen. Client/Server-Architekturen Beschreiben, wie die Clients und Server auf mehrere Rechner verteilt werden. Verteilungsplattform Software, die den Nachrichtenaustausch zwischen Clients und Servern regelt. 5
Client/Server-Architekturen Die Client/Server-Architekturen werden anhand der Verteilung der Komponenten (der Verteilungsform) klassifiziert. Um eine Client/Server-Anwendung verteilen zu können, teilt man sie in die folgenden 5 Schichten ein: Präsentation Bildschirmausgabe Steuerung Interaktion mit dem Benutzer Applikation Anwendungslogik Datenverwaltung Überprüft Geschäftsregeln, die Abhängigkeiten zwischen den Anwendungsdaten beschreiben Datenhaltung Persistente Speicherung der Anwendungsdaten 6
Client/Server-Architekturen Verteilungsformen Aus der Sicht des Benutzers ergeben sich mit den 5 Schichten die folgenden 6 Verteilungsformen: Verteilungsform Präsen- Steuer- Appli- Datenver- Datentation ung kation waltung haltung verteilte Client Server Präsentation entfernte Client Server Präsentation kooperative Client Client/ Server Verarbeitung Server persistente Client Server Geschäftsregeln entfernte Client Server Datenbank verteilte Client Client/ Datenbank Server 7
Auswahlkriterien für die Client/ Server-Architektur Anhand der folgenden Kriterien wird eine Verteilungsform und damit die entsprechende Client/Server-Architektur ausgewählt: Herausbilden von Diensten Mehrfach verwendete Funktionen als Dienste anbieten können. Einfache Integration der Teilnehmerprogramme Einfaches Einbinden der Mitspieler möglich. Erweiterbarkeit Später problemlose Erweiterung des Funktionsumfanges durch Hinzufügen neuer Dienste möglich. Performance Möglichst wenig Netzwerkbelastung. 8
Auswahl einer Client/ Server-Architektur Für die Entwicklung des COSI-Systems wird die Architektur kooperative Verarbeitung eingesetzt. Überprüfung der Kriterien: Herausbilden von Diensten: Sehr anwendungsnahe Dienste. Einfache Integration der Teilnehmerprogramme: Spieler und Spielleiter kommunizieren über das Netzwerk. Erweiterbarkeit: Gut strukturierter Systemaufbau. Performance: Verschiedene Teile der Anwendungslogik kommunizieren über das Netzwerk miteinander. 9
Verteilungsplattformen Die folgenden Software-Infrastrukturen können als Verteilungplattform für Client/Server- Applikationen dienen: Peer-to-Peer-Kommunikation Übertragung von Datenströmen. Client/Server-Datenbanken Trennung von Anwendungslogik und Daten. Verteilte Objektmodelle Objektreferenzen über Prozeß- und Rechnergrenzen hinaus. Message Passing Nachrichten werden zentral verwaltet. Remote Procedure Calls Funktionsaufrufe über Prozeß- und Rechnergrenzen hinaus. Verteilte Transaktionsmonitore Asynchroner Zugriff auf Datenbestände, deren Konsistenz gesichert ist. 10
Auswahlkriterien für die Verteilungsplattform Anhand der folgenden Kriterien wird eine Verteilungsplattform ausgewählt: Kompatibilität Unabhängigkeit von der Rechnerplattform. Transparenz Verbergen der Netzwerktechnik. Adaption Anpaßbar an die organisatorischen Strukturen des Problembereichs. Unabhängigkeit vom Transportsystem Funktioniert mit jeder Netzwerktechnik. Funktionalität Alle Komponenten lassen sich realisieren. Einfachheit Keine Spezialkenntnisse erforderlich. Effizienz Geringe Netzwerkbelastung. 11
Auswahl einer Verteilungsplattform Für die Entwicklung des COSI-Systems wird ein verteiltes Objektmodell verwendet. Überprüfung der Kriterien: Kompatibilität: Erfüllt, da standardisiert. Transparenz: Aufrufe entfernter Methoden unterscheiden sich nicht von denen lokaler. Adaption: Beschreibung des Aufgabenbereichs durch Objekte einfach. Unabhängigkeit vom Transportsystem: Erfüllt, da hohes Abstraktionsniveau. Funktionalität: Sehr umfangreiches Funktionenangebot. Einfachheit: Kaum Spezialkenntnisse erforderlich. Effizienz: Nicht erfüllt, da hohes Abstraktionsniveau. 12
Verteilte Objektmodelle Verteilte Objektmodelle erlauben eine Verwendung von Objekten über die Grenzen eines Prozesses/Rechners hinaus. Die drei wichtigsten verteilten Objektmodelle sind: RMI Remote Method Invocation Bestandteil des Java Development Kits von Sun DCOM/COM Distributed Component Object Model/Component Object Model Entwicklung von Microsoft CORBA Common Object Request Broker Architecture Entwicklung der Object Management Group 13
Die Funktionsweise verteilter Objektmodelle Erweiterung einfacher Objektmodelle: Trennung von Schnittstelle und Implementierung eines Objektes. Schnittstellen werden mit programmiersprachenunabhängigen Interface Definition Languages beschrieben. Einführung von Referenzen auf Objekte, die sich in einem anderen Prozeß oder auf einem anderen Rechner befinden. Einführung von lokalen Stellvertreterobjekten für die entfernten Objekte. 14
Auswahlkriterien für das verteilte Objektmodell Anhand der folgenden Kriterien soll ein verteiltes Objektmodell ausgewählt werden: Kompatibilität Unabhängigkeit von der Rechnerplattform. Sprachunabhängigkeit Miteinander kommunizierende Objekte dürfen in verschiedenen Sprachen implementiert sein. Flexibilität Einbindung von Objekten möglich, die zur Zeit des Übersetzens der Applikation unbekannt waren. Objektorientierung Unterstützung des objektorientierten Konzeptes. Funktionalität Es werden erweiterte Funktionen angeboten. 15
Auswahl eines verteilten Objektmodells Für die Entwicklung des COSI-Systems wird das verteilte Objektmodell CORBA eingesetzt. Überprüfung der Kriterien: Kompatibilität: Standardisiert und für viele Plattformen verfügbar. Sprachunabhängigkeit: Die verwendete Interface Definition Language ist programmiersprachenunabhängig. Flexibilität: Unterstützt dynamische Methodenaufrufe. Objektorientierung: Bildet das klassische Objektmodell ab. Funktionalität: Es werden über das verteilte Objektmodell hinausgehende Funktionen angeboten. 16
Vor- und Nachteile bei Client/ Server-Systemen Vorteile Flexibel. Strukturiert. Einzelne Server sind einfach wartbar. Nachteile Gesamtsystem ist komplex. Bei Verteilung über das Netzwerk sind Sicherheitsmechanismen erforderlich. 17