UDDI- ja WSDL-määrityksen välinen suhde

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.

Kuvaus UDDI- ja WSDL-määrityksen välisestä suhteesta.

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.