El API JAXR

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.

COMPARTE ESTE ARTÍCULO

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