Soporte de nombres de búsqueda en descriptores de despliegue y clientes ligeros

Los objetos de servidor de aplicaciones como, por ejemplo, los inicios de enterprise bean (EJB) se enlazan en relación al contexto de raíz de servidor del servidor donde se instala la aplicación. Otros objetos, como por ejemplo los recursos también pueden enlazarse a una raíz de servidor específica. Los nombres que se utilizan para buscar estos objetos deben está cualificados de modo que seleccionen la raíz de servidor correcta. En este tema se describe en qué consisten los nombres calificados y relativos, cuando se utilizan y cómo se pueden construir.

A partir de la versión 8.0, los inicios de EJB se enlaza bajo el nombre, java:global/nombre_apl/nombre_módulo/nombre_bean. Los nombres con dicho formato no se basan en la topología y ya están totalmente calificados. De forma similar, todos los recursos de aplicación enlazados con los nombres java:global, java:app o java:module no necesitan una cualificación adicional si se especifica el nombre de búsqueda java:global, java:app o java:module. Los recursos de aplicación incluyen, por ejemplo, referencias EJB, referencias de recurso y entradas de entorno.

Nombres relativos

Todos los nombres son relativos a un contexto. Por lo tanto, un nombre que se puede resolver desde un contexto del espacio de nombres no puede resolverse necesariamente desde otro contexto del mismo espacio de nombres. Esto aspecto es importante ya que el sistema enlaza objetos a nombres relativos al contexto de raíz de servidor del servidor donde está instalada la aplicación. Cada servidor tiene su propio contexto raíz de servidor. El contexto JNDI (Java™ Naming and Directory Interface) inicial es de forma predeterminada el contexto de raíz de servidor del servidor identificado por el URL de proveedor que se utiliza para obtener el contexto inicial. Normalmente, el URL consta de un host y puerto. Para las aplicaciones que se ejecutan en un proceso del servidor, el contexto JNDI inicial predeterminado es la raíz de servidor de dicho servidor. Un nombre relativo se resolverá adecuadamente cuando el contexto inicial se obtenga del servidor que contiene el objeto de destino, aunque no se resolverá adecuadamente desde un contexto inicial que se obtenga de otro servidor.

Si todos los clientes de una aplicación de servidor se ejecutan en el mismo proceso del servidor que la aplicación, todos los objetos asociados con esa aplicación están enlazados al mismo contexto inicial que el contexto inicial de los clientes. En este caso, sólo los nombres relativos al contexto de raíz de servidor del servidor son necesarios para acceder a estos objetos del servidor. Sin embargo, con frecuencia, una aplicación de servidor tiene clientes que se ejecutan fuera del proceso del servidor de la aplicación. El contexto inicial de estos clientes puede ser distinto del contexto inicial de la aplicación de servidor y es posible que las búsquedas de los nombres relativos de los objetos de servidor no se realicen correctamente. Estos clientes deben utilizar el nombre calificado para los objetos de servidor. Esto se debe tener en cuenta al configurar los valores de jndiName en los descriptores de despliegue de una aplicación de cliente Java EE (Java Platform, Enterprise Edition) y al construir los nombres de búsqueda en clientes ligeros. Los nombres calificados se resuelven correctamente desde cualquier contexto inicial de la célula.

Nombres cualificados

Todos los nombres son relativos a un contexto. El término nombre cualificado se refiere a los nombres que se pueden resolver desde cualquier contexto inicial de una célula. Esta acción se efectúa utilizando nombres que se desplazan al mismo contexto, es decir, la raíz de célula. Por tanto, el resto del nombre cualificado es relativo a la raíz de célula e identifica de forma exclusiva un objeto de la célula. Todos los contextos iniciales de un servidor (es decir, todos los contextos de denominación de un servidor registrado con el ORB como referencia inicial) contienen un enlace con el nombre cell, que enlaza la célula al contexto de raíz de célula. Todos los nombres cualificados comienzan por la serie cell/ para poder volver desde el contexto inicial actual al contexto de raíz de célula.

El nombre cualificado de un objeto permanece el mismo en toda la célula. El nombre puede estar basado en la topología o puede ser un nombre fijo enlazado bajo la raíz persistente de célula. Los nombres basados en la topología, que se describen con más detalle a continuación, se desplazan por el espacio de nombres del sistema para alcanzar el objeto de destino. Un nombre fijo enlazado bajo la raíz persistente de célula tiene el mismo nombre calificado en toda la célula y es independiente de la topología. La creación de un nombre fijo bajo la raíz persistente de célula para un objeto de aplicación de servidor exige un paso adicional al instalar la aplicación de servidor, pero este paso elimina cualquier impacto sobre los clientes cuando la aplicación pasa a una ubicación distinta de la topología de la célula. El proceso para crear un nombre fijo se describe posteriormente en esta sección.

En general, debe utilizar nombres calificados para los valores jndiName de EJB en los descriptores de despliegue de aplicaciones de cliente Java EE y para los nombres de búsqueda de EJB en clientes ligeros. La única excepción se da cuando el contexto inicial se obtiene desde el servidor donde reside el objeto de destino. Por ejemplo, un bean de sesión que es cliente de un bean de entidad puede utilizar un nombre relativo si los dos beans se ejecutan en el mismo servidor. Si el bean de sesión y bean de entidad se ejecutan en servidores distintos, el jndiName para el bean de entidad debe estar cualificado en los descriptores de despliegue del bean de sesión. El mismo requisito puede ser válido para los recursos, dependiendo del ámbito del recurso.

  • Nombres basados en la topología

    La partición del espacio de nombres del sistema en el espacio de nombres de una célula refleja la topología de la célula. Esta estructura permite desplazarse por ella para llegar a cualquier objeto enlazado en el espacio de nombres de la célula. Los nombres cualificados basados en la topología incluyen elementos de la topología que reflejan la ubicación del objeto en la célula.

    Para un objeto enlazado al sistema, como por ejemplo, una ubicación inicial de EJB, el formato de un nombre cualificado basado en la topología depende de si el objeto está enlazado en un servidor único o a un clúster. Los dos formatos se describen de este modo:

    Servidor único
    Un objeto enlazado en un servidor único tiene un nombre cualificado basado en la topología con el siguiente formato:
    cell/nodes/nombreNodo/servers/nombreServidor/nombreJNDIRelativo
    donde nombreNodo y nombreServidor son el nombre de nodo y nombre de servidor del servidor donde se enlaza el objeto y nombreJNDIRelativo es el nombre no cualificado del objeto, es decir, el nombre del objeto relativo al contexto de raíz de servidor del servidor.
    Clúster de servidores
    Un objeto enlazado en un clúster de servidores tiene un nombre cualificado basado en la topología con el siguiente formato:
    cell/clusters/nombreClúster/nombreJNDIRelativo
    donde nombreClúster es el nombre del clúster de servidores donde se enlaza el objeto y nombreJNDIRelativo es el nombre no cualificado del objeto, es decir, el nombre del objeto relativo al contexto de raíz de servidor de un miembro del clúster.
  • Nombres fijos

    Se puede crear un nombre fijo para un objeto de servidor de modo que el nombre cualificado sea independiente de la topología de la célula. Esta característica es deseable cuando los clientes de la aplicación se ejecutan en otros procesos del servidor o como clientes puros. Los nombres fijos tienen la ventaja de que no varían si el objeto pasa a otro servidor. Los valores de jndiName en los descriptores de despliegue de una aplicación de cliente Java EE pueden hacer referencia al nombre fijo cualificado de un objeto de servidor independientemente de la topología de célula donde está instalada la aplicación de servidor o cliente.

    La definición de un nombre fijo para toda la célula para el objeto de aplicación de servidor exige un paso adicional después de instalar la aplicación de servidor. Es decir, se debe crear un enlace para el objeto bajo la raíz persistente de célula. Un nombre fijo enlazado bajo la raíz persistente de célula puede ser cualquier nombre, pero todos los nombres bajo la raíz persistente de célula deben ser exclusivos en la célula, ya que la raíz persistente de célula es global para toda la célula.

    Un nombre fijo cualificado tiene el siguiente formato:
    cell/persistent/nombreFijo
    donde nombreFijo es un nombre fijo arbitrario.

    El enlace se puede crear de forma programada (por ejemplo, utilizando JNDI). Sin embargo, es más cómodo probablemente configurar un enlace con ámbito de célula para el objeto de servidor.

    Debe mantener los enlaces configurados o programáticos actualizados. Los enlaces EJB configurados se basan en la ubicación del enterprise bean en la topología de la célula, por lo que para desplazar la aplicación EJB a otro servidor es necesario, por ejemplo, actualizar el enlace configurado. Cambios similares afectan a una referencia de ubicación inicial de EJB enlazada de forma programada de modo que el nombre fijo necesitaría que se volviese a enlazar con una referencia actual. Sin embargo, para los clientes Java EE y para los clientes ligeros, el valor de jndiName para el objeto y el nombre de búsqueda para el objeto permanecen idénticos respectivamente. En otras palabras, los clientes que acceden a objetos mediante nombres fijos no se ven afectados por los cambios de configuración de las aplicaciones de servidor a las que acceden.

Utilización de nombres de búsqueda en enlaces de descriptor de despliegue

Las aplicaciones Java EE pueden contener descriptores de despliegue, como ejb-ref, resource-ref y resource-env-ref, que se utilizan para declarar distintos tipos de referencias. Estas declaraciones de referencia definen los nombres de búsqueda java:comp/env que están disponibles para los correspondientes componentes Java EE. Cada nombre de búsqueda java:comp/env debe estar correlacionado con un nombre de búsqueda del espacio de nombres global, relativo al contexto raíz del servidor, que es el contexto JNDI inicial predeterminado.

Si una referencia se correlaciona con un objeto enlazado bajo el contexto raíz de servidor para el mismo servidor que el componente que ejecuta la búsqueda, puede utilizar un nombre de búsqueda relativo. Si una referencia se correlaciona con un objeto que está enlazado bajo el contexto raíz de servidor de otro servidor, debe cualificar el nombre de la búsqueda. Por ejemplo, debe cualificar un nombre de búsqueda si un servlet que se ejecuta en un servidor declara una referencia ejb-ref para un EJB que se ejecuta en otro servidor. De forma parecida, si la referencia se correlaciona con un objeto que está enlazado con una partición persistente del espacio de nombres, o con un objeto que está enlazado a través de un enlace de espacio de nombres configurado por la célula o por el nodo, debe utilizar un nombre cualificado.

Puede especificar valores de enlace de referencia de descriptor de despliegue cuando instale la aplicación y editarlos posteriormente una vez que la aplicación ya esté instalada. Si tiene que cambiar el nombre de búsqueda JNDI al que se correlaciona una referencia, en la consola administrativa, pulse Aplicaciones > Tipos de aplicación > Apliaciones empresariales WebSphere > nombre_aplicación. En la sección Referencias hay enlaces que corresponden con los distintos tipos de referencia, como las referencia EJB y las referencias de entrada de entorno de recursos, declaradas por esta aplicación. Pulse en el enlace del tipo de referencia que deba cambiar y especifique un valor nuevo en el campo Nombre JNDI de recurso de destino.


Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rnam_names
File name: rnam_names.html