21
CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung von - Anforderung - Anforderungsdefinition - Realisierung Middleware zur Sicherstellung von Kommunikation und Interoperabilität Bessere Integration von Internet / Intranet und einer verteilten Unternehmens-IV Server-Komponenten 2. Komponentenbasierte Software Entwicklung

CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

Embed Size (px)

Citation preview

Page 1: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA

Common Object Request Architecture der Object Management Group (OMG)

Forderungen:

• Verteilte und offene Strukturen• Flexible Software durch Trennung von

- Anforderung- Anforderungsdefinition- Realisierung

• Middleware zur Sicherstellung von Kommunikation und Interoperabilität• Bessere Integration von Internet / Intranet und einer verteilten Unternehmens-IV

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Page 2: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

OMG - Referenzarchitektur

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Object Request Broker (ORB)Object Request Broker (ORB)

Anwendungsobjekte(Application Objects)

Anwendungsobjekte(Application Objects)

Objektdienste(Object Services)

Objektdienste(Object Services)

Basisdienste(Common Facilities)

Basisdienste(Common Facilities)

Standardisiert

Standardisiert

Page 3: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA – Services

Abstraktion für Systemprogrammierungsfunktionalität

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

• Naming• Event Service• Transactions

• Security

• Lifecycle

• Time• Licensing

• Trading

• Properties

• Relationships

• Query

• Persistent Object• Concurrency Control• Externalisation

Page 4: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

Common ORB Architecture

Standard für ORB

Ziele:

• Objektorientierung• Verteilungstransparenz• Effizienz• Hardware- / Betriebssystem- / Sprachunabhängigkeit• Offenheit

Bestandteile:

• Konkretisierung des abstrakten OMG-Modells → Definition von CORBA-Objekten• Object Request Broker (ORB)

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Page 5: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

ORB

Infrastruktur für Interoperabilität der heterogenen Objekte

• Abbildungen von Objektnamen der aufrufenden und aufgerufenen Objekte• Auswahl der aufzurufenden Operationen• Kodierung / Dekodierung von Parametern• Vermittlung von Operationsaufrufen an geeignete Zielobjekte (eins-zu-eins)• Übermittlung von Operationsergebnissen• Aktivierung• Ausnahmebehandlung• Sicherheitsmechanismen baut auf Objektdiensten auf

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Page 6: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

Kommunikationstransparenz

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Client/ObjektClient/Objekt

Stub (Rumpf)Stub (Rumpf)

Server/ObjektServer/Objekt

Skeleton (Rahmen)Skeleton (Rahmen)

NetzwerkcodeNetzwerkcode NetzwerkcodeNetzwerkcodeNachrichtenaustausch (IIOP)

Logische Schnittstelle

Aufruf

Antwort

1 8

2 7 3

4 5

6

Page 7: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

OpenDoc von CI Labs (Component Integration Laboratories)

• Open Scripting Architecture- Basiert auf AppleEvents- Applikations, -übergreifende Scriptsprache

• Netzwerkfähigkeit durch SOM/DSOM-Basis• Inkrementelle Speicherung mit Bento (nur Deltas zw. Drafts)• Compound Document Management

- Koordination gemeinsamer Ressourcen- Darstellung auch nichtrechteckiger Container- Part-Sammlung

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Structured Storage(Bento)

Structured Storage(Bento)

CompoundDocumentManagement(parts)

CompoundDocumentManagement(parts)

SOM/DSOMOder CORBA-konformer ORB

Automation &Scripting(OSA)

Automation &Scripting(OSA)

Page 8: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – OMG und CORBA

• OMG (Object Management Group)o Entwickelt Standards und Spezifikationen für eine Infrastruktur, die für

verteilte, objektorientierte Anwendungen erforderlich isto Setzt den de facto-Standard für die Software-Industrieo Deckt heute einen großen Teil der objektorientierten Software-

Entwicklung ab, z.B. ist die UML OMG-Standard

• CORBA o CORBA ist eine Spezifikation und kein Produkto Es gibt jedoch eine Reihe von kommerziellen und frei verfügbaren

Plattformen, die der CORBA-Spezifikation entsprechen.

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Page 9: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – OMA (1)

• Basis für die Standardisierung bildet die Object Management Architecture

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

OMA

Object Request Broker (ORB)(Architektur: CORBA)

Anwendungsobjekte (application objects)

Spezielle Objektdienste(object services)

NamensgebungKopieren von ObjektenLöschen von Objektenusw.

Allgemeine Objektdienste(common facilities)

HilfediensteDruckdiensteSicherheitsdiensteusw.

: Client-Objekte: Client-Objekte: Client-Objekte: Client-Objekte

: Server-Objekte: Client-Objekte

Page 10: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – OMA (2)

• Hauptkomponenten von OMA

o Anwendungsobjekte (application objects) Können Client- als auch Server-Objekte sein

o Object Request Broker (ORB) Vermittelt die Kommunikation zwischen den Objekten

o Spezielle Objektdienste (object services) Benötigt der ORB zur Erfüllung seiner Aufgaben Beispiel: Dienste für die Namensgebung, zum Kopieren und

Löschen von Objekteno Allgemeine Objektdienste (common facilities)

Beispiel: Hilfe-, Druck-und Sicherheitsdienste.

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Page 11: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – ORB

• Schlüsselkomponente der Architektur

• Kommunikationszentrale

• Übermittlung von Operationsaufrufen und Ergebnissen zwischen Anwender und Anbieter

• Der ORB wurde als erste Komponente unter dem Namen CORBA (Common Object Request Broker Architecture) standardisiert

• Der ORB benutzt die Schnittstellen der Client- und Server-Objekte, um Anforderungen weiterzuleiten

• Als Schnittstellen-Definitionssprache wird CORBA-IDL (interface definition language) verwendet.

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Page 12: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – CORBA und Komponenten

o Auf CORBA-Objekte kann von außen nur über ihre Schnittstelle zugegriffen werden

o Sie stellen jedoch keine Komponenten daro CORBA ist bis zur Version 2 kein Komponenten-Modello Da CORBA die Implementierung nicht berücksichtigt, werden z.B. keine

Aussagen darüber gemacht, wie CORBA-Objekte auf binärer Ebene aussehen, wie sie zu installieren oder zu verteilen sind.

• CORBA components (CCM, corba components model)o Haben von der Architektur her große Ähnlichkeit mit Enterprise

JavaBeanso Ziel war es, vorhandene EJBs als CORBA-Komponenten nutzen zu

könneno Von diesem Standpunkt aus können CORBA-Komponenten als

sprachunabhängige Obermenge von EJBs betrachtet werden. 

• CORBA vs. COMo Die Spezifikation sieht eine Abbildung vor, die das Zusammenarbeiten

zwischen COM und CORBA-Objekten grundsätzlich ermöglicht.

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Page 13: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – Quality of Services

• CORBA-Einsatz in speziellen Umgebungen:

• Minimum-CORBAo Variante, die für Systeme mit begrenzten Hardware-Ressourcen

(Rechenleistung, Hauptspeicher) entwickelt wurdeo Zielplattformen sind z.B. Handys oder PDAs

• Echtzeit-CORBAo Definiert, wie Echtzeitanforderungen zu handhaben sind

• Fehlertolerantes CORBAo Aussagen zu fehlertoleranten Systemen.

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Page 14: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – Architektur (1)

• ORB-Kern: Transportschicht• Server

o Operationen müssen in einer Schnittstelle, hier IDL, beschrieben werden

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

CORBA

ORB core(Transportschicht)

IDLstub

Dll ORBinterface

IDLskeleton

object adapter

a b: Client-Objekt : Server-Objekt

a b

Page 15: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – Architektur (2)

• Aus einer IDL-Beschreibung werden generiert:o IDL-Stummel (stub) : Wird vom Client benutzt, um Dienstleistungen des

Servers anzuforderno Interface Repository: Speichert Informationen über die Schnittstelle, die

zur Laufzeit von den Clients abgefragt werden. Dazu wird das DII (dynamic invocation interface) benutzt

o IDL-Skelett (skeleton): Code-Rahmen. Wird vom Programmierer mit der Implementierung der Operationen gefüllt

o Implementation Repository: Informationen, um Server zu lokalisieren.• Clients

o Interagieren mit dem ORB über IDL-Stummel und DII jeweils in der eigenen Programmiersprache

o Können auf 2 Arten Dienstleistungen anfordern: Ist die Schnittstelle in IDL definiert und kennt der Client die Typ-

bzw. Klassendefinition des Servers, dann kann eine statische Anforderung erfolgen

Ist die Schnittstelle des Servers nicht bekannt, dann kann die DII verwendet werden.

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Page 16: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – Architektur (3)

Aus der IDL abgeleiteten Informationen

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Benutzt vom Client Benutzt vom Server

Serverimplementiert in seinerProgrammiersprache

IDLstub

IDLskeletoninterface

repositoryimplemen-tationrepository

Schnittstellebeschrieben inIDL

Page 17: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – Architektur (4)

• Servero Der Server weiß nicht, ob eine Anforderung statisch oder dynamisch

erstellt wurdeo Anforderungen passieren den IDL-Stummel, um zum Server zu gelangeno Ein IDL-Skelett hängt i.d.R. vom Objekt-Adapter abo Es kann mehrere Skelette für dieselbe Schnittstelle und dieselbe

Programmiersprache mit unterschiedlichen Objekt-Adaptern gebeno Ein Objekt-Adapter stellt eine Schnittstelle zu den ORB-Dienstleistungen

zur Verfügung, die die Server nutzen können.• ORB-Interface

o Andere Dienstleistungen, die von den Servern benutzt werden, werden direkt von der Komponente ORB-Interface zur Verfügung gestellt

o Diese Schnittstelle ist für alle ORB-Implementierungen identisch und hängt nicht vom Objekt-Adapter ab

o Das ORB-Interface wird auch von Clients genutzt.

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Page 18: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – Architektur (5)

• Interface Repository (IR)o Verwaltet die IDL-Definitionen

Diese sind zur Laufzeit verfügbaro Die DII benutzt diese Informationen, um Clients Anforderungen an

Server zu erlauben, deren Schnittstelle zur Übersetzungszeit des Clients noch unbekannt war

o Die IR-Dienstleistung wird auch vom ORB selbst benutzt, um Anforderungen weiterzuleiten

• Implementation Repositoryo Verwaltet Informationen, die der ORB benötigt, um die Server zu

lokalisieren und zu starteno Es ist spezifisch für eine Betriebssystem-Umgebung.

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Page 19: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – IDL

• IDLo Dient zur Beschreibung der Schnittstellen von Klassen, die als Server

Dienstleistungen anbieteno Nur Spezifikationen beschreibbar, kein Codeo Die Spezifikationen werden verwendet, um vom Client aus Operationen des

Servers aufzurufen. Aufruf in der Client-Programmiersprache o Die Implementierung der Operationen auf der Server-Seite in der Server-

Programmierspracheo IDL-Precompiler transformieren die IDL-Spezifikationen in die jeweiligen

Zielsprachen. Syntax ist an C++ angelehnt. Grammatik ist Teilmenge der C++-Grammatik mit Erweiterungen für verteilte Aufrufe.

• Vergleich IDL vs. ODLo ODL wurde auf der Grundlage von IDL entwickelto IDL = ODL ohne extents, keys und relationships

• CORBA und Javao Es gibt Spezifikation für Abb. von IDL auf Javao Java-Schnittstellen (Schlüsselwort: interface) werden direkt genutzto Die CORBA-Spezifikation sieht eine Umkehrabbildung (reverse mapping) vor

Damit lässt sich aus Java-Schnittstellen IDL-Code generieren Somit ist es leicht möglich, über CORBA EJBs von Clients anzusprechen,

die in anderen Programmiersprachen entwickelt wurden.

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Page 20: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – Standardisierte Dienste (1)

Standardisierte Objektdienste• Namensdienst (name service) : Kreierung von Namensräumen und die Abbildung

von benutzerdefinierten Objektnamen auf CORBA-Objektreferenzen• Lebenszyklusdienst (lifecycle service) : Verwaltung von Objekten (Erzeugen,

Kopieren, Löschen, Abfragen auf Äquivalenz)• Ereignismeldedienst (event notification) : Erkennen von Ereignissen und

Benachrichtigung von Objekten über Ereignisse• Persistenzdienst (persistence service) : Dauerhaftes Speichern und Laden von

Objekten auf / von (externen) Speichern.• Nebenläufiger Dienst (concurrency service) : Synchronisierung konkurrierender

Zugriffe auf Objekte• Auslagerungsdienst (externalization service) : Datenexport von Objekten in

Dateien außerhalb des Objektsystems• Beziehungsdienst (relationship service) : Erzeugen, Löschen und Verwalten von

Beziehungen zwischen Objekten, Navigation über Beziehungen• Transaktionsdienst (transaction service) : Techniken zur Durchführung

transaktionsgesteuerter Abläufe mit einem zweistufigen commit.• Zeitdienst (time service) : Synchronisierung der Uhren von Komponenten-

systemen in verteilter Umgebung

Server-Komponenten

2. Komponentenbasierte Software Entwicklung

Page 21: CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung

CORBA (Balzert) – Standardisierte Dienste (2)• Sicherheitsdienst (security service) : Autorisierungs- und Überwachungs-

funktionen auf Objektebene• Lizenzdienst (licensing service) : Verwaltung von Objektlizenzen, Abrechnung von

Gebrauchsgebühren für Objekte• Eigenschaftsdienst (properties service) : Dynamisches Erzeugen, Löschen und

Verwenden von Attributen• Anfragedienst (query service) : SQL-artige Anfrageoperationen für Objekte

Allgemeine Objektdienste (common facilities)• Vertikale Marktdienste : Basisfunktionalität für unterschiedliche Marktsegmente• Horizontale allgemeine Dienste : Dienste über mehrere Anwendungsbereiche

o user interface definiert den Zugriff auf ein grafisch orientiertes Informationssystem

o information management legt Modellierung, Definition, Speicherung, Wiedergewinnung, Verwaltung und Austausch von Informationen fest

o systems management unterstützt die Verwaltung komplexer Informationssysteme

o task management erlaubt die Automatisierung von Aufgaben.

Server-Komponenten

2. Komponentenbasierte Software Entwicklung