servicio de denominación interoperativo (INS)

CORBA CosNaming Service cumple la especificación de Interoperable Naming Service del grupo de gestión de objetos (OMG) (INS, especificación CORBA 2.3). CosNaming significa Common Object Services Naming.

El servicio de nombres correlaciona nombres con referencias de objetos CORBA. Las referencias de objetos se almacenan en el espacio de nombres junto al nombre y cada par de referencia-nombre de objeto recibe el nombre de enlace. Los enlaces de nombres están organizados bajo contextos de nombres. Los contextos de nombres son en sí mismos enlaces de nombres y desempeñan la misma función organizativa que un subdirectorio de sistema de archivos. Todos los enlaces se almacenan bajo el contexto de nombres inicial. El contexto de nombres inicial es el único enlace persistente del espacio de nombres.

Esta implementación incluye formatos de serie que se pueden transferir como un parámetro a los métodos del ORB string_to_object() y resolve_initial_references(). Los formatos son corbaname y corbaloc.

Los URI Corbaloc permiten especificar referencias de objetos que se pueden contactar mediante IIOP o bien se pueden encontrar a través de ORB::resolve_initial_references(). Este formato es más fácil de manejar que IOR. Para especificar una referencia de objetos IIOP, utilice un URI que tenga el siguiente formato:
corbaloc:iiop:<host>:<port>/<object key>
Nota: Consulte la especificación 2.4.2 de CORBA para conocer la sintaxis completa de este formato.
Por ejemplo, el siguiente URI de corbaloc especifica un objeto con la clave MyObjectKey que está en un proceso que se ejecuta en myHost.myOrg.com, a la escucha en el puerto 2809:
corbaloc:iiop:myHost.myOrg.com:2809/MyObjectKey
Los URI Corbaname hacen que el método string_to_object() busque un nombre en un servicio de nombres CORBA. Los URI son una extensión de la sintaxis corbaloc:
corbaname:<corbaloc location>/<object key>#<stringified name>
Nota: Consulte la especificación 2.4.2 de CORBA para conocer la sintaxis completa de este formato.
Un ejemplo de URI corbaname es:
corbaname::myOrg.com:2050#Personal/schedule

En este ejemplo, la parte de la referencia hasta el carácter de signo de número (#) es el URL que devuelve el contexto de denominación raíz. La segunda parte del ejemplo, después del carácter de signo de número (#), es el argumento que se utiliza para resolver el objeto en el NamingContext.

El INS ha especificado dos argumentos estándar de la línea de mandatos que proporcionan un método portable de configurar ORB::resolve_initial_references():
  • -ORBInitRef toma un argumento con la forma <ObjectId>=<ObjectURI>. Por ejemplo, puede utilizar los siguientes argumentos de la línea de mandatos:
    -ORBInitRef NameService=corbaname::myhost.example.com

    En este ejemplo, resolve_initial_references("NameService") devuelve una referencia al objeto con la clave NameService disponible en myhost.example.com, puerto 2809.

  • -ORBDefaultInitRef proporciona una serie de prefijo que se utiliza para resolver nombres desconocidos. Cuando resolve_initial_references() no puede resolver un nombre que se ha configurado con -ORBInitRef, construye una serie que consta del prefijo predeterminado, un carácter de barra inclinada (/) y el nombre solicitado. A continuación, la serie se suministra a string_to_object(). Por ejemplo, con una línea de mandatos de:
    -ORBDefaultInitRef corbaloc::myhost.example.com
    una llamada a resolve_initial_references("MyService") devuelve la referencia de objeto especificada como corbaloc::myhost.example.com/MyService.