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:
- Mapea un atributo UDDI a un atributo JAXR definido est�ticamente (no-Slot) dentro de un interface JAXR.
- 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 | � |
| 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 |