Az általános leíró, kereső és integráció (UDDI) specifikáció a webszolgáltatások közzétételére és keresésére határoz meg egy módszert. Az UDDI projektnek két feladata volt: egyrészt egy SOAP alapú, ügyfelek és nyilvántartások közötti kommunikációt szolgáló protokoll leírása, másrészt pedig egy világszerte többszörözött nyilvántartás létrehozása és karbantartása.
A szolgáltatások bejegyezésekor négy alapvető adatszerkezetre van szükség:
Az UDDI adattípusokról további információkat a témakör végén található kapcsolódó témakörökben olvashat.
A Webszolgáltatás leírónyelv (WSDL) XML-alapú szabványspecifikáció webszolgáltatások leírására. A WSDL meghatároz egy XML formátumot, ami a hálózati szolgáltatásokat olyan végpontok halmazaként írja le, amik dokumentum- vagy eljárás-orientált üzenetekkel kommunikálnak.
A WSDL szolgáltatásleírásokat sokféleképpen lehet strukturálni. Ezzel együtt, megkönnyítendő a WSDL szolgáltatásleírások közzétételét és keresését az UDDI nyilvántartásokban, a WSDL dokumentumok két fő részből állnak:
Amikor az Apache Axis futási környezettel hoz létre webszolgáltatásokat, akkor a webszolgáltatás eszközök egyetlen WSDL dokumentumot készítenek, amikor webszolgáltatásokat Java™ komponensekből vagy EJB komponensekből állít elő. Ez a WSDL dokumentum tartalmazza a szolgáltatás felületének és megvalósításának a leírását is.
A szolgáltatásfelületeket leíró WSDL dokumentumok a types, import, message, portType és a binding elemeket tartalmazzák. A szolgáltatásfelületek tartalmazzák a WSDL szolgáltatás meghatározást, amivel legalább egy szolgáltatás lesz megvalósítva. A webszolgáltatások absztrakt definíciói, amiket konkrét szolgáltatástípusos leírására használnak. Ez a dokumentum más szolgáltatásfelület dokumentumokra is hivatkozhat az import elem használatával. Ennek a terméknek a webszolgáltatás eszközei olyan szolgáltatásfelület dokumentumokat állítanak elő, amik csak a kötés dokumentum által használt message és a PortType elemeket tartalmazzák, a kötés dokumentum pedig csak a portType részére tartalmaz kötéseket.
A szolgáltatásmegvalósítás dokumentum tartalmazza a service elemeket. A dokumentum leír egy szolgáltatást, ami rendelkezik szolgáltatásfelülettel. Legalább az egyik import eleme hivatkozik a WSDL szolgáltatásfelület dokumentumra. A monolitikus WSDL dokumentumokban, amiket például az Axis futási környezet állít elő, természetesen nincsenek import elemek. A szolgáltatás-megvalósítás dokumentum több hivatkozást is tartalmazhat több szolgáltatásfelület dokumentumra.
A szolgáltatók biztosítják a webszolgáltatások futásához a megfelelő környezetet, valamint elérhetővé teszik azokat például SOAP/HTTP vagy SOAP/JMS protokollokon keresztül. A webszolgáltatást leíró WSDL dokumentumok a szolgáltató kiszolgálóján vagy különleges lerakatban találhatók. A WSDL dokumentumokra az UDDI üzleti szolgáltatások (szolgáltatás dokumentumok) és a tModel típusok (kötés dokumentumok) is hivatkoznak. Ezek a mutatók teszik lehetővé, hogy a kérelmezők a webszolgáltatásokat megkeressék.
1. ábra: Az UDDI és a WSDL közti kapcsolat.
Az 1. ábra bemutatja az UDDI és a WSDL közti kapcsolatot. A WSDL service elem a WSDL binding elemre hivatkozik. A WSDL binding elemet tartalmazó dokumentum URL címét az UDDI üzleti nyilvántartás tModel típusként kapja meg. A WSDL service elemet tartalmazó dokumentum URL címét az UDDI üzleti nyilvántartás businessService adattípusban kapja meg és a bindingTemplate típusban tartalmaz információt. Az UDDI nyilvántartás adattípusairól a dokumentum végén felsorolt kapcsolódó leírásokban olvashat bővebben. Vegye figyelembe, hogy a diagram import része némelyik futási környezetben nem kötelező elem: a monolitikus WSDL dokumentumokban, amiket például az Axis futási környezet állít elő, nincsenek importok.
A szolgáltatásmegvalósítás dokumentum a szolgáltatás egy példányát írja le. A példányt a WSDL service eleme határozza meg. A szolgáltatás-megvalósítás dokumentum service elemével lehet az UDDI businessService adatot közzétenni. A WSDL szolgáltatásleírás közzétételekor először a szolgáltatás felületét kell tModel típusként közzétenni, majd a szolgáltatásmegvalósítást businessService típusban.
A szolgáltatásmegvalósítás az UDDI nyilvántartásokban a legalább egy bindingTemplate elemmel rendelkező businessService adattípusok részeként érhető el. A businessService adatot a szolgáltató teszi közzé. A szolgáltatásmegvalósítás dokumentum minden egyes service eleméhez egy businessService jön létre. A service elem minden egyes port eleméhez egy új bindingTemplate elem jön létre.
Az UDDI és a WSDL közti kapcsolatról a uddi.org/bestpractices.html címen talál bővebb információt.