Universal Description, Discovery, and Integration (UDDI) -määritys määrittää tavan julkaista ja löytää tietoa Web-palveluista. UDDI-järjestelmällä on kaksi toimintoa: (1) se on SOAP-perusteinen yhteyskäytäntö, joka määrittää, miten UDDI-työasemat ovat yhteydessä rekistereihin, ja (2) se on erityinen joukko toisinnettuja yleisrekistereitä.
Palvelun rekisteröintiin liittyy neljä ydintietorakennelajia:
Lisätietoja UDDI-tietolajeista saa tämän ohjeaiheen lopussa mainituista aiheeseen liittyvistä ohjeista.
Web Services Description Language (WSDL) on XML-perusteinen standardimääritys, jolla kuvataan Web-palveluita. WSDL määrittää XML-muotoilun kuvaamaan verkkopalveluita joukkona lopetuskohtia, jotka toimivat käyttämällä joko asiakirjoja tai toimintosarjoja koskevia tietoja sisältäviä sanomia.
WSDL-palvelukuvaus voidaan rakentaa monella tapaa. WSDL-palvelukuvausten UDDI-rekisteriin julkaisun ja sieltä haun helpottamiseksi WSDL-asiakirjoissa on kuitenkin kaksi pääosaa:
Kun Web-palveluja luodaan ajonaikaisen Apache Axis -ympäristön avulla, Web-palvelutyökalut luovat vain yhden WSDL-asiakirjan luotaessa Web-palveluja Java-bean-komponenteista tai EJB-komponenteista. Kyseinen WSDL-asiakirja sisältää sekä palvelun toteutus- että palveluliittymän asiakirjat.
Palveluliittymää kuvaa WSDL-asiakirja, joka sisältää lajit, tuonti-, sanoma-, portType- ja sidontaelementit. Palveluliittymä sisältää WSDL-palvelumäärityksen, jota käytetään toteuttamaan yksi tai usea palvelu. Se on abstrakti Web-palvelun määritys, ja sitä käytetään kuvaamaan tietyn lajin palvelua. Kyseinen asiakirja voi viitata toiseen palveluliittymäasiakirjaan käyttämällä tuontielementtiä. Tämän tuotteen Web-palvelutyökalut luovat palveluliittymäasiakirjan, joka sisältää vain sanoma- ja portType-elementit, joihin tekee viittauksia vain portType-elementtiin sidontoja sisältävä sidonta-asiakirja.
Palvelun toteutusasiakirja sisältää palveluelementit. Palvelun toteutusasiakirja sisältää kuvauksen palvelusta, joka toteuttaa palveluliittymän. Ainakin yksi tuontielementeistä sisältää viittauksen WSDL-palveluliittymäasiakirjaan; ajonaikaisella Axis-ympäristöllä luotujen WSDL-asiakirjojen kaltaiset yksiosaiset WSDL-asiakirjat eivät kuitenkaan sisällä tuontielementtejä. Palvelun toteutusasiakirja voi sisältää viittauksia useaan palveluliittymäasiakirjaan.
Palveluntarjoaja ylläpitää Web-palvelua ja mahdollistaa sen käytön esimerkiksi SOAP/HTTP- ja SOAP/JMS-yhteyskäytäntöjen avulla. Web-palvelua kuvaavat palveluntarjoajan palvelimelle tai erityiseen tietovarastoon tallennetut WSDL-asiakirjat. WSDL-asiakirjoihin tekevät viittauksia UDDI-yrityspalvelut (palveluasiakirjat) ja tModel-tietolajit (sidonta-asiakirjat). Näiden osoittimien avulla palvelun pyytäjä löytää Web-palvelun.
Kuva 1: UDDI- ja WSDL-määrityksen välinen suhde.
Kuvassa 1 on UDDI- ja WSDL-määrityksen välisen suhteen kuvaus. WSDL-palveluelementti tekee viittauksia WSDL-sidontaelementtiin. WSDL-sidontaelementin sisältävän asiakirjan URL-osoite julkaistaan UDDI-yritysrekisterissä tModel-tietolajina. WSDL-palveluelementin sisältävän asiakirjan URL-osoite julkaistaan UDDI-yritysrekisterissä businessService-tietolajina, joka sisältää tietoja bindingTemplate-tietolajista. Lisätietoja UDDI-rekisterin tietolajeista saa tämän asiakirjan lopussa mainituista aiheeseen liittyvistä ohjeista. Huomaa, että kaavion tuontiosio on valinnainen ajonaikaisen ympäristön mukaan; ajonaikaisella Axis-ympäristöllä luotujen WSDL-asiakirjojen kaltaiset yksiosaiset WSDL-asiakirjat eivät sisällä tuontielementtejä.
Palvelutoteutus kuvaa palvelun ilmentymää. Ilmentymä määritetään WSDL-palveluelementtiä käyttämällä. Palvelun toteutusasiakirjan palveluelementtiä käytetään businessService-UDDI-tietolajin julkaisuun. WSDL-palvelukuvausta julkaistaessa palveluliittymä on julkaistava tModel-tietolajina, ennen kuin palvelutoteutus julkaistaan businessService-tietolajina.
Palvelutoteutus julkaistaan UDDI-rekisterissä yhden tai usean bindingTemplate-elementin sisältävän businessService-tietolajin osana. Palveluntarjoaja julkaisee businessService-tietolajin. Palveluelementille, joka määritetään palvelun toteutusasiakirjassa, luodaan uusi businessService-tietolaji. Jokaiselle palveluelementin sisällä määritetylle porttielementille luodaan uusi bindingTemplate-elementti businessService-tietolajin sisälle.
Lisätietoja WSDL- ja UDDI-määrityksen välisestä suhteesta on osoitteessa uddi.org/bestpractices.html.