systemarchitekturen zur konstruktion verteilter systeme · is to develop computer systems capable...

31
Systemarchitekturen zur Konstruktion verteilter Systeme: Kommunikationsarten Kommunikationsarten, Architekturen und Paradigmen vsis inf min uni hh ws 11_12 VIS-1 Arch-1

Upload: others

Post on 01-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Systemarchitekturen zurKonstruktion verteilter Systeme:

KommunikationsartenKommunikationsarten, Architekturen und Paradigmen

vsis inf min uni hh ws 11_12 VIS-1 Arch-1

GliederunggKommunikationsformen

— nachrichtenbasiert— aufrufzentriert— datenzentriert— ereignisbasiertg

Architekturen— Client/Server und Schichtenmodelle— Client/Server und Schichtenmodelle— Peer-to-Peer und Hybridmodelle— Umsetzung: Middleware und Selbstmanagement

Zum Vergleich: Betriebssystemarchitekturen— Zum Vergleich: Betriebssystemarchitekturen

Konstruktionsparadigmenbj kt i ti t— objektorientiert

— komponentenbasiert— dienstorientiert

vsis inf min uni hh ws 11_12 VIS-1 Arch-2

— agentenorientiert

Kommunikation in VS

• Kommunikation dient der Übertragung von Informa-tionen zwischen Elementen Prozesstionen zwischen Elementen

• Formen der Kommunikation

Prozess

— direkt: Übermittlung von Informationen zu einem (bzw. mehreren) Empfänger(n) Information

?e e e ) p ä ge ( )• Beispiele: Anruf, SMS, Email

i di kt Hi t l I f ti i i I f

Information

— indirekt: Hinterlassen von Informationen in einem Infor-mationsspeicher, der für andere zugänglich ist

• Beispiele: Forum, BlogProzess

vsis inf min uni hh ws 11_12 VIS-1 Arch-3

Aufrufzentrierte Kommunikation

• stammt aus der objektbasierten WeltEl t A k t El t B (b d Ad )• Element A kennt Element B (bzw. dessen Adresse)

• Element A kennt die Signatur der gewünschten Methode auf B• typischerweise erfolgt der Aufruf der Methode synchron d h der aufru-typischerweise erfolgt der Aufruf der Methode synchron, d.h. der aufru

fende Kontrollfluss wartet auf das Ergebnis des Calls• Die Übergabesemanik von Parametern kann Call-by-Reference oder Call-

b V l iby-Value sein• Ist B nicht im Adressraum von A, so kann ein entfernter Methodenaufruf

durchgeführt werden (Remote Method Invocation – RMI)g ( )• Probleme im verteilten Fall: z.B. Netzwerkfehler, Parameterübergaben,

Kenntnis über Objekte und Schnittstellen, Heterogenität, enge Kopplung, Aufrufsemantiken und idempotente OperationenAufrufsemantiken und idempotente Operationen

AufrufA BAufruf: ret = B.m1(args)

vsis inf min uni hh ws 11_12 VIS-1 Arch-4

Ergebnis

Nachrichtenbasierte Kommunikation

• Element A kennt Element B (bzw. dessen Adresse)N h i ht äh li h i B i f b t h d t i h i i U• Nachricht ähnlich einem Brief, bestehend typischerweise aus einem Um-schlag und dem eigentlichen Inhalt

• Nachricht asynchron, da A nicht auf eine Antworten von B warten mussy ,• kann auch zum Aufbau synchroner Kommunikation genutzt werden, denn

A kann selbst entscheiden, ob er auf eine Reaktion von B wartetN h i ht kö T il üb d t P t k ll i t i h• Nachrichten können Teil übergeordneter Protokolle sein, typisches Beispiel: Request-Reply

• Probleme in offenen Systemen z.B.: Wie verstehe ich die Nachricht und yderen Inhalt? Wie weiß A, dass B seine Nachricht erhalten hat?

B i i l A t t• Beispiel: AgentensystemeNachricht

A BSenden: send(msg)

vsis inf min uni hh ws 11_12 VIS-1 Arch-5

( g)

Datenzentrierte Kommunikation• Element A muss B nicht kennen• Elemente kommunizieren über gemeinsames (aktives od. passives) Repository

A hinterlegt seine Information im Datenraum• A hinterlegt seine Information im Datenraum• B wird entweder durch Infrastruktur automatisch informiert, oder muss selbst im

Datenraum nachsehen (push/pull Modelle)• asynchron da A keine (direkte) Antwort erwartet• asynchron, da A keine (direkte) Antwort erwartet• Datenraum kann unterschiedliche Strukturen aufweisen, z.B. DHT, Tuple Space,

Artefakt, …• unterschiedliche Zugriffsarten möglich z B auch Zugriff über deklarative / mengen• unterschiedliche Zugriffsarten möglich, z.B. auch Zugriff über deklarative / mengen-

orientierte Anfragen• zeitliche / räumliche Entkopplung• Beispiele: Vernetzte Anwendungen im Gesundheitswesen kommunizieren über• Beispiele: Vernetzte Anwendungen im Gesundheitswesen kommunizieren über

verteiltes Dateisystem, Ameisen kommunizieren über Pheromone, Blackboards

Komponente KomponenteKomponente KomponenteKomponente KomponenteKomponenteKomponente KomponenteKomponente ABKomponente Komponente

Lieferung

Komponente KomponenteKomponente KomponenteKomponenteKomponente KomponenteKomponente AB

Gemeinsamer (persistenter)

Veröffentlichung

vsis inf min uni hh ws 11_12 VIS-1 Arch-6

(Tanenbaum 2008)

Gemeinsamer (persistenter)Datenraum

Ereignisbasierte Kommunikationg• Element A muss B nicht kennen• Kommunikation über Propagierung von Ereignissen• ähnlich der nachrichtenbasierten Kommunikation, aber indirekt, d.h. der Erzeuger

eines Ereignisses interessiert sich nicht für die Identität der Empfänger• Vermittlung über Themen

• Beispiel: Message-Oriented Middleware (MOM)— Prozesse wirken als Publisher und/oder Subscriber

Subscriber können Themen abonnieren— Subscriber können Themen abonnieren— Publisher können Nachrichten zu einem Thema veröffentlichen— Vermittlung der Nachrichten erfolgt über Infrastruktur— mögliche Realisierung durch themenspezifische Warteschlangenmögliche Realisierung durch themenspezifische Warteschlangen

Komponente KomponenteKomponente KomponenteKomponente KomponenteKomponenteKomponente KomponenteKomponente KomponenteKomponente

Ereignisbus

V öff tli h

LieferungEreignisbusEreignisbusEreignisbusEreignisbusEreignisbusEreignisbus

vsis inf min uni hh ws 11_12 VIS-1 Arch-7Komponente

Veröffentlichung

KomponenteKomponente (Tanenbaum 2008)

Softwarearchitekturen in verteilten Systemeny• Definition Softwarearchitektur: „describes the sub-systems and components of a

software system and the relationships between the components.“ (Bass et al.)— Entscheidung über Softwarekomponenten ihre Zusammenarbeit und ihre AnordnungEntscheidung über Softwarekomponenten, ihre Zusammenarbeit und ihre Anordnung

• zentralisierte Architekturen:— typischerweise Abarbeitung über einen logischen Prozess

l i h P b h ibt d l i h K t llfl d b t hi t d• logischer Prozess: beschreibt den logischen Kontrollfluss und abstrahiert von der zugrunde liegenden physischen Prozessstruktur

• dezentralisierte Architekturen:— typischerweise Aufteilung in mehrere logische Prozesse

StructureCl ifi tiClassification

Monolithic Peer-to-PeerModular

Centralistic Layered

vsis inf min uni hh ws 11_12 VIS-1 Arch-8

Client/Server-Architekturen

• Server: Dienstanbieter, d.h. Prozess, der einen bestimmten Dienst imple-mentiert (z B Datei DB)mentiert (z.B. Datei, DB)

• Client: Dienstnutzer, d.h. Prozess der Dienst von einem Server anfordert und auf Ergebnis wartet (request-reply)und auf Ergebnis wartet (request reply)— Verschicken (request) und Empfangen einer Nachricht (reply) erfolgen als

Einheit ermöglicht synchrone Kommunikation über asynchrone Infrastruktur— ermöglicht synchrone Kommunikation über asynchrone Infrastruktur

— Umsetzung z.B. über unterschiedliche Warteschlangen für Request- und Reply-Nachrichten

• vertikale Verteilung der Funktionen mithilfe von Schichten, typischerweise— Benutzungsschnittstelleg— Verarbeitungsebene— Datenebene

vsis inf min uni hh ws 11_12 VIS-1 Arch-9

Grundlagen Schichenarchitektureng

aus Netzwerktechnik über-nommen:nommen:

• Li ist Dienstnehmer von Li-1

• dient der funktionalen• dient der funktionalen Trennung

• führt zur leichteren Aus-tauschbarkeit

• Steuerung läuft von Schicht zu SchichtSchicht zu Schicht— Anforderungen Ln -> L1

— Ergebnisse L1 -> Ln

vsis inf min uni hh ws 11_12 VIS-1 Arch-10

[Wikipedia 2008]

Mehrschichtarchitekturen

• Verteilung der Schichten auf Client und Server (physische „2 Tier“-Architektur)• Beispiele:Beispiele:

— endgeräteabhängiges GUI auf Client— Formularüberprüfungen auf den Client verlagern— Web Browser Cacheeb o se Cac e

• Tendenz zu Thin Clients wegen des Verwaltungsaufwandes• physische „3 Tier“-Architektur erlaubt weitere Trennung der logischen Schichten• darüber hinaus gehende NTier“-Schichtmodelle möglichdarüber hinaus gehende „NTier Schichtmodelle möglich

GUI GUI GUI

Client

Anwendung

GUI GUI GUI

Anwendung

Datenbank

Anwendung

Anwendung

Datenbank Datenbank

vsis inf min uni hh ws 11_12 VIS-1 Arch-11

DatenbankDatenbank Datenbank

Server

Peer-to-Peer-Architekturen

• Horizontale Verteilung der Funk-tionentionen— Systeme können gleichartige

Funktionen besitzen• Jeder Peer agiert gleichzeitig als

Client und Server (Servant)• Overlay-Netzwerk für Kommuni-Overlay Netzwerk für Kommuni

kation der Peers— logisches Netz oberhalb existie-

render Infrastrukturrender Infrastruktur — oftmals eigener Adressraum mit

eigener Adressierung• Mechanismen zum Auffinden

von Ressourcen notwendig

vsis inf min uni hh ws 11_12 VIS-1 Arch-12[Wikipedia 2008]

Arten von Peer-to-Peer-Systemeny

• strukturierte Peer-to-Peer-Architekturendeterministische Generierung des Overlay Netzwerks über z B DHT— deterministische Generierung des Overlay-Netzwerks über z.B. DHT

— Datenelementen werden systematisch bestimmte Konten zugeordnet — Bsp. CAN, räumliche Aufteilung der Teilnehmer und ihrer Verantwortlichkeiten

• unstrukturierte Peer-to-Peer-Architekturen— zufallsgesteuerte Generierung des Overlay-Netzwerks— jeder Knoten besitzt Liste von Nachbarn (partielle Sicht) – Austauschverfah-

ren für Listen— Datenelemente sind zufällig auf Knoten verteilt— Auffinden von Datenelementen über Flooding

• HybridarchitekturenHybridarchitekturen— Super-Peer-Systeme— Edge-Server-Systeme

vsis inf min uni hh ws 11_12 VIS-1 Arch-13

Umsetzung von Funktionalitäten verteilter Systemeg y

• Einzelne Middleware-Systeme folgen bestimmten Architekturstilen (zum Beispiel: CORBA ist objektbasiert)(zum Beispiel: CORBA ist objektbasiert)

• Damit fördern sie jedoch jeweils genau eine Art verteilter Anwendungen;j j g g ;unterschiedliche Lösungsmöglichkeiten:

— alle Funktionen integrieren

• Problem: aufgeblähte Software

— unterschiedliche Versionen

• Problem: aufwendig zu entwickeln, warten

— änderbare Middleware (am besten sich selbst anpassend)

• Problem: schwierig zu konstruieren, Ziele u.a.: Separation of Concerns, Reflektion, komponentenbasiertes Design

vsis inf min uni hh ws 11_12 VIS-1 Arch-14

Selbstmanagement von Systemeng y

• Ziel: automatische Anpassung der SoftwareA d A füh h lt— Anpassung des Ausführungsverhaltens

— Anpassung der konstituierenden Softwarekomponenten

• Gründe:— Umgebung ändert sich

verteilte Anwendungen sind z T 24/7— verteilte Anwendungen sind z.T. 24/7

• Eine Lösungsidee: Autonomic Computingg p g— “Autonomic Computing is an initiative started by IBM in 2001. Its ultimate aim

is to develop computer systems capable of self-management, to overcome the rapidly growing complexity of computing systems management, and to reduce p y g g p y p g y g ,the barrier that that complexity poses to further growth.”

vsis inf min uni hh ws 11_12 VIS-1 Arch-15

Self*(CHOP)-Eigenschaften( ) g

vsis inf min uni hh ws 11_12 VIS-1 Arch-16

CHOP: configure, heal, optimize, and protect [IBM 2005]

Autonome RückkopplungssteuerungAutonome Rückkopplungssteuerung• Steuerung einer „Managed Resource“ durch „Autonomic Manager“

Z iff üb St d d Z iff kt ( T h i t“)• Zugriff über Standard-Zugriffspunkt („Touchpoint“)• MAPE-Loop (Monitor, Analyze, Plan, Execute)

vsis inf min uni hh ws 11_12 VIS-1 Arch-17(IBM 2005)

Autonome Systeme: Architekturvisiony

vsis inf min uni hh ws 11_12 VIS-1 Arch-18[IBM 2005]

Architektur (verteilter) Systemsoftware

Banksystem Flugreservierung Spiele Anwendungen

RechensystemBanksystem Flugreservierung Spiele ...

Compiler Editoren ... Kommandointerpreter

Anwendungen

System-programmeBetriebssystemBetriebssystemHard-ware

BetriebssystemBetriebssystemMaschinensprache, Mikroprogrammierung

physikalische Geräte

Alternative Sichtweisen eines (verteilten) Betriebssystems...

...als „erweitere / virtuelle“ Maschine„erweitere / virtuelle“ MaschineZiel: zunehmend „komfortable“ Abstraktion von Systemeigenschaften

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

vsis inf min uni hh ws 11_12 VIS-1 Arch-19

d.h. (u.a.) von Speichern, Prozessen, Geräten, Netzschnittstellen etc.

Zum Vergleich: Betriebssystem-Architektureng y

5 OperateurA) Geschichtetes SystemB THE (Dijk t 68) 4 Benutzerprogramme

3 Ein-/Ausgabeverwaltung

2 Prozesskommunikation

Bsp: THE (Dijkstra 68)

1 Speicherverwaltung

0 Prozessorvergabe/Multiprogrammierung

B) Virtuelle MaschineBsp: IBM /370 mit VMS (80er) CMS CMS CMS

Virtuelle /370 Virtuelle /370 Virtuelle /370

VM / 370/370 Hardware

C) Client/Server-Modell ClientKern

ServerKern

ServerKern

zentralBS-(micro)Kern(el)

vsis inf min uni hh ws 11_12 VIS-1 Arch-20

Inter-Prozesskommunikationzentral

modularer Aufbau, flexibel, erweiterbar, ...

Betriebssystemunterstützung: Systemalternativen y g y

A) Mono-Prozessor:MicrokernelMicrokernel ArchitekturMicrokernelMicrokernel-Architektur User

Applic.MemoryMangmt.

ProcessModule

...OS Interface OS Interface OS Interface

Microkernel

Hardware

OS Interface

System call

OS Interface OS Interface

DOS (Di t ib t d OS) k l BS fü M l i PB) 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 ( ) g g

Multi-Computer (LAN und WAN)

• Middleware: zusätzliche Ebene oberhalb des NOS zur Implemen-ti ll i Di t

vsis inf min uni hh ws 11_12 VIS-1 Arch-21

tierung allgemeiner Dienste

Verteilte Betriebssystem-Alternativen (1)

Distributed ApplicationsA) Netzwerk-BS:

NetworkOS services ...

NetworkOS services

+ Autonomie- Transparenz

NetworkOS services

Kernel Kernel Kernel

Rechner A Rechner B Rechner C

Di t ib t d A li tiB) Multiprocessor/

Netzwerk

Distributed ApplicationsMulticomputer /Verteiltes BS:

Distributed OS System Services

Kernel Kernel Kernel

Rechner A Rechner B Rechner C...

+ Transparenz- Autonomie

vsis inf min uni hh ws 11_12 VIS-1 Arch-22

Netzwerk

Verteilte Betriebssystem-Alternativen (2)

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

Distributed Applications

Network NetworkNetwork

Middleware Services

NetworkOS

services

NetworkOS

services

NetworkOS

services

Kernel Kernel Kernel

Net erk

Rechner A Rechner B Rechner C...

Netzwerk

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

vsis inf min uni hh ws 11_12 VIS-1 Arch-23

auf Anwendungs- und Systemebene!

Vergleich der Betriebssystem-Alternativeng yDistributed OSMultiprocessor

Distributed OSMulticomputer

Network OS Middleware-based DSMultiprocessor Multicomputer

Degree of transparency

Very high High Low High

S OS Y Y N NSame OS on all nodes ?

Yes Yes No No

Number of 1 N N Ncopies of OSBasis for com-munication

Shared memory Messages Files Model specificmunicationRessource management

Global, central Global, distributed

Per node Per node

Scalability No Moderately Yes Varies

Openness Closed Closed Open Open

vsis inf min uni hh ws 11_12 VIS-1 Arch-24

Paradigmen für die Konstruktion verteilter Systemeg y

Softwareparadigma• bestimmt die Konzepte für die Beschreibung und Realisierung von• bestimmt die Konzepte für die Beschreibung und Realisierung von

Softwaresystemen• legt den Abstraktionsgrad für die Beschreibung fest („Weltmodell“)• fördert / behindert bestimmte Architekturen• entwickelt sich stetig weiter in Richtung abstrakterer Konzepte

• Historische Entwicklung Programmierparadigmen als Beispiel:— von der imperativen zur objektorientierten Programmierung

imperativ: Computerprogramm als lineare Folge von Befehlen— imperativ: Computerprogramm als lineare Folge von Befehlen— objektorientiert: Kapselung von Daten und Methoden zu Klassen/Objekten

k ti ll V bild— konzeptionelle Vorbilder:• imperativ: von-Neumann-Rechner• objektorientiert: reale Welt bestehend aus (realen/virtuellen) Objekten

vsis inf min uni hh ws 11_12 VIS-1 Arch-25

Objektorientiertes Paradigmaj g

• Objekte als Einheiten für Daten und Verhaltenb i t f th d b i t K ik ti d d Cli t/S• basiert auf methodenbasierten Kommunikation und dem Client/Server-Modell für den Aufbau

• Diensterbringer/ -nehmer sind dabei Objekte beliebiger Granularitätg j g• Durch Objektidentitäten ist systemweite Identifizierung von Dienster-

bringern möglichMi ti Obj kt ö li ht t t L f it d• Migration von Objekten ermöglicht transparente Laufzeitanpassung der Anwendungskonfiguration

• Probleme: Wiederverwendbarkeit der Objekte zumeist gering, da keine j g g,Trennung der Querschnittsaspekte möglich ist (wie z.B. Persistenz- oder Sicherheitseigenschaften)

O1

Rechner 1

O2

O3 O4

O5

vsis inf min uni hh ws 11_12 VIS-1 Arch-26

Rechner 2O5

Komponentenbasiertes Paradigmap g• Erweiterung des objektorientierten Paradigmas• Komponenten sind grob-granulare Einheiten auf fachlicher Ebene mit

klaren Schnittstellenklaren Schnittstellen• Komponenten in sich abgeschlossen (self contained) bzw. definieren

genau ihre Abhängigkeiten• Idee: Komponenten Repositories zur bausteinartigen Komposition von• Idee: Komponenten-Repositories zur bausteinartigen Komposition von

Software aus vorgefertigten Komponenten• Komponenten umfassen im Wesentlichen nur die Anwendungslogik, sie

sind getrennt vom Einsatzkontext d h sie werden erst beim Deploymentsind getrennt vom Einsatzkontext, d.h. sie werden erst beim Deployment genau konfiguriert (Sicherheit, Transaktionen, Persistenz, …)

• Komponenten besitzen einheitliches Deployment-Modell• Komponenten werden oftmals in speziellen Containern ausgeführtKomponenten werden oftmals in speziellen Containern ausgeführt • Beispiel: Enterprise Java Beans, .NET-Komponten

Container 1Rechner 1

K1K2

K3

vsis inf min uni hh ws 11_12 VIS-1 Arch-27

Container 1Rechner 2

Dienstorientiertes Paradigmag

• SOA – Service Oriented Architecture• prozessorientierte Sicht mit fachlichen Diensten als Basiskonzept• prozessorientierte Sicht mit fachlichen Diensten als Basiskonzept• Dienste sind grob-granulare Bausteine von Softwaresystemen, die in loser

Kopplung zu Geschäftsprozessen / Abläufen integriert werden können— Orchestrierung— Orchestrierung— Choreografie

• Dienste zeichnen sich wohl-definierte Schnittstellen ausDienste können sowohl synchron als auch asynchron verwendet werden• Dienste können sowohl synchron als auch asynchron verwendet werden

• Ziel: Interoperabilität durch Standards (Technologieunabhängigkeit)

S2S1I1

Rechner 1

Rechner 2

S2I2

I1S3I1

vsis inf min uni hh ws 11_12 VIS-1 Arch-28

Rechner 2

Agentenbasiertes Paradigmag g

• System wird als Zusammenspiel unabhängiger Akteure (Agenten) gesehen (Multiagentensystem)gesehen (Multiagentensystem)

• Kommunikation ist grundsätzlich asynchron (nachrichtenbasiert)• Basiskonzept Agent als in einer Umgebung situierte Einheit, die über

Aktuatoren und Effektoren verfügt• Agenten entscheiden grundsätzlich autonom, wie sie Nachrichten inter-

pretierenp et e e• Verhaltensspezifikation eines Agenten über interne Architekturen• Verhaltensspezifikation eines Multiagentensystems über Koordination der

i l A ( l h i l A hit kt )einzelnen Agenten (vgl. auch soziale Architekturen)

A1

Plattform 2

Plattform 1

Rechner 1

A2A1

A3

vsis inf min uni hh ws 11_12 VIS-1 Arch-29

Plattform 2Rechner 2

Überblick über Paradigmen für VSg

CommunicationCommunicationAbstractness

Peer Negotiations

Asynchronous Calls

S i O i t ti

AgentOrientation

Synchronous Calls ImperativeProgramming Object

Service-OrientationComponentOrientation

Modelling EntitiesAbstractnessData and Procedures Objects Actors

Orientation

vsis inf min uni hh ws 11_12 VIS-1 Arch-30

Zusammenfassungg• Kommunikationsarten

— direkt vs. indirekt und die Realisierungskonzepte• Prozeduraufruf• Prozeduraufruf• Nachrichten• Ereignisse• gemeinsamer Datenraumg

• Architekturen— von zentral bis vollständig dezentral – auch im Vergleich mit Betriebssystemenvon zentral bis vollständig dezentral auch im Vergleich mit Betriebssystemen

• Client/Server • netzwerkorientiert• Schichten • vollständig verteilt• Peer-to-Peer • Middleware-basiert

• Paradigmen für die Konstruktion verteilter Systeme— Versuchen, die Realität in Software abbildbar zu machen— VS sind charakterisiert durch die Art der Kommunikation und der Entitäten— Paradigmen bestimmen die Beschreibungsmöglichkeiten und damit das „Weltbild“

vsis inf min uni hh ws 11_12 VIS-1 Arch-31