Prof. J. Anton Illik Prof. J. Anton Illik
Verteilte Systeme Architekturen und Software-Technologien
J. Anton Illik
1
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.
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]
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
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
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
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
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
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
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
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
Prof. J. Anton Illik Prof. J. Anton Illik 12
Client Server
Aufruf
Antwort
Zeit
Bild 9
Client-‐/Server-‐Architektur Das Client-‐Server-‐Prinzip
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
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
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
Prof. J. Anton Illik Prof. J. Anton Illik 16
Modell (= Datenmodell)
Controller (= Programm-
steuerung)
View (=Präsentation)
Bild 13
MVC Architekturmuster MVC-‐Struktur
Prof. J. Anton Illik Prof. J. Anton Illik 17
Byte-Stream
Byte-Stream
Pipe
Bild 14
Pipes und Fifos Das Prinzip der Pipe
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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