Interoperable Naming Service (INS)

Der CORBA- CosNaming -Service folgt der Spezifikation Object Management Group (OMG) Interoperable Naming Service (INS, CORBA 2.3 ). CosNaming steht für Common Object Services Naming.

Der Namensservice ordnet Namen CORBA-Objektverweise zu. Die Objektverweise werden im Namensbereich nach Namen gespeichert und jedes Objektverweis-Namenspaar wird Namensbindung genannt. Namensbindungen können unter Namenskontexten organisiert werden. Namenskontexte sind selbst Namensbindungen und stellen dieselbe Organisationsfunktion bereit, wie ein Dateisystem-Unterverzeichnis. Alle Bindungen werden unter dem ursprünglichen Namenskontext gespeichert. Der ursprüngliche Namenskontext ist die einzige persistente Bindung im Namensbereich.

Diese Implementierung enthält Zeichenfolgeformate, die als Parameter an die ORB-Methoden string_to_object() und resolve_initial_references() übergeben werden können. Die Formate sind corbaname und corbaloc.

Mit Corbaloc-URIs können Sie Objektverweise angeben, die vom IIOP kontaktiert oder über ORB::resolve_initial_references() gefunden werden können. Dieses Format lässt sich einfacher bearbeiten als IOR. Verwenden Sie für die Angabe eines IIOP-Objektverweises einen URI des folgenden Formats:
corbaloc:iiop:<host>:<port>/<object key>
Hinweis: Die vollständige Syntax dieses Formats finden Sie in der Spezifikation CORBA 2.4.2 .
Beispielsweise gibt der folgende corbaloc-URI ein Objekt mit dem Schlüssel MyObjectKey an, das sich in einem Prozess befindet, der auf myHost.myOrg.com ausgeführt wird und an Port 2809 empfangsbereit ist:
corbaloc:iiop:myHost.myOrg.com:2809/MyObjectKey
Corbaname-URIs bewirken, dass die Methode string_to_object() einen Namen in einem CORBA-Namensservice sucht. Die URIs sind eine Erweiterung der corbaloc-Syntax:
corbaname:<corbaloc location>/<object key>#<stringified name>
Hinweis: Die vollständige Syntax dieses Formats finden Sie in der Spezifikation CORBA 2.4.2 .
Beispiel eines corbaname-URI:
corbaname::myOrg.com:2050#Personal/schedule

In diesem Beispiel ist der Teil der Referenz bis zum Nummernzeichen ( # ) der URL, der den Stammnamenskontext zurückgibt. Der zweite Teil des Beispiels, nach dem Nummernzeichen (#), ist das Argument, das zum Auflösen des Objekts auf dem NamingContextverwendet wird.

Der INS hat zwei Standardbefehlszeilenargumente angegeben, die eine portierbare Methode zum Konfigurieren von ORB::resolve_initial_references() bereitstellen:
  • -ORBInitRef benötigt ein Argument des Formats <ObjectId>=<ObjectURI>. Sie können beispielsweise die folgenden Befehlszeilenargumente verwenden:
    -ORBInitRef NameService=corbaname::myhost.example.com

    In diesem Beispiel sendet resolve_initial_references("NameService") einen Verweis zum Objekt zurück, wobei der Schlüssel NameService auf myhost.example.com, Port 2809 verfügbar ist.

  • -ORBDefaultInitRef stellt eine Präfix-Zeichenfolge zur Verfügung, mit der ansonsten unbekannte Namen aufgelöst werden. Wenn resolve_initial_references() einen Namen, der mit -ORBInitRefkonfiguriert wurde, nicht auflösen kann, wird eine Zeichenfolge erstellt, die aus dem Standardpräfix, einem Schrägstrich (/) und dem angeforderten Namen besteht. Die Zeichenfolge wird anschließend für string_to_object() bereitgestellt. Mit der Befehlszeile:
    -ORBDefaultInitRef corbaloc::myhost.example.com
    sendet beispielsweise ein Aufruf an resolve_initial_references("MyService") den Objektverweis zurück, der durch corbaloc::myhost.example.com/MyService gekennzeichnet wird.