UDDI - Modello di dati

UDDI include uno schema XML che descrive le seguenti strutture di dati:

  • businessEntity
  • businessService
  • bindingTemplate
  • tModel
  • publisherAssertion

struttura dei dati businessEntity

La struttura dell'entità aziendale rappresenta il fornitore di servizi web. All'interno del registro UDDI, questa struttura contiene informazioni sulla società stessa, comprese informazioni di contatto, categorie di settore, identificativi aziendali e un elenco dei servizi forniti.

Ecco un esempio di voce di registro UDDI di un'azienda fittizia:

<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>

struttura dei dati businessService

La struttura del servizio aziendale rappresenta un servizio Web individuale fornito dall'entità aziendale. La sua descrizione include informazioni su come collegarsi al servizio web, che tipo di servizio web è e a quali categorie tassonomiche appartiene.

Di seguito è riportato un esempio di una struttura di servizi aziendali per il servizio 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>

Si noti l'uso degli identificatori univoci universali (UUID) negli attributi businessKey e serviceKey . Ogni entità aziendale e servizio aziendale viene identificato in modo univoco in tutti i registri UDDI tramite l'UUID assegnato dal registro quando le informazioni vengono inserite per la prima volta.

bindingTemplate Struttura dati

I modelli vincolanti sono le descrizioni tecniche dei servizi Web rappresentati dalla struttura dei servizi aziendali. Un singolo servizio aziendale può avere più modelli di associazione. Il modello di associazione rappresenta l'effettiva implementazione del servizio Web.

Di seguito è riportato un esempio di un modello di associazione per 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>

Poiché un servizio aziendale può avere più modelli di associazione, il servizio può specificare diverse implementazioni dello stesso servizio, ciascuna associata a un diverso insieme di protocolli oa un diverso indirizzo di rete.

tModel Data Structure

tModel è l'ultimo tipo di dati di base, ma potenzialmente il più difficile da comprendere. tModel sta per modello tecnico.

tModel è un modo per descrivere le varie strutture aziendali, di servizio e di modello memorizzate nel registro UDDI. Qualsiasi concetto astratto può essere registrato all'interno dell'UDDI come tModel. Ad esempio, se si definisce un nuovo tipo di porta WSDL, è possibile definire un tModel che rappresenta quel tipo di porta all'interno dell'UDDI. Quindi, è possibile specificare che un determinato servizio aziendale implementa quel tipo di porta associando tModel a uno dei modelli di binding di quel servizio aziendale.

Di seguito è riportato un esempio di un tModel che rappresenta il tipo di porta Hello World Interface.

<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>

struttura dati publisherAssertion

Si tratta di una struttura di relazione che mette in associazione due o più strutture businessEntity in base a un tipo specifico di relazione, come filiale o dipartimento.

La struttura publisherAssertion è costituita dai tre elementi: fromKey (il primo businessKey), toKey (il secondo businessKey) e keyedReference.

KeyedReference designa il tipo di relazione affermata in termini di una coppia keyName keyValue all'interno di un tModel, a cui fa riferimento univocamente 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>