Top Banner
Clemens Düpmeier, 26.06.22 Forschungszentrum Karlsruhe Technik und Umwelt Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie, Grundlegende Begriffe, Systemmodelle
57

Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Apr 05, 2015

Download

Documents

Hedwig Drechsel
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Verteilte SystemeDozent: Clemens Düpmeier

Foliensatz 1: Einführung, Historie,

Grundlegende Begriffe, Systemmodelle

Page 2: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Unterlagen Online

• Powerpointfolien und andere Informationen sind Online verfügbar unter

http://www.iai.fzk.de/~clemens.duepmeier/vs-vorlesung.html

Page 3: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Warum sind Verteilte Systeme eigenes Thema•Viele gleichzeitige („parallele“) Aktivitäten•Exakte globale Zeit nicht erfahrbar/vorhanden•Keine konsistente Sicht des Gesamtzustandes•Kooperation durch Kommunikation•Ursache und Wirkung zeitlich und räumlich getrennt

>Räumliche Separation, autonome Komponenten >Heterogenität

>Dynamik, Offenheit

>Komplexität

>Sicherheit

+Probleme sequentieller Systeme +Nebenläufigkeit

+Nichtdeterminismus

+Zustandsverteilung

–Synchronisation schwieriger –Programmierung komplexer

–Testen aufwendiger

Page 4: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Historie

Page 5: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Paradigmenwechsel in der Informatik

Phase 1: 1930 - 1960 (Anfänge)

Sichtweise: Rechenassistent

Charakterisierung: In eine leere Maschine wird ausführbarer Code inklusive Eingabedaten geladen, die Maschine berechnet Ergebnisse, gibt sie aus und hält an.

Maschine

Phase 2: 1960 - 1980 (Hoch-Zeit)

Sichtweise: Hierarchie logischer, sprachverarbeitender Maschinen

Charakterisierung: Programme in höheren Programmiersprachen dienen als Eingabedaten für Übersetzer oder Interpreterierer, die daraus ausführbaren Code erzeugen. Abarbeitung weitgehend sequentiell. Residentes Betriebssystem ermöglicht Mehrprogrammbetrieb (time-sharing)

Programm

Übersetzer

Maschine

Page 6: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Aufkommen von Client-Server SystemenPhase 3 (ab 1980)

• Entwicklung von Netzwerk-Technologien

– ermöglichen Kommunikation zwischen Rechnern und

Softwareprogrammen

– Aufkommen von Client-Server Softwareanwendungen

• Entwicklung von höherwertigen Kommunikationsmechanismen

– Remote Procedure Calls

– Verteilte Objektkommunikation => Verteilte

Softwarekomponenten

• Entwicklung des Internets und des Webs

Page 7: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Paradigmenwechsel in der InformatikPhase 3: heute

Sichtweise: Eine Gruppe autonomer, „intelligenter“ Instanzen, die untereinander und mit der Außenwelt interagieren.

Charakterisierung: Komplexe Softwaresysteme erstrecken sich über eine Vielzahl von Rechnern. Sie bestehen aus einer Vielzahl spezialisierter, nebenläufig arbeitender „Verteilter Komponenten“, die zur Erfüllung ihrer komplexen Aufgaben miteinander kooperieren und gleichzeitig im Wettbewerb um knappe Ressourcen stehen.

Page 8: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Was haben Computernetzwerke mit Verteilten Systemen zu tun?

Page 9: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Computernetzwerke1960-1970

• Terminal-Host-Kommunikation über serielle Leitungen

• Host-zu-Host-Kommunikation

– Basierend auf proprietärenNetzwerken wie IBM SNA, DECnet

– schon bald basierend auf Paketvermittlung und damit TCP/IP-Netzen

(Transmission Control Protocol / Internet Protocol)

1980

• Hochleistungs-LANs zu niedrigen Kosten (Local Area Network)

– PC-Netze

– Verteilte Client-Server-Systeme als neues Paradigma

• Öffentliche und private WANs (Wide Area Networks)

– Ausgereifte Technik der Paketvermittlung

– Wichtige neue Anwendungen (Email, File Transfer, Telnet, etc.)

• Offene Standards setzen sich eindeutig durch (OSI, TCP/IP)

Page 10: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Computernetzwerke

1990

Das globale Internet

– TCP/IP Netzwerke

– Web-Anwendungen

1990

Das globale Internet

– TCP/IP Netzwerke

– Web-Anwendungen

counts the number of IP addresses that have beenassigned a name

counts the number of IP addresses that have beenassigned a name

counted hosts by walking the domain name tree and doing zone transfers of domain data

counted hosts by walking the domain name tree and doing zone transfers of domain data

old host counts raised by the proper percentage of domains we couldn't survey

old host counts raised by the proper percentage of domains we couldn't survey

Page 11: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Computernetzwerke

2000 "IP on everything" (Vint Cerf, ein Internet Patriarch)

• In Richtung eines globalen Netzwerkes mit vielen Diensten und IPv6 (aktuell: IPv4) als dem gemeinsamen Kern.

– Enterprise networks Communication infrastructure of the IT system. E-business ...

– Web news, info, publishing, ...

– Home networks Info, entertainment. Home office. Internet appliances.

– Mobile communications Internet-enabled multi-service mobile devices.

– E-commerce, E-banking, ...

– Tele-education. Tele-medicine ...

• Ziel: Gemeinsame Infrastruktur für Computerkommunikation (Multimedia) und persönliche Kommunikationsdienste (message, voice/video-telephony).

Page 12: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Netzwerke und Verteilte Systeme

• Wir haben den Paradigmenwechsel in der Informatik und die Entwicklung der Computernetzwerke betrachtet..

• Netzwerke sind nicht im Fokus dieser Vorlesung!

ABER

• Man benötigt ein Computernetzwerk, um ein verteiltes System zu realisieren.

• Was also ist ein verteiltes System?

Page 13: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Grundlegende Definition(en)

Fokussierung der Vorlesung

Page 14: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Was ist ein verteiltes System ?Eine praxisorientierte Beschreibung:

Ein verteiltes System

• besteht aus einer Menge autonomer Computer

• die durch ein Computernetzwerk miteinander verbunden sind und

• mit einer Software zur Koordination ausgestattet sind.

Verteiltes System(Sicht eines Benutzers)

Verteiltes System(Sicht eines Benutzers)

Page 15: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Was ist ein verteiltes System ?• Definition: Verteiltes System (nach Leslie Lamport)

Ein verteiltes System ist ein System, mit dem ich nicht arbeiten kann, weil irgendein Rechner abgestürzt ist, von dem ich nicht einmal weiß,

daß es ihn überhaupt gibt.

– oft die Realität

– wird aber besser (hoffentlich auch durch diese Vorlesung)

• Definition: Verteiltes System (nach Andrew S. Tanenbaum)

Ein verteiltes System ist eine Kollektion unabhängiger Computer, die den Benutzern als ein Einzelcomputer erscheinen.

– impliziert, daß die Computer miteinander verbunden sind und

– die Ressourcen wie Hardware, Software und Daten gemeinsam benutzt werden.

– Es herrscht eine einheitliche Sicht auf das Gesamtsystem vor.

Page 16: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Was ist ein verteiltes System ?

Eine allgemeinere Beschreibung:

• Ein verteiltes System ist ein System, in dem

– Hard-und Softwarekomponenten,

– die sich auf miteinander vernetzten Computern befinden,

– miteinander kommunizieren und ihre Aktionen koordinieren,

– indem sie Nachrichten austauschen.

• Eine verteilte Anwendung ist eine Anwendung, die ein verteiltes System zur Lösung eines Anwendungsproblems nutzt. Sie besteht aus verschiedenen Komponenten, die mit den Komponenten des VS sowie den Anwendern kommuniziert.

Page 17: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Fokus der Vorlesung

• Der Fokus der Vorlesung liegt auf "Verteilte Anwendungen" nicht auf Hardware

• Insbesondere für Verteilte Business Anwendungen

– Software-Architekturen

– Notwendige Eigenschaften solcher Systeme

– Kommunikation zwischen Komponenten Verteilter

Anwendungen

– Hilfsmittel, z.B. Middleware + Application Server

Page 18: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Beispiel für Verteilte Business-Anwendung

Quelle: Prof. Thai

Page 19: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Jede Menge Daten + Datenaustausch

Quelle: Prof. Thai

Page 20: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Jede Menge Anforderungen an Eigenschaften

Quelle: Prof. Thai

Page 21: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Wichtige Eigenschaften

Page 22: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Wichtige Eigenschaften

• Nebenläufigkeit

• Kontrollierte, gemeinsame Ressourcennutzung

• Skalierbarkeit

• Sicherheit

• Fehlertoleranz

• Transparenz

• Offenheit

Page 23: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Nebenläufigkeit (Concurrency)• Gesamtsystem besteht aus Softwarekomponenten, die auf

verschiedenen Rechnersystemen laufen

– Dabei können Aktivitäten im Gesamtsystem sowohl auf einem Rechner,

– parallel als auch parallel auf verschiedenen Rechnern ablaufen

• Nebenläufigkeit kann es z.B. bei

– Clients (Anwendungsprogramme, z.B. Videokonferenz) und

– Servern (Zugriff auf Ressourcen, z.B. Datei) geben.

• Wichtiges Aspekte:

– Synchronisation der Aktivitäten, z.B. um Daten konsistent zu halten.

– Verbesserung des Durchsatzes und Performance durch Paralellisierung

Page 24: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Gemeinsame Ressourcennutzung• Hardware: Drucker, Festplatten, Scanner, etc.

• Daten: Datenbankobjekte, Dateien, etc.

• Client-Server Model: Server verwaltet Ressourcen, die Clients nutzen

• Verteilte Objekte: Server bietet Dienste über Verteilte Objekte, die Clients gemeinsam nutzen

• Problematik:

– Regelung nebenläufiger Zugriffe

– Fragen der Konsistenz und der Fehlertoleranz.

• Verteilte Services (komplexer Dienstleistungen, die über Netz aufrufbar sind)

– z.B. Bezahldienste, Flugbuchung, etc.

Page 25: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Skalierbarkeit• Ein Softwaresystem ist skalierbar, wenn durch

Hinzufügen weiterer Hardware

– der Durchsatz des Systems

– oder die Anzahl paralleler Nutzeranforderungen erhöht

werden kann

• Setzt voraus, dass das System so entworfen ist, dass Funktionalitäten

– parallel auf verschiedenen Rechnern (CPU's) ausgeführt

werden können

Page 26: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Verteilung des DNS Namenraums

Page 27: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Sicherheit

• Vertraulichkeit: Daten können nur von dem gewünschten Empfänger gelesen werden.

• Integrität: Die Daten wurden während der Übertragung nicht verändert.

• Authentizität: Die Daten wurden tatsächlich von der Person gesendet, die behauptet, der Sender zu sein.

• Verfügbarkeit: Ein Dienst darf durch eine (Denial of Service) Attacke nicht ausser Kraft gesetzt werden.

• Sicherheit für mobilen Code: Mobiler Code darf die lokale Ressource nicht beschädigen und umgekehrt.

Page 28: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Fehlertoleranz

• Fehler erkennen: z.B. durch Prüfsummen. Nicht erkennbar ist z.B. ein Absturz eines entfernten Servers

• Fehler maskieren: Erkannte Fehler verbergen oder abschwächen, z.B. Wiederholung von Nachrichten

• Fehler tolerieren: z.B. durch Redundanz, Timeout

• Wiederherstellung nach Fehlern: z.B. Rückkehr in einen sicheren Zustand, wenn ein Fehler entdeckt wird (Software Recovery).

• Redundanz: Fehlertoleranz durch redundante Komponenten, z.B. Standby-Maschinen, doppelte Komponenten, doppelte Dienste.

Page 29: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

TransparenzTransparenz wird definiert als das Verbergen der Separation der einzelnen

Komponenten in einem verteilten System vor dem Benutzer und dem Applikationsprogrammierer, so dass das System als Ganzes wahrgenommen wird, und nicht als Sammlung voneinander unabhängiger Komponenten.

ISO (International Standards Organization) und ANSA (Advanced Network Systems Architecture) identifizieren acht Formen der Transparenz:

• Zugriffstransparenz ermöglicht den Zugriff auf lokale und entfernte Ressourcen unter Verwendung identischer Operationen.

• Positionstransparenz (Ortstransparenz) erlaubt den Zugriff auf die Ressourcen, ohne dass man ihre Position/ihren Ort kennen muss.

• Nebenläufigkeitstransparenz erlaubt, dass mehrere Prozesse gleichzeitig mit denselben gemeinsam genutzten Ressourcen arbeiten, ohne sich gegenseitig zu stören.

Page 30: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Transparenz• Replikationstransparenz erlaubt, dass mehrere Instanzen von Ressourcen

verwendet werden, um die Zuverlässigkeit und die Leistung zu verbessern, ohne dass die Benutzer oder Applikationsprogrammierer wissen, dass Repliken verwendet werden.

• Fehlertransparenz erlaubt das Verbergen von Fehlern, so dass Benutzer und Applikationsprogrammierer ihre Aufgaben erledigen können, auch wenn Hardware- oder Softwarekomponenten ausgefallen sind.

• Mobilitätstransparenz erlaubt das Verschieben von Ressourcen und Clients innerhalb eines Systems, ohne dass die Arbeit von Benutzern oder Programmen dadurch beeinträchtigt wird.

• Leistungstransparenz erlaubt, dass das System neu konfiguriert wird, um die Leistung zu verbessern, wenn die Last variiert.

• Skalierungstransparenz erlaubt, dass sich System und Applikationen vergrößern, ohne dass die Systemstruktur oder die Applikationsalgorithmen geändert werden müssen.

Page 31: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Offenheit

• Offenheit bzgl. Nutzung durch andere Systeme

– Verwendung standardisierter Schnittstellen

• also bei Kommunikation,

Datenformattechnologien, etc.

• Bzgl. Nutzung anderer Systeme, Sprachen, Betriebssystemen, ...

Page 32: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Architektur und Systemmodelle

Page 33: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Systemmodelle• Beschreibung der allgemeinen Eigenschaften und des Designs eines Systems

• Das Modell sollte abdecken:

– Die wichtigsten Komponenten des Systems

– Die Art ihrer Interaktion

– Wie deren individuelles und kollektives Verhalten beeinflusst werden kann

• Ein Architekturmodell

– vereinfacht und abstrahiert zunächst die Funktionen der individuellen Komponenten

eines verteilten Systems, um dann

– die Verteilung der Komponenten auf ein Netzwerk von Computern und

– die Beziehung der Komponenten (Rolle in der Kommunikation mit anderen,

Kommunikationsmuster) untereinander zu beschreiben.

• Weitere Modelle: Interaktionsmodell, Fehlermodell, Sicherheitsmodell

Page 34: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Verschiedene Blickwinkel auf verteilter SystemeRechnernetz mitRechnerknoten

Objekte / Komponenten Algorithmen u.Protokolle

P1

P2

P3

Physischverteilt Logisch

verteilt

ZeitZeit

Page 35: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Softwarearchitektur

• definiert also Softwarekomponenten des Systems

– ihre wesentlichen Eigenschaften

– und die Beziehungen untereinander

– und damit die "logische" Verteilung des Systems

Page 36: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Komponenten und Abhängigkeiten• Jede Komponente definiert funktionalen Teil des

Systems; Pfeile definieren Abhängigkeiten

• Je mehr Komponenten, um so modularer das System

– Komponenten-basiertes Design und

sauberere Trennung von Funktionalitäten führt

zu besserer Wiederverwendbarkeit

– und mehr Möglichkeiten für Verteilung und

Parallelität• aber höherer Kommunikationsaufwand und evtl.

sinkende Performance

• Hauptarchitekturziel: Ausgewogenheit zwischen Flexibiliät und Performance

Quelle: Gustavo Alonso

Page 37: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Weitere Anforderungen (siehe Eigenschaften)• Leistungsprobleme: durch beschränkte Verarbeitungs- und

Kommunikationskapazitäten:

– Antwortzeiten: schnelle und konsistente Antwortzeiten werden benötigt

– Durchsatz: Verarbeitungs- und Datenübertragungsgeschwindigkeit

– Ausgleich von Rechenauslastung: Nebenläufige Ausführung ohne Konkurrenz um die

Ressourcen

• Dienstgüte (Quality of Service): Zuverlässigkeit, Sicherheit, Leistung (inkl. Rechtzeitigkeitsgarantie), Anpassbarkeit

• Caching und Replikation: Cache-Konsistenz-Protokoll notwendig

• Zuverlässigkeitsprobleme:

– Fehlertoleranz: Korrekt arbeiten trotz Fehler!

– Sicherheit: Erzeugen von Vertrauen durch Schutz vor Angriffen!

– Korrektheit: aktuelle Forschung

Page 38: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Softwareschichten• Die Komponenten einer

Softwarearchitektur können in logische Schichten (Layer) angeordnet werden

– z.B. in 3-Schichten• Schicht mit Komponenten zur

Erzeugung der GUI und

Kommunikation mit Nutzer

• Schicht mit Komponenten mit

Businesslogik

• Schicht mit Komponenten zum

Daten-/Ressourcemanagement

und Zugriff

Daten-management

Businessebene

Präsentation

Page 39: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Auch in vier oder fünf SchichtenTerminals, Windows Geräteabhängige Darstellung

Geräteunabhängige Steuerung undKoordinierung des Dialogs mit dem Anwender

Anwendungsspezifische Steuerungs-und Verwaltungsfunktionen, Teile der Business Logik

Datenselektion und -manipulationE-Mail, Drucken, Mailing

Verbindung zum DBMSVerbindung zum DBMS

Präsentation

Datenzugriff

Dialogsteuerung

Anwendungslogik

Dienste und Datenlogik

Page 40: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

0

10

20

30

40

50

60

70

80

90

1. Qrtl. 2. Qrtl. 3. Qrtl.

020406080

100

1.Qrtl.

2.Qrtl.

3.Qrtl.

Präsentation

Tiers (Verteilung von Schichten auf Rechner)

Kontrolle

Funktion

Modell

1. Qrtl.

2. Qrtl.

3. Qrtl.

Ost

20,427,4

90W

est30,6

38,634,6

Nord

45,946,9

45

Wie sollen Funktionalitäten (z.B. als Schichten)auf verschiedene Rechner verteilt werden?

Wie sollen Funktionalitäten (z.B. als Schichten)auf verschiedene Rechner verteilt werden?

Page 41: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

1-Schichtverteilung (1-Tier)

• Alle Softwarelayer befinden sich auf einem Rechner– Management der Ressourcen erfolgt zentral– Software selbst kann hoch-optimiert werden

(Trennung zwischen Schichten hier nicht zwingend notwendig)

• Nutzer arbeiten mit einer monolithischen Anwendung

• Mehrere Rechner mit einer solchen über (grafische) Terminals

• Typisch bei Mainframeanwendungen

Page 42: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

2-Schichtenverteilung (2-Tier)

• Typischer Weise Trennung von Präsentation und dem Rest (Business- und Datenlogik)– Client enthält Präsentation mit GUI und behandelt Interaktion mit

Nutzer– Server kapselt Business- und Datenlogik

• Clients sind (weitgehend) unabhängig voneinander– Es kann auch verschiedene Clients für verschiedene

(Teil)funktionalitäten geben

• Ressourcemanagement sieht nur eine Businesslogik als Client– hier lässt sich der Zugriff daher gut optimieren

• Erlaubt die Nutzung komplexerer GUI's mit intensiverer CPU-Nutzung, da Clients verteilt sind

• Definierten Notwendigkeit zur Bereitstellung von universellen Kommunikationsschnittstellen zwischen Client und Server

Page 43: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Thin Client / Thick Client

Page 44: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Client/Server Modelle

Prozeß:Legende:

Computer:

Server

Client

Client

Auftrag

Antwort

Initiierender Prozeß•stellt Anfragen•erteilt Aufträge

Reagierender Prozeß•bearbeitet Anfragen•erfüllt Aufträge

ServerAuftrag

Antwort

Page 45: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Mehrfache Server

Server

Server

Server

Dienst

Client

Client

Partitition oderReplikation vonDiensten

Beispiel Partition:WWW

Beispiel Partitionund Replikation: DNS

Page 46: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Proxy-Server und Cache

Client

Proxy

Web

server

Web

server

serverClient

Proxy-Server: Gemeinsamer CacheZweck von Proxy-Servern: erhöhte Leistung und Verfügbarkeit

Page 47: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Koordinierungs-

Applikation

code

Koordinierungs-

Applikation

codeKoordinierungs-

Applikation

code

Gleichrangige Prozesse (Peer Processes)

Oft bessere Leistung als Client-Servermit vielen ähnlichen Prozessen und vorwiegend lokaler Kommunikation.Beispiel: Whiteboard

Oft bessere Leistung als Client-Servermit vielen ähnlichen Prozessen und vorwiegend lokaler Kommunikation.Beispiel: Whiteboard

Page 48: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Nachteile der 2-Schichtenverteilung

• Ein Server muss in der Regel alle Clients bedienen

• oder ich hab mehrere Server, die bzgl. dem Ressourcenzugriff nicht synchronisiert sind

– denn es gibt ja keine gemeinsam genutzte Business-Logik (wo diese

stattfinden kann)

– Beim Zugriff auf Server mit verschiedenen Funktionalitäten ist der

Client der Integrator => Fat Clients

• Der Client muss nun wissen, wo was ist, wie er darauf zugreifen kann, wie

Konistenz garantiert werden kann, etc.

• Das ist ineffizient in nahezu allen Aspekten (Software Design, Portabilität, Code Rebenutzung, Performanz)

• Lässt sich nur bei Erweiterung der Schichtverteilung lösen

Page 49: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

3-Schichtenverteilung (und mehr)• Bei der 3-Schichtenverteilung im klassischen Sinne sind Präsentations-,

Business- und Datenlayer getrennt

– voll modularisiertes System

– Verschiedene Layer können über Netzwerktechnologien miteinander

kommunizieren

• Die Layer werden dabei oft auch auf verschiedene Rechnersysteme verteilt• Middleware wird als universelle Kommunikations-"Brücke" zwischen den

einzelnen Schichten eingesetzt

– trennt Anwendungslogik zu einem gewissen Teil von der Kommunikationslogik

– erhöht die Interoperabilität von Softwaresystemen über Rechnergrenzen

hinweg

– Kann verschiedene Hilfsdienste bereitstellen, um wichtige Eigenschaften des

Verteilten Systems zu garantieren

Page 50: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Architektur mit 3-Schichtenverteilung

Präsentationsschicht

Applikationslogik

Datenlogik Datenlogik

Page 51: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Applikationen, Dienste

Betriebssystem

Middleware

Computer- und Netzwerkhardware

Middleware abstrahiert vom Betriebssystem

Middleware (Verteilungsplattform) :Transparenz der •Heterogenität existierender Hardware und Betriebssysteme•Verteilung

Middleware (Verteilungsplattform) :Transparenz der •Heterogenität existierender Hardware und Betriebssysteme•Verteilung

Plattform: „unterste“ Hardware- und Softwareschichten (Low-Level)werden häufig als Plattform bezeichnet.Beispiele: Intel x86/{Windows|Linux}, PowerPC/MacOS, Solaris

Plattform: „unterste“ Hardware- und Softwareschichten (Low-Level)werden häufig als Plattform bezeichnet.Beispiele: Intel x86/{Windows|Linux}, PowerPC/MacOS, Solaris

•Plattformunabhängig•Middlewareabhängig

•Plattformunabhängig•Middlewareabhängig

Page 52: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Middleware als Zwischenschicht zur Kommunikation zwischen Layer

Page 53: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Middleware als Integrationshilfsmittel

Page 54: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

N-Schichtenverteilung

• Entweder durch Hinzufügen weiterer Schichten

– z.B. bei Web-Business-Applikationen durch

zusätzlichen Web-Tier

• Durch Verknüpfungen mehrer Mehrschicht-Anwendungen über zusätzliche Integrationslayer

Page 55: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

4-Schichten-Architektur mit Web-Layer

• Für solche Architekturen setzt man häufig Komponenten-oriente Frameworks ein, die auf Application Server basieren

– Komplette Frameworks

zum Schreiben von

Mehrschicht-

Anwendungen

• .NET Framework

• Java JEE

Page 56: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

JEE als Komponenten-orientierte Middleware

BrowserLegacySystem

LegacySystem

Database

(Controller)Servlet(s)

(Model)

Web/HTTP Server

3

(View)JSPGUI

Anwend.

EJBEJB

EJB

EJB

JMS

JDBC

CORBA

JNDI

CorbaDienst

e

Application ServerRMI

RMI

Page 57: Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 11.02.2014 Verteilte Systeme Dozent: Clemens Düpmeier Foliensatz 1: Einführung, Historie,

Clemens Düpmeier, 11.04.23

Forschungszentrum KarlsruheTechnik und Umwelt

Gliederung der weiteren Vorlesung

• Kommunikation und Parallelität – Grundlegende Begriffe und Technologien

– Client-Server Kommunikation

– Nebenläufigkeit (Parallelität), Synchronisationsprobleme, Verteilte

Transaktionen

• Verteilte Objektkommunikation und Namensdienste• Middleware, Verteilte Softwarekomponenten und Application Server

– Verteilte Komponenten und ihre Kommunikation

– Kommunikation über Nachrichten (MOM – Message Oriented Middleware)

• Die Rolle des Web in Verteilten Business-Applikationen

– Web als Präsentationsschicht

– Web als Servicekommunikationsschicht

– SOA (Service Oriented Architecture)