View
107
Download
1
Category
Preview:
Citation preview
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Recommended