El API JAXR

El ap�ndice describe c�mo se mapea el modelo de informaci�n JAXR a estructuras de datos XML UDDI seg�n se define en la versi�n 1.0 de la especificaci�n UDDI [UDDI-DS]. Las estructuras de datos UDDI se describen en formato XML. Este mapeo ser� actualizado en una futura versi�n de este documento para reflejar los cambios en la versi�n 2.0 de la especificaci�n UDDI.

.�Modelo UML Simplificado para el Modelo de Informaci�n UDDI


Figura 20: Modelo UML Simplificado para el Modelo de Informaci�n UDDI

La figura 20 muestra una representaci�n UML simplicada del modelo de informaci�n UDDI. Observa que el modelo no es un dibujo exacto del modelo de informaci�n UDDI porque ha sido simplicado para que el lector pueda entenderlo.

.�Mapeo de JAXR a UDDI

Los tipos de datos UDDI no son extensibles. Por lo tanto no es siempre posible mapear un atributo de un interface JAXR a UDDI. Por ejemplo, UDDI no soporta majorVersion y minorVersion. Un proveedor JAXR para UDDI debe lanzar una UnsupportedCapabilityException cuando un cliente intente llamar a un m�todo set para un atributo que no tiene mapeo en UDDI (por ejemplo, RegistryEntry.setMajorVersion).

De forma similar, no todos los interfaces JAXR tienen mapeo a UDDI. Por ejemplo el interface Package no tiene mapeo a UDDI. El m�todo LifeCycleManager.createObject deber�a lanzar una UnsupportedCapabilityException cuando un cliente intente crear un objeto que no puede mapearse a UDDI.

.�Mapeo de Atributos UDDI a JAXR

La especificaci�n JAXR usa las siguientes aproximaciones, listadas en orden de preferencia, para especificar el mapeo entre atributos UML del modelo JAXR y UDDI:

  1. Mapea un atributo UDDI a un atributo JAXR definido est�ticamente (no-Slot) dentro de un interface JAXR.
  2. Mapea un atributo UDDI a un atributo Slot definido din�micamente dentro de un ejemplar de interface JAXR.

Si el mapeo simplemente no es posible, el cliente tiene la opci�n de usar el m�todo toXML de RegistryObject para obtener una representaci�n XML espec�fica del registro para el objeto que est� siendo mapeado. Esta opci�n no es deseable al no ser portable.

.�Mapeo de Atributos useType UDDI

El modelo de informaci�n UDDI frecuente usa un atributo useType sobre sus estructuras de datos. El atributo useType de UDDI se mapea a un �rbol de Concept extensible que tiene un Concept ra�z que identifica el contexto para el useType. Por ejemplo, useType en phone mapea a un Concept ra�z llamado phoneType, que tiene uno hijos Concepts que son los distintos tipos de tel�fonos (por ejemplo, fax, m�vil etc.).

.�Mapeo de Interfaces

Esta secci�n proporciona el mapeo entre conceptos UDDI del m�s alto nivel al modelo de informaci�n JAXR. La tabla proporciona un mapeo a nivel de entidad y las subsecciones describen el mapeo de nivel elemento/atributo para cada concepto clave. Como JAXR define su modelo de informaci�n en t�rminos de interfaces, la mayor�a de los atributos de entidad UDDI son mapeados a operaciones sobre objetos del modelo de informaci�n JAXR.

UDDI JAXR Descripci�n
businessEntity Organization

businessService Service

bindingTemplate ServiceBinding Detalles en bindingTemplate.
tModel Concept Detalles en tModel.
discoveryURL ExternalLink Detalles en businessEntity.
contact User

identifierBag Collection de ejemplares ExternalIdentifier Detalles en identifierBag.
categoryBag Collection de ejemplares Concept Detalles en caregoryBag.
address PostalAddress Detalles en businessEntity.
overviewDoc ExternalLink Detalles en tModel.
keyedReference Association Detalles en keyedReference.

.�BusinessEntity

businessEntity es uno de los cuatro concept principales en UDDI. businessEntity mapea a un Organization en el modelo de informaci�n de JAXR.

businessEntity Organization Descrip
businessKey Organization.getKey

authorizedName Organization.getSlot Slot de s�lo lectura llamado authorizedName del tipo String.
operator Organization.getSlot Slot llamado operator del tipo String.
discoveryURL Organization.getExternalLinks businessEntity contiene una lista de discoveryURLs mientras que Organization contiene una colecci�n de enlaces externos.
Name Organization.getName

description Organization.getDescription

contact Organization.getUsers JAXR designa un contact como primario mientras que UDDI no lo hace. El mapeo asumir� que el primer contact UDDI encontrado ser� el contact primario en JAXR.
businessServices Organization.getServices businessService se mapea al interface Service.
identifierBag Organization.getExternalIdentifiers Detalles en identifierBag.
categoryBag Organization.getClassificationConcepts Detalles en categoryBag.

discoveryURL
En UDDI, el discoveryURL por defecto lo asigna el registro UDDI y se usa para recuperar el XML del businessEntity y todo lo contenido dentro de �l. Cualquier discoveryURL adicional es asignado por el enviante, y proporciona enlaces a contenido externo.

El discoveryURL es mapeado a ExternalLinks en JAXR. El atributo useType esencialmente describe si el businessEntity padre es un businessEntity UDDI est�ndar o una extensi�n espec�fica del ejemplar de businessEntity llamado businessEntityExt. El atributo useType es mapeado a un Slot.

DiscoveryURL ExternalLink Descripci�n
useType ExternalLink.getSlot Slot llamado useType
url value ExternalLink.getExternalURI

Contact
El elemento Contact UDDI se mapea al interface User en JAXR de esta forma:

Contact User Descripci�n
useType User.getSlot Slot llamado useType
description User.getDescription

personName User.getPersonName.getName

phone User.getTelephone.getNumber

email User.getEmailAddress

address User.getPostalAddress

Address
Un Address UDDI tiene dos atributos y una lista de l�neas de direcciones. Cada l�nea es un String. En JAXR, PostalAddress es un interface estructurado con artributos bien definidos para street, city, postal code, country, etc. Esto implica un problema de mapeo entre la informaci�n estructurada en JAXR y la informaci�n desestructurada en UDDI. La soluci�n es usar Slots sobre PostalAddress.

Address PostalAddress Descripci�n
addressLines PostalAddress.getSlot Slot llamado addressLines que tiene una Collection de valores
useType PostalAddress.getType

sortCode PostalAddress.getSlot Slot llamado sortCode

.�BusinessService

businessService en UDDI representa un grupo de servicios l�gicos, que tienen clasificaciones comunes. Es m�nima funcionalmente y realmente sirve como una agrupaci�n de bindingTemplates.

businessService se mapea directamente al interface Service en el modelo de informaci�n JAXR.

businessService Service Descripci�n
businessKey Service.getContainerKey

serviceKey Service.getKey

name Service.getName

description Service.getDescription

bindingTemplates Service.getServiceBindings

categoryBag Service.getClassificationConcepts Detalles en categoryBag.

.�BindingTemplate

El bindingTemplate es otro de los Concepts importantes en UDDI y sirve s�lo para proporcionar un acceso (un punto de entrada) al servidor deseado pero tambi�n para tratar con la especificaci�n t�cnica para el servicio. Estas especificaciones t�cnicas podr�an ser en forma de documentos basados en texto o en un lenguaje de definici�n de interfaces como WSDL.

El elemento bindingTemplate de UDDI se mapea al interface ServiceBinding de JAXR de esta forma:

bindingTemplate ServiceBinding Descripci�n
bindingKey ServiceBinding.getKey

serviceKey ServiceBinding.getContainerKey

description ServiceBinding.getDescription

accessPoint ServiceBinding.getAccessURI El atributo URLType en accessPoint se mapea clasificando el ServiceBinding con un sub-concept de URLType. El urlType por defecto es http.
hostingRedirector ServiceBinding.getTargetBinding S�lo hay un elemento, bindingKey, en esta estructura y se mapea al atributo targetBinding.
tModelInstanceDetails No mapeado expl�citamente ya que es s�lo una Collection

tModelInstanceInfo Cada atributo mapeado a un Slot con el mismo nombre del Concept. Detalles en Ejemplo de Mapeo.
instanceDetail Cada atributo mapeado a un Slot con el mismo nombre del Concept. Detalles en Ejemplo de Mapeo.

tModelInstanceInfo
Mapeado a un ejemplar Association cuyo associationType es el concepto pre-definido UDDIDataTypes/tModelInstanceInfo. El sourceObject del Association es el ServiceBinding. El targetObject es el Concept.

instanceDetails
Mapeado a un ejemplar Association cuyo associationType es el concepto predefinido UDDIDataTypes /instanceDetail. El sourceObject es el Association de associtaionType tModelInstanceInfo y el objetivo es un ExternalLink representando el overviewDoc del instanceDetail.

.�tModel

En UDDI, tModel es un concept sobrecargado que puede usarse para unos pocos prop�sitos diferentes. El Interface Concept en el modelo de informaci�n JAXR sirve para el mismo prop�sito.

tModel Concept Descripcion
tModelKey Concept.getKey

authorizedName Concept.getSlot Slot llamado authorizedName
operator Concept.getSlot Slot llamado operator
name Concept.getName

description Concept.getDescription

overviewDoc Concept.getExternalLinks Ver m�s abajo
identifierBag Concept.getExternalIdentifiers Detalles en identifierBag.
categoryBag Concept.getClassificationConcepts Detalles en categoryBag

overviewDoc
Un overviewDoc se mapea a un ExternalLink en JAXR. El ExternalLink est� asociado con el Concept al que est� mapeado el tModel.

OverviewDoc ExternalLink Descripci�n
description ExternalLink.getDescription

overviewURL ExternalLink.getExternalURI

.�Mapeo de Tipos de Datos Comunes

Hasta ahora hemos descrito el mapeo de m�s alto nivel entre las estructuras principales de UDDI y el modelo de informaci�n JAXR. La siguiente seccion describe el mapeo entre las estructuras m�s comunmente reutilizadas en UDDI.

.�keyedReference

Un elemento keyedReference es usa para contener un grupo de Classifications o un grupo de identificadores de objetos. Para �ste �ltimo, keyedReference puede mapeadarse a ExternalIdentifiers o a Classifications. Por esta raz�n, realmente hay dos tablas especificando cada mapeo individual.

Cuando un keyedReference est� siendo usado como un identifierBag, se mapea a un ExternalIdentifier JAXR. Un modelo de informaci�n JAXR que est� siendo serializado a XML para UDDI tendr� sus identificadores externos serializados dentro de identifierBag. De forma similar, una respuesta UDDI de vuelta, es des-serializada dentro de ExternalObjects mediante la implementaci�n del proveedor JAXR.

keyedReference ExternalIdentifier Descripci�n
tModelKey ExternalIdentifier.getKey Desde el RegistryObject
keyName ExternalIdentifier.getName Desde el RegistryObject. Esto es simb�lico (como un Tax Id).
KeyValue ExternalIdentifier.getValue Este es el id �nico (por ejemplo, tax id), que identifica la entidad de comercio electr�nico.

Cuando se usa un keyedReference en un categoryBag, se mapea como un Concept JAXR.

Cuando se est� serializando un objeto JAXR a XML para UDDI, todos sus Concepts tienen un padre null, y son serializados dentro de categoryBag de acuerdo con el mapeo descrito en la siguiente tabla:

keyedReference Concept Descripci�n
tModelKey Concept.getKey

keyName ((Concept)(Concept.getRoot())).getName Podr�a ser un esquema de clasificaci�n como NAICS
keyValue Concept.getValue Podr�a ser un c�digo NAICS espec�fico que indentifica la categor�a de la industria o del negocio

.�IdentifierBag

identifierBag es una Collection de keyedReferences. Un identifierBag se modela en el modelo de informaci�n JAXR como una Collection de ExternalIdentifiers.

.�categoryBag

categoryBag es una Collection de keyedReferences. Un categoryBag se modela en el modelo de informaci�n JAXR como una Collection de Concepts relacionados con la clasificaci�n.

.�tModelBag

tModelBag es una Collection de valores uuid_key tModel que representan huellas t�cnicas de una estructura bindingTemplate contenida dentro del businessService especificado por el valor de serviceKey.

Un tModelBag se modela en el modelo de informaci�n JAXR como una Collection de Concepts relacionados con la clasificaci�n.

.�Ejemplo de Mapeo JAXR-UDDI

La figura 21 muestra un ejemplo simplificado descrito en t�rminos de estructuras de datos UDDI. La figura 22 muestra el mismo ejemplo en t�rminos del modelo de datos JAXR usando los mapeos descritos anteriormente.
Figura 21: Ejemplo en t�rminos de Estructuras de Datos UDDI.
Figura 22: Ejemplo UDDI Mapeado a JAXR.

.�Soporte NLS y Mapeo a UDDI

La aproximaci�n UDDI para soportar NLS (Native Language Support) es diferente de la de ebXML y del modelo de informaci�n JAXR. En UDDI un s�lo objeto como un businessEntity, se puede usar para m�ltiples lenguajes. Cada atributo o elemento localizable (por ejemplo, name, description) est� disponible en una Collection donde hay un elemento Collection por cada lenguaje soportado.

En JAXR (y ebXML), NLS es soportado introduciendo m�ltiples copias �nicas del mismo objeto en las que cada copia tiene el contenido localizable para el lenguaje espec�fico mientras que el contenido no-localizable es id�ntico en todas las copias. El resultado es que los elementos de informaci�n como name y description aparecen como Collections de Strings en UDDI pero aparecen como un atributo String singular en JAXR.

El mapeo ocurre de la siguiente forma. El API JXR soporta s�lo un name/description. Las llamadas al API JAXR son sensibles a la localidad y devuelven s�lo los elementos espec�ficos de la localidad desde el conjunto de names/descriptions cuando devuelve un objeto (por ejemplo, businessEntity / Organization) desde UDDI.

.�Funcionalidades UDDI no Soportadas por JAXR

La siguiente tabla declara todas las funcionalidades UDDI que no son accesibles mediante el API JAXR. Cualquier potencial omisi�n en esta lista es un error de especificaci�n y deber�a ser reptortado.

Caracter�stica UDDI Disposici�n Descripci�n
Max rows Un grupo de expertos crey� que est� funcionaldiad no era �til sin un cursor como habilidad. No hay planes de proporcionarla en JAXR. No soportada deliveradamente.
get_registeredInfo Se corregir� en el Public Draft 2 Caracter�stica desaparecida en V1
discoveryURL por defecto en businessEntity Necesita posteriores investigaciones Posible caracter�stica perdida en V1. Podr�a requerir un sub-paquete espec�fico UDDI.
No hay forma de buscar un businessEntity usando tModelBag AND categoryBag Se corregir� en el Public Draft 2 Caracter�stica perdida en V1
Funcionalidad BusinessEntityExt Necesita posterior investigaci�n. Posible caracter�stica perdida en V1
No hay Soporte para undeprecate Se coregir� en el Public Draft 2 Caracter�sitca perdida en V1
Relaciones Business La caracter�stica est� soportada pero la uni�n ser� definida en el Public Draft 2 Caracter�stica definida inadecuadamente en V2
Publisher Assertions Se corregir� en el Public Draft 2 Caracter�stica perdida en V1
Service Projection La caracter�stia est� soportada pero la uni�n ser� definida en el Public Draft 2 Caracter�stica definida inadecuadamente en V2
6 nuevos cualificadores de find en V2 Se corregir� en el Public Draft 2 Caracter�stica perdida en V1

COMPARTE ESTE ARTÍCULO

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