Verteilte Systeme. Verteilte

Vorlesung "Verteilte Systeme" Sommersemester 1999 Verteilte Systeme 18. Middleware II Verteiltes Programmieren leicht gemacht ... I Verteilte Anwe...
4 downloads 0 Views 148KB Size
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