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