sabato 18 maggio 2013

UDDI

L'UDDI (acronimo di Universal Description Discovery and Integration) è un registry (ovvero una base dati ordinata e indicizzata), basato su XML e indipendente dalla piattaforma hardware, che permette alle aziende la pubblicazione dei propri dati e dei servizi offerti su internet. (cit. wikipedia)

  UDDI include un  XML Schema che descrive 4 tipi di informazioni principali:
  • businessEntity (include informazioni sul business name,la descrizione etc);
  • businessService (include informazioni sui web service)
  • bindingTemplate (include informazioni su come e dove accedere il web service)
  • tModel (Technical model, include descrizioni o puntatori a specifiche tecniche esterne oppure a tassonomie).
UDDI può avere come identificativo di un servizio un numero detto Dun & Bradstreet D-U-N-S® Number, un numero di nove cifre codificato secondo un certo standard (vedi qui ).

 Vediamo degli esempi:

businessEntity



<businessEntity
businessKey="0076b468-eb27-42e5-ac09-9955cff462a3"
operator="Microsoft Corporation" authorizedName="Martin Kohlleppel">
<name>Microsoft Corporation</name>
<description xml:lang="en">Empowering people through great software
- any time, any place and on any device is Microsoft's vision. As the
worldwide leader in software for personal and business computing, we
strive to produce innovative products and services that meet our
customer's...
</description>
<contacts>
<contact useType="Corporate Addresses and telephone">
<description xml:lang="en">Corporate Mailing Addresses</
description>
<personName />
<phone useType="Corporate Headquarters">(425) 882-8080</phone>
<address sortCode="~" useType="Corporate Headquarters">
<addressLine>Microsoft Corporation</addressLine>
<addressLine>One Microsoft Way</addressLine>
<addressLine>Redmond, WA 98052-6399</addressLine>
<addressLine>USA</addressLine>
</address>
</contact>
<contact useType="Technical Contact - Corporate UD">
<description xml:lang="en">World Wide Operations</description>
<personName>Martin Kohlleppel</personName>
<email>martink@microsoft.com</email>
</contact>
</contacts>
<identifierBag>
<keyedReference
tModelKey="uuid:8609c81e-ee1f-4d5a-b202-3eb13ad01823"
keyName="D-U-N-S" keyValue="08-146-6849" />
</identifierBag>
<categoryBag>
<keyedReference
tModelKey="uuid:c0b9fe13-179f-413d-8a5b-5004db8e5bb2"
keyName="NAICS: Software Publisher" keyValue="51121" />
</categoryBag>
</businessEntity>


business service / binding Template


<businessService
serviceKey="d5921160-3e16-11d5-98bf-002035229c64"
businessKey="ba744ed0-3aaf-11d5-80dc-002035229c64">
<name>XMethods Delayed Stock Quotes</name>
<description xml:lang="en">20-minute delayed stock quotes</description>
<bindingTemplates>
<bindingTemplate
serviceKey="d5921160-3e16-11d5-98bf-002035229c64"
bindingKey="d594a970-3e16-11d5-98bf-002035229c64">
<description xml:lang="en">
SOAP binding for delayed stock quotes service
</description>
<accessPoint URLType="http">
http://services.xmethods.net:80/soap
</accessPoint>
<tModelInstanceDetails>
<tModelInstanceInfo
tModelKey="uuid:0e727db0-3e14-11d5-98bf-002035229c64" />
</tModelInstanceDetails>
</bindingTemplate>
</bindingTemplates>
</businessService>


tModel 


<tModel
tModelKey="uuid:0e727db0-3e14-11d5-98bf-002035229c64"
operator="www.ibm.com/services/uddi" authorizedName="0100001QS1">
<name>XMethods Simple Stock Quote</name>
<description xml:lang="en">Simple stock quote interface</description>
<overviewDoc>
<description xml:lang="en">wsdl link</description>
<overviewURL>
www.it-ebooks.info
Web Services Essentials
144
http://www.xmethods.net/tmodels/SimpleStockQuote.wsdl
</overviewURL>
</overviewDoc>
<categoryBag>
<keyedReference
tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4"
keyName="uddi-org:types" keyValue="wsdlSpec" />
</categoryBag>
</tModel>


Quindi esiste una API per interfacciare UDDI che si divide in 2 macro aree:
  • Inquiry API;
  • Publisher API.
La prima per ricercare servizi UDDI e la seconda invece per pubblicarli o aggiornarli o rimuoverli.
Questa API è basata su SOAP e comprende una serie di funzioni, essitono quindi librerie declinate nel linguaggio di specifico interesse che consentono di effettuare le chiamate al registro UDDI.

Inquiry API

find_binding cerca bindings associati ad uno specifico servizio
find_business cerca un tipo di business che rispetti il criterio specificato
find_service cerca i servizi associati a quello specifico business
find_tModel cerca i technical model che rispettano il criterio specificato
get_bindingDetail per ottenere un completo binding detail
get_businessDetail per ottenere un completo record di una businessEntity
get_serviceDetail per ottenere un completo record di un servizio
get_tModelDetail per ottenere un completo record di un tmodel

Publishing API

get_authToken : richiede un token di autenticazione. Il token verrà richiesto anche per tutte le successive invocazioni
discard_authToken: invalida il token
save_binding Inserisce o aggiorna un bindingTemplate record.
save_business Inserisce o aggiorna un businessEntity record.
save_service Inserisce o aggiorna un businessService record.
save_tModel Inserisce o aggiorna un tModel record.
delete_binding Cancella il  bindingTemplate record specificato dalla bindingKey.
delete_business Cancella il businessEntity record specificato dallabusinessKey.
delete_service Cancella il  businessService record specificagto dalla serviceKey.
delete_tModel nasconde il tModel record specificato dalla tModelKey (non si possono cancellare tModel)



Nessun commento:

Posta un commento