was umfaßt die corba core spezifikation? welche zusätzlichen komponenten muß ein orb produkt...
TRANSCRIPT
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB
Produkt beinhalten?Core:
• CORBA Objekt Modell
• CORBA Architektur
• OMG IDL Syntax and Semantik
ORB:
• Dynamic Invocation Interface (DII)
• Dynamic Skeleton Interface (DSI)
• Interface Repository (IR)
• ORB Interface
• Basic Object Adapter
• Language Mapping
Erstellen Sie eine Check-Liste für eine CORBA Umgebung.
• CORBA Core
• Language Mapping (C, C++, Smalltalk, Java, ..)
• CORBA Interoperability (IIOP)– optional: DCE ESIOP
• CORBAservices (Lifecycle, Naming, ..)
• CORBAfacilities (Compound Documents, ..)
Welches sind die grundlegenden Merkmale von IDL?
• ANSI C++ ähnlich– Gemeinsamkeiten– Unterschiede
• streng typisiert– ‘any’ Typ– Scope
Erläutern Sie die Typdeklaration in IDL.
• streng typisiert
• “any” Datentyp
• Geltungsbereich
• “::” Operation: Import externer Definitionen
Erläutern Sie die Deklaration von Interfaces.
• In einem Interface werden zusammengehörige Operationen gruppiert.
• Ein Objekt kann mehr als ein Interface definieren.
• Vererbungs’einheit’
Erläutern Sie die Deklaration von Operationen.
• Rückgabewert ([return type] …)
• Name (… [name]() …)
• Parameter ( …(in/out/inout [parameter], …)…)– in
– out
– inout
• optional: Exceptions (... raises() …)
• optional: ‘oneway’ (oneway …)
Erläutern Sie die Deklaration von Exceptions.
• Optionales Element einer Operationsdeklaration… raises (exception);
• Exceptions sind hierarchisch organisiert.File, Modul, Interface
• Standard Exceptions durch OMG definiert:Werden nicht deklariert, sondern nur behandelt.
• ORB für Abwicklung zuständig
• je nach Language-Mapping unterschiedlich realisiert.
Erläutern Sie die Deklaration von ‚oneway‘-Operationen.
• über ‘oneway’ Schlüsselwort im Interface
• Nur ‘IN’-Parameter
• kein Rückgabewert
• ‘Best-Effort’ Aufruf durch ORB (d.h keine Garantie der Ausführung/Ankunft)
• Asynchron (d.h non-blocking)
Erläutern Sie ‘Context’-Objekte.
• Enthält eine Liste von Eigenschaften
• Eigenschaft: Schlüssel/Wert Paar (nur Strings)
• Definition über: context(key1, key2, …)
• Verwaltung erfolgt über ORB
• Standard Zugriffsmethoden:add, get, set, delete
Erläutern Sie Attribut-Variable.
• Um den Zugriff auf Variable einfacher zu machen gibt es dieses IDL Element.
• ‘attribute name’: ergibt automatisch eine– void _set_name(in typ value) und– typ _get_name() Operation.
• readonly ergibt nur eine Leseoperation
Erläutern Sie Vererbung.
• Mittels Vererbung kann man von bestehenden Interfaces alle Elemente übernehmen
• Neue Funktionen können hinzugefügt werden
• Syntax = : Operator (interface neu:alt { .. } )
• Mehrfachvererbung ist möglich: (neu:alt1,alt2)
Erläutern Sie ‚Pseudo‘-Objekte.
• definiert Operationen die auf alle Objekte gültig sind.
• kann nicht als Parameter benutzt werden
• kein Zugriff über DII
• keine IDL-Definition im IR
• Interface Objectz.B: get_implementation, get_interface
Geben Sie einen Überblick über die Verbindung zwischen Client und ORB.
• Client kann über DII und SII Methoden aufrufen.
• Zugriff auf die Repositories erfolgt über das ORB Interface.
• SII: Typprüfung bei Kompilieren möglich, synchron
• DII: dynamic typing, synchron (auch deferred) und asynchron
Erläutern Sie den Zusammenhang zwischen Clients und Stubs.
• Client Implementation greift über den Stub auf den ORB zu.
• Stub wird aus der IDL-Definition generiert. (Programmiersprachen- und Plattformabhängig)
• Typüberprüfung bei statischer Stubmethode möglich.
• Stub-to-ORB Aufbau kann beliebig sein (ORB spezifisch)
Beschreiben Sie das Dynamic Invocation Interface. Erläutern Sie die notwendigen Schritte des dynamischen Aufrufs.
• Flexibler aber komplexer als SII.• Zugriff auf Objekte auch ohne Stub möglich.• Erweiterte Aufrufmöglichkeiten• Ein Client kann zur Laufzeit neue Objekte ‘entdecken’.• Ablauf:
– Identifizieren
– Interface abfragen
– Aufruf konstruieren (Parameter, etc.)
– Aufrufen und Ergebnisse abfragen
Was ist das Interface Repository (IR)? Wozu dienen die darin enthaltenen IDL Definitionen?
• Alle IDL Definition werden darin gespeichert.
• Zusammenarbeit mit anderen ORB
• Typüberprüfung für DII-Aufrufe
• Vererbung
Wie kann auf das Interface Repository zugegriffen werden?
• Proprietäre Programme des ORB Herstellers– fertig– eventuell mächtiger
• Standardisierte Methoden des IR aufrufen(durch OMG festgelegt)– portierbar auf andere ORBs
Wie wird ein IR eindeutig identifiziert?
• Jeder ORB muß mindestens 1 IR ansprechen können.
• Mehrere ORBs können auf ein IR zugreifen.
• IR hat eindeutige ID– mehrere unabhängige Irs können leicht verwaltet
werden– gleiche ID = identer Inhalt
Wie funktioniert ein Interface Repository?
• Funktion: permanente Speicherung von Information
• Anforderungen:– skalierbar– sicher– schnell– flexibel
Wie sind Interface Repositories strukturiert?
• Es muß die Information der IDL-Definitionen gespeichert werden (nicht unbedingt der IDL-Source)
• d.h.: Definition kann in IDL rekonstruiert werden (exkl. Kommentar)
Beschreiben Sie kurz das ORB Interface.
• Stellt die Funktionen zur Verfügung die jeder Client zur Initialisierung aufrufen muß
• ORB_Init
• Weiters gibt es grundlegende Funktionen zu Objekten, IR und DII