Verteilte Systeme SS 2015 Verteilte Systeme (1/13) Verteilte Systeme SS 2015 Einf uhrung Verteilte Systeme (1/13)



Ähnliche Dokumente
Verteilte Systeme SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 31.

PIWIN II. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler II. Vorlesung 2 SWS SS 08

ANYWHERE Zugriff von externen Arbeitsplätzen

Technische Grundlagen von Netzwerken

peer-to-peer Dateisystem Synchronisation

2 Datei- und Druckdienste

Systemaspekte Verteilter Systeme Wintersemester 2004/05

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

3 Windows als Storage-Zentrale

PROLAG WORLD 2.0 PRODUKTBESCHREIBUNG SERVERSYSTEM, CLUSTERSYSTEME FÜR PROLAG WORLD

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

HISPRO ein Service-Angebot von HIS

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

A1 Desktop Security Installationshilfe. Symantec Endpoint Protection 12.1 für Windows/Mac

Grundkonzepte der Vernetzung

Formular»Fragenkatalog BIM-Server«

Thin versus Fat Clients

Verfügbarkeit von Applikationen und Failover Szenarien. Winfried Wojtenek.

Windows Server 2012 R2 Essentials & Hyper-V

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

IT- Wir machen das! Leistungskatalog. M3B Service GmbH Alter Sportplatz Lake Schmallenberg

Parallels Mac Management 3.5

OCTOPUS Appointment System von ADCOTEL -- System Architektur Version 1.1 vom Adcotel GmbH. I. Übersicht

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Sicherheit QUALITÄTSSICHERUNG DESIGNER24.CH V 1.2. ADRESSE Designer24.ch Web Print Development Postfach Turbenthal Schweiz

Spotlight 5 Gründe für die Sicherung auf NAS-Geräten

4D Server v12 64-bit Version BETA VERSION

IT im Wandel Kommunale Anforderungen - zentrales Clientmanagement versus Standardtechnologie!?

Surfen im Büro? Aber sicher!

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Software zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN)

Rechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können.

Systeme 1. Kapitel 10. Virtualisierung

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

Stecken Sie Ihren USB Stick oder Ihre externe USB Festplatte in den USB Steckplatz des Sinus 154 DSL SE.

VDI - Die Revolution der Arbeitsplatzbereitstellung. Nicholas Dille,

Analyse und Darstellung der Protokollabläufe in IPv6-basierten Rechnernetzen

ISA Server 2004 Einzelner Netzwerkadapater

Verwendung des Terminalservers der MUG

Tutorial Windows XP SP2 verteilen

Lizenzierung von Windows Server 2012

Kurzanleitung zur Softwareverteilung von BitDefender Produkten...2

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme

Modul 13: DHCP (Dynamic Host Configuration Protocol)

Netzwerkeinstellungen unter Mac OS X

RIGGTEK. Dissolution Test Systems. DissoPrep Browser-Interface

Datenbank-basierte Webserver

Betriebssysteme K_Kap11C: Diskquota, Raid

Fragen zur GridVis MSSQL-Server

PowerWeiss Synchronisation

Man liest sich: POP3/IMAP

SZENARIO BEISPIEL. Implementation von Swiss SafeLab M.ID mit Citrix. Redundanz und Skalierbarkeit

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Anleitung zur Nutzung des SharePort Utility

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Transition vom heutigen Internet zu IPv6

SSZ Policy und IAM Strategie BIT

Lizenzierung von System Center 2012

Installationsanleitung

Client-Server mit Socket und API von Berkeley

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Leitfaden zur Nutzung des System CryptShare

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Java Enterprise Architekturen Willkommen in der Realität

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

Solaris Cluster. Dipl. Inform. Torsten Kasch Bielefeld.DE> 8. Januar 2008

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

SE2-10-Entwurfsmuster-2 15

Verwendung des IDS Backup Systems unter Windows 2000

SILBER SURFER. PC-Treffen der Arbeiterwohlfahrt, Ortsverein Sehnde. PC Internet / Cloud. Leitfaden zur Schulung

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

SDD System Design Document

Server: Vice nach Tanenbaum, van Steen

Daten-Synchronisation zwischen Mozilla Thunderbird (Lightning) / Mozilla Sunbird und dem ZDV Webmailer

Citrix Provisioning Server Marcel Berquez. System Engineer

Virtualisierung in der Automatisierungstechnik

1 Proseminar: Konzepte von Betriebssystem-Komponenten. Thema: Server OS AS/400 Referend: Sand Rainer. Server OS - AS/400

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Virtual Private Network. David Greber und Michael Wäger

Inhalt: Ihre persönliche Sedcard... 1 Login... 1 Passwort vergessen... 2 Profildaten bearbeiten... 3

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Die.tel Domain. Mehrwert für Ihr Unternehmen.

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

OpenMAP WEBDrive Konfiguration. Oxinia GmbH , Version 1

Architektur einer GDI: Service-oriented Architecture (SOA)

Kleines Handbuch zur Fotogalerie der Pixel AG

Datenbanken. Prof. Dr. Bernhard Schiefer.

Übersicht. Was ist FTP? Übertragungsmodi. Sicherheit. Öffentliche FTP-Server. FTP-Software

Installationsvoraussetzungen

Lizenzen auschecken. Was ist zu tun?

Eine Anleitung, wie Sie Mozilla Thunderbird 2 installieren und konfigurieren können. Installation Erstkonfiguration... 4

Windows Server 2008 (R2): Anwendungsplattform

Leitfaden zur Nutzung von binder CryptShare

Prüfungsnummer: Prüfungsname: Configuring Advanced. Version: Windows Server 2012 Services. Demo.

Transkript:

Verteilte Systeme SS 2015 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 7. Juli 2015 Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) i Verteilte Systeme SS 2015 1 Einführung Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 15

1 Einführung... Inhalt Was macht ein verteiltes System aus? Software-Architektur Architekturmodelle Cluster Literatur Hammerschall: Kap. 1 Tanenbaum, van Steen: Kap. 1 Colouris, Dollimore, Kindberg: Kap. 1, 2 Stallings: Kap 13.4 Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 16 1 Einführung... 1.1 Was ist ein verteiltes System? Bei einem verteilten System arbeiten Komponenten zusammen,die sich auf unterschiedlichen Computern befinden und die ihre Aktionen durch den Austausch von Nachrichten koordinieren. G. Coulouris Ein verteiltes System ist eine Menge voneinander unabhängiger Computer, die dem Benutzer wie ein einzelnes, kohärentes System erscheinen. A. Tanenbaum Ein verteiltes System ist eine Sammlung von Prozessoren, die sich weder den Hauptspeicher noch eine Uhr teilen. A. Silberschatz Ein verteiltes System ist eines, auf dem ich keine Arbeit erledigen kann, weil irgendeine Maschine, von der ich noch nie gehört habe, abgestürzt ist. L. Lamport Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 17

1.1 Was ist ein verteiltes System?... Ein verteiltes System ist ein System in dem sich Hardware- und Software-Komponenten auf vernetzten Computern befinden und nur über den Austausch von Nachrichten kommunizieren und ihre Aktionen koordinieren. Die Grenzen des verteilten Systems werden durch eine gemeinsame Anwendung definiert Bekanntestes Beispiel: Internet Kommunikation über die standardisierten Internet-Protokolle IP und TCP / UDP ( Vorlesung Rechnernetze) Nutzer können Dienste / Anwendungen nutzen, unabhängig vom gegenwärtigen Standort Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 18 1.1 Was ist ein verteiltes System?... Was ist eine verteilte Anwendung? Anwendung, die verteiltes System nutzt, um eine in sich geschlossene Funktionalität zur Verfügung zu stellen Anwendungslogik auf mehrere, weitgehend unabhängige Komponenten verteilt Komponenten oft auf verschiedenen Rechnern ausgeführt Beispiele: einfache Internetanwendungen (z.b. WWW, FTP, Email) verteilte Informationssysteme (z.b. Flugbuchung) SW-intensiv, datenzentriert, interaktiv, stark nebenläufig verteilte eingebettete Systeme (z.b. im Auto) verteilte mobile Anwendungen (z.b. bei Handhelds) Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 19

1.1 Was ist ein verteiltes System?... Ein typisches verteiltes System Email Desktop Desktop LAN Internet LAN WWW Anwen dungs Druck Daten bank Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 20 1.1 Was ist ein verteiltes System?... Warum Verteilung? Zentrale, nicht verteilte Anwendungen sind im Allgemeinen sicherer und zuverlässiger im Allgemeinen performanter Wesentlicher Grund für Verteilung: Gemeinsame Nutzung von Ressourcen Hardware-Ressourcen (Drucker, Scanner,...) Kostenersparnis Daten und Informationen (Fileserver, Datenbank,...) Informationsaustausch, Datenkonsistenz Funktionalität (Zentralisierung) Fehlervermeidung, Wiederverwendung Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 21

1.2 Charakteristika von verteilten Systemen Ressourcen (z.b. Rechner, Daten, Benutzer,...) sind verteilt ggf. auch weltweit Kooperation über Nachrichtenaustausch Nebenläufigkeit aber: nebenläufige Bearbeitung eines Auftrags ist nicht primäres Ziel Keine globale Uhr (genauer: keine globale Zeit) Verteilte Zustandsinformation kein eindeutig bestimmter globaler Zustand Partielle Fehler sind möglich (unabhängige Ausfälle) Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 22 1.2 Charakteristika von verteilten Systemen... Parallele vs. verteilte Systeme Paralleles System: Motivation: höhere Rechenleistung durch Parallelarbeit Mehrere Tasks (Prozesse/Threads) arbeiten an einem Job Tasks sind feingranular: häufige Kommunikation Tasks arbeiten gleichzeitig (parallel) homogene Hardware / BSe, regelmäßige Verbindungsstruktur Verteiltes System: Motivation: verteilte Ressourcen (Rechner, Daten, Benutzer) Mehrere Tasks (Prozesse/Threads) arbeiten an einem Job Tasks sind grobgranular: Kommunikation weniger häufig Tasks arbeiten synchronisiert (i.a. nacheinander) inhomogen (Prozessoren, Netzwerke, BSe,...) Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 23

1.3 Herausforderungen und Ziele verteilter Systeme Heterogenität: Rechnerhardware, Netzwerke, BSe, Programmiersprachen, Implementierungen durch verschiedene Entwickler,... Lösung: Middleware Softwareschicht, die Heterogenität verbirgt, indem sie ein einheitliches Programmiermodell bereitstellt z.b. CORBA: verteilte Objekte, entfernte Methodenaufrufe z.b. Web Services: entfernte Prozeduraufrufe (Dienste) Offenheit: problemlose Erweiterbarkeit (mit neuen Diensten) Dazu: Schlüsselschnittstellen sind veröffentlicht / standardisiert einheitliche Kommunikationsmechanismen / Protokolle Komponenten müssen standardkonform sein [Coulouris, 1.4] Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 24 1.3 Herausforderungen und Ziele verteilter Systeme... Sicherheit Information: Vertraulichkeit, Integrität, Verfügbarkeit Benutzer: Authentifizierung, Autorisierung Denial-of-Service, mobiler Code Skalierbarkeit: Zahl der Ressourcen bzw. Benutzer kann ohne negative Auswirkungen auf Leistung und Kosten wachsen Fehlerverarbeitung (partielle Fehler) Fehlererkennung (z.b. Prüfsummen) Fehlermaskierung (z.b. Neuübertragung einer Nachricht) Fehlertoleranz (z.b. Browser: server not available ) Wiederherstellung (von Daten) nach Fehlern Redundanz (von Hard- und Software) Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 25

Anmerkungen zu Folie 25: Bei der Realisierung der Skalierbarkeit gibt es u.a. folgende Probleme: Kostenkontrolle: die Systemhardware sollte erweiterbar sein; der Aufwand sollte (höchstens) proportional zur Anzahl der Benutzer sein. Kontrolle des Leistungsverlusts: die verwendeten Algorithmen sollten gut mit der Anzahl n der Knoten skalieren, d.h. mit O(nlogn) oder besser. Erschöpfung von Software-Ressourcen verhindern: als Beispiel seien hier die 32-Bit IPv4-Adressen genannt. Leistungsengpässe vermeiden: dezentrale Algorithmen ohne Bottlenecks Idealerweise sollte ein System ohne Anpassung der Anwendungs- und Systemsoftware skaliert werden können. Techniken, die die Skalierbarkeit unterstützen sind u.a. Replikation und Caching. 25-1 1.3 Herausforderungen und Ziele verteilter Systeme... Nebenläufigkeit Synchronisation, Konsistenzerhaltung von Daten Transparenz Zugriffs : lokale und entfernte Zugriffe identisch } Netzwerk Orts : Zugriff ohne Kenntnis des Orts möglich Nebenläufigkeits : gemeinsame Ressourcennutzung ohne Störungen Replikations : transparente Replikation von Ressourcen Fehler : Verbergen von Fehlern durch Komponenten-Ausfall Mobilitäts : transparentes Verschieben von Ressourcen Leistungs : Leistung ist i.w. unabhängig von der Last Skalierungs : Skalierung ohne Auswirkungen auf Benutzer Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 26

Anmerkungen zu Folie 26: Die Nebenläufigkeitstransparenz entspricht dem Konzept der Isolation bei Datenbanken. 26-1 1.4 Software-Architektur Arten von Betriebssystemen für verteilte Systeme Netzwerk-Betriebssystem: herkömmliches BS, erweitert um Unterstützung für Netzwerk-Anwendungen (API für Sockets, RPC,...) jeder Rechner hat sein eigenes BS, kann aber Dienste anderer Rechner (Dateisystem, Email, ssh,...) nutzen Existenz der anderen Rechner ist sichtbar Verteiltes Betriebssystem: einheitliches BS für Netzwerk von Rechnern transparent für den Anwender erfordert Zusammenarbeit der BS-Kerne bisher i.w. Forschungsprojekte Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 27

1.4 Software-Architektur... Typische Schichten in einem verteilten System Anwendungen Dienste (allgemein oder anwendungsspezifisch) Middleware API (Netzwerk ) Betriebssystem Rechner und Netzwerk Hardware Plattform(en) [Coulouris, 2.2.1] Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 28 1.4 Software-Architektur... Middleware Aufgaben: Verbergen der Verteiltheit und der Heterogenität Bereitstellen eines gemeinsamen Programmiermodells / APIs Bereitstellung von allgemeinen Diensten Funktionen z.b.: Kommunikationsdienste: entfernte Methodenaufrufe, Gruppenkommunikation, Ereignisbenachrichtigungen Replikation gemeinsam genutzter Daten Sicherheitsdienste Beispiele: CORBA, EJB,.NET, Axis2 (Web Services),... ( Vorlesung Client/-Programmierung) Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 29

1.5 Architekturmodelle Architekturmodell beschreibt: Rollen einer Anwendungskomponente innerhalb der verteilten Anwendung Beziehungen zwischen den Anwendungskomponenten Rolle durch Prozeßtyp definiert, in dem Komponente läuft: Client Prozeß kurzlebig (für die Dauer der Nutzung durch Anwender) agiert als Initiator einer Interprozeßkommunikation (IPC) Prozeß lebt unbegrenzt agiert als Diensterbringer einer IPC Peer Prozeß kurzlebig (für die Dauer der Nutzung durch Anwender) agiert als Initiator und Diensterbringer Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) 30 Verteilte Systeme SS 2015 20.04.2015 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 7. Juli 2015 Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) ii

1.5 Architekturmodelle... Peer-to-Peer-Modell Zusammenarbeit gleichrangiger Prozesse für verteilte Aktivität jeder Prozeß verwaltet lokalen Teil der Ressourcen verteilte Koordination und Synchronisation der Aktionen auf Anwendungsebene Anwendung Koordinationscode Anwendung Koordinationscode Anwendung Koordinationscode Z.B.: File sharing-anwendungen, Router, Videokonferenzen,... Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 31 1.5 Architekturmodelle... Client/-Modell [Coulouris, 2.2.2] Asymmetrisches Modell: stellen Dienste bereit, die von (mehreren) Clients genutzt werden können verwalten i.a. Ressourcen (zentralisiert) Client Aufruf Aufruf Ergebnis Ergebnis Client kann selbst wieder als Client agieren Prozeß Rechner Häufigstes Modell für verteilte Anwendungen (ca. 80 %) Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 32

1.5 Architekturmodelle... (Animierte Folie) Client/-Modell... I.A. nebenläufige Anfragen mehrerer Client-Prozesse an den -Prozeß Start Client Ende Anfrage (request) Antwort (reply) Zeit Client Beispiele: Dateiserver, WWW-, DB-, DNS-,... Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 33 1.5 Architekturmodelle... Varianten des Client/-Modells Kooperierende Verbund von n bearbeitet transparent einen Aufruf Beispiel: Domain Name (DNS) falls Adresse nicht bestimmen kann: Aufruf wird transparent an anderen weitergereicht Client Replizierte Replikate der prozesse werden bereitgestellt Client transparente Replikate (oft in Clustern) Anfragen werden automatisch auf die verteilt öffentliche Replikate (z.b. Mirror ) Ziele: bessere Performance, Ausfallsicherheit Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 34

1.5 Architekturmodelle... Varianten des Client/-Modells... Proxy- / Caches Proxy ist Stellvertreter für Aufgabe oft Caching von Daten / Ergebnissen z.b. Web-Proxy Mobiler Code Client Client Proxy ausführbarer code wandert auf Anfrage zum Client Ausführung des Codes durch Client bekanntestes Beispiel: JavaScript / Java Applets im WWW Mobile Agenten Agent enthält Code und Daten, wandert durch das Netzwerk und führt Aktionen auf lokalen Ressourcen durch Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 35 1.5 Architekturmodelle... n-tier-architekturen Verfeinerungen der Client/-Architektur Modelle zur Verteilung einer Anwendung auf die Knoten einer verteilten Systems Vor allem bei Informationssystemen verwendet Tier (engl. Schicht / Stufe) kennzeichnet einen unabhängigen Prozeßraum innerhalb einer verteilten Anwendung Prozeßraum kann, muß aber nicht physischem Rechner entsprechen mehrere Prozeßräume auf einem Rechner möglich Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 36

1.5 Architekturmodelle... Das Tier-Modell Typische Aufgaben in einem Informationssystem: Präsentation Schnittstelle zum Anwender Anwendungslogik eigentliche Funktionalität Datenhaltung Speicherung der Daten in einer Datenbank Tier-Modell bestimmt: Zuordnung der Aufgaben zu Anwendungskomponenten Verteilung der Anwendungskomponenten auf Tiers Architekturen: 2-Tier-Architekturen 3-Tier-Architekturen 4- und mehr-tier-architekturen Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 37 1.5 Architekturmodelle... 2-Tier-Architektur Client- und -Tier Keine eigene Tier für die Anwendungslogik Client Tier Tier Präsentation Anwendungslogik (Verteilung auf Client und Tier variiert) Datenhaltung Vorteil: einfach, performant Nachteil: schwer wartbar, schlecht skalierbar Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 38

1.5 Architekturmodelle... 3-Tier-Architektur Client Tier Präsentation Middle Tier Anwendungslogik Tier Datenhaltung Standard-Verteilungsmodell für einfache Web-Anwendungen: Client-Tier: Web-Browser zur Anzeige Middle-Tier: Web- mit Servlets / JSP / ASP -Tier: Datenbank- Vorteile: Anwendungslogik zentral administrierbar, skalierbar Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 39 1.5 Architekturmodelle... 4- und mehr-tier-architekturen Unterschied zu 3-Tier-Architektur: Anwendungslogik auf mehere Tiers verteilt Motivation: Minimierung der Komplexität (Divide and Conquer) Besserer Schutz einzelner Anwendungsteile Wiederverwendbarkeit von Komponenten Viele verteilte Informationssysteme haben 4- und mehr-tier-architekturen Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 40

1.5 Architekturmodelle... (Animierte Folie) Beispiel: typische Internet-Anwendung DMZ Intranet Web Client 01 Web Client Internet Firewall 01 10 01 10 01 01 01 01 Web Firewall 01 01 01 01 01 10 01 10 Web 01 01 01 01 Anwen dungs 01 01 01 01 Daten bank Tier 1 Tier 2 Tier 3 Tier 4 Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 41 1.5 Architekturmodelle... Thin- und Fat-Clients Charakterisiert Komplexität der Anwendungskomponente auf der Client-Tier Ultra-Thin-Client Client-Tier nur Präsentation: reine Anzeige von Dialogen Päsentationskomponenten: Web-Browser nur bei 3- und mehr-tier-architekturen möglich Thin-Client Client-Tier nur Präsentation: Anzeige von Dialogen, Aufbereitung der Daten zur Anzeige Fat-Client Teile der Anwendungslogik auf Client-Tier i.d.r. 2-Tier-Architektur Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 42

1.5 Architekturmodelle... Abgrenzung zu Enterprise Application Integration (EAI) EAI: Integration unterschiedlicher Anwendungen Kommunikation, Austausch von Daten Ziele ähnlich wie bei verteilten Anwendungen / Middleware Middleware wird oft auch für EAI eingesetzt Unterschiede: verteilte Anwendungen: Anwendungskomponenten, hoher Kopplungsgrad, meist wenig Heterogenität EAI: vollständige Anwendungen, geringer Kopplungsgrad, meist große Heterogenität (unterschiedliche Technologien, Systeme, Programmiersprachen,...) Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 43 1.6 Cluster Cluster: Gruppe vernetzter Rechner, die als einheitliche Rechenressource wirkt d.h. Multicomputer-System Knoten i.a. Standard-PCs oder Blade- Anwendung v.a. als Hochleistungs- Motivation: (schrittweise) Skalierbarkeit hohe Verfügbarkeit gutes Preis-/Leistungsverhältnis [Stallings, 13.4] Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 44

1.6 Cluster... Verwendungszwecke für Cluster Hochverfügbarkeits-Cluster (High Availability, HA) verbesserte Ausfallsicherheit bei Fehler auf einem Knoten: Dienste werden auf andere Knoten migriert (Failover) Load Balancing-Cluster eingehende Aufträge werden auf verschiedene Knoten des Clusters verteilt i.a. durch (redundante) zentrale Instanz häufig bei WWW bzw. Email-n High Performance Computing-Cluster Cluster als Parallelrechner Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 45 1.6 Cluster... Cluster-Konfigurationen Passives Standby (kein eigentlicher Cluster) Bearbeitung aller Anfragen durch primären sekundärer übernimmt Aufgaben (nur) bei Ausfall Aktives Standby alle bearbeiten Aufträge ermöglicht Lastausgleich und Ausfallsicherheit Problem: Zugriff auf Daten anderer / ausgefallener Alternativen: Replikation der Daten (viel Kommunikation) gemeinsames Festplattensystem (i.d.r. gespiegelte Platten bzw. RAID-System wegen Ausfallsicherheit) Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 46

1.6 Cluster... Konfigurationen für Aktives Standby Separate mit Replikation der Daten getrennte Platten, Daten werden laufend auf sekundären kopiert mit gemeinsamen Festplatten Shared Nothing Cluster getrennte Partitionen für jeden bei ausfall: Umkonfiguration der Partitionen Shared Disk Cluster gleichzeitige Nutzung durch alle benötigt Lock Manager Software zum Sperren von Dateien bzw. Datensätzen Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 47 1.7 Zusammenfassung Verteiltes System HW- und SW-Komponenten auf vernetzten Rechnern kein gemeinsamer Speicher, keine globale Zeit Motivation: Nutzung verteilter Ressourcen Herausforderungen Heterogenität, Offenheit, Sicherheit, Skalierbarkeit Fehlerverarbeitung, Nebenläufigkeit, Transparenz Software-Architektur: Middleware Architekturmodelle: Peer-to-Peer, Client/ n-tier Modelle Cluster: Hochverfügbarkeit, Load Balancing Betriebssysteme / verteilte Systeme Verteilte Systeme (2/13) 48