Relationer mellan UDDI och WSDL

UDDI-specifikationen (Universal Description, Discovery, and Integration) definierar ett sätt att publicera och hitta information om webbtjänster. UDDI har två funktioner: (1) Det är ett SOAP-baserat protokoll som definierar hur UDDI-klienter kommunicerar med register och (2) är en uppsättning globalt replikerade register.

Registreringen av tjänster inbegriper fyra kärndatastrukturtyper:

Mer information om UDDI-datatyper finns i referensavsnittet i slutet av den här sidan.

WSDL (Web Services Description Language) är en XML-baserad standardspecifikation för beskrivning av webbtjänster. WSDL definierar ett XML-format för beskrivning av nätverkstjänster som en uppsättning ändpunkter för meddelanden som innehåller antingen dokumentorienterad eller procedurorienterad information.

WSDL-tjänstebeskrivningen kan struktureras på många sätt. Som hjälp vid publicering av och sökning efter WSDL-tjänstebeskrivningar i ett UDDI-register består WSDL-dokument dock av två delar: 

När du skapar webbtjänster med Apache Axis-körningsmiljön skapar webbtjänsteverktygen ett enskilt WSDL-dokument vid generering av webbtjänster från Java- och EJB-bönor. Det WSDL-dokumentet innehåller både tjänstegränssnitts- och tjänsteimplementationsdokumenten.

Ett tjänstegränssnitt beskrivs av ett WSDL-dokument som innehåller typ-, import-, meddelande-, porttyp- och bindningselementen. Ett tjänstegränssnitt innehåller den WSDL-tjänstedefinition som kommer att användas vid implementering av en eller flera tjänster. Det är en abstrakt definition av en webbtjänst och används till att beskriva en specifik typ av tjänst. Det här dokumentet kan referera till andra tjänstegränssnittsdokument med hjälp av ett importelement. Webbtjänsteverktygen i den här produkten genererar ett tjänstegränssnittsdokument som endast innehåller meddelande- och porttypelementen som det refereras till i bindningsdokumentet som endast innehåller bindningar för porttypen.

Tjänsteimplementationsdokumentet innehåller tjänsteelementen. Ett tjänsteimplementationsdokument innehåller en beskrivning av en tjänst som implementerar ett tjänstegränssnitt. Minst ett av importelementen innehåller en referens till WSDL-tjänstegränssnittsdokumentet. Dock har monolitisk WSDL, t.ex. den som skapas med Axis-körningsmiljön, inga importer. Ett tjänsteimplementationsdokument kan innehålla referenser till fler än ett tjänstegränssnittsdokument.

Tjänsteleverantören agerar som värd för webbtjänster och gör dem tillgängliga via protokoll som SOAP/HTTP och SOAP/JMS. Webbtjänsten beskrivs av de WSDL-dokument som lagras på leverantörens server eller i ett speciellt lager. Det refereras till WSDL-dokumenten i UDDI-verksamhetstjänsterna (tjänstedokument) och i tModel-objekt (bindningsdokument). Tjänsteklienter använder de här pekarna till att hitta webbtjänster.

Figur 1. Relationen mellan UDDI och WSDL.

Illustration av relationen mellan UDDI och WSDL.

I figur 1 illustreras relationen mellan UDDI och WSDL. WSDL-tjänsteelementet refererar till WSDL-bindningselementet. URL-adressen till dokumentet som innehåller WSDL-bindningselementet publiceras till UDDI-verksamhetsregistret som en tModel. URL-adressen till dokumentet som innehåller WSDL-tjänsteelementet publiceras till UDDI-verksamhetsregistret som en businessService och innehåller information om bindingTemplate. Mer information om UDDI-registerdatastrukturtyper finns i det relaterade referensavsnittet i slutet av det här dokumentet. Observera att importdelen av diagrammet är valfritt beroende på vilken körningsmiljö som används. Monolitisk WSDL, t.ex. den som skapas med Axis-körningsmiljön, har inga importer.

Tjänsteimplementationen beskriver en förekomst av en tjänst. Förekomsten definieras med ett WSDL-tjänsteelement. Tjänsteelementet i ett tjänsteimplementationsdokument används till att publicera en UDDI businessService. När en WSDL-tjänstebeskrivning publiceras måste ett tjänstegränssnitt publiceras som en tModel innan en tjänsteimplementation kan publiceras som en businessService.

En tjänsteimplementation publiceras i ett UDDI-register som en del av en businessService med en eller flera bindingTemplate-element. BusinessService publiceras av tjänsteleverantören. En ny businessService skapas för ett tjänsteelement som definieras i tjänsteimplementationsdokumentet. Ett nytt bindingTemplate-element skapas i en businessService för varje portelement som definieras i ett tjänsteelement.

Mer information om relationen mellan WSDL och UDDI finns på webbsidan uddi.org/bestpractices.html.