Verteilte und parallele Systeme - Fachhochschule Düsseldorf
Verteilte und parallele Systeme - Fachhochschule Düsseldorf
Verteilte und parallele Systeme - Fachhochschule Düsseldorf
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Verteilte</strong> <strong>und</strong> <strong>parallele</strong> <strong>Systeme</strong><br />
Vorlesung WS 2006/2007<br />
<strong>Fachhochschule</strong> <strong>Düsseldorf</strong><br />
Prof. Dr. Wolfgang Lux<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 1<br />
Übersicht über die Vorlesung I<br />
Gr<strong>und</strong>lagen:<br />
1. Einführung<br />
2. Kommunikation<br />
3. Prozesse<br />
4. Namen<br />
5. Synchronisierung<br />
6. Konsistenz <strong>und</strong> Replikation<br />
7. Fehlertoleranz<br />
8. Sicherheit<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 2
Übersicht über die Vorlesung II<br />
Paradigmen:<br />
9. <strong>Verteilte</strong> objektbasierte <strong>Systeme</strong><br />
10. <strong>Verteilte</strong> Dateisysteme<br />
11. <strong>Verteilte</strong> dokumentenbasierte <strong>Systeme</strong><br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 3<br />
1. Einleitung<br />
2. Ziele<br />
3. Hardware-Konzepte<br />
4. Software-Konzepte<br />
5. Client-Server-Modell<br />
6. Zusammenfassung<br />
7. Literatur<br />
1 Einführung<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 4
Definition<br />
Ein verteiltes System ist eine Menge voneinander<br />
unabhängiger Rechner, die dem Benutzer wie ein<br />
einzelnes, kohärentes System erscheinen.<br />
1. Hardware-Aspekt: autonome Rechner<br />
2. Software-Aspekt: Benutzer sehen ein einziges System.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 5<br />
Eigenschaften von verteilten <strong>Systeme</strong>n<br />
1. Unterschiedliche Rechner <strong>und</strong> Kommunikationsarten<br />
bleiben dem Benutzer verborgen.<br />
2. Die interne Organisation des verteilten Systems bleibt<br />
ebenfalls verborgen.<br />
3. Benutzer <strong>und</strong> Applikationen können auf einheitliche,<br />
konsistente Weise miteinander zusammenarbeiten.<br />
4. <strong>Verteilte</strong> <strong>Systeme</strong> sind skalierbar, d.h. Rechner können<br />
hinzugefügt oder ersetzt werden.<br />
5. Eine Software-Schicht verdeckt die heterogenen<br />
Rechner <strong>und</strong> Netzwerke. Ein derartiges verteiltes System<br />
bezeichnet man auch als Middleware.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 6
Middleware-Dienste<br />
Beispiele: WWW oder Informationssystem in einem Unternehmen<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 7<br />
1.2 Ziele<br />
1. Benutzer <strong>und</strong> Ressourcen verbinden: Benutzer sollen<br />
möglichst einfach auf entfernte Ressourcen zugreifen<br />
<strong>und</strong> sie gemeinsam mit anderen Benutzern nutzen, z.B.<br />
gemeinsame Nutzung eines Superrechners.<br />
2. Transparenz: Ein verteiltes System ist transparent,<br />
wenn es sich seinen Benutzern so präsentiert, als sei es<br />
ein einziges System:<br />
1. Zugriffstransparenz: unterschiedliche Darstellung<br />
2. Ortstransparenz: Aufenthaltsort unbekannt<br />
3. Sonstige: Migrationstransparenz,<br />
Replikationstranparenz, Fehlertransparenz,<br />
Nebenläufigkeitstransparenz, Persistenztransparenz<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 8
Ziele II<br />
• Offenheit: Ein offenes verteiltes System bietet Dienste<br />
mit Regeln an, die die Syntax <strong>und</strong> Semantik der Dienste<br />
beschreiben (Schnittstellenbeschreibung in IDL).<br />
• Ein System ist flexibel, wenn es aus verschiedenen<br />
Komponenten konfiguriert werden kann. Neue<br />
Komponenten sollen einfach hinzugefügt werden<br />
können.<br />
• Skalierbarkeit: Ein VS soll skalierbar in Bezug auf<br />
Größe (Benutzer u. Ressourcen hinzufügen), Geographie<br />
(weit auseinander liegen) <strong>und</strong> Administration<br />
(unterschiedlicher Unternehmensstrategien) sein.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 9<br />
1.2.4.4 Skalierungstechniken<br />
Gr<strong>und</strong>sätzliche Techniken für Skalierung<br />
1. Verbergen der Kommunikationslatentzeiten<br />
– Asynchrone Kommunikation in batchverarbeitenden <strong>Systeme</strong>n.<br />
– Reduzierung der Kommunikation in interaktiven <strong>Systeme</strong>n, z.B.<br />
vor der Übertragung zum Server wird ein Formular vollständig<br />
mit Konsistenz-Checks ausgefüllt (Applets).<br />
2. Verteilung: Aufteilung einer Komponenten in kleine<br />
Teile, die verteilt werden, z.B. das Internet DNS (Domain<br />
Name System) ist als hierarchischer Baum in<br />
nichtüberlappende Zonen verteilt, die jeweils von einem<br />
Server verwaltet werden.<br />
3. Replikation: mehrere Kopien einer Ressource. Problem<br />
wie beim Caching ist die Aufrechterhaltung der<br />
Konsistenz zwischen den Kopien.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 10
1.3 Hardware-Konzepte<br />
• Klassifizierung von Rechnersystemen mit mehreren<br />
Prozessoren:<br />
1. Multiprozessoren: ein physikalischer Adressraum, der von allen<br />
CPUs gemeinsam benutzt wird. Eine Schreib-Operation ist für alle<br />
CPUs sichtbar.<br />
2. Multicomputer: jeder Rechner hat seinen eigenen Adressraum. Eine<br />
Schreib-Operation ist für die anderen CPUs nicht sichtbar.<br />
• Beide Klassen können anhand der Verbindungsstruktur weiter<br />
klassifiziert werden:<br />
– Bus-basiert: eine Verbindungsmedium verbindet alle CPUs, z.B. über<br />
einen Systembus.<br />
– Schalter-basiert: Einzelne Verbindungen von Rechner zu Rechner,<br />
wobei unterschiedliche Strukturen möglich sind, z.B. Stern.<br />
• Multicomputer sind homogen (gleiche CPUs <strong>und</strong> Netzwerk)<br />
oder heterogen (unterschiedliche CPUs oder Netzwerke)<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 11<br />
Unterschiedliche verteilte <strong>Systeme</strong><br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 12
Bus-basierender Multiprozessor mit Caches<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 13<br />
1.3.3 Heterogene Multicomputersysteme<br />
• Heterogene Multicomputersysteme unterscheiden sich<br />
bzgl. Prozessortyp, Speichergrößen <strong>und</strong> I/O-Bandbreiten.<br />
• Die Verbindungsnetzwerke sind ebenfalls heterogen.<br />
• Beispiel: lokale Netzwerke einzelner Abteilungen werden<br />
über ein Hochgeschwindigkeitsverbindungsrechner<br />
miteinander verb<strong>und</strong>en. Zusätzliche Anbindung an<br />
öffentliche Netze.<br />
• Meist existiert keine globale Systemsicht, d.h.<br />
Anwendungen stehen nicht überall die gleichen Leistungen<br />
<strong>und</strong> Dienste zur Verfügung, d.h. es ist schwierig<br />
Anwendungen für heterogene <strong>Systeme</strong> zu erstellen.<br />
• <strong>Verteilte</strong> <strong>Systeme</strong> stelle eine Softwareschicht zur<br />
Verfügung, die die Heterogenität versteckt <strong>und</strong> so die<br />
Anwendungsentwicklung vereinfacht.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 14
1.4 Software-Konzepte<br />
• <strong>Verteilte</strong> <strong>Systeme</strong> stellen analog zu Betriebssystemen<br />
Ressourcen über eine virtuelle Maschine bereit, wobei die<br />
Heterogenität der darunter liegenden Hardware <strong>und</strong><br />
Software verborgen wird.<br />
• Man unterscheidet:<br />
– <strong>Verteilte</strong> Betriebssysteme (DOS, Distributed Operating Systems)<br />
sind eng gekoppelte <strong>Systeme</strong>. Ziel: die Komplexität der<br />
Verwaltung der zugr<strong>und</strong>eliegenden HW zu verbergen.<br />
– Netzwerkbetriebssysteme (NOS, Network Operating Systems)<br />
sind locker gekoppelte <strong>Systeme</strong>. Neben der Verwaltung der HW ist<br />
die Bereitstellung von Diensten für entfernte Clients ein weiteres<br />
Ziel.<br />
• <strong>Verteilte</strong> <strong>Systeme</strong> erweitern die Netzwerkbetriebssysteme:<br />
Eine Middleware macht die Verteilung transparent.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 15<br />
1.4.1 <strong>Verteilte</strong> Betriebssysteme<br />
• Man unterscheidet:<br />
1. Multiprozessor-Betriebssysteme verwalten die<br />
Ressourcen eines Multiprozessors.<br />
2. Multicomputer-Betriebssysteme verwalten<br />
homogene Multicomputer.<br />
• Die Funktionalität verteilter Betriebssysteme entspricht<br />
im Wesentlichen der Funktionalität der traditionellen<br />
Betriebssysteme, wobei mehrere CPUs verwaltet<br />
werden.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 16
1.4.1.2 Aufteilung BS: Mikrokern + Module<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 17<br />
1.4.1.3 Mehrprozessor-Betriebssysteme<br />
• Mehrere Prozessoren haben Zugriff auf den gemeinsamen<br />
Speicher, in dem auch die Datenstrukturen des BS abgelegt<br />
sind.<br />
• Um die Konsistenz zu wahren, müssen sie gegen<br />
gleichzeitigen Zugriff geschützt werden.<br />
• Moderne BS sind darauf ausgelegt, mehrere Prozessoren zu<br />
unterstützen.<br />
• Elementare Synchronisationsprimitive:<br />
– Semaphore: Zähler mit atomaren Operationen down <strong>und</strong> up.<br />
Mutex: binäres Semaphor. Problem: kompliziert <strong>und</strong> somit<br />
fehleranfällig.<br />
– Monitore: Modul mit Variablen <strong>und</strong> Prozeduren, wobei nur ein<br />
Prozeß gleichzeitig eine Prozedur ausführen kann (Wechselseitiger<br />
Ausschluß). Zusätzlich können bedingte Variablen mit den<br />
zugehörigen Operationen wait <strong>und</strong> signal definiert werden.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 18
1.4.1.4 Multicomputer-Betriebssysteme<br />
• Die Datenstrukturen der Betriebssysteme sind auf mehrere<br />
Speicher verteilt.<br />
• Die Kommunikation erfolgt über Nachrichtenaustausch<br />
oder gemeinsam genutzten Speicher.<br />
• Jeder Rechner hat eigenen BS-Kern, der lokale Ressourcen<br />
verwaltet.<br />
• Zusätzliches Modul für die Kommunikation zwischen den<br />
Rechnern.<br />
• Oberhalb jedes Kerns befindet sich eine gemeinsame<br />
Software-Schicht, die eine virtuelle Maschine für die<br />
<strong>parallele</strong>, nebenläufige Ausführung anbietet.<br />
• Weitere Aufgaben: Zuordnung von Aufgaben an bestimmte<br />
Prozessoren, Maskierung von HW-Fehlern, transparenter<br />
Speicher <strong>und</strong> Kommunikation zwischen Prozessen.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 19<br />
Architektur von<br />
Multicomputer-Betriebssystemen<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 20
W. Lux, FH <strong>Düsseldorf</strong><br />
1.4.1.4.2 Multicomputersysteme<br />
mit gemeinsam genutztem Speicher<br />
• Programmierung vom Multicomputern mittels<br />
Nachrichtenaustausch ist kompliziert (Pufferung <strong>und</strong><br />
Synchronisation).<br />
• Alternative: verteilter gemeinsamer Speicher (DSM,<br />
distributed shared memory), der sich über alle Rechner<br />
erstreckt.<br />
• Realisierung:<br />
– Der Adreßraum ist in Seiten unterteilt, wobei die Seiten über die<br />
Rechner verteilt sind.<br />
– Beim Zugriff auf eine Seite, die lokal nicht vorhanden ist, tritt ein<br />
Seitenfehler auf <strong>und</strong> das BS holt die Seite vom anderen Rechner.<br />
– Zur Steigerung der Performance können Seiten mehrfach auf<br />
verschiedenen Rechnern existieren.<br />
– Sobald eine derartige Seite modifiziert wird, werden die anderen<br />
Kopien ungültig.<br />
VS: Kap 1. Einführung 21<br />
Beispiel für DSM mit einer Kopie<br />
Seite 10:<br />
Von 2 nach 1<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 22
1.4.2 Netzwerkbetriebssysteme<br />
• Alle Rechner sind über ein Netzwerk miteinander<br />
verb<strong>und</strong>en, wobei unterschiedliche HW, BS <strong>und</strong><br />
Netzwerkverbindungen möglich sind.<br />
• Netzwerkbetriebssysteme stellen Dienste für die Nutzung<br />
entfernter Rechner bereit:<br />
– rlogin ermöglicht die manuelle Anmeldung an einem entfernten<br />
Rechner. Auf diesem Rechner können dann Anwendungen<br />
gestartet werden, deren Ausgabe auf dem lokalen Rechner<br />
angezeigt werden.<br />
– rcp kopiert Dateien zwischen beliebigen Rechnern, wobei der<br />
genaue Aufenthaltsort der Dateien bekannt sein muß.<br />
– Komfortablere Alternative: gemeinsam genutztes, globales<br />
Dateisystem, das über mehrere Rechner verteilt sein kann <strong>und</strong> auf<br />
das alle Rechner zugreifen können, z.B. NFS.<br />
– Globale Dateisysteme werden in das lokale Dateisystem montiert,<br />
d.h einheitliche Sicht auf einen großen Dateibaum.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 23<br />
1.4.2.1 Architektur von<br />
Netzwerkbetriebssystemen<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 24
1.4.2.2 Eigenschaften von<br />
Netzwerkbetriebssystemen<br />
• Zugriffe sind nicht transparent, d.h. ein Benutzer muß<br />
die entfernten Rechner explizit adressieren.<br />
• Jeder Rechner wird separat verwaltet, d.h. ein Benutzer<br />
muß für jeden Rechner, den er benutzen will, einen<br />
Account besitzen.<br />
• Zugriffsberechtigungen werden ebenfalls dezentral<br />
verwaltet, wodurch eine systemweite Änderung von<br />
Berechtigungen schwierig ist.<br />
• Da die Rechner unabhängig voneinander sind, können<br />
neue Rechner auf einfache Weise hinzugefügt werden,<br />
d.h. die Vergabe einer neuen Netzwerkadresse ist<br />
ausreichend (Ein zusätzlicher DNS-Eintrag erleichtert<br />
jedoch den Zugriff).<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 25<br />
1.4.3 Middleware<br />
• Die Anforderungen an verteilte <strong>Systeme</strong> werden von den<br />
bisher betrachteten BS nicht erfüllt:<br />
– <strong>Verteilte</strong> Betriebssysteme bestehen nicht aus autonomen Rechnern.<br />
– Netzwerkbetriebssysteme bieten keine Sicht auf ein einziges,<br />
kohärentes System.<br />
• Gesucht ist ein verteiltes System, das<br />
– die Skalierbarkeit <strong>und</strong> Offenheit von Netzwerkbetriebssystemen <strong>und</strong><br />
– die Transparenz <strong>und</strong> einfache Nutzbarkeit von verteilten<br />
Betriebssystemen besitzt.<br />
• Die Middleware ist eine zusätzliche Software-Schicht, die in<br />
Netzwerkbetriebssystemen verwendet wird, um<br />
– die Heterogenität der Rechner zu verbergen <strong>und</strong><br />
– die Verteilungstransparenz zu verbessern.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 26
1.4.3.1 Architektur von verteilten <strong>Systeme</strong>n<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 27<br />
1.4.3.2 Eigenschaften der Middleware<br />
• Namensgebung: Middleware-Dienste befinden sich<br />
zwischen den Anwendungen <strong>und</strong> den<br />
Netzwerkbetriebssystemen.<br />
• Ressourcen werden nicht von der Middleware, sondern<br />
von den lokalen BS verwaltet.<br />
• Middleware-<strong>Systeme</strong> stellen eine Sammlung von<br />
Diensten für die transparente Nutzung bereit, wobei die<br />
Dienste nicht durch den direkten Aufruf der BS-<br />
Funktionalität umgangen werden sollen.<br />
• Die Integration von Anwendungen mittels Middleware<br />
erforderte weitere Dienste, wie z.B. die Unterstützung von<br />
verteilten Transaktionen.<br />
• Problem der Middleware: viele alternative Ansätze, die<br />
nicht miteinander kompatibel sind.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 28
1.4.3.4 Middleware-Dienste<br />
Middleware-<strong>Systeme</strong> stellen folgende Dienste bereit:<br />
– Kommunikationsfunktionen implementieren die Zugriffstransparenz,<br />
d.h. der Benutzer muß keine low-level Nachrichten benutzen, sondern<br />
kann die Operationen des jeweiligen Paradigmas nutzen (z.B. RPC).<br />
– Namensdienste ermöglichen, dass Einheiten gemeinsam genutzt <strong>und</strong><br />
gesucht werden (z.B. die URL im WWW).<br />
– Persistenzdienste realisieren die Langzeitspeicherung in verteilten<br />
<strong>Systeme</strong>n, z.B. durch Anbindung an Datenbanken.<br />
– <strong>Verteilte</strong> Transaktionen ermöglichen, dass <strong>parallele</strong> Operationen<br />
atomar ausgeführt werden, Transaktion ist erfolgreich (alle<br />
Teiloperationen ausgeführt) oder fehlgeschlagen (keine Operation<br />
ausgeführt).<br />
– Sicherheitsdienste implementieren ein rechnerübergreifendes<br />
Sicherheitsmodell innerhalb der Middleware-Schicht, d.h. wegen der<br />
Heterogenität können die lokalen Sicherheitsdienste nicht genutzt<br />
werden.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 29<br />
1.4.4 Vergleich zwischen den <strong>Systeme</strong>n<br />
Aspekt<br />
<strong>Verteilte</strong> BS<br />
Netzwerk BS<br />
Middleware<br />
Multi-<br />
Prozessoren<br />
Multi-<br />
Computer<br />
Transparenz<br />
Sehr hoch<br />
Hoch<br />
Gering<br />
Hoch<br />
Gleiches BS<br />
Ja<br />
Ja<br />
Nein<br />
Nein<br />
Anzahl BS<br />
1<br />
N<br />
N<br />
N<br />
Kommunikation<br />
Gemeinsamer<br />
Speicher<br />
Nachrichten<br />
Dateien, Email<br />
gemäß<br />
Paradigma<br />
Ressourcen-<br />
Verwaltung<br />
Global, zentral<br />
Global, verteilt<br />
Pro Rechner<br />
Pro Rechner<br />
Skalierbar<br />
Nein<br />
Moderat<br />
Ja<br />
Variiert<br />
Offenheit<br />
Nein<br />
Nein<br />
Ja<br />
Ja, aber<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 30
1.5 Client-Server-Modell<br />
Organisation von verteilten <strong>Systeme</strong>n: wie sind die Prozesse<br />
im System angeordnet?<br />
1. Clients <strong>und</strong> Server: Clients fordern Dienste von Servern<br />
an.<br />
2. Anwendungsschichten: Unterscheidung zwischen<br />
Benutzeroberfläche, Verarbeitungsebene <strong>und</strong><br />
Datenebene.<br />
3. Client-Server-Architekturen: Die logische Aufteilung<br />
in Anwendungsschichten ermöglicht die physikalische<br />
Verteilung der Client-Server-Anwendungen über mehrere<br />
Rechner.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 31<br />
1.5.1 Clients <strong>und</strong> Server<br />
• Prozesse werden in zwei (möglicherweise überlappende)<br />
Gruppen eingeteilt:<br />
1. Server implementieren Dienste.<br />
2. Clients fordern Dienste an, indem sie eine Anforderung an einen<br />
Server senden <strong>und</strong> dann auf die Antwort des Servers warten.<br />
• Client-Server-Kommunikation über<br />
1. Ein verbindungsloses Protokoll: anwendbar, wenn das<br />
zugr<strong>und</strong>eliegende Netzwerk zuverlässig ist, z.B. UDP in lokalen<br />
Netzen. Bei unzuverlässigen Netzwerken (Nachrichten gehen<br />
verloren):<br />
2. Ein verbindungsorientiertes Protokoll: der Client baut zuerst eine<br />
Verbindung zum Server auf, ehe die erste Anforderung gesendet<br />
wird, z.B. TCP in Weitverkehrsnetzen. Der Server nutzt i.A. die<br />
gleiche Verbindung für die Antwort. Durch den Aufbau <strong>und</strong> den<br />
Abbau der Verbindung entsteht ein zusätzlicher Aufwand.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 32
Zusammenarbeit zwischen Client <strong>und</strong> Server<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 33<br />
1.5.2 Anwendungsschichten<br />
Anwendungen werden in drei Schichten aufgeteilt:<br />
1. Benutzeroberfläche: Anzeigeverwaltung<br />
2. Verarbeitung: die eigentliche Anwendung<br />
3. Daten: Speicherung der Daten<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 34
Beispiel: Verarbeitungsebene<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 35<br />
1.5.3 Client-Server-Architekturen<br />
• Die logischen Anwendungsebenen ermöglichen die physikalische<br />
Verteilung der Anwendung auf mehrere Rechner.<br />
• Einfachste Variante:<br />
– Client-Rechner implementiert nur die Benutzeroberfläche<br />
– Server-Rechner implementiert den Rest.<br />
• Alternative Varianten: Teile oder die ganze Anwendung<br />
werden auf den Client-Rechner verlagert (Fat-Clients).<br />
• Drei-/Vier-/Fünf- Schichtenarchitektur (Vertikale<br />
Verteilung): Teile der Anwendung (Transaktionsverarbeitung)<br />
oder die Datenbank befinden sich auf zusätzlichen Rechnern.<br />
Zusätzlich kann ein externer Zugriff über das WWW<br />
ermöglicht werden.<br />
• Horizontale Verteilung: Server werden in äquivalente Teile<br />
unterteilt, z.B. replizierte Webserver.<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 36
Alternative Zwei-Schichten-Architekturen<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 37<br />
Kommunikation in<br />
Drei-Schichten-Architekturen<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 38
Horizontale Verteilung<br />
W. Lux, FH <strong>Düsseldorf</strong><br />
VS: Kap 1. Einführung 39