Vorlesung "Verteilte Systeme"
Sommersemester 1999
Verteilte Systeme 18. Middleware II
Verteiltes Programmieren leicht gemacht ... I
Verteilte Anwendung
Verteilte Middleware – Vermittlerrolle zwischen verteilter Anwendung und Rechnernetz – Teil moderner Systemsoftware
I
Einfache Handhabbarkeit
I
Leichte Portierbarkeit
I
Hohe Abstraktionen – – – – –
I
Gruppen Logische Uhren Transaktionen Verteilte Algorithmen ...
Middleware Systemsoftware Hardware
VA
M
Wo ist die Mitte?
Verteilte Systeme, Sommersemester 1999
(c) Peter Sturm, Universität Trier
Folie 18.2
1
Vorlesung "Verteilte Systeme"
Sommersemester 1999
Rückblick: Rückblick: Verteilte Middleware I I
Einfache Middleware mit dem Funktionsumfang – – – – –
I
Verwaltung beteiligter Rechner Unicast Datenkonvertierung Verteilte Kontrollalgorithmen Einfache MulticastMulticast-Varianten
PVM = Parallel Virtual Machine – Einer der ersten MiddlewareMiddleware-Ansätze (1989) – Leicht verständlich, verständlich, Leicht installierbar, installierbar, Breite Verfügbarkeit
I
MPI = Message Passing Interface – Im Vergleich zu PVM “ausgereifter” ausgereifter” und größerer Funktionsumfang – Versuch eines Standards für nachrichtenbasierte Kommunikation
I
Primäres Einsatzgebiet – Verteilung numerischer Simulationen wie z.B. z.B. Mehrgitterverfahren
Verteilte Systeme, Sommersemester 1999
Folie 18.3
Verteilte Middleware II I
Interoperabilität Interoperabilität – – – – – –
I
Unterschiedliche Hardware Unterschiedliche Betriebssysteme Unterschiedliche Laufzeitsysteme Unterschiedliche Compiler Unterschiedliche Programmiersprachen Unterschiedliche Anwendungen
Granularität – Client/ServerClient/Server-Systeme – Komponenten – Objekte
I
Trend: Baukastensysteme – Componentware
Verteilte Systeme, Sommersemester 1999
(c) Peter Sturm, Universität Trier
Folie 18.4
2
Vorlesung "Verteilte Systeme"
Sommersemester 1999
Anforderungen an Interoperabilität I
Trennung von Schnittstelle und Implementierung
I
Standardisierung der Schnittstelle – Leistungsumfang (Prozedural, Prozedural, Objektorientiert, Objektorientiert, ...) – Kommunizierbare Datentypen
I
Protokollaspekte – – – –
I
Synchron, Synchron, Asynchron Verbindung, Verbindung, Verbindungslos Streaming ...
Implementierungsaspekte – Threading – Scheduling
I
Performanzaspekte
Verteilte Systeme, Sommersemester 1999
Folie 18.5
Dienste I
Laufzeitplattformen
I
Namensdienst, Namensdienst, Directory Service
I
Zeitdienst
I
Dateidienst, Dateidienst, Persistente Objekte
I
Ereignisdienst
I
Synchronisationsdienste – Transaktionen, Transaktionen, ...
Verteilte Systeme, Sommersemester 1999
(c) Peter Sturm, Universität Trier
Folie 18.6
3
Vorlesung "Verteilte Systeme"
Sommersemester 1999
Komponentware I
Komponente = Autonom, eindeutige Schnittstelle – Anwendung = Dynamische Menge kooperierende Komponenten – Interoperabilität
I
Komponentengröße – Feiner als Client/Server – Zusammengesetzt aus mehreren Objekten
I
Neue Konzepte für Entwicklung, Wartung, Nutzung – Bausteine – Komponenten aus unterschiedlicher Hand (MultiMulti-vendor Architektur) – Wiederverwendbarkeit, Wiederverwendbarkeit, Variantenbildung – Komponenten als „add „add--ons“ ons“ oder „plug „plug--ins“ ins“ – Anpassung und Konfiguration von Standardsoftware (z.B. OfficeOffice-Pakete)
I
Neuer MegaMega-Markt
Verteilte Systeme, Sommersemester 1999
Folie 18.7
18.1 DCE
(c) Peter Sturm, Universität Trier
4
Vorlesung "Verteilte Systeme"
Sommersemester 1999
Distributed Computing Environment (DCE) DCE) I
Open Software Foundation (OSF (OSF)) – Konsortium: Konsortium: u.a. u.a. DEC, HP, IBM, Siemens, Siemens, ... – Reaktion auf gemeinsame UNIXUNIX-Pläne von AT&T und Sun – Weitere Entwicklungen: Entwicklungen: OSF/1 OSF/1 (Mach(Mach-Kern), Kern), Motif
I
DCE: DCE: Erster einsetzbarer Industriestandard – Vorhandene Technologien übernommen
I
Bestandteile – – – – –
Threads Distributed File Service (Basiert (Basiert auf AFS) AFS) Directory Service Security Service (Kerberos (Kerberos)) Time Service
Verteilte Systeme, Sommersemester 1999
Folie 18.9
DCEDCE-Komponenten Verteilte Anwendung Distributed File System Time Service
Directory Service
Security Service
RPC DCE-Threads Lokales Betriebssystem Kommunikationsdienst (z.B. TCP/IP) Hardware
Verteilte Systeme, Sommersemester 1999
(c) Peter Sturm, Universität Trier
Folie 18.10
5
Vorlesung "Verteilte Systeme"
Sommersemester 1999
DCEDCE-Zellen I
Abgeschlossene Einheiten – – – –
I
I
Arbeitsgebiet Schutz Verwaltung Aufwand
Logische, Logische, nicht notwendig geographische Einheit Services pro Zelle – Cell Directory Service (X.500(X.500-basiert) basiert) – Security Service – Time Service
I
Zellübergreifende Directories – Global Directory Service (GDS (GDS)) – DNS
Verteilte Systeme, Sommersemester 1999
Folie 18.11
DCEDCE-RPC I I
I
CDS I 3. Anfrage
Client
4. Port erfragen
2. Service registrieren
5. RPC
RPC Dämon
Server
I
Basiert auf HPHP-Entwicklung Linearisieren dynamischer Datenstrukturen Auffinden des ServerServer-Host über Cell Directory Service Auffinden des Ports etc. über RPCRPC-Dämon (vgl. vgl. portmapper) portmapper) Besonderheiten – Pipes als Parametertypen Streaming zwischen Client I und Server – Context Handles Übertragung des ServerI ServerZustands an Client – “Call back RPC” RPC” Server kann während RPC I den Client zurückrufen
1. Port anmelden Verteilte Systeme, Sommersemester 1999
(c) Peter Sturm, Universität Trier
Folie 18.12
6
Vorlesung "Verteilte Systeme"
Sommersemester 1999
Distributed Time Service 1998-07-13-08:13:07.200-05:00 | 004.000 I
Synchronisation der Uhren
I
Bestimmung der Uhrendrift – Legt Abgleichperiode fest
I
Zeitintervall – Datum, Uhrzeit – Differenz zu GMT – Maximaler Meßfehler (+/+/-)
I
Abgleich – Uhrzeiten anderer Knoten abfragen – NichtNicht-überlappende Intervalle ignorieren – Schnittmenge = neue Zeit
I Verteilte Systeme, Sommersemester 1999
Zeit langsam angleichen Folie 18.13
18.2 CORBA
(c) Peter Sturm, Universität Trier
7
Vorlesung "Verteilte Systeme"
Sommersemester 1999
Common Object Request Broker Architecture (CORBA) CORBA) I
Standard der Object Management Group (OMG (OMG)) – 1991 CORBA 1.1 – 1994 CORBA 2.0
I
OMG – Herstellerübergreifendes Konsortium – Gegründet 1989 von 11 Mitgliedern – Aktuell mehr als 600 Mitglieder
I
Ziele – Verteilte Anwendungen mit objektorientierten Methoden – Objektorientierte Softwarebausteine (Komponenten) – Schnittstellenstandards für verteilte Büroanwendungen
Verteilte Systeme, Sommersemester 1999
Folie 18.15
Object Management Architecture (OMA) Common Facilities Vertical Common Facilities Horizontal Common Facilities - User Interface - Information Management - Systems Management - Task Management
Application Objects
Object Request Broker (ORB)
Common Object Services -
Naming Externalization Persistence Events Live Cycle
Verteilte Systeme, Sommersemester 1999
(c) Peter Sturm, Universität Trier
-
Transactions Properties Query Concurrency Relationships
-
Collections Time Security Change Trader
- Licensing
Folie 18.16
8
Vorlesung "Verteilte Systeme"
Sommersemester 1999
Common Object Service Specification (COSS) COSS) I
Gültig für alle CORBACORBA-konformen Plattformen
I
Naming
I
Externalisation – Export von Zuständen in „flache“ Dateien
I
Persistenz – Dauerhafte Objektzustände
I
Events – Weiterleitung asynchroner Ereignisse – Einrichtung von „Event Channels“ Channels“
I
Lifecycle – Unterstützung des ObjektObjekt-Lebenszyklus – Funktionen: Erzeugen, Löschen, Kopieren, Verlagern, ...
Verteilte Systeme, Sommersemester 1999
Folie 18.17
COSS contd. contd. I
Transactions – 2 PhasePhase-CommitCommit-Protokoll – Flache und geschachtelte Transaktionen
I
Properties – Attribut/WertAttribut/Wert-Paare für Objekte speichern und abfragen
I
Query – SQLSQL-Abfragen
I
Concurrency – Verwaltung und Realisierung von Locks – Nutzung u.a. u.a. bei Transaction Services
I
Relationships – Gruppierung von Objekten – Funktionen: Erzeugen, Traversieren, Traversieren, ...
Verteilte Systeme, Sommersemester 1999
(c) Peter Sturm, Universität Trier
Folie 18.18
9
Vorlesung "Verteilte Systeme"
Sommersemester 1999
COSS contd. contd. (2)
?
I
Collections
I
Time
I
Security
I
Change Management
I
Trader
I
Licensing
Verteilte Systeme, Sommersemester 1999
Folie 18.19
CORBA 2.0 ORB
Object Implementation
Client
Interface Repository DII Dynamic Invocation Interface
Impl. Repository
Client IDL Stubs
ORB Interface
Static Skeletons
Dynamic Skeleton Invocation
Object Adapter
Object Request Broker Core
Verteilte Systeme, Sommersemester 1999
(c) Peter Sturm, Universität Trier
Folie 18.20
10
Vorlesung "Verteilte Systeme"
Sommersemester 1999
Methodenaufrufe I
Schnittstellenspezifikation über IDL – Objektorientiert – Sprachbindungen für C, C++, C++, Smalltalk, Java, Cobol, Cobol, ...
I
Aufruf – Zielobjekt – Aufrufparameter – Eventuell Rückgabewerte, Exceptions
I
Aufrufsemantik – Synchroner Auftrag (vgl. RPC) RPC) – Asynchroner Auftrag – Asynchrone Meldung
I
Klassisch statische Schnittstellen (Stubs (Stubs))
I
Dynamische Schnittstellen
Verteilte Systeme, Sommersemester 1999
Folie 18.21
Object Adapter I
Steuert Funktionen des ServerServer-Objekts – – – – –
I
Aktivierung des Objekts bei eingehendem Request Authentifizierung des Aufrufers Zuordnung Objektreferenzen zu Instanzen Registrierung des ServerServer-Objekts Lebensdauer des ServerServer-Objekts
Basic Object Adapter (BOA) – Standardadapter
I
Extremfall – ORB und BOA Laufzeitbibliothek in der Anwendung – Leistung mit Unterprogrammaufruf vergleichbar – Neue Basisarchitektur für Betriebssysteme? Betriebssysteme?
Verteilte Systeme, Sommersemester 1999
(c) Peter Sturm, Universität Trier
Folie 18.22
11
Vorlesung "Verteilte Systeme"
Sommersemester 1999
ORBORB-2-ORBORB-Kommunikation I
Proprietäres ORBORB-Protokoll in CORBA 1.x
I
InterInter-ORBORB-Protokollstandard
I
General Interoperability Protocol (GIOP) GIOP)
Server Object
– TCP/ TCP/IPIP-basierte Implementierung zwingend vorgeschrieben (IIOP (IIOP)) I
Optional: Environment Specific IOP (ESIOP) ESIOP)
Half Bridge
– Z.B. DCE Common IOP (DCE CIOP) CIOP)
ORB 2
Inter-ORB-Bridge Client Object
ORB 1
Half Bridge
Verteilte Systeme, Sommersemester 1999
Folie 18.23
Ausblick I
Viele Services noch rudimentär
I
Vertical Common Facilities aufwendig und komplex
I
Interessante Forschungsaspekte – Trading – Semantische Eigenschaften
I
Application Frameworks – Objektsammlungen und -architekturen – Spezielle Anwendungsgebiete I GUI, GUI, Finanzen, ...
I
Sommersemester 1999 – Vorlesung – „Application Frameworks and Componentware“ Componentware“
Verteilte Systeme, Sommersemester 1999
(c) Peter Sturm, Universität Trier
Folie 18.24
12
Vorlesung "Verteilte Systeme"
Sommersemester 1999
18.3 DCOM
Distributed Component Object Model (DCOM (DCOM)) I
Objektbus der Firma Microsoft
I
Lange Vergangenheit – Object Linking and Embedding (OLE) – COM – ActiveX
I
Abertausende von Komponenten vorhanden – Custom Controls (OCX (OCX)) – Visual Basic Controls (VBX (VBX))
I
Stichworte – Interfaces, Binärstandard, IDL – Ursprünglich keine Zustände zwischen Client und Server I Moniker – Objektaggregation und -delegation
Verteilte Systeme, Sommersemester 1999
(c) Peter Sturm, Universität Trier
Folie 18.26
13
Vorlesung "Verteilte Systeme"
Sommersemester 1999
Komponenten in COM
Compound Document Management
Compound Files
Uniform Data Transfer
OLE Automation
Distributed Component Object Model (DCOM)
I
Methodenaufrufe – Innerhalb eines Prozesses (In (In--process Server) – Adreßraumübergreifend: Adreßraumübergreifend: Proxies, Proxies, Lightweight RPC (Local Server) – Rechnerübergreifend: Rechnerübergreifend: Proxies (Remote Server)
I
OLE Automation – Vergleichbar mit dynamischen Methodenaufrufen
Verteilte Systeme, Sommersemester 1999
Folie 18.27
18.4 JAVA
(c) Peter Sturm, Universität Trier
14
Vorlesung "Verteilte Systeme"
Sommersemester 1999
Java I
Objektorientierte Programmiersprache „für das Netz“ – Hoher Schutz – Laden zertifizierter JavaJava-Programme (*.jar (*.jar)) – Remote Method Invocation (RMI) RMI)
I
Virtuelle Maschine – Interpretation von JavaJava-Programmen – Anderer Interoperabilitätsansatz – Sandboxing Applets dürfen ohne Erlaubnis fast nichts I
I
Umfangreiche Bibliotheken – Einfache, abstrakte Schnittstellen – Performanz kein zentraler Gesichtspunkt
Verteilte Systeme, Sommersemester 1999
Folie 18.29
Literatur I
D. Flanagan
Java in a Nutshell
2. Auflage, O’ O’Reilly, 1997
I
R. Orfali, Orfali, D. Harkey, Harkey, J. Edwards
The Essential Distributed Objects Survival Guide Wiley, 1996 (CORBA, CORBA, DCOM) DCOM)
I
A.S. A.S. Tanenbaum
Distributed Operating Systems Prentice Hall, 1995 (DCEDCE-Einführung) Einführung)
Verteilte Systeme, Sommersemester 1999
(c) Peter Sturm, Universität Trier
Folie 18.30
15