El API JAXR

Este cap�tulo espec�fica c�mo un proveedor JAXR maneja conexiones JAXR. Proporciona detalles sobre el interface ConnectionFactory y el interface Connection.

.�Crear una Conexi�n JAXR

Para crear una Connection a un proveedor JAXR, un cliente usa el m�todo createConnection de esa ConnectionFactory del proveedor JAXR.

public Connection createConnection(java.util.Properties properties,
				RegistryClient client)
				throws JAXRException;

.�Configuraci�n de la Conexi�n

El cliente puede especificar un objeto Properties al m�todo createConnection, que contiene las propiedades de configuraci�n para la Connection. Estas propiedades pueden ser propiedades est�ndars o propiedades espec�ficas del proveedor.

  1. Las propiedades est�ndars est�n definidas por el API JAXR.
  2. Las propiedades espec�ficas del proveedor est�n definidas por un proveedor JAXR espec�fico. Las propiedades de configuraci�n de la Connection deben ser cualificadas por un nombre de paquete. Las propiedades est�ndar de configuraci�n de la Connection utilizan el paquete javax.xml.registry, mientras que las propiedades espec�ficas del proveedor utilizan el nombre de nivel superior del paquete del proveedor (por ejemplo, com.sun.xml.registry.ebxml).

Propiedades de Conexi�n Est�ndard
La siguiente tabla describe estar propiedades de conexi�n que est�n estandarizadas para esta especificaci�n. Los proveedores JAXR podr�an definir propiedades adicionales espec�ficas para ese proveedor:

Propiedad Tipo de
Dato
Descripci�n
javax.xml.registry.
queryManagerURL
String URL al servicio de control de consulta dentro del proveedor de servicio objetivo.
javax.xml.registry.
lifeCycleManagerURL 

�

URL al servicio de control de consulta dentro del proveedor de servicio objetivo.
javax.xml.registry.
factoryClass
String Nombre de clase totalmente cualificado del ConnectionFactory de un proveedor JAXR espec�fico del registro. Realmente s�lo para proveedores JAXR enchufables.

Especificar un RegistryClient
El cliente podr�a especificar un objeto RegistryClient no-null al m�todo createConnection. Este interface sirve como un manejador de retrollamada que es proporcionado por el cliente del proveedor JAXR para recibir respuestas as�ncronas.

El cliente podr�a especificar un objeto RegistryClient null al m�todo createConnection si no planeamos utilizar comunicaci�n as�ncrona dentro del proveedor JAXR.

.�Especificaci�n Local

El cliente JAXR usa el m�todo setLocale sobre una Connection para alterar din�micamente a su preferencia de localidad. El proveedor JAXR debe usar el Locale definido en el ejemplar Connection en cualquier momento dado cuando est� sirviendo peticiones por cuenta del cliente. Esta habilidad de un cliente de modificar din�micamente su Locale es �til en casos donde usuarios multi-idioma podr�an compartir una conexi�n JAXR dentro de una aplicaci�n cliente.

.�Conexiones S�ncronas contra As�ncronas

El cliente JAXR usa el m�todo setSynchronous sobre una Connection para alterar din�micamente si recibe respuestas y excepciones desde el proveedor JAXR s�ncrona o as�ncronamente. El proveedor JAXR debe usar est� preferencia de comunicaci�n cuando entregue respuestas y excepciones generadas despu�s de procesar las peticiones por cuenta del cliente.

Si la preferencia de comunicaci�n es s�ncrona, cada llamada a m�todo request devuelve un ejemplar JAXRResponse no-null (o un sub-interface) que contenga la respuesta a la petici�n.

Si la preferencia de comunicaci�n es as�ncrona, entonces cada llamada a m�todo request devuelve un ejemplar JAXRResponse no-null (o un sub-interface) que contenga s�lo la respuesta identificada para esa petici�n. Esta respuesta limitada podr�a usarla el cliente para correlacionar peticiones con respuestas as�ncronas en el futuro. Una respuestas o excepci�n as�ncrona es entregada por el proveedor JAXR a los m�todos onResponse o onException del interface RegistryClient proporcionado por el Connection del cliente. La respuesta o excepci�n as�ncronas contienen el mismo identificador de petici�n que fu� devuelto en la respuesta s�ncrona parcial.

.�Especifici�n de Credenciales de Seguridad

El cliente JAXR usa el m�todo setCredentials para alterar din�micamente sus credenciales de seguridad. Estas credenciales proporcionan detalles sobre la identidad relacionada con la seguridad asociada con el cliente. Un ejemplo de una credencial es la combinaci�n de nombre de usuario y password. El proveedor JAXR debe usar las credenciales definidas en el ejemplar Connection en cualquier momento mientras procesa las peticiones del cliente. Esto podr�a requerir tener que re-autentificarse con el proveedor de registro en respuesta a la llamada a setCredentials cuando sea apropiado.

.�conexiones Concurrentes

Un s�lo cliente JAXR podr�a mantener varias conexiones. Colectivamente, estas conexiones podr�an acceder concurrentemente a m�ltiples proveedores JAXR. Individualmente, cada Connection debe ser s�lo para un proveedor JAXR. Una petici�n de cliente s�lo puede ser procesar por una s�la conexi�n. Las implementaciones de Connection deben ser seguras ante los threads.

.�Manejo de Recursos

Un proveedor JAXR normalmente asigna recursos significantes fuera de la JVM por cuenta de una Connection. Estos recursos incluyen una conexi�n de red entre el proveedor JAXR y el proveedor de registro objetivo mostrado en la parte inferior de la figura 5. La conexi�n de red entre el proveedor JAXR y el proveedor de registro objetivo est� presentada en la figura 5 por el bloque de flechas marcadas ebXML/SOAP, etc. Los detalles t�cnicos de dicha conexi�n son espec�ficas del proveedor de registro y por lo tanto est�n fuera del contenido de este docuemnto.

Para poder conservar los recursos del sistema, los clientes deber�an cerrar las Connections cuando ya no sean necesarias. Un cliente cierra una Connection llamando al m�todo close sobre ella.

.�Secuencia de Configuraci�n de Conexion

La Figura 19 ilustra la secuencia de eventos durante el establecimiento de una conexi�n JAXR:


Figura 19: Secuencia de Configuraci�n de Connection.

.�C�digo de Ejemplo de Creaci�n de una Conexi�n

import javax.xml.registry.*;

...

//Create a client specific implementation of the RegistryClient interface
RegistryClient client = new MyRegistryClient();

//Look up the JAXR Pluggable provider's connection factory
ConnectionFactory factory = (ConnectionFactory)ctx.lookup("JAXRConnectionFactory");

//Define connection configuration properties
Properties props = new Properties();
props.put("javax.xml.registry.factoryClass", "com.sun.xml.registry.ConnectionFactory");
props.put("javax.xml.registry.queryManagerURL", "http://java.sun.com/uddi/inquiry");
props.put("javax.xml.registry.lifeCycleManagerURL", "http://java.sun.com/uddi/publish");

//Create the connection passing it the configuration properties and the RegistryClient interface
Connection connection = factory.createConnection(props, client);

Set credentials = new Set();
...
connection.setCredentials(credentials);
connection.setLocale(locale);
connection.setSynchronous(false);

RegistryService rs = connection.getRegistryService();

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR