21.11.2013 Aufrufe

Verteilte und parallele Systeme - Fachhochschule Düsseldorf

Verteilte und parallele Systeme - Fachhochschule Düsseldorf

Verteilte und parallele Systeme - Fachhochschule Düsseldorf

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!