Forholdet mellom UDDI og WSDL

UDDI-spesifikasjonen (Universal Description, Discovery, and Integration) definerer en metode for publisering og oppdaging av informasjon om web-tjenester. UDDI har to funksjoner: (1) Det er en SOAP-basert protokoll som definerer hvordan UDDI-klienter kommuniserer med registre, og (2) det er et bestemt sett av globalt replikerte registre.

Registrering av en tjeneste omfatter fire typer kjernedatastrukturer:

Hvis du vil ha mer informasjon om UDDI-datatypene, kan du lese de aktuelle referanseemnene på slutten av dette emnet.

WSDL (Web Services Description Language) er en XML-basert standardspesifikasjon for beskriving av web-tjenester. WSDL definerer et XML-format for beskriving av nettverkstjenester som et sett av sluttpunkt som fungerer for meldinger som inneholder enten dokumentorientert eller prosedyreorientert informasjon.

Beskrivelsen av WSDL-tjenesten kan være strukturert på mange måter. For å bidra til publisering og oppdaging av WSDL-tjenestebeskrivelser i et UDDI-register, består WSDL-dokumenter imidlertid av to hoveddeler: 

Under oppretting av web-tjenester med Apache Axis-kjøretidsmiljøet, oppretter web-tjenesteverktøyene et enkelt WSDL-dokument når det genereres web-tjenester fra Java™-bønner eller EJBer. Dette WSDL-dokumentet inneholder både tjenestegrensesnitt- og implementeringsdokumentet.

Et tjenestegrensesnitt beskrives av et WSDL-dokument som inneholder typene, og import-, meldings-, portType- og bindingselementene. Et tjenestegrensesnitt inneholder WSDL-tjenestedefinisjonen som skal brukes til å implementere en eller flere tjenester. Det er en abstrakt definisjon av en web-tjeneste, og det brukes til å beskrive en bestemt type tjeneste. Dette dokumentet kan referere til et annet tjenestegrensesnittdokument som bruker et importelement. Web-tjenesteverktøyene i dette produktet genererer et tjenestegrensesnittdokument som bare inneholder meldings- og portType-elementene som det refereres til av bindingsdokumentet som bare inneholder bindinger for portType.

Tjenesteimplementeringsdokumentet inneholder tjenesteelementene. Et tjenesteimplementeringsdokument inneholder en beskrivelse av en tjeneste som implementerer tjenestedokumentet. Minst ett av importelementene vil inneholde en referanse til WSDL-tjenestegrensesnittdokumentet. Monolittisk WSDL, som for eksempel den som er opprettet ved hjelp av Axis-kjøretidsmiljøet, har imidlertid ingen importer. Et tjenesteimplementeringsdokument kan inneholde referanser til mer enn ett tjenestegrensesnittdokument.

En tjenesteleverandør er vert for en web-tjeneste og gjør den tilgjengelig ved å bruke protokoller som SOAP/HTTP og SOAP/JMS. Web-tjenestene beskrives av WSDL-dokumentene som er lagret på leverandørens server eller i et spesielt datalager. WSDL-dokumentene refereres til av UDDI-firmatjenester (tjenestedokumenter) og tModel (bindingsdokumenter). Disse pekerne aktiverer oppdaging av en web-tjeneste av en tjenestebestiller.

Figur 1. Forholdet mellom UDDI og WSDL.

Illustrasjon av forholdet mellom UDDI og WSDL.

Figur 1 viser forholdet mellom UDDI og WSDL. WSDL-tjenesteelementet refererer til WSDL-bindingselementet. URLen for dokumentet som inneholder WSDL-bindingselementet, publiseres til UDDI-firmaregisteret som en tModel. URLen for dokumentet som inneholder WSDL-tjenesteelementet, publiseres til UDDI-firmaregisteret som en businessService, og det inneholder informasjon om bindingTemplate. Hvis du vil ha mer informasjon om typene av UDDI-registerdatastrukturer, kan du lese den aktuelle referansedelen på slutten av dette dokumentet. Vær oppmerksom på at importdelen av diagrammet er valgfritt avhengig av kjøretidsmiljøet. Monolittisk WSDL, som for eksempel det som er opprettet ved hjelp av Axis-kjøretidsmiljøet, har ingen importer.

Tjenesteimplementeringen beskriver en forekomst av en tjeneste. Forekomsten defineres ved hjelp av et WSDL-tjenesteelement. Tjenesteelementet i et tjenesteimplementeringsdokument brukes til å publisere en UDDI businessService. Ved publisering av en WSDL-tjenestebeskrivelse må et tjenestegrensesnitt publiseres som en tModel før en tjenesteimplementering publiseres som en businessService.

En tjenesteimplementering publiseres i et UDDI-register som en del av en businessService med ett eller flere bindingTemplate-elementer. businessService publiseres av tjenesteleverandøren. En ny businessService opprettes for et tjenesteelement som er definert i tjenesteimplementeringsdokumentet. Et nytt bindingTemplate-element opprettes i en businessService for hvert portelement som er definert i et tjenesteelement.

Hvis du vil ha mer informasjon om forholdet mellom WSDL og UDDI, kan du lese uddi.org/bestpractices.html.