109
Prof. J. Anton Illik Verteilte Systeme Architekturen und Software-Technologien J. Anton Illik 1

Illik verteilte systeme

Embed Size (px)

DESCRIPTION

Verteilte Systeme: Architekturen und Software-Technologien. Die Folien zum Buch.

Citation preview

Page 1: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Verteilte Systeme Architekturen und Software-Technologien

J. Anton Illik

1

Page 2: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Die Folien zum Buch

2

Das Buch vermittelt dem Leser Fach- und Methoden-Kompetenz in folgenden Punkten: Kenntnis der gewünschten charakteristischen Eigenschaften verteilter Systeme – Unterscheidung und Bewertung verschiedener Systemmodelle (z.B. Client-Server-, Peer-to-Peer-Architektur, serviceorientierte Architektur) – Beherrschung der Grundlagen von Interprozess-Kommunikationsmechanismen und Middleware in verteilten Systemen (Sockets, RPC, RMI, CORBA, Messaging Services etc.) – Beurteilung der Ansätze für den Entwurf und die Realisierung von verteilten Anwendungen (verteilte Objekte, Web-Services, Java EE/JEE usw.) – Kenntnis der Lösungs- und Einsatzmöglichkeiten für die verteilte Datenhaltung kennen (verteilte Dateisysteme, Namensdienste Datenbanken usw.) – Einschätzung des Potenzials neuer Computing Paradigmen, wie z.B. Cluster Computing, und ihrer Bedeutung für den eigenen betrieblichen Einsatz.

Page 3: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Die Folien zum Buch

3

•  Inhalt: 1) Grundlagen verteilter Systeme: 2) Grundlagen verteilter Systeme - Verteilte Anwendungen und ihre Eigenschaften – 3) Verteilet Anwendungen und ihre Eigenschaften – 4) Systemmodelle: Architektur verteilter Systeme – 5) Technologien in verteilten Systemen – 6) Cluster-Systeme 7) Entwicklung verteilter Systeme. 8) Objektorientierte Programmierung und verteilte Systeme – 9) Technologien in verteilten Systemen – 10) Technologieplattformen für verteilte Systeme – Die Technologie von Microsoft: C# und .NET – 11) Verteilte Datenhaltung – 12) RAID Konzepte – 13) Organisationsformen für Speichersysteme – 14) Verteilte Datensysteme – 15) Cluster Dateisysteme 17) Verteilte Datenhaltung in verteilten Applikationen: 18) Verteilte Datenhaltung in der Java-Technologie – 19) Namens- und Verzeichnisdienste •  Die Interessenten: Zukünftige IT-System- und Software-Architekten – Fortgeschrittene Studierende der Allgemeinen Informatik, Wirtschaftsinformatik, Medieninformatik, Bioinformatik, Medizininformatik, Geoinformatik. Das Buch ist ein idealer Begleiter für Lehrveranstaltungen zu den Themen »Programmentwicklung verteilter Systeme« und »Verteilte Computer-Systemarchitekturen«. Primär richtet sich das Buch an zukünftige IT-System- und Software-Architekten. •  Der Autor ist Professor für Software-Engineering und Programmiersprachen an der Fakultät für Wirtschaftsinformatik an der Hochschule Furtwangen. Er verfügt über eine umfassende Praxiserfahrung als Berater, Account-Manager und Geschäftsführer eines Informatik-Hauses. •  Blog: www.illik.de eMail: [email protected]

Page 4: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 4

Basic Engineering Business Engineering

Software Engineering

Systems Engineering

Einführung in die WI Allgemeine BWL

Programmieren

und Modellieren 1 Datenbanken 1

Mathematik

& Statistik Rechnungswesen und Controlling

Algorithmen und Datenstrukturen Internetworking

Präsentations- und Moderationstechnik

Geschäfts-Prozesse Programmieren

und Modellieren 1 System-Architekturen

Makroökonomie

WPV Integrierte

Standardsoftware Logistik und

SCM Software Engineering WPV

Datenbanken 2

Computernetze

Praxissemester

Vor- und Nachbearbeitungsblock

Organisations- und Führungstechnik

Praxis-Seminar Studienarbeit

Soziale Interaktion Business-Projekt Software- Projekt Netzdesign

WPV Bachelor-Seminar Mündliche Prüfung WI Thesis

Bild 1

Zielpublikum,  Au-au  und  Lernziele  

Page 5: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 5

Applikations-Ebene/ Anwendungen

Systemsoftware-Ebene / Betriebssystem

Hardware-Ebene

Systemebene

Bild 2

Zielpublikum,  Au-au  und  Lernziele  Grundlagen  verteilter  Systeme  

Page 6: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 6

Mainframe

Mainframe

Frontend

Drucker

Karten- Leser

Bac

kbon

e N

etz

Rechenzentrum

Monolithische  Batch-­‐Systeme  und  Closed-­‐Shop-­‐Betrieb  Der  Mainfraime,  eingesperrt  im  Rechenzentrum  

Bild 3

Page 7: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 7

Mainframe

Mainframe

Frontend

Drucker

Karten- Leser

Bac

kbon

e N

etz

Rechenzentrum

Mainframe

Terminal- Multiplexer

Fachabteilung

Terminal Terminal Terminal Terminal

Bild 4

Der  Computer  streckt  seine  Fühler  aus  dem  RZ  Der  Computer  verlässt  das  Rechenzentrum  

Page 8: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 8

Mainframe

Mainframe

Frontend

Drucker

Karten- Leser

Bac

kbon

e N

etz

Rechenzentrum

Mainframe

Terminal- Multiplexer

Fachabteilung

Terminal Terminal Terminal Terminal

Abteilungs- computer

Workstation PC Workstation PC

Local Area Network

Bild 5

Der  Computer  streckt  seine  Fühler  aus  dem  RZ  Die  MulHvendor  –  Umgebung  forciert  offene  verteilte  Systeme  

Page 9: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 9

Partition 1

Partition 2

Partition 3

Partition 4

Physikalische Platte

Hierarchisches Datensystem

Filesystem 1

Filesystem 2

Filesystem 3

Filesystem 4

Bild 6

Netzwerk-­‐OS  mit  integriertem  Netzwerk-­‐Dateisystem  Das  NFS:  OrganisaHon  auf  physikalischer  und  logischer  Ebene  

Page 10: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 10

Client- Prozess 1

Client- Prozess 2

•• Terminal- Server

File- Server

Memory- Server

Netz- Server

Inter-Prozess-Kooperation

Speichermanagement

Prozessmanagement

Hardwareinterface

Micro-Kernel Kernel Space

User Space

Bild 7

Echt  verteilte  offene  Systeme  auf  Micro-­‐Kanal-­‐Basis  Das  Client-­‐Server-­‐Prinzip  auf  Micro-­‐Kanal-­‐Basis  

Page 11: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 11

Client

µ Kernel

Client

µ Kernel

Client

µ Kernel

Client

µ Kernel

µ Kernel µ Kernel

Terminal-Server

RAM Server

µ Kernel µ Kernel

File-Server

Netz-Server

Netzwerk

Nachricht vom Client an Server

Bild 8

Echt  verteilte  offene  Systeme  auf  Micro-­‐Kanal-­‐Basis  Das  Client-­‐Server-­‐Modell  in  einer  verteilten  Umgebung  

Page 12: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 12

Client Server

Aufruf

Antwort

Zeit

Bild 9

Client-­‐/Server-­‐Architektur  Das  Client-­‐Server-­‐Prinzip  

Page 13: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 13

Client

Filiale

Server 1

Hauptstelle

Server 2

Datenbankserver

entfernter Aufruf

Rückmeldung Rückmeldung

entfernter Aufruf

Bild 10

Client-­‐Server-­‐Struktur  Client-­‐Server-­‐Struktur  

Page 14: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 14

Peer_1

Phone Client

Peer_2

Phone Client

entfernter Aufruf

entfernter Aufruf

Bild 11

Peer-­‐to-­‐Peer-­‐Architektur  Peer-­‐to-­‐Peer-­‐Struktur  

Page 15: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 15

Client

Service_1 Service_2 Service_3

Verzeichnis- dienst

1. Services suchen

3. Services nutzen

2. Services finden

Bild 12

Service-­‐orienHerte  Architektur  Web-­‐Service-­‐Struktur  

Page 16: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 16

Modell (= Datenmodell)

Controller (= Programm-

steuerung)

View (=Präsentation)

Bild 13

MVC  Architekturmuster  MVC-­‐Struktur  

Page 17: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 17

Byte-Stream

Byte-Stream

Pipe

Bild 14

Pipes  und  Fifos  Das  Prinzip  der  Pipe  

Page 18: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 18

Anwendungs- Programm Klientenstub Kommunikations-

komponente Serverstub Kommunikations- komponente

Server- Programm

Prozeduraufruf Aufrufkodierung Aufruf-

übertragung Aufruf-

empfang Aufruf-

dekodierung Prozeduraufruf

Ergebnisrückgabe Ergebnis- dekodierung

Ergebnis- empfang

Ergebnis- übertragung

Ergebnis- kodierung

Ergebnis- rückgabe

main()�{ �int a, b, c; �a=3,b=4;�rechne (a,b,&c);�...�}�

...�void rechne(� int x, � int y, � int *z)�{ �*z = a+b;�}�

Klient Server

Serveradresse rechne

3 4

rechne 7

Übe

rtrag

ungs

prot

koll

Übe

rtrag

ungs

prot

koll rechne

3 4

rechne 7

Bild 15

Genereller  Ablauf  einer  RPC  Ablaufstruktur  eines  typischen  RPC-­‐Systems  

Page 19: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 19

Computer_1 JVM_1

Klasse A

B.m()

Computer_2 JVM_2

Klasse B Methoden

m n

l

Externer Methodenaufruf

Ergebnis- Rückgabe

Bild 16

Remote  Method  InvocaHon  (RMI)  Das  RMI/RPC-­‐Prinzip  

Page 20: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 20

XML XML

C

Java

Perl

C++

PHP

Perl

XML-RPC

HTTP

externer Aufruf

Ergebnisrückgabe

code

code

code

code

code

code

Source: JYSterinos

Bild 17

XML  RPC  Das  Prinzip  von  XML-­‐RPC  

Page 21: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 21

Client Server MOM A P I

A P I

Bild 18

Lose  Koppelung  und  NachrichtenorienHerung  Message-­‐oreinted  Middleware  mit  naHver  API  

Page 22: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 22

Client Server

A P I

A P I

A P I

A P I

MOM

Bild 19

Portabilität  durch  Standard-­‐SchniZstelle  Message-­‐oriented  Middleware  mit  naHver  API  und  JMS-­‐API  

Page 23: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 23

Produzent

Konsument_1

A P I

A P I

A P I

A P I

Konsument_1

JMS-Provider

Messsage Queue1

Messsage Queue2

Bild 20

Das  Produzenten-­‐Konsumenten-­‐Modell  Die  Point-­‐to-­‐Point-­‐KommunikaHon  

Page 24: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 24

Produzent_1

JMS Provider

Topic 1

Topic 2

Topic 3

Topic 4 Produzent_2

Subscriber_2

Subscriber_2

Bild 21

Die  Paradigmen  Point-­‐to-­‐Point  und  Publish-­‐Subscribe  Die  Publish-­‐Subscribe-­‐KommunikaHon  

Page 25: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 25

OSF DCE Architektur

Distibuted Client/Server Applications

DCE Host (AIX HP-UX DG/UX ODF/1 Sinix Solaris VMS OD2 NT)

EXTENDED SERVICES

Distributed File Service Global Directory Service

CORE SERVICES

Transported Services and Network

DCE Threads (Thread-Safe C Library –libc_r)

Remote Procedure Call

Time Service

Directory Service Security

Service Management

Service

M I D D L E W A R E

M I D D L E W A R E

Bild 22

Open  Group  DCE  Gesamtarchitektur  des  DCE  der  Open  Group  

Page 26: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 26

COM Spezifikationen

COM Library

Bild 23

Der  Au-au  von  COM  COM  als  SpezifikaHon  und  ImplemenHerung  

Page 27: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 27

Anwendungen

ASP.NET ADO.NET Web-Services …

Common Language Runtime (Laufzeitumgebung)

Garbage Collection Sicherheit Just-in-time Compilation …

Betriebssystem (Windwos,Linux)

Bild 24

Architektur  und  Paradigma  Schichten-­‐Architektur  von  .NET  

Page 28: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 28

Application Objects Business Objects Common Facilities

Object request Broker ORB

Object Services

Bild 25

Die  Object  Management  Architecture  Das  OMA  Referenzmodell  

Page 29: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 29

Schicht 1 Schicht 2 Schicht 3

Client Datenbank Server

Java EE Server

EJB Container

Web Container

Enterprise Bean

Enterprise Bean

Enterprise Bean

JSP Servlet

Bild 26

Struktur  einer  J2EE-­‐Anwendung  3-­‐Schichten-­‐Architektur  einer  einfachen,  verteilten  J2EE-­‐ApplikaHon  

Page 30: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 30

Applet Container

Applet

JSE

Java WebStart enabled Rich Client

J2SE

MIDP Clients

J2ME Application Client Container

J2ME

Application Client

JMS

JA

AS

JAX

P

JDB

C

Web Container

J2SE

JSP

JAA

S

JAX

P

JTA

Servlet

JMS

JDB

C

Con

nect

or

JAF

Java Mail

EJB Container

J2SE

Enterprise Bean

JAA

S

JAX

P

JTA

JMS

JDB

C

Con

nect

or

JAF

Java Mail

Database

HTTP SSL

HTTP SSL

HTTP SSL

HTTP SSL

Bild 27

Die  J2EE-­‐Architektur  Die  J2EE-­‐Architektur  

Page 31: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 31 Bild 28

Die  J2EE-­‐Architektur  Zentrale  Begriffe  In  einer  J2EE-­‐Architektur  

Komponente Ist eine in sich abgeschlossene funktionelle Software-Einheit mit modularem Charakter. D.h. die Komponente ist austauschbar, solange die Ersatzkomponente die gleichen Schnittstellen hat.

EJB-Spezifikation Beschreibt die Regeln, nach denen die Schnittstellen der einzelnen Komponenten bezüglich der EJB-Technologie zu entwerfen sind, damit die Modularität des Systems stets gewährleistet ist.

J2EE Server Er stellt die übergreifende und umfassende Komponente dar, die alle anderen Komponenten der J2EE-Architektur integriert. Dabei stellt er sowohl für die (internen) Komponenten wie auch für die externen Clients verschiedene Dienste zur Verfügung.

EJB Container Ist eine Komponente, die den Enterprise JavaBeans eine Laufzeitumgebung zur Verfügung stellt. Der EJB-Container selbst ist ein Bestandteil des J2EE-Servers.

Begriff Bedeutung

Page 32: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 32 Bild 28

Die  J2EE-­‐Architektur  Zentrale  Begriffe  In  einer  J2EE-­‐Architektur  

Enterprise Java Bean Ist eine Komponente, die innerhalb des EJB-Containers ausgeführt wird, und entweder die Business-Logik enthält oder die Daten einer Datenbank repräsentiert.

Businesslogik Die Business-Logik wird auch Anwendungslogik genannt. Sie bezeichnet den Teil des Codes einer Anwendung oder einer Enterprise Bean, welcher die Funktionen bereitstellt, für den die Anwendungen oder Enterprise Bean entwickelt wurden.

Enterprise Anwendung Eine Enterprise-Anwendung kann sowohl Enterprise Beans als auch Bestanteile einer Web-Anwendung (HTML-Dokumente, Servlets, JSPs) enthalten. Sie kann übereinen J2EE-Server verteilt werden.

Deployment Das Deployment ist der Prozess der Installation und Integration einer Komponente in den J2EE-Server.

Begriff Bedeutung

Page 33: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 33

Server

Server

Client Client Client

Client Client Client

LAN

LAN

Bild 29

Cluster  versus  LAN  Strukturiertes  LAN:  Server  (im  Stockwerk)  der  Fachabteilung  

Page 34: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 34

Management Node

Terminalserver

Load Balancer

Node 1

Node 2 …

Switch

Service Prozessor Netzwerk

Bild 30

High-­‐Performance-­‐Cluster  Konzept  eines  Scalability  Clusters  

Page 35: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 35

Offizielles TCP/IP Netz, redundant

Node 1 Node 2

Cluster Internconnect

Shared Plattenresourcen für das gesamte Cluster, in der Regel Hardware-RAID-Lösungen mit Dual-Controller

Shared StorageVerbindung, z.B. Fibre Channel, redundant

Bild 31

High-­‐Availability-­‐Cluster  Konzept  eines  High-­‐Availability  Clusters  

Page 36: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 36

Rechner 1 Rechner 2

Rechner 3

01

02 03

05

04

06

08

07

Bild 32

OO  Programmierung  und  verteilte  Systeme  Struktur  einer  verteilten  objektorienHerten  Anwendung  

Page 37: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

4 3

Rückkehradresse (Zum Betriebssystem)

4 3

Rückkehradresse (zur main)

4 3

Rückkeradresse (zum Betriebssystem)

1096 1098

b a

zu main gehöriger Stack- abschnitt

(a)

(b)

1100

1098 1096 1094 1092 1090

b a

y x

zu rechne gehöriger Stackab- schnitt zu main gehöriger Stackab- schnitt

Stack nach der Ausführung der Funktion rechne, ergebnis und print

1100

1098 1096 4

3 Rückkeradresse

(zum Betriebssystem)

b a

zu main gehöriger Stackab- schnitt

1100

1098 1096 1094 1092 1090 1088

1086 1084

1100

4 3

Rückkeradresse (zum Betriebssystem)

4 3

Rückkeradresse (zum main)

7 Rückkehradresse

(zur rechne)

7 Rückkehradresse

(zur ergebnis)

Stack nach dem Aufruf von printf

b a

y x

zu rechne gehöriger Stackab- schnitt zu main gehöriger Stackab- schnitt

ergeb

ergeb

Zu printf gehöriger Stackabschnitt

zu ergebnis gehöriger Stackabschnitt

(c) (d)

Bild 37

Der  lokale  Prozedur  Aufruf  Die  Stack-­‐Inhalte  

37

Page 38: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Anwendungs- Programm Klientenstub Kommunikations-

komponente Serverstub Kommunikations- komponente

Server- Programm

Prozeduraufruf Aufrufkodierung Aufruf-

übertragung Aufruf-

empfang Aufruf-

dekodierung Prozeduraufruf

Ergebnisrückgabe Ergebnis- dekodierung

Ergebnis- empfang

Ergebnis- übertragung

Ergebnis- kodierung

Ergebnis- rückgabe

main()�{ �int a, b, c; �a=3,b=4;�rechne (a,b,&c);�...�}�

...�void rechne(� int x, � int y, � int *z)�{ �*z = a+b;�}�

Client Server

Serveradresse

rechne

3

4

rechne

7

Übe

rtrag

ungs

prot

koll

Übe

rtrag

ungs

prot

koll rechne

3

4

rechne

7

Bild 38

Genereller  Ablauf  einer  RPC  Ablaufstruktur  eines  typischen  RPC-­‐Systems  

38

Page 39: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Export DokumentDrucken (Dokument, Format)

Namenstabelle

DokumentDrucken 123.456.7.8 (Dokument, Format)

Import DokumentDrucken (Dokument, Format)

Serveradresse 123.456.7.8

RPC: 123.456.7.8 DokumentDrucken(d, f)

Prozeduraufruf DokumentDrucken(d,f)

Return(status)

Server Klient Directory-Dienst

(a) (b)

(c)

(d)

Bild 39

IdenHfikaHon  und  binden  der  Aufrufpartner  Beispiel  für  einen  RPC-­‐Bindevorgang  

39

Page 40: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Client K (mit Schlüssel S1)

Authentisierungsdienst

Server S (mit Schlüssel S2)

Generiert KS(S1, S2)

entschlüsselt KS(S2) entschlüsselt RPC-Aufruf

verschlüsselt Ergebnis mit KS

(b) Rückmeldung {KS(S1), KS(S2)}

(c) Nachricht {RPC(KS), KS(S2)}

(a) Schlüsselanforderung (K, S1)

(d) Rückmeldung {Ergebnis(KS)}

(e) Nachricht {RPC(KS)}

(f) Rückmeldung {Ergebnis(KS)}

entschlüsselt KS(S1)

verschlüsselt RPC-Aufruf mit KS, sendet diesen zu-

sammen mit KS(S2)

entschlüsselt Ergebnis

Bild 40

Sicherheitsaspekte  Struktur  eines  RPC  mit  AuthenHsierung  und  Verschlüsselung  

40

Page 41: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

rechnen.idl

IDL-Compiler

rechnen_cstub.o rechnen.h rechnen_sstub.o

rechnen_client.c rechnen_server.c

rechnen_client.o rechnen_server.o

#include

C compile

link link

rechnen_client.exe rechnen_server.exe

Bild 41

ImplemenHerung  eines  RPC-­‐Programms  Verarbeitung  der  IDL-­‐SchniZstelleninformaHon  

41

Page 42: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Unmarshalling der Parameter

Marshalling der Parameter

Aufruf einer entfernten Methode

Aufruf der Methode Datenstrom weiterleiten Weitergabe

Remote-Objekt Skeleton Stub Client

Bild 46

Die  Bestandteile  einer  RMI-­‐Anwendung  Die  Rolle  von  Stub  und  Skeleton  

42

Page 43: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Bild 47

Das  Ablaufschema  eines  encernten  Methodenaufrufs  Der  RMI-­‐Server  registriert  ein  Objekt  in  der  RMI-­‐Registry  

RMI-Server-Host

RMI-Registry

JVM B

RMI-Server

43

Page 44: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

RMI-Client-Host RMI-Client

RMI-Server-Host RMI-Registry

Bild 48

Das  Ablaufschema  eines  encernten  Methodenaufrufs  Die  RMI-­‐Registry  liefert  die  Objektreferenz  zurück  

44

Page 45: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

RMI-Client-Host

RMI-Client

Stub

OS A

RMI-Server-Host JV

MA

OS B

Skeleton

RMI-Registry

JVM B

RMI-Server

Bild 49

Das  Ablaufschema  eines  encernten  Methodenaufrufs  RMI  Gesamtablauf  

45

Page 46: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Bild 51

Der  Sicherheitsmanager  (SecurityManager)  Sicherheitseinstellungen  (Permissions)  

AllPermission Anwendung oder Applet dürfen alles

FilePermission Zugriff auf Dateien und Verzeichnisse

NetPermission Zugriff auf Netzwerkressourcen

PropertyPermission Zugriff auf Systemeigenschaften

ReflectPermission Zugriff über Reflection auf andere Objekte

RuntimePermission Einschränkungen von Laufzeitsystemen

SecurityPermission allgemeines Sicherheitskonzept, etwa für den Zugriff auf Policies

SerializablePermission Beschränkung der Serialisierung

SocketPermission Spezielle Einschränkungen an Sockets

Policy Permissions Bedeutung

46

Page 47: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Application Objects Business Objects Common Facilities

Object request Broker ORB

Object Services

Bild 56

Die  Object  Management  Architecture  Das  OMA  Refenzmodell  

47

Page 48: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Client

abstraktes CORBA Objekt

Implementierung

Objektzustand

Schnittstelle

Objektreferenz

Bild 57

Au-aue  eines  CORBA  Objekts  Au-au  eines  CORBA  Objekts  

48

Page 49: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

IDL Interface

Attribute

Java C++

Smalltalk

ADA

C

COBOL

Client

Java C++

Smalltalk

ADA

C COBOL

Objektimplementierung

Methoden

Bild 59

Language  Mapping  IDL  Language  Mapping  

49

Page 50: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Client Server

ORB Core (Object Request Broker Kernkomponente)

Interface Repository (Schnittstellenablage)

Implementation Repository (Implementierungsablage)

IDL Skeleton

DSI Object Adapter

ORB Interface

DII IDL Stub

von der ORB-Implementierung abhängige Schnittstelle es existieren verschiedene Objektadapter genormte Schnittstellen – sind für alle ORB-Implementierungen identisch benutzerdefinierte Schnittstelle

Bild 60

ORB-­‐Architektur  (CORBA)  CORBA  Architektur  

50

Page 51: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

ORB ORB

Stub Skeleton

Client Objektimpl.

Client Server

Bild 61

Proxy-­‐KommunikaHon  Prinzip  der  Proxy-­‐KommunikaHon  

51

Page 52: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

• Initialisierung des OA • Registrieren der Objekte beim ORB

Schnittstelle

Objekt

CORBA-Objektserver

Bild 62

Au-au  einer  Server-­‐Anwendung  CORBA  Objektserver  

52

Page 53: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

DII Interface Stub

Client Programm

Programmiersprachen-spezifische Objektreferenz

ORB Objektreferenz

Bild 63

Au-au  eines  CORBA  Clients  CORBA  Client  

53

Page 54: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

ORB A

ORB B

Voll- Brücke

Protokoll A Protokoll B

ORB A

ORB B

Halb- Brücke

Protokoll A Protokoll B

Halb- Brücke

z.B. IIOP

Bild 64

Die  ORB  Interoperability  Architecture  Voll-­‐  und  Halbbrücke  

54

Page 55: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Nachricht Absender

Request Client

Reply Server

CancelRequest Client

LocateRequest Client

LocateReply Server

CloseConnection Server

MessageError Client und Server

Fragment Client und Server

Bild 65

GIOP  und  IIOP  GIOP  Nachrichten  

55

Page 56: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Business Objects

Object Services Object Request Broker ORB

Common Facilities

Application Objects

Bild 66

Zusammenfassung  CORBA  Referenzmodell  

56

Page 57: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

ORB Services & Common Facilities Naming Service – Interface Repository – Life Cycle Service – Concurrency Service – …

Internationalization and Time – Mobile Agents Facility - …

Object Request Broker Core

DII IDL Stubs Object Adapter

Static IDL Skeleton

Dynamic Skeleton

Client Object Implementation

Bild 67

Zusammenfassung  Die  Komponenten  des  ORBs  

57

Page 58: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Service Comsumer

Service Broker

Service Provider

Client Service

Service Contract

Find Publish

Interact

WDSL

WDSL

UDDI

Bild 68

SO  Architekuren  und  Web-­‐Services  mit  XML  und  SOAP  Die  drei  fundamentalen  Rollen  einer  SOA  

58

Page 59: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Policy Model Policy

Service Oriented Model Action

Ressource oriented Model Ressource

Message oriented Model Message

Bild 69

SO  Architekuren  und  Web-­‐Services  mit  XML  und  SOAP  Das  W3C  Architektur-­‐Metamodell  

59

Partially layerd on

Page 60: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Transaction Messaging

Security

Web Service

Eis

Transaction Messaging

Security

Web Service

Custom App

Messaging Security

Web Service

Mainframe Logic

Bild 70

Web-­‐Services  Benutzung  von  Web-­‐Services  –  aber  keine  SOA  

60

Page 61: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

EIS Custom App

Mainframe Logic

Business Service Data Service Discovery

Transactions Messaging Security Man

agem

ent

Mon

itorin

g

Web Service Web Service Web Service

Broker / Dienstevermittler

Bild 71

Web-­‐Services  Benutzung  von  Web  Services  innerhalb  einer  SOA  

61

Service- Mediation

Page 62: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

UDDI

Server Client Proxy Web

Services

WSDL

SOAP

Bild 72

Web-­‐Services  Web  Services:  WSDL,  UDDI  und  SOAP  wirken  zusammen  

62

SOAP (Simple Object Access Protocol) als Protokoll dient der Kommunikation zwischen Service-Anbieter und Service-Konsument WDSL (Web Service Description Language) als Schnittstellenbeschreibung. Dient der Beschreibung der unterstützenden Methoden und deren Parametern. UDDI(Universial Description, Discovery and Integration) als Verzeichnisdienst (Registry) zur Registrierung von Web Services. XML (eXtended Markup Language) als Datenformat für alle oben erwähnten Bestandteile.

Page 63: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

EJB-Rollen Beschreibung

Enterprise-Bean-Provider Das ist der Entwickler einer Enterprise Bean. Er programmiert alle Bestandteile für die Enterprise Bean und fasst sie in einem jar-Archiv zu einer Komponente zusammen. Diese Komponente übergibt er dem Applicationassembler.

Server-Provider Das ist der Hersteller eines J2EE-Servers. Mit J2EE-Server ist hier ein Server gemeint, der konform zur J2EE-Architektur ist. Sun Microsystems liefert neben der Spezifikation einen kostenfreien Application Server als Referenzimplementierung. Auch Entwickler können diesen Server für die Entwicklungs- und Testphase nutzen. Für den kommerziellen Einsatz ist dieser Referenzserver allerdings nicht geeignet, bzw. zugelassen. Kommerzielle Produkte sind beispielsweise der „Web Logic Server“ von Bea Systems, der „Web Sphere Server“ von IBM, oder der JBOSS-Server von JBoss. Darüber hinaus gibt es noch zahlreiche weitere Server, die sich voneinander hinsichtlich Performance, Funktionsumfang (proprietäre Erweiter-ungen), Unterstützung durch Entwicklungswerkzeuge, Installations- und Administrationskomfort unterscheiden.

Container-Provider Der Hersteller einer größeren J2EE-Komponente ist der Container-Provider. Diese Komponente stellt die Laufzeitumgebung für Enterprise Java Beans zur Verfügung und ist in einem J2EE-Server integriert. Zur Zeit sind Server-Provider gleichzeitig die Container-Provider für die im Server integrierten Container. Daher lässt sich in der Praxis kaum zwischen Server und Container unterscheiden. Die EJB-Spezifikation lässt allerdings die Möglichkeit offen, dass in Zukunft der Container eines Herstellers in den Server eines anderen Herstellers integriert werden kann (Konsequenz der Komponentenarchitektur).

Bild 73

EJB-­‐Rollen  Rollenmodell  

63

Page 64: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

EJB-Rollen Beschreibung

Applicationassembler Diese Rolle fasst die Enterprise Java Beans zu größeren Komponenten, den Enterprise-Anwendungen, zusammen. Im Unterschied zum Enterprise-Bean-Provider ist dies in der Regel kein Software-Entwickler. Er erstellt sogenannte Applikationsdeskriptoren. Alle Bestandteile einer Enterprise-Anwendung werden von ihm in einem ear-Archiv zusammengefasst. Die von ihm erzeugte Komponente übergibt er dem Deployer.

Deployer Er installiert und integriert (deployt) die vom Applicationassembler übergebenen Enterprise-Anwendungen im J2EE-Server.

Systemadministrator Der Systemadministrator administriert das Gesamtsystem (Betriebssystem, J2EE-Server, Datenbank- und andere Server). Er setzt z.B. Umgebungsvariablen für den Server und das Java Runtime Environment oder ermöglicht den Zugriff auf Datenbanken.

Bild 73

EJB-­‐Rollen  Rollenmodell  

64

Page 65: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Anwendungen

Base Class Library (Klassenbibliothek)

ASP.NET ADO.NET Web-Services …

Common Language Runtime (Laufzeitumgebung)

Garbage Collection Sicherheit Just-in-time Compilation

Betriebssystem (Windows, Linux, …)

Bild 74

Architektur  und  Pradigma  Architektur  von  .NET  

65

Page 66: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Abkürzung Bedeutung

CLR Common Language Runtime

CIL Common Intermediate Language

JIT Just in time Compilation

CTS Common Type System

CLS Common Language Specification

Bild 75

Common  Language  RunHme  Abkürzung  aus  dem  Umfeld  der  Laufzeitumgebung  CLR  

66

Page 67: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

.NET Programmiersprachen Hinweis

C# Primäre .NET Programmiersprache, objektorientiert. Federführend von dem Turbo-Pascal-Erfinder Anders Hejlsberg entwickelt.

Visual Basic .NET (oder kurz: VB.NET) Primäre .NET Scriptsprachen

Managed C++ Variante von C++, die in Managed Code übersetzt wird, der unter Kontrolle der CLR läuft.

J# Microsofts veränderte Java-Implementierung.

JScript.NET Microsofts JavaScript-Implementierung.

Fortran Klassische nicht objektorientierte Sprache für naturwissenschaftliche/technische Problemstellungen.

Eiffel Objektorientierte Programmiersprache von Bertrand Meyer (1985). Als Besonderheit unterstützt Eiffel die Design-By-Contract-Methode.

Java Objektorientierte, plattformunabhängige Programmiersprache. Java wird in Byte-Code übersetzt und benötigt zur Ausführung eine JVM (= Java Virtual Machine).

ML Meta Language. In den 1970er Jahren von Robin Milner an der Universtät Edinburg entwickelt. Funktionale Programmiersprache mit statischer Typisierung, Polymorphie und Garbage Collection. Wird im wissenschaftlichen Umfeld verwendet und an Universitäten auch als Lehrsprache genutzt.

Bild 76

Common  Language  RunHme  .NET  Programmiersprachen  (Auszug)  

67

Page 68: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

.NET Programmiersprachen Hinweis

Oberon Eine von Niklaus Wirt und Jörg Gutknecht entwickelte objektorientierte Programmiersprache und Entwicklungsumgebung mit großer Verwandtschaft zu Pascal. Wird gerne an Bildungseinrichtungen verwendet.

Pascal Prozedurale Programmiersprache. Ende der 1960er, Anfang der 1970er Jahre entwickelt von Niklaus Wirth als Weiterentwicklung von Algol 60. Typische Lehrsprache.

Perl Skriptsprache, entwickelt von Larry Wall Anfang der 1990er Jahre. Perl wird von Systemverwaltern als plattformübergreifende Skriptsprache benutzt, um Verwaltungs-aufgaben zu automatisieren. Web-Entwickler nutzen Perl als CGI-Sprache.

Python Ursprünglich für das verteilte Betriebssystem Amoeba an der Universität Amsterdam von Guido van Rossum entwickelte objektorientierte Skriptsprache. Unterstützt auch den funktionalen Programmieransatz.

SmallTalk Dynamisch typisierte objektorientierte Programmiersprache und Entwicklungsumgebung, die der Objektorientierung in den 1980er Jahren den Durchbruch verschaffte. Entwickelt von Alan Kay, Adele Goldberg und Dan Ingals in den 1970er Jahren am XEROX PARC For-schungszentrum in Paolo Alto, Californien.

Bild 76

Common  Language  RunHme  .NET  Programmiersprachen  (Auszug)  

68

Page 69: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Namespace Description

System Enthält die essentiellen Basisklassen (String, Int32, DateTime, Boolean, etc.), die Mathe-Funktionen, die Environment-Schnittstelle u.v.a.m.

System.CodeDom Klassen für die Code-Generierung und –Ausführung “on the fly”.

System.Collections Klassen zur Verwaltung von Objektsammlungen (“Container”): Listen, Mengen, Bäume, Hashtabellen, usw.

System.Diagnostics Klassen für die Diagnose, das Event-Logging, Performancemessungen, Tracing und Prozess-Management.

System.Globalization Klassen für Globalisierung / Internationalisierung von Applikationen.

System.IO Klassen für die Ein-/Ausgabe von und auf Streams, Dateien, Verzeichnissen, Serielle Ports, usw.

System.Net Klassen für die Netzwerkprogrammierung mit Unterstützung von Sockets und Protokolllen, wie z.B. HTTP, usw.

Bild 77

Die  Base  Class  Library  Komponenten  der  Base  Class  Library  

69

Page 70: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

System.Resources Notwendig für die Herstellung von multilingualen Applikationen.

System.Text

Klassen für den Zugriff auf Metadaten von z.B. Typen, Methoden und Assemblies.

System.Reflections

Supportklassen für die Codierung von Text/Strings.

System.Text.RegularExpressions Notwendig für die Handhabung von regulären Ausdrücken.

System.Threading Klassen für die Implementierung paralleler Threads. Hilfsmittel für die Synchronisation paralleler Threads, z.B. Monitore und Semaphore.

System.Windows.Forms Klassen für den Umgang mit grafischen Benutzeroberflächen. Ersetzt die bisher unter Windows übliche Microsoft Foundation Class (MFC).

System.Xml Klassen für den Umgang mit XML (Extensible Markup Language). XML spielt nicht nur im Zusammenhang mit Web-Services eine wichtigeRolle.

Namespace Description

Bild 77

Die  Base  Class  Library  Komponenten  der  Base  Class  Library  

70

Page 71: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Pipes,Sockets,RPC RMI

DCE

CORBA

SOA WebServices J2EE .NET

Zeit

Potenzial

geschäftsprozess- orientiert

middleware- orientiert

systemorientiert

Technologien in verteilten Systemen

Bild 78

Zusammenfassung  und  Ausblick  Verteilungstechnologien:  Zeitliche  Entwicklung  und  Potenzial  

71

Page 72: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

A E I M

B C D

F G H J K L N O etc...

Bild 79

RAID  0:  Beschleunigung  ohne  Fehlertoleranz  RAID  0  Disk  Striping  

72

Page 73: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

E I

C D

F G

H

J K

L

N O

A B

K

M M N O P P

I J

L H G C

D

E F B

A

Mirroring Mirroring Mirroring Mirroring

= = = =

Bild 80

RAID  1:  Redundanz  ohne  Beschleunigung  RAID  1  Drive  Mirroring    /  Duplexing  

73

Page 74: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

A2 ECC / Ax

C1

D1

B2

C2

D3

A0

B1

D2

C3 C0

D0

A3

B3 B0

A1

ECC/Ax to Az = Word A ECC ECC/Bx to Bz = Word B ECC ECC/Cx to Cz = Word C ECC ECC/Dx to Dz = Word D ECC

ECC / Bx

ECC / Cx

ECC / Dx

ECC / Ay

ECC / By

ECC / Cy

ECC / Dy

ECC / Az

ECC / Bz

ECC / Cz

ECC / Dz

A0 to A3 = Word A B0 to B3 = Word B C0 to C3 = Word C D0 to D3 = Word D

Bild 81

RAID  2:  Beschleunigung  und  Redundanz  RAID  2  Hamming  Code  ECC  

74

(7,4)-Hamming-Code

Page 75: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

A2

C1 D1

B2 C2

D3

A0 B1

Parity Generation

D2 C3 C0

D0

A3 B3 B0

A1

Stripe 0, 1, 2, 3 Parity

A PARITY

Stripe 0

B PARITY

C PARITY

D PARITY

Stripe 1 Stripe 2 Stripe 3

Bild 82

RAID  3:  mit  Parität  auf  separater  PlaZe  (Byte  Striping)    RAID  3  Data  Striping  mit  Priorität  auf  separater  PlaZe  

75

Page 76: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

A2

C1 D1

B2 C2

D3

A0 B1

Parity Generation

D2 C3 C0

D0

A3 B3 B0

A1

Blocks 0, 1, 2, 3 Parity

A PARITY

Block 0

B PARITY

C PARITY

D PARITY

Block 1 Block 2 Block 3

Bild 83

RAID  4:  Block  Striping    RAID  4:Independent  Data  Disks  with  Shared  Parity  disk  

76

Page 77: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

A0 D0

A1

A2

B4 D4 C4

D3

E1

E2 D2

E4

E3

C0

C1

C3 A3

B3

B0

B1

A Blocks B Blocks C Blocks D Blocks E Blocks

Parity Generation

4 PARITY

3 PARITY 2 PARITY

1 PARITY

0 PARITY

Bild 84

RAID  5:  Data  Striping  &  Parity  auf  alle  HDs    RAID  5  Independent  Data  Disks  with  Single  Distributed  Parity  Blocks  

77

Page 78: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

A0 P0 Parity

A1

Q2

etc… D4 etc…

Q3 Parity

D2

Q0

P1 Parity

C3 P3

P2

B0

Q1

A Blocks B Blocks C Blocks D Blocks

XOR Parity Generation

etc…

B3

C2

D1

REED-Solomon ECC Code Generation

Bild 85

RAID  6:  Data  Striping  &  Parity  auf  alle  HDs    RAID  6:Independent  Data  Disks  with  Double  distributed  Parity  Blocks  

78

Page 79: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

RAID-Level Applikation

RAID 0 Disk Striping Video Editing und Herstellung Bildbearbeitung, Image Editing i. A. Anwendungen, die einen hohen Datendurchsatz / hohe Bandbreite benötigen

RAID 1 Drive Mirroring Geschäftsanwendungen

RAID 2 Hamming Code ECC Keine kommerziellen Implementierungen verfügbar. Kommerziell unbedeutend.

RAID 3 Data Striping und Parity auf separater Platte (Byte Striping)

Generell Applikationen mit hohen Anforderungen an den Datendurchsatz, wie z.B. Video Live Streaming.

RAID 4 Data Striping und Parity auf separater Platte (Block Striping)

Keine kommerziellen Implementierungen verfügbar. Kommerziell unbedeutend.

RAID 5 Data Striping und Parity auf allen Platten

File- und Applikationsserver Datenbankserver Web-; E-Mail-, News-Server Intranet-Server Vielseitigster RAID-Level

Bild 86

Zusammenfassung  Welcher  RAID-­‐Level  für  welchen  ApplikaHonstyp  

79

Page 80: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Computer Computer

Computer Computer

Storage

Storage Storage

Storage

Eth

erne

t

Bild 87

Das  Direct  AZached  Storage  Direct  AZached  Storage  

80

Page 81: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Server 1 Server 2

Network- Attached Storage

Appliance

LAN

Clients

Bild 88

NAS  Network  AZached  Storage  NAS  Network  AZaches  Storage  

81

Page 82: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Clients

Server

Storage

LAN/WAN

SAN

Storage Area Networks

Bild 89

SAN  Storage  Area  Network  SAN  Starage  Network  

82

Page 83: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Disk Array

2x Hostbusadapter Glasfaser

Fibre Channel Switch

Array1 Raid5

Array2 Raid5

Array3 Raid5

Array4 Raid5

Array5 Raid5

Bild 90

SAN  Storage  Area  Network  SAN  Anschluss  mit  Fibre  Channel  

83

Page 84: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Client

Schicht der Systemaufrufe z.B. open(), close(), read(), write(), …

VFS Virtual File System

NFS-Client

RPC-Client-Stub

Schnittstelle zum lokalen Dateisystem

Server

Schicht der Systemaufrufe z.B. open(), close(), read(), write(), …

VFS Virtual File System

Schnittstelle zum lokalen Dateisystem

NFS-Server

RPC-Server-Stub

Bild 91

Das  Virtual  File  System  VFS  NFS-­‐EinbeZung  in  einem  Unix-­‐System  

84

Page 85: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

NFS-Client NFS-Server

das vom Client importierte und vom Server

exportiert Verzeichnis

Bild 92

Das  NFS  Dateisystemmodell  Der  Client  mounted  eine  Teilhierarchie  vom  Server  Filesystem  

85

Page 86: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Client Application

Cache Manager

File (Protocol) Exporter Client Application

Cache Manager

DFS Client DFS File Server DFS Client

Bild 93

DCE  DFS  Distributed  File  Service  DFS  Architektur  

86

Page 87: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Aggregate

Aggregate

Aggregate

Disk

A B

C

D

E F

A B C

/ / /

src src usr bin lib

bin dce osf1 alpha beta

Bild 94

DFS  Filesysteme  DFS  Aggregates  und  Filesets  

87

Page 88: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Cache Manager Cache

CDS Server

DFS Client

DFS Server

Fileset Database Rechner

File Server Rechner

Fileset Location Server

Fileset Location Database

Files und Directories

DFS File Server

1

2

3

Bild 95

Arbeitsweise  des  DFS  DFS  Arbeitsweise  der  DFS  

88

Page 89: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

usr.dce Fileset

bin.osf1 Fileset

Disk

usr.dce readonly Fileset

bin.osf1readonly Fileset

Disk

usr.dce readonly Fileset

bin.osf1readonly Fileset

Disk

Primary Server

Secondary Server

Secondary Server

Bild 96

ReplikaHon  von  Filesets  ReplikaHon  von  LSF  Filesets  

89

Page 90: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

DFS Client Rechner

dfsd dfsbind User applications

DFS System Calls Unix File System

Cache Manager

Kernel RPC Local File Systems

System-Call Interface

VFS+Interface

VFS+Interface

Bild 97

DFS  Client  Komponenten  DFS  Client  Komponenten  

90

Page 91: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

bosserver

dfsbind fxd ftserver repserver

Kernel RPC

File Exporter

DFS and UNIX System Calls

Token Manager

Unix File System Episode

VFS+Interface

VFS+Interface

VFS+Interface

Bild 98

DFS  Server  Komponenten  DFS  Server  Komponenten  

91

Page 92: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Type Bedeutung

user_obj Benutzer ist Eigentümer des Objekts

user Spezifiziert Benutzer der lokalen Zelle

foreign_user Spezifiziert Benutzer einer anderen Zelle

Group_obj Mitglied der Gruppe, die Eigentümer des Objekts ist

group Mitglied einer spezifischen Gruppe

foreign_group Mitglied einer spezifischen Gruppe einer anderen Zelle

other_obj Benutzer der lokalen Zelle, die oben nicht spezifiziert sind.

foreign_other Benutzer anderer Zellen, die oben nicht spezifiziert sind

any_other Benutzer, die oben nicht spezifiziert sind

Bild 99

DFS  Access  Control  Lists  DFS  Access  Control  Lists  (ACLs)  

92

Page 93: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Rechte Directory Datei

Read (r) Wenn angegeben mit x, kann der Benutzer den Inhalt auflisten und die ACLs der enthaltenen Objekte lesen.

Erlaubt einem Benutzer das Lesen der Datei.

Write (w) Wenn angegeben mit i, kann der Benutzer neue Objekte erzeugen; wenn angegeben mit d, kann der Benutzer Objekte löschen.

Erlaubt einem Benutzer das Modifizieren der Datei.

Execute (x) Wenn angegeben mit r, kann der Benutzer den Inhalt der Direcory anzeigen und die ACLs der enthaltenen Objekte lesen.

Erlaubt einem Benutzer die Ausführung der Datei.

Control (c) Erlaubt einem Benutzer das Modifizieren der ACLs der Directory.

Erlaubt einem Benutzer das Modifizieren der ACLs der Datei.

Insert (i) Wenn angegeben mit w, kann der Benutzer neue Objekte im Directory erzeugen; wenn angegeben mit w und d, kann der Benutzer Objekte an Directory umbenennen.

Keine Bedeutung.

Delete (d) Wenn angegeben mit w, kann der Benutzer Objekte im Direcroty löschen; wenn angegeben mit w und i, kann der Benutzer Objekte im Directory umbenennen.

Keine Bedeutung.

Bild 100

Die  DFS  ACL  Zugriffsrechte  DFS  ACL  Zugriffsrechte  

93

Page 94: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Features DCE/DFS Microsoft DFS Netware V4 Sun NFS V3 Desktop coverage Client+server Client+server Client+server Client+server

Unix coverage Client+server - Server partly Client + Server

Disk caching Yes Only files No Solaris partly

Cache consitenca Yes No No No

Online load balancing Yes No No No

Encryption File + Security info Security info only Security info only Security info only

Access control lsits Yes Partly Partly No

Consistent replication Yes No Beta No

Log-based recovery Yes Yes No Only Solaris

Remote administration Yes No Yes No

Online Backup Yes No No Third Party

Byte range locks Yes Server only Yes No

Lcal tansparenca Yes Yes Yes No

Global file namespace Yes Yes Yes No

Bild 101

Zusammenfassung  DCE  DFS  Filesysteme  Vergleich  

94

Page 95: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

1995 1998 2002 Present

Video Streaming

High Performance Computing

VTS Virtal Tape Server

HPC

Research

Visualization Digital Media

Seismic

Weather Exploration

Life Sciences

32-bit / 64 – bit

Inter-Op (AIX & Linux)

GPFS Multi-Clusters GPFS over WAN

Large Scale Clusters 100s of nodes

GPFS General

File Serving

Linux Clusters (Multiple

Architectures)

AIX Loose Clusters

• Standards • POSTIX semantics • Large block • Direcotry and smal file perf • Data management

Tiger Shark • Real Time •  Streaming • Read perf. • Wide Stripe

Bild 102

GPFS  General  Parallel  File  System  Entwicklungsgeschichte  des  GPFS  

95

Page 96: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

GPFS

NSD

Application

GPFS

NSD

Application

GPFS

NSD

Application

SAN Fabric

SAN Storage

Storage Server Storage Server Storage Server

Node 1 Node 2 Node n Application Nodes

Bild 103

Gemeinsame  PlaZenlaufwerke  (shared  disk)  SAN  aZached  Storage  

96

Host Bus Adapter Failover Channel Switch

Speicher Subsystem

Page 97: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

GPFS

FC Driver

GPFS

FC Driver

SAN Fabric

SAN Storage

Storage Server Storage Server

NSD NSD

IO Server IP Network

GPFS

NSD

Application

GPFS

NSD

Application

GPFS

NSD

Application

Bild 104

Netzbasierte  Block-­‐I/O  Network  block  I/O  

97

Host Bus Adapter Failover Channel Switch

Speicher Subsystem

Page 98: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Bild 105

Gemeinsame  Daten  zwischen  Cluster  MulH-­‐Cluster  

GPFS

NSD

GPFS

NSD

GPFS

NSD

Node 1 Node 2 Node 3

Cluster B

GPFS

FC Driver

GPFS

NSD

GPFS

NSD

GPFS

NSD

GPFS

FC Driver

SAN Fabric

Node 1 Node 2 Node 3

SAN Storage

Storage Server Storage Server

Cluster A

GPFS

FC Driver

GPFS

FC Driver

GPFS

FC Driver

IP Network IO Servers

Cluster C

98

Page 99: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

MDS1 (active)

MDS2 (active)

OST1

OST2

OST3

OST4

OST5

OST6

OST7

Lustre Clients (1,000 Lustre Lite) Up to 10,000´s

QSW Net

GigE

LustreObject Storage Targets (OST)

3rd party OST Appliances

Linux OST Servers with disk array

Bild 106

Lustre  Lustre  Cluster-­‐Dateisystem  Überblick  

99

Page 100: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Cluster Filesystem URL Hersteller / Bemerkung

DCE DFS http://www.opengroup.org/dce Open Group

GPFS http://www.ibm.com/systems/clusters/software/gpfs.html IBM

PVFS http://pvfs.org Rob Ross und ovfs.org

Lustre http://lustre.org http://www.clusterfs.com

Cluster File Systems Inc.

CIFS/Samba http://www.microsoft.com/mind/1196/cifs.asp http://linux-cifs.samba.org

Microsoft SNIA

CxFS http://www.sgi.com/products/storage/tech/file_systems.html SGI

Panasas ActiveStor

http://panasas.com Panasas Inc.

Polyserv http://wwwpolyserv.com/ Polyserv Inc.

SAM-QFS http://docs.sun.com/source/819-2758-10/chapter1.html Sun Microsystems

StorNext Htto://adic.com/stornext Quantum (nach der Übernahme von Adic)

VxFS;Veritas Storage Foundation Cluster File System

http://symantec.com/enterprise/products/overview.jsp?pcid=1020&pvid=209_1

Symantec nach der Übernahme von Veritas. HP-UX-Betriebssystem auch JFS und OJFS genannt.

Bild 107

Zusammenfassung  Einige  Cluster  Filesysteme  

100

Page 101: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Knoten 1 Knoten 2

Knoten 4 Knoten 3

Kommunikations- Netzwerk

LDB1 LDB2

LDB3 LDB41 LDB42

Bild 108

Verteilte  Datenbanken  Verteilte  Datenbanken  

101

Page 102: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Applikation

TM Transaction-

Manager

TM-API mit Funktionen wie begin, commit, abbort

RM-API für

lesen, ändern,

erzeugen, löschen

XA-Schnittstelle (2PC) RM

Ressourcen- Manager

Bild 109

Distributed  TransacHon  Processing  Architektur  Distributed  TransacHon  Management  nach  X/Open  

102

Page 103: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Anwendung

Treibermanagement

DBMS

Datenbanken

JDBC-Treiber 1 JDBC-Treiber 2

ODBC-Treiber

Netzwerk

Bild 110

Die  JDBC  Architektur  JDBC  Architektur  

103

Page 104: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Class-1-Teiber JDBC-ODBC-Bridge

Über die JDBC-ODBC-Brücke werden Datenbankverbindungen über die ODBC-Schnittstelle aufgebaut. Dazu werden die Anweisungen von JDBC an die betreffende Funktion des ODBC-Treibers weitergegeben, der im nativen Code des Betriebssystems auf dem Client vorliegt und die eigentliche Verbindung zur Datenbank oder dem Datenbankserver herstellt. Der ODBC-Treiber nuzt das CLI des Herstellers. D.h. die nativen Bibliotheken des Datenbanksystems für den Datenbankzugriff müssen auf dem Cient installiert werden. Die Bridge ist nur einmal vorhanden. Für jedes Datenbanksystem ist jedoch ein ODBC-Treiber erforderlich. ODBC-Treiber sind für die meisten Datenbanksysteme verfügbar und werden hauptsächlich beim Zugriff auf Datenressourcen unter Windows eingesetzt. Nachteilig ist die zusätzliche Installation und Konfiguration des ODBC-Treibers, die auf dem Client erfolgen muss. Applets können diese Schnittstelle nur begrenzt nutzen (über das Security API), da sie standardmäßig keinen Zugriff auf die lokalen Ressourcen des Clients haben. Dieser Treibertyp ist sinnvoll für den Test, nicht aber für den operativen Einsatz.

Class-2-Treiber JDBC-Native-API-partial-Java-Treiber (CLI des Herstellers)

JDBC-Aufrufe werden hierauf native Anweisungen des Datenbank-Clients abgebildet, der die Kommunikation zum Datenbankserver herstellt. Dazu müssen zusätzlich die nativen Bibliotheken des Datenbanksystems für den Datenbankzugriff auf dem Client installiert werden. Der Zugriff ist hier sehr schnell. Der JDBC-Treiber verwendet jedoch nativen Code (den des DBMS-Client-Treibers) und ist damit selbst nicht plattformunabhängig.

Treibertyp Eigenschaften

Bild 111

Treibertypen  JDBC  Treiber-­‐Typen  

104

Page 105: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Treibertyp Eigenschaften

Class-3-Treiber JDBC-net-pure-Java-Treiber

Hierbei handelt es sich um einen plattformunabhängigen Java-Treiber. Die Anweisungen werden von Java über das verwendete Netzwerkprotokoll (datenbankunabhängig) an einen auf dem Datenbankserver vorhandenen JDBC-Server übergeben und von diesem in Datenbankanweisungen übersetzt. Der JDBC-Treiber enthält zusätzlich die Client-Funktionalität des DBMS. Es sind keine zusätzlichen nativen Bibliotheken auf dem Client erforderlich, sodass er einfach gewartet werden kann Im Falle eines Applets wird der Datenbanktreiber gegebenenfalls erst auf den Client übertragen.

Class-4-Treiber Native-pure-Java-Protokolltreiber

In dieser Treibervariante erfolgt eine direkte Kommunikation (datenbankherstellerspezifisches Protokoll) des JDBC-Treibers mit dem DBMS. Dabei wird auf dem DBMS die gleiche Struktur wie bei Class-1- und Class-2-Treibern verwendet. Es sind keine zusätzlichen Bibliotheken auf dem Client zu installieren.

Bild 111

Treibertypen  JDBC  Treiber-­‐Typen  

105

Page 106: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Name Beschreibung Defaultwert

username Der Benutzername für die Datenbank

passwort Das zugehörige Passwort für den Benutzernamen

autoReconnect Soll die Verbindung wiederhergestellt werden, falls sie getrennt wurde?

false

useSSL Soll eine sichere Verbindung mit SSL verwendet werden?

false

requireSSL Soll eine SSL gesicherte Verbindung vorausgesetzt sein, falls useSSL = true?

false

allowMultiQuerries Erlaubt das Versenden mehrerer SQL-Befehle in einem Befehlsobjekt, die durch ‚;’ getrennt werden.

false

Bild 112

Datenbankverbindung  und  SQL-­‐Befehle  Mögliche  Einträge  in  ProporHes  

106

Page 107: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

Methodenname Beschreibung

createStatement() Die Standardmethode ohne jegliche Parameter

createStatement(int resultSetType, int resultSetConcurrency)

Die Integerparameter sind für das ResultSet Objekt, welches die Ergebnisse eines Querries liefert (siehe Kapitel 2.4).

createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)

Drei Parameter bestimmen die Einstellungen für das Rückgabeobjekt.

Bild 113

Statements  Statement  Objekt  erzeugen  

107

Page 108: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik

SQLJ Quellprogramm: Java-Programm mit eingebettetem SQL

SQLJ – Übersetzer (auch Präprozessor oder Vorübersetzer genannt)

Java-Programm mit JDBC-Aufrufen

Java-Compiler

Java-Byte-Code mit JDBC-Methodenaufrufen

JDBC-Teiber

DB

Bild 114

SQLJ  und  der  Übersetzungsprozess  Übersetzung  eines  SQLJ-­‐Programms  

108

Page 109: Illik verteilte systeme

Prof. J. Anton Illik Prof. J. Anton Illik 109

Johann Anton Illik: Studium der Informatik und Wirtschaftswissenschaften an der Technischen Universität München.

Arbeitsschwerpunkte waren im Bereich der Informatik: Software-Engineering, Netzwerke, Compiler- und Betriebssystembau.

Im Bereich der Wirtschaftswissenschaften bildeten Betriebswirtschaft und Marketing den Mittelpunkt. Diplom in Informatik. Drei Jahre Software-Architekt bei Siemens. Neun Jahre Software-Architekt, Berater und Account-Manager bei Softlab in München. 1987 Gründung der Ambit Informatik in München. Fünfzehn Jahre Geschäftsführer des Informatik-Hauses. 1992 Berufung als Professor auf den Lehrstuhl „Software-Engineering und Programmiersprachen“ an die Fakultät Wirtschaftsinformatik an die Hochschule Furtwangen University.

Studiengangleiter WI-Diplom in den Jahren von 2001 bis 2008. Prodekan Fakultät WI in den Jahren 2001 bis 2005.

Mitherausgeber des Magazins “Wirtschaftsinformatik“ in den Jahren von 2000 bis 2005.

Principal Research & E-Business der Ambit Group www.ambit.de

Über  den  Autor