einführung in verteilte systeme - vsis homepage · © wl vsis inf min uni hh 07_08 vis2-einf-1...

32
VIS2-Einf-1 © wl vsis inf min uni hh 07_08 Einführung in verteilte Systeme: Motivation, Definition und Charakteristika

Upload: ngokhuong

Post on 27-Aug-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

VIS2-Einf-1© wl vsis inf min uni hh 07_08

Einführung in verteilte Systeme: Motivation,

Definition und Charakteristika

Einführung in verteilte Systeme: Motivation,

Definition und Charakteristika

VIS2-Einf-2© wl vsis inf min uni hh 07_08

Verteilte Anwendungen bzw. Systeme:Kooperation in verteilten Umgebungen

z.B. "Electronic Commerce/E-Business"

Basis:Integration weltweiterRechnernetze(Inter-/Intranets)

• Unterschiedliche Rechner- und Betriebssystemtypen• Vielfältige (Teil-) Netze / Kommunikationsmechanismen• Unterschiedliche (Sub-) Organisationen• Autonome Datenhaltung• Vielfältige Anwendungen• ...

„offener verteilter Markt von Diensten"

Grundvoraussetzungen:Heterogenität und Autonomieauf ganz verschiedenen Ebenen, z.B.

VIS2-Einf-3© wl vsis inf min uni hh 07_08

Zur Geschichte der Datenverarbeitung

• 1950er Jahre: Einbenutzersysteme• 1960er Jahre: Batch Processing• 1970er Jahre: Mehrbenutzersysteme• 1980er Jahre: Personal Computing• 1990er Jahre: Verteilte Systeme• 2000er Jahre: Mobile, ubiquitäre Systeme

• viele Prozessoren• viele Speichereinheiten• Kommunikationsnetzwerke• größere Zuverlässigkeit ('fault tolerance')• mehr Fähigkeiten (z.B. Parallelität)• Systemverwaltung (!)

+ allgemein: Grafik, Farbe, Multimedia, etc....

"VerteilteSysteme":

VIS2-Einf-4© wl vsis inf min uni hh 07_08

Allgemeine verteilte Anwendungen: Beispiele ...

• Überregionale bzw. internationale Unternehmen (Verwaltung von Kundenverzeichnissen, Auftragsbeständen, Produktionsplänen, Lagern, Bestellwesen etc.)

• Reservierungssysteme von Fluggesellschaften, Hotelketten, Autovermietung, Reisegesell-schaften usw.

• Auskunfts- und Auszahlungssysteme bei Banken

• Unterstützung der Büroautomatisierung

• Integrierte Entwurfs-, Planungs- und Produktionssysteme

• Messstellenerfassung und -auswertungssysteme im Bereich der Immissionskontrolle

• Elektronische Mail- und Conferencing-Systeme

• Campus-/Büro-/Filial-(etc.) Netze

• Planung und Verfolgung des Laufes von Zügen bei der Bahn

• Navigationssysteme für viele, autonome, bewegliche Einheiten

• etc.. . . z.B. … + Verteilte elektronische Bibliotheken / Informationssysteme+ Electronic Commerce / E-Business+ Ubiquitäre / mobile Systeme

VIS2-Einf-5© wl vsis inf min uni hh 07_08

Motivation für verteilte Systeme (gegenüber zentralisierten Systemen)

• mangelnde Möglichkeiten der Zentralrechner

(Antwortzeiten, Interaktivität, Benutzerschnittstellen, Grafik ...)

• Anforderungen neuer Anwendungen

(grafische Benutzerschnittstellen, kurze Antwortzeiten ...)

• weite Verbreitung mächtiger PCs und Workstations

• fortgeschrittene Netztechnologien (LAN, WAN, MAN, wireless...)

• gemeinsame Nutzung von Ressourcen (bzw. „Diensten“)

• geringere Hardware-Kosten (!?!) --> Grosch's Gesetz ???

VIS2-Einf-6© wl vsis inf min uni hh 07_08

Gründe verteilter Verarbeitung: technisch

Es ist technisch machbar

Reduktion der AntwortzeitenHöhere Verfügbarkeit

Modulare Wachstumsfähigkeit

Geringere Kosten

Höhere Sicherheit

Möglichkeit der Verarbeitung vor Ort vs. lange Anfrage an Zentralrechner (insbesondere bei räumlich weit verteilten Anwendungen)

Bei der Verwendung vieler Komponenten betrifft der Ausfall eines Systems nur eine kleine Gruppe von Benutzern/ Daten/ Funktionen - u.U. bleibt sogar die volle Funk-tionalität erhalten.

Da das Architekturprinzip die Kooperation unabhängiger Komponenten ist, ist die Hinzunahme weiterer Komponenten im laufenden Betrieb eine normale, ohnehin vorgesehene Operation.

Die aktuelle Größe des Systems kann wegen der Modularität dem jeweiligen Bedarf besser angepasst werden. N 'kleine' Systeme mit jeweiliger Leistung x sind i.d.R. deut-lich billiger als ein 'großes' System mit Leistung n*x mit gleicher Verfügbarkeit.

Dieser oft behauptete Vorteil erscheint i.a. eher fragwürdig.

VIS2-Einf-7© wl vsis inf min uni hh 07_08

Gründe verteilter Verarbeitung: anwendungsspezifisch

Viele Organisationen sind räumlich verteilt und arbeiten hochgradig autonom

Anwendungen werden zunächst für eigene lokale Zwecke entwickelt und erst später (ev.) integriert

Arbeit erfordert PCs, Workstations, Mini- oder Großrechner, Number-Cruncher oder...

Bsp.: Fluglinien mit Reisebüros, Banken mit Investmentfirmen, Firmenzentrale mit neu erworbener Tochterfirma etc.

Autorisierung entspricht Verantwortlichkeit

Die Abteilung will ihre eigene Maschine

Verschiedene Benutzer (-klassen) haben unterschiedliche Anforderungen

Integration verschiedener, zunächst unabhängig entwickelter Teilsysteme

VIS2-Einf-8© wl vsis inf min uni hh 07_08

Charakteristika verteilte Systeme

Viele Prozessoren, Speicher, Subsysteme...

Kopplung autonomer Verarbeitungsknoten (Prozessor/Speicher-Paare) durch ein Kommunikationsmedium

Kommunikation zwischen verschiedenen Knoten erfolgt nur über Nachrichten-austausch

Vorhandensein eines gemeinsamen Ziels, bereitgestellte Leistung wird durch arbeitsteilige Kooperation erbracht

Verteilungstransparenz (mindestens Orts- und Zugriffstransparenz)

Kein gemeinsamer Speicher - aber:

Gemeinsames Wissen um gemeinsamen System(teil-)zustand

Keine allen gemeinsame Fehlerquelle

Unabhängiges Fehlerverhalten der Teilsysteme

VIS2-Einf-9© wl vsis inf min uni hh 07_08

Charakteristik verteilter SystemeDefinition: „A distributed system is a collection of independent computers that appears to its users as a single coherent system“

Beispiele zur Abgrenzung:

• Multiprozessorsystem mit gemeinsamen Speicher+ mehrere Prozessoren,Verteilung, Kommunikation - kein unabhängiges Fehlerverhalten!

• Ethernet-LANs mit verbindenden Bridges+ viele Prozessoren,Verteilung, Kommunikation, unabhängiges Fehlerverhalten - kein gemeinsamer Zustand!

• Diskless Workstations mit NFS-Server+ viele Prozessoren, Verteilung, Kommunikation, unabhängiges Fehlerverhalten - kein gemeinsamer Zustand!

VIS2-Einf-10© wl vsis inf min uni hh 07_08

Architekturalternativen:"Lose" vs. "eng" gekoppelte (verteilte) Systemalternativen

Spei.

Cach.

Proz.

I/O

LAN

Proz.

Programm

Prog.

Cach.Proz.

Prog.

Cach.Proz.

Prog. GemeinsamerSpeicher

I/O

SP

SP

SP

SP

. . .

. . .

I/O

lose gekoppelt

eng gekoppelt

Array Processor

ProgSpei.

Proz.

I/O

ProgSpei.

Proz.

I/O

Prog

SingleInstructionMultipleDataProgramm

Cach.

VIS2-Einf-11© wl vsis inf min uni hh 07_08

Vorteile verteilter Systeme

+ Abbild organisatorischer Gliederungen (!!!)

+ Erweiterbarkeit / Skalierbarkeit / Modularität

+ höhere Zuverlässigkeit und Verfügbarkeit

+ Replikation (Redundanz!)

+ unabhängiges Fehlerverhalten

+ kurze und vorhersehbare Antwortzeiten (--> Workstations)

+ Kostenvorteile (Hardware vs. Software !?!)

+ Sicherheit (???)

VIS2-Einf-12© wl vsis inf min uni hh 07_08

Nachteile verteilter Systeme

- Abhängigkeit vom Netzwerk („Interconnectivity“)(Netzwerkpartionierung, zusätzliche Fehlerfälle)

- Interferenzen / Abhängigkeiten von Teilkomponenten

- Propagieren von Effekten (z.B. Fehlern)

- Folgen hoher Komponentenzahl (Engpässe!)

- Partielles Fehlerverhalten

- weniger Flexibilität bei der Zuweisung von Ressourcen

- kein gemeinsamer Zustand (auch: keine gemeinsame Uhr)

- Sicherheit (Verteilung, offene Server-Schnittstellen, BS-Nachrichten,...)

- Koordinationsprobleme (!!!)

VIS2-Einf-13© wl vsis inf min uni hh 07_08

Prinzip verteilter Client/Server-Systeme: Verteilte Dienstnutzung und -koordination

2 wichtige Aspekte: Kooperation und Transparenz

Knoten BKnoten A

Knoten C Knoten D

Maschinengrenzen

Softwarekomponenten

Kommunikation

VIS2-Einf-14© wl vsis inf min uni hh 07_08

„Transparenz“-Eigenschaften verteilter Systeme

• ZugriffsZugriffstransparenz

• OrtsOrtstransparenz

• NebenlNebenlääufigkeitsufigkeitstransparenz

• ReplikationsReplikationstransparenz

• FehlerFehlertransparenz

• MigrationsMigrationstransparenz

• LeistungsLeistungstransparenz

• SkalierungsSkalierungstransparenz

VIS2-Einf-15© wl vsis inf min uni hh 07_08

„Transparencies“ (nach Coulouris/Dollimore/Kindberg)

• Access transparency: enables local and remote resources to be accessed using identical operations.

• Location transparency: enables resources to be accessed without knowledge of their location.

• Concurrency transparency: enables several processes to operate concurrently using shared resources without interference between them.

• Replication transparency: enables multiple instances of resources to be used to increase reliability and performance without knowledge of the replicas by users or application programmers.

• Failure transparency: enables the concealment of faults, allowing users and application programs to complete their tasks despite the failure of hardware or software components.

• Mobility transparency: allows the movement of resources and clients within a system without affecting the operation of users or programs.

• Performance transparency: allows the system to be reconfigured to improve performance as loads vary.

• Scaling transparency: allows the system and applications to expand in scale without change to the system structure or the application algorithms.

VIS2-Einf-16© wl vsis inf min uni hh 07_08

Techniken zur Realisierung verteilter Systeme

• Fragmentierung von Daten

• Lokale Kopien (Replikation) entfernter (HW+SW) Komponenten zur Effizienz- und Verfügbarkeitssteigerung ('Caching', 'Stashing', o.ä.)

Generelles Problem: „Tradeoff“ Verfügbarkeit vs. Konsistenz

Ziel: hohe Lokalität der Daten

• Partitionierung von komplexen Diensten (z.B. Datenverwaltung)

• Aufrufe entfernter Dienste und Funktionen (Zugriff auf entfernte Ressourcen z.B. mittels ‚Remote Procedure Call‘, RPC)

• zustandslose vs. zustandsbehaftete Server

VIS2-Einf-17© wl vsis inf min uni hh 07_08

Netz-Systemalternativen:„Workstation/Server“-Modell

LAN

WS WS

WS

WS

WS

Druck-Server

- 1 Prozessor pro Benutzer (Graphik...)

- Data Sharing via File Server (Programm, DB, SW-Lib. Bull. Board, Doku.,...)

- spezialisierte Server zur Nutzung gemeinsamer Ressourcen (!)

- Bsp. V-System [Stanford 82], XDS [XEROX 77], Argus [MIT 83]

FS

FS

FS: FileServer

WS: Work-station

VIS2-Einf-18© wl vsis inf min uni hh 07_08

Netz-Systemalternativen:„Prozessor-Pool“-Modell

- >1 Prozessor pro Benutzer

- dynamische Zuweisung von Prozessoren

- spezialisierte Server zur Nutzung gemeinsamer Ressourcen (Name, Time, PrintAuthentification, ..)

- Bsp. CDCS (Needham/Herbert [Cambridge 80])

LAN

Druck-Server

PAD

TT

T

T

T

PADT TT

ProzessorPool

T: Terminal

PAD: Packet As-/Disassembler (Ter-minal Concentrator)

VIS2-Einf-19© wl vsis inf min uni hh 07_08

„Prozessor Pool“-Modell vs. „WS/Server“-Modell

Vorteile des "Prozessor-Pools": • bessere Ausnutzung der Ressourcen

• Flexibilität bzgl. des Lastaufkommens

• Kompatibilität mit zentral. Systemen

• heterogene Prozessoren (Spezialisierung)

• aber: Probleme bei Graphik (Komm.!)

Vorteile des "WS / Server"- Modells

• grafische, interaktive Benutzerschnittstellen, Fenstertechnik

• lokale Verarbeitungsmöglichkeit

• integrierende Kommunikations-Software

VIS2-Einf-20© wl vsis inf min uni hh 07_08

Netz-Systemalternativen: „Hybrides“ Modell

- >1 Prozessor pro Benutzer

- Vereinigung des "Prozessor Pools" mit dem "WS / Server"-Modell

- Bsp. Amoeba [Mullender/Tanenbaum, Amsterdam 84ff]

LAN

Druck-Server

PAD

TT

TT

TProzessor

Pool

WS

WS WS

- Proc. Pool- Workstation- OS Kernel

VIS2-Einf-21© wl vsis inf min uni hh 07_08

Netz-Systemalternativen: „Integriertes“ Modell

- <= 1 Prozessor pro Benutzer

- Verbindung heterogener HW-Plattformen

- keine spezialisierten Server

- Bsp. Sun NFS [UNIX BSD 4.2 85] (verteiltes Dateisystem), Locus [Popek/UCLA 85]Newcastle Connection [Brownbridge, Randall et al. 82]

LAN

PAD

WS WS

Mikro-Computer

T

T

T

T

T

Mini-Computer

T T T

T

T T

T

T

T

T

T

T

- Verteilungstransparenz- einheitliches verteiltes BS- z.T. autonome Knoten

VIS2-Einf-22© wl vsis inf min uni hh 07_08

Schrittweise Verallgemeinerung:Grade von Verteilungstransparenz

- Level 0:Zugang zu unabhängigen Rechnern (z.B.CCITT X.3, X.28, X.29)einzelne Rechner explizit adressierbarz.B. remote log in, file transfer, message passing, ...oft heterogene Teilnoten (bzw. Netze)

- Level 1: einige verteilte Anwendungsprogramme (z.B. eMail, remote who)sonst noch voneinander unabhängige RechnereMail auf der Basis logischer Adressen (z.B. xyz@organisation)Bsp.: Grapevine [Birrel et al. 82]

- Level 2 :voll verteilungstransparenter Zugang zu entfernten RechnernAnwendungsprogramme weitgehend wie in zentralisiertem SystemInteroperabilität auf der Basis von Standards !Bsp.: Distributed (e.g. NFS) File Services

VIS2-Einf-23© wl vsis inf min uni hh 07_08

Aufbau von (verteilter) Systemsoftware

KommandointerpreterEditoren ...Compiler

Spiele ...FlugreservierungBanksystem

Alternative Sichtweisen eines (verteilten) Betriebssystems...

...als „„erweitere / virtuelleerweitere / virtuelle““ MaschineMaschineZiel: zunehmend „komfortable“ Abstraktion von Systemeigenschaften

...als „BetriebsmittelverwalterBetriebsmittelverwalter“Aufgaben: Allokation / Vermittlung / Verwaltung von Ressourcen –d.h. (u.a.) von Speichern, Prozessen, Geräten, Netzschnittstellen etc.

Anwendungen

System-programme

Hard-ware

Rechensystem

physikalische Geräte

Maschinensprache, Mikroprogrammierung

BetriebssystemBetriebssystem

VIS2-Einf-24© wl vsis inf min uni hh 07_08

Zur Erinnerung: Betriebssystem-Architekturen

Operateur5

Benutzerprogramme4

0

1

2

3

Prozessorvergabe/Multiprogrammierung

Speicherverwaltung

Prozesskommunikation

Ein-/Ausgabeverwaltung

B) Virtuelle MaschineBsp: IBM /370 mit VMS

A) Geschichtetes SystemBsp: THE (Dijkstra 68)

C) Client/Server-ModellKernClient

KernServer

KernServer

Inter-Prozesskommunikationzentral

modularer Aufbau, flexibel, erweiterbar, ...

BS-(micro)Kern(el)

VM / 370CMS CMSCMS

/370 Hardware

Virtuelle /370 Virtuelle /370 Virtuelle /370

VIS2-Einf-25© wl vsis inf min uni hh 07_08

Betriebssystemunterstützung: Systemalternativen

A) Mono-Prozessor:MicrokernelMicrokernel-Architektur User

Applic.

Microkernel

Hardware

MemoryMangmt.

ProcessModule

...

B) Multi-Prozessor: • DOS (Distributed OS): eng gekoppeltes BS für Multi-Prozessoren und homogene Multi-Computer

• NOS (Network OS): lose gekoppeltes BS für heterogene

Multi-Computer (LAN und WAN)

• Middleware: zusätzliche Ebene oberhalb des NOS zur Implemen-tierung allgemeiner Dienste

OS Interface

System call

OS Interface OS Interface

VIS2-Einf-26© wl vsis inf min uni hh 07_08

Verteilte Betriebssystem-Alternativen

Kernel Kernel Kernel

Distributed Applications

Netzwerk

Rechner A Rechner B Rechner C

B) Multiprocessor/Multicomputer /Verteiltes BS:

Distributed OS System Services

...

NetworkOS services

Kernel

...

NetworkOS services

Kernel

NetworkOS services

Kernel

Distributed Applications

Netzwerk

Rechner A Rechner B Rechner C

A) Netzwerk-BS:

+ Autonomie- Transparenz

+ Transparenz- Autonomie

VIS2-Einf-27© wl vsis inf min uni hh 07_08

Verteilte Betriebssystem-Alternativen (ff.)

C) Middleware-basiertes verteiltes (Betriebs-) System:

Kernel Kernel Kernel

Distributed Applications

Netzwerk

Rechner A Rechner B Rechner C

NetworkOS

services

...

NetworkOS

services

NetworkOS

services

Middleware Services

Basis: Client/Server- (Dienste-) Kooperation auf Anwendungs- und Systemebene!

VIS2-Einf-28© wl vsis inf min uni hh 07_08

Vergleich der Betriebssystem-Alternativen

OpenOpenClosedClosedOpenness

VariesYesModeratelyNoScalability

Per nodePer nodeGlobal, distributed

Global, centralRessource management

Model specificFilesMessagesShared memoryBasis for com-munication

NNN1Number of copies of OS

NoNoYesYesSame OS on all nodes ?

HighLowHighVery highDegree of transparency

Middleware-based DS

Network OSDistributed OSMulticomputer

Distributed OSMultiprocessor

VIS2-Einf-29© wl vsis inf min uni hh 07_08

Zusammenfassung: Ziele verteilter Programmierung• Performanz: z.B. beschränkte max. Antwortzeiten:

garantiertes Maximum vs. Durchschnittswerte• Gemeinsam genutzte Ressourcen:

Server-Knoten, verteilungstransparenter Zugriff, RPC ...• Modulares Wachstum:

Zerlegung verteilter Anwendungen in 'threads of control', parallele Dekompo-sition (von Daten und Prozessen)'Data vs. function Shipping' (bei wenig/häufigen Änderungen)

• Autonome Knotenkontrolle:'Data Shipping' --> autonome Verarbeitung'Function Shipping' --> autonome Daten

• Zuverlässigkeit und Verfügbarkeit: Netzknoten: 'fail fast'' + stabiler Speicher, zuverlässige Hard- und Software-Komponenten, Duplizieren von Komponenten (log./phys., Redundanz)

• Sicherheit: Knotenautonomie; Verschlüsselung; Function Shipping!

TRADEOFF: Parallele Dekomposition <-vs-> Kommunikationsanforderung !

VIS2-Einf-30© wl vsis inf min uni hh 07_08

Probleme bei der Realisierung Verteilter Systeme

• Zugriff auf entfernte Ressourcen in vorab bekannter, möglichst einheitlicher Weise: Heterogenität ? ---> Standardisierung !

--> gemeinsam bekannte Spezifikation von Kooperationsformen („Protokoll“)

• Richtige Zuordnung von Namen (‚Naming‘-Dienste)

• Gemeinsam bekannte Systemzustände bzgl.Protokoll (Synchronisation des Verhaltens) bzw.Daten (verteilte Datenhaltung)

--> dabei möglichst wenig dauerhafte "Zustandsinformation" halten• Robustheit (erreichbar u.a. durch ‚Handshaking‘, ‚Time-out‘, ‚Sequenznummern‘,

‚Checksummen‘,...)

• Sicherheit der Datenübertragung (Zugangskontrolle/ Authentisierung, Kodierung/ Verschlüsselung , sichere Hard- und Software,...)

• Zugriffsschutz: z.B. mit „Capabilities“, d.h. Benutzerobjekten, die Berechtigung für bestimmte Zugriffsarten repräsentieren

• Beweise von Systemeigenschaften ?!

VIS2-Einf-31© wl vsis inf min uni hh 07_08

Zusammenfassung: Charakteristika Verteilter Systeme

• „Resource Sharing“: ...bzgl. HW, SW, Daten (trotz Heterogenität!)

• „Openness“: HW/SW, Schnittstellen, Protokolle, technisch/kommerziell

• „Concurrency“: Benutzer (Clients)- / Server - Parallelität

• „Scalability“: HW, SW, Performanz

• „Fault Tolerance“ + „Availability“: HW-/SW-Redundanz

• „Transparency“: Zugangs-, Lokations-, CC-, Replikations-, Fehler-, Migrations-, Performanz-, Scaling-, ...

VIS2-Einf-32© wl vsis inf min uni hh 07_08

Zusammenfassung: Vor- und Nachteile verteilter Systeme

Potientielle Vorteile: + Abbild organisatorischer Gliederungen !!!+ Erhöhte Zuverlässigkeit und Verfügbarkeit

(Redundanz von Prozessoren, Daten etc.)+ Erweiterte Fähigkeiten insgesamt - mehr

Leistungsfähigkeit (Kapazität, Parallelität etc.)+ Modularität des Gesamtsystems+ Erweiterbarkeit (‚scalability‘)+ Kostenvorteile (?)+ Sicherheit (??)

Potentielle Probleme: - „Interconnectivity“

- Interferenzen / Abhängigkeiten

- Propagieren von Effekten (z.B. Fehlern)

- Folgen hoher Komponentenzahl (Engpässe!)

- Partielles Fehlerverhalten