next up previous contents
Next: Das Interface Repository (IR) Up: Mechanismen für den dynamischen Previous: Mechanismen für den dynamischen

Der Naming Service (NS)

Der Naming Service soll hier nur kurz angesprochen werden, eine ausführlichere Beschreibung findet sich in [ON96]. Bei ihm handelt es sich um einen extern eingebundenen Dienst, der sogenannte COSS-Naming, dessen Schnittstelle von der OMG durch die Definition in IDL-Code festgesetzt wurde, dessen Implementierung jedoch wiederum den ORB-Herstellern überlassen wurde.


 
Abbildung: Die Funktion des Namensdienstes: Der Server meldet sich mittels bind() beim Naming Service an, der Client erhält via resolve() eine Referenz auf den Server
\begin{figure}
\begin{center}
\epsfbox{corba7.eps}\end{center}\end{figure}

In Analogie zu in Rechnernetzen verwendeten Namensdiensten wie etwa DNS oder NIS nimmt der Naming Service eine eindeutige Abbildung von Namen auf Objekte vor. Am hilfreichsten ist es wahrscheinlich, sich den NS als eine Art hierarchisches Meta-Dateisystem vorzustellen, in dem die Objekte die Rolle der Dateien in einem normalen Dateisystem übernehmen. Die Rolle der Verzeichnisse besetzen dabei sogenannte NamingContexts, deren Einordnung in den Namensraum durch die Methode

NamingContext::bind_context(in Name n, in NamingContext nc);
bewerkstelligt wird. Die Objektnamen selbst werden durch die Methode
NamingContext::bind(in Name n, in Object o);
erzeugt. Dabei stellt Name eine Sequenz aus Namenskomponenten dar, die die hierarchische Benennung des Objektes realisiert (z.B. würde der Objekt-Name ``/objects/finance/bankingobject'' in einer Variable vom IDL-Datentyp Name, also in einer Sequence<NameComponent,3> gespeichert, wobei die Zeichenketten der drei Komponenten die Werte ``objects'', ''finance'' und ``bankingobject'' enthielten). Die zentrale Methode bei der Objektsuche in einem Namenskontext ist die Funktion
Object NamingContext::resolve(in Name n);
die auf eine Namensanfrage das zugehörige Objekt zurückgibt oder eine Exception vom Typ NotFound, CannotProceed oder InvalidName zurückgibt.


next up previous contents
Next: Das Interface Repository (IR) Up: Mechanismen für den dynamischen Previous: Mechanismen für den dynamischen
Tim Paehler
1998-05-12