Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
-Tutoriales

El API JAXR


Control de Conexion

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();

 
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network