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

El API JAXR


Arquitectura

Este capítulo describe la arquitectura de alto nivel de JAXR y presenta algunos de los interfaces principales.

La siguiente figura muestra una vista de alto nivel de la arquitectura JAXR, a la que nos referiremos muy frecuentemente dentro de esta especificación.


Figura 5: Arquitectura JAXR.

Los círculos representan los distintos interfaces implementados por el cliente y el proveedor JAXR:

  • RC representa el interface RegistryClient implementado por el cliente.
  • RS representa el interface RegistryService implementado por el proveedor JAXR.
  • C1, C2 hasta Cn representan los interfaces JAXR implementados por el proveedor JAXR que proporcionan distintas capaciades de Registro. Estos interfaces se presentarán más adelante en esta especificación.
    [Nota]

    Se espera que el cliente y el proveedor JAXR estén localizados dentro del mismo proceso de la JVM en la mayoría de las implementaciones. El único punto de distribución sobre la Web está entre el proveedor JAXR y el proveedor del registro (entre las capas central e inferior).

En las secciones siguientes, se describirá cada componente de la configuración JAXR en un orden de arriba hacia abajo. La mayoría de las descripciones están acompañadas por una versión minimizada de la figura anterior. La figura minimizada destaca el componente que se está describiendo acentuado con una flecha y sombreándolo en color rojo.

. Cliente JAXR

La parte superior de la figura anterior es el cliente JAXR. El cliente JAXR puede ser cualquier aplicación independiente Java, un Applet o un componente J2EE. El cliente JAXR utiliza el API JAXR para acceder a un registro mediante un proveedor JAXR.

. Interface Connection


Figura 6: Interface Connection

Un objeto Connection (señalado por flecha en la figura anterior) representa una sesión del cliente con un proveedor JAXR. Mantiene la información de estado para una conexión específica.

Un cliente debe crear un Connection JAXR sobre un proveedor JAXR apropiado para emplear los servicios de un registro que usa el API JAXR. El capítulo Control de Conexión describe el papel de las conexiones en más detalle.

El cliente usa el interface ConnectionFactory de JAXR para crear una Connection. La Connection JAXR no se muestra explícitamente en la figura 5. Sin embargo, los interfaces RegistryClient y RegistryService definidos por el API JAXR están contenidos dentro de una conexión JAXR.

El interface Connection proporciona varios métodos seleccionadores (por ejemplo, setLocale, setSynchronous, setCredentials) que permiten que el cliente JAXR altere dinámicamente su estado, contexto, y preferencias sobre el proveedor JAXR en cualquier momento.

. Interface RegistryClient


Figura 7: Interface RegistryClient

El cliente JAXR debe implementar un interface RegistryClient (señalado por la flecha en la figura 7) si utiliza comunicación asíncrona con el proveedor JAXR. El interface RegistryClient esta representado por el círculo etiquetado RC en la figura 5.

Un RegistryClient sirve como un proxy para el cliente JAXR desde la perspectiva del proveedor JAXR. Un cliente JAXR puede implementar cualquier número de interfaces RegistryClient. Sin embargo, solamente un interface RegistryClient puede asociarse con una Connection dada a un proveedor JAXR. Si un cliente utiliza el mismo ejemplar de RegistryClient para múltiples Connections, debe asegurarse de que la implementación de RegistryClient sea segura ante los threads.

El interface RegistryClient proporciona los métodos de servicio de retrollamada para entregar respuestas asíncronas y excepciones desde el proveedor JAXR al cliente JAXR. El proveedor JAXR invoca asíncronamente a estos métodos de servicio de retrollamada si el cliente prefiere notificación asíncrona.

Los métodos de entrega asíncrona son:

  1. El método onException se usa para entregar excepciones asíncronas.
  2. El método onResponse se usa para entregar respuestas asíncronas.

. Interface RegistryService


Figura 8: Interface RegistryService

Interface RegistryService (señalado por la flecha la figura 8) es el interface principal implementado por un proveedor JAXR. Un cliente del registro puede conseguir este interface desde su conexión a un proveedor JAXR.

El proveedor JAXR debe implementar un interface RegistryService

El interface RegistryService proporciona los métodos que son utilizados por el cliente para descubrir los distintos interfaces específicos de la capacidad implementados por el proveedor JAXR. También proporciona un método getCapabilityProfile que permite que el cliente JAXR tenga acceso al perfil de capacidad que describe las capacidades utilizadas por el proveedor JAXR.

. Interfaces Específicos de Capacidad


Figura 9: Interfaces Específicos de la Capacidad

Los interfaces específicos de la capacidad (apuntados por la flecha de la Figura 9) proporcionan capacidades específicas como:

Cada interface especifico de la capacidad se mapea en un perfil de capacidad definido por el JAXR. Actualmente estos perfiles de capacidad están definidos como perfiles de Nivel 0 y de Nivel 1. Los interfaces específicos de la capacidad normalmente están disponibles en dos sabores: un interface de negocios y un interface genérico.

. El Proveedor JAXR


Figura 10: Proveedor JAXR

El proveedor JAXR (apuntado por la flecha en la figura 10) es una implementación del API JAXR. Un cliente JAXR accede a un registro mediante un proveedor JAXR.

La figura 5 muestra al proveedor JAXR como la unión de un proveedor JAXR genérico y un provedor JAXR específico del registro.

. Proveedor JAXR Enchufable

El proveedor enchufable JAXR implementa las características del API JAXR que son independientes de cualquier tipo específico de registro. El proveedor enchufable proporciona una sola abstracción para varios proveedores JAXR específicos de registro. Permite al cliente evitar ser expuesto al hecho de que allí hay varios proveedores JAXR específicos de registro realizando el acceso real al registro.

Una importante característica del proveedor JAXR enchufable es proporcionar una implementación de ConnectionFactory enchufable para poder crear Connections utilizando el proveedor JAXR específico del registro apropiado.

. Proveedor JAXR Específico del Registro

Los proveedores JAXR específicos del registro implementan el API JAXR de una forma específica del registro. Un proveedor específico del registro JAXR se enchufa dentro de un proveedor JAXR enchufable y es utilizado por éste en un patrón de delegación. El contrato entre el proveedor enchufable JAXR y un proveedor específico del registro JAXR es el API JAXR usado en un patrón de delegación en vez de un SPI separado o diferente.

un proveedor específico del registro JAXR acepta peticiones JAXR del cliente y las transforma en peticiones equivalentes basadas en las especificaciones del registro objetivo. Envía las peticiones específicas del registro al proveedor de registro usando protocolos específicos del registro.

Un proveedor de registro procesa una petición del cliente y envía una respuesta específica del registro de vuelta al proveedor específico del registro JAXR. Entonces el proveedor específico del registro JAXR transforma la respuesta específica del registro en una respuesta equivalente JAXR que se entregua al cliente JAXR.

Desde la perspectiva del proveedor del registro, su cliente es el proveedor JAXR específico del registro.

. Proveedor Puente JAXR

Es probable que la mayoría de los proveedores JAXR sean desarrollados como puentes a los proveedores de registro existentes. Dichos proveedores JAXR son referenciados como proveedores puente JAXR. Esto es similar al concepto de puente JDBC-ODBC en la implementación de referencia de JDBC. Un proveedor puente no es específico a ningún ejemplar determinado de registro. En su lugar, un proveedor puente es específico a un tipo de registros (por ejemplo, ebXML) y se puede utilizar para acceder a cualquier ejemplar de registro que cumpla con la especificación que define ese tipo de registros.

Por ejemplo, un proveedor puente de ebXML da acceso a cualquier implementación que cumpla con la especificación ebXML.

. Proveedor de Registro

Los proveedores de registro se mostraron en la capa inferior de la figura 5. Estas son implementaciones de varias especificaciones de registro como ebXML y UDDI.

. Estructura de Paquetes del API JAXR

El API JAXR está divido en dos paquetes principales:

  1. El paquete java.xml.registry.infomodel consta de interfaces que definen el modelo de información de JAXR. Estos interfaces definen los tipos de objetos que residen en un registro y cómo se relacionan unos con otros. El modelo de información se discute en la página siguiente.
  2. El paquete java.xml.registry consta de los interfaces y clases del API que definen el interface de acceso al registro.

Mientras que el modelo de información describe qué tipos de objetos residen en el registro, el API define cómo esos objetos se envían al registro y se manejan posteriormente. La Figura 11 muestra los interfaces y las clases definidas por el API JAXR según lo definido por el paquete java.xml.registry. Los interfaces del modelo de información se describen más detalladamente en la página siguiente.


Figura 11: Interfaces definidos por el API JAXR.
 
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