El API JAXR

Este captulo 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 especificacin.


Figura 5: Arquitectura JAXR.

Los crculos 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 presentarn ms adelante en esta especificacin.
    [Nota]

    Se espera que el cliente y el proveedor JAXR estn localizados dentro del mismo proceso de la JVM en la mayora de las implementaciones. El nico punto de distribucin 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 configuracin JAXR en un orden de arriba hacia abajo. La mayora de las descripciones estn acompaadas por una versin minimizada de la figura anterior. La figura minimizada destaca el componente que se est describiendo acentuado con una flecha y sombrendolo en color rojo.

.Cliente JAXR

La parte superior de la figura anterior es el cliente JAXR. El cliente JAXR puede ser cualquier aplicacin 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 (sealado por flecha en la figura anterior) representa una sesin del cliente con un proveedor JAXR. Mantiene la informacin de estado para una conexin especfica.

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 captulo Control de Conexin describe el papel de las conexiones en ms detalle.

El cliente usa el interface ConnectionFactory de JAXR para crear una Connection. La Connection JAXR no se muestra explcitamente en la figura 5. Sin embargo, los interfaces RegistryClient y RegistryService definidos por el API JAXR estn contenidos dentro de una conexin JAXR.

El interface Connection proporciona varios mtodos seleccionadores (por ejemplo, setLocale, setSynchronous, setCredentials) que permiten que el cliente JAXR altere dinmicamente 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 (sealado por la flecha en la figura 7) si utiliza comunicacin asncrona con el proveedor JAXR. El interface RegistryClient esta representado por el crculo 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 nmero 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 mltiples Connections, debe asegurarse de que la implementacin de RegistryClient sea segura ante los threads.

El interface RegistryClient proporciona los mtodos de servicio de retrollamada para entregar respuestas asncronas y excepciones desde el proveedor JAXR al cliente JAXR. El proveedor JAXR invoca asncronamente a estos mtodos de servicio de retrollamada si el cliente prefiere notificacin asncrona.

Los mtodos de entrega asncrona son:

  1. El mtodo onException se usa para entregar excepciones asncronas.
  2. El mtodo onResponse se usa para entregar respuestas asncronas.

.Interface RegistryService


Figura 8: Interface RegistryService

Interface RegistryService (sealado 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 conexin a un proveedor JAXR.

El proveedor JAXR debe implementar un interface RegistryService

El interface RegistryService proporciona los mtodos que son utilizados por el cliente para descubrir los distintos interfaces especficos de la capacidad implementados por el proveedor JAXR. Tambin proporciona un mtodo getCapabilityProfile que permite que el cliente JAXR tenga acceso al perfil de capacidad que describe las capacidades utilizadas por el proveedor JAXR.

.Interfaces Especficos de Capacidad


Figura 9: Interfaces Especficos de la Capacidad

Los interfaces especficos de la capacidad (apuntados por la flecha de la Figura 9) proporcionan capacidades especficas como:

Cada interface especifico de la capacidad se mapea en un perfil de capacidad definido por el JAXR. Actualmente estos perfiles de capacidad estn definidos como perfiles de Nivel 0 y de Nivel 1. Los interfaces especficos de la capacidad normalmente estn disponibles en dos sabores: un interface de negocios y un interface genrico.

.El Proveedor JAXR


Figura 10: Proveedor JAXR

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

La figura 5 muestra al proveedor JAXR como la unin de un proveedor JAXR genrico y un provedor JAXR especfico del registro.

.Proveedor JAXR Enchufable

El proveedor enchufable JAXR implementa las caractersticas del API JAXR que son independientes de cualquier tipo especfico de registro. El proveedor enchufable proporciona una sola abstraccin para varios proveedores JAXR especficos de registro. Permite al cliente evitar ser expuesto al hecho de que all hay varios proveedores JAXR especficos de registro realizando el acceso real al registro.

Una importante caracterstica del proveedor JAXR enchufable es proporcionar una implementacin de ConnectionFactory enchufable para poder crear Connections utilizando el proveedor JAXR especfico del registro apropiado.

.Proveedor JAXR Especfico del Registro

Los proveedores JAXR especficos del registro implementan el API JAXR de una forma especfica del registro. Un proveedor especfico del registro JAXR se enchufa dentro de un proveedor JAXR enchufable y es utilizado por ste en un patrn de delegacin. El contrato entre el proveedor enchufable JAXR y un proveedor especfico del registro JAXR es el API JAXR usado en un patrn de delegacin en vez de un SPI separado o diferente.

un proveedor especfico del registro JAXR acepta peticiones JAXR del cliente y las transforma en peticiones equivalentes basadas en las especificaciones del registro objetivo. Enva las peticiones especficas del registro al proveedor de registro usando protocolos especficos del registro.

Un proveedor de registro procesa una peticin del cliente y enva una respuesta especfica del registro de vuelta al proveedor especfico del registro JAXR. Entonces el proveedor especfico del registro JAXR transforma la respuesta especfica 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 especfico del registro.

.Proveedor Puente JAXR

Es probable que la mayora 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 implementacin de referencia de JDBC. Un proveedor puente no es especfico a ningn ejemplar determinado de registro. En su lugar, un proveedor puente es especfico a un tipo de registros (por ejemplo, ebXML) y se puede utilizar para acceder a cualquier ejemplar de registro que cumpla con la especificacin que define ese tipo de registros.

Por ejemplo, un proveedor puente de ebXML da acceso a cualquier implementacin que cumpla con la especificacin 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 informacin de JAXR. Estos interfaces definen los tipos de objetos que residen en un registro y cmo se relacionan unos con otros. El modelo de informacin se discute en la pgina 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 informacin describe qu tipos de objetos residen en el registro, el API define cmo esos objetos se envan al registro y se manejan posteriormente. La Figura 11 muestra los interfaces y las clases definidas por el API JAXR segn lo definido por el paquete java.xml.registry. Los interfaces del modelo de informacin se describen ms detalladamente en la pgina siguiente.


Figura 11: Interfaces definidos por el API JAXR.

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.