UDDI - Modelo de datos

UDDI incluye un esquema XML que describe las siguientes estructuras de datos:

  • businessEntity
  • businessService
  • bindingTemplate
  • tModel
  • publisherAssertion

BusinessEntity Estructura de datos

La estructura de la entidad comercial representa al proveedor de servicios web. Dentro del registro UDDI, esta estructura contiene información sobre la propia empresa, incluida información de contacto, categorías de la industria, identificadores comerciales y una lista de los servicios prestados.

A continuación se muestra un ejemplo de la entrada de registro UDDI de una empresa ficticia:

<businessEntity businessKey = "uuid:C0E6D5A8-C446-4f01-99DA-70E212685A40"
   operator = "http://www.ibm.com" authorizedName = "John Doe">
   <name>Acme Company</name>
   <description>
      We create cool Web services
   </description>
	
   <contacts>	
      <contact useType = "general info">
         <description>General Information</description>
         <personName>John Doe</personName>
         <phone>(123) 123-1234</phone>
         <email>[email protected]</email>
      </contact>		
   </contacts>
	
   <businessServices>
      ...
   </businessServices>
   <identifierBag>	
      <keyedReference tModelKey = "UUID:8609C81E-EE1F-4D5A-B202-3EB13AD01823" 
         name = "D-U-N-S" value = "123456789" />
   </identifierBag>
	
   <categoryBag>	
      <keyedReference tModelKey = "UUID:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2" 
         name = "NAICS" value = "111336" />			
   </categoryBag>		
</businessEntity>

estructura de datos del servicio empresarial

La estructura de servicios comerciales representa un servicio web individual proporcionado por la entidad comercial. Su descripción incluye información sobre cómo vincularse al servicio web, qué tipo de servicio web es y a qué categorías taxonómicas pertenece.

A continuación, se muestra un ejemplo de una estructura de servicio empresarial para el servicio web Hello World.

<businessService serviceKey = "uuid:D6F1B765-BDB3-4837-828D-8284301E5A2A"
   businessKey = "uuid:C0E6D5A8-C446-4f01-99DA-70E212685A40">
   <name>Hello World Web Service</name>
   <description>A friendly Web service</description>
   <bindingTemplates>
      ...
   </bindingTemplates>
   <categoryBag />
</businessService>

Observe el uso de identificadores únicos universales (UUID) en los atributos businessKey y serviceKey . Cada entidad comercial y servicio comercial se identifica de manera única en todos los registros UDDI a través del UUID asignado por el registro cuando se ingresa la información por primera vez.

bindingTemplate Estructura de datos

Las plantillas de enlace son las descripciones técnicas de los servicios web representados por la estructura de servicios empresariales. Un solo servicio comercial puede tener varias plantillas de enlace. La plantilla de enlace representa la implementación real del servicio web.

A continuación, se muestra un ejemplo de una plantilla de enlace para Hello World.

<bindingTemplate serviceKey = "uuid:D6F1B765-BDB3-4837-828D-8284301E5A2A"
   bindingKey = "uuid:C0E6D5A8-C446-4f01-99DA-70E212685A40">
   <description>Hello World SOAP Binding</description>
   <accessPoint URLType = "http">http://localhost:8080</accessPoint>
   
   <tModelInstanceDetails>
      <tModelInstanceInfo tModelKey = "uuid:EB1B645F-CF2F-491f-811A-4868705F5904">
         <instanceDetails>
            <overviewDoc>
               <description>
                  references the description of the WSDL service definition
               </description>
               
               <overviewURL>
                  http://localhost/helloworld.wsdl
               </overviewURL>
            </overviewDoc>
         </instanceDetails>
      </tModelInstanceInfo>
   </tModelInstanceDetails>
</bindingTemplate>

Como un servicio comercial puede tener múltiples plantillas de enlace, el servicio puede especificar diferentes implementaciones del mismo servicio, cada una vinculada a un conjunto diferente de protocolos o una dirección de red diferente.

Estructura de datos tModel

tModel es el último tipo de datos principales, pero potencialmente el más difícil de comprender. tModel significa modelo técnico.

tModel es una forma de describir las diversas estructuras comerciales, de servicios y de plantillas almacenadas en el registro UDDI. Cualquier concepto abstracto puede registrarse dentro de la UDDI como un tModel. Por ejemplo, si define un nuevo tipo de puerto WSDL, puede definir un tModel que represente ese tipo de puerto dentro del UDDI. Luego, puede especificar que un servicio comercial determinado implemente ese tipo de puerto asociando el tModel con una de las plantillas de enlace de ese servicio comercial.

A continuación, se muestra un ejemplo de un tModel que representa el tipo de puerto de la interfaz Hello World.

<tModel tModelKey = "uuid:xyz987..." operator = "http://www.ibm.com" 
   authorizedName = "John Doe">
   <name>HelloWorldInterface Port Type</name>
   <description>
      An interface for a friendly Web service
   </description>
	
   <overviewDoc>
      <overviewURL>
         http://localhost/helloworld.wsdl
      </overviewURL>
   </overviewDoc>
</tModel>

PublisherAssertion Estructura de datos

Se trata de una estructura de relación que pone en asociación dos o más estructuras de entidad empresarial de acuerdo con un tipo específico de relación, como subsidiaria o departamento.

La estructura publisherAssertion consta de tres elementos: fromKey (la primera clave empresarial), toKey (la segunda clave empresarial) y keyedReference.

KeyedReference designa el tipo de relación afirmada en términos de un par keyName keyValue dentro de un tModel, referenciado de forma única por un tModelKey.

<element name = "publisherAssertion" type = "uddi:publisherAssertion" />
<complexType name = "publisherAssertion">
   <sequence>
      <element ref = "uddi:fromKey" />
      <element ref = "uddi:toKey" />
      <element ref = "uddi:keyedReference" />
   </sequence>
</complexType>