Relation mellem UDDI og WSDL

UDDI-specifikationen (Universal Description, Discovery, and Integration) definerer en metode til publicering og opsporing af oplysninger om webserviceprogrammer. UDDI har to funktioner: (1) det er en SOAP-baseret protokol, som definerer, hvordan UDDI-klienter kommunikerer med registreringsdatabaser, og (2) det er et bestemt sæt globalt replikerede registreringsdatabaser.

Registrering af et serviceprogram involverer fire centrale datastrukturtyper:

Der er flere oplysninger om UDDI-datatyper i de relaterede referenceemner sidst i dette emne.

WSDL (Web Services Description Language) er en XML-baseret standardspecifikation til beskrivelse af webserviceprogrammer. WSDL definerer et XML-format for beskrivelse af netværksserviceprogrammer som et sæt slutpunkter, der opererer på meddelelser, der indeholder enten dokument- eller procedureorienterede oplysninger.

WSDL-serviceprogrambeskrivelsen kan struktureres på mange måder. Imidlertid består WSDL-dokumenter af to overordnede dele, som er en hjælp, når du skal publicere og finde beskrivelser af WSDL-serviceprogrammer:

Når du opretter webserviceprogrammer med Apache Axis runtime-miljø, opretter webserviceprogramværktøjerne et enkelt WSDL-dokument ved generering af webserviceprogrammer fra Java™-beans eller EJB'er. Dette WSDL-dokument indeholder både serviceprogramgrænseflade og implementeringsdokumenter.

En serviceprogramgrænseflade beskrives af et WSDL-dokument, som indeholder elementer for typer, import, meddelelse, portType og binding. En serviceprogramgrænseflade indeholder den definition af WSDL-serviceprogrammet, som bliver brugt til at implementere et eller flere serviceprogrammer. Det er en abstrakt definition af et webserviceprogram og bruges til at beskrive en bestemt type serviceprogram. Dokumentet kan henvise til et andet dokument med en serviceprogramgrænseflade vha. et importelement. Webserviceprogramværktøjerne i dette produkt opretter et servicegrænsefladedokument, som kun indeholder det meddelelses- og portType-element, som der henvises til i det bindingsdokument, der kun indeholder bindinger for portType.

Dokumentet til serviceprogramimplementering indeholder serviceprogramelementerne. Et dokument til serviceprogramimplementering indeholder en beskrivelse af et serviceprogram, som implementerer en serviceprogramgrænseflade. Mindst ét af importelementerne indeholder en reference til dokumentet med WSDL-serviceprogramgrænsefladen, men monolitisk WSDL, som f.eks. er oprettet vha. Axis runtime-miljøet, har ingen importer. Et dokument til serviceprogramimplementering henviser til mere end ét dokument for serviceprogramgrænseflade.

En serviceudbyder er vært for et webserviceprogram og gør det tilgængeligt vha. protokoller som f.eks. SOAP/HTTP og SOAP/JMS. Webserviceprogrammet beskrives af de WSDL-dokumenter, som opbevares på udbyderens server eller på et særligt opbevaringssted. UDDI-virksomhedsserviceprogrammerne (serviceprogramdokumenter) og tMOdels (bindingsdokumenter) henviser til WSDL-dokumenterne. Disse pointere gør det muligt for en serviceanmoder at opspore et webserviceprogram.

Figur 1. Relation mellem UDDI og WSDL.

Illustration af relationen mellem UDDI og WSDL.

Figur 1 illustrerer relationen mellem UDDI og WSDL. WSDL-serviceprogramelementet henviser til WSDL-bindingselementet. URL'en for det dokument, der indeholder WSDL-bindingselementet, publiceres til UDDI-virksomhedsregistreringsdatabasen som tModel. URL'en for det dokument, der indeholder WSDL-serviceprogramelementet, publiceres til UDDI-virksomhedsregistreringsdatabasen som businessService og indeholder oplysninger om bindingTemplate. Der er flere oplysninger om datastrukturen i UDDI-registreringsdatabasen i afsnittet med relaterede referencer sidst i dokumentet. Bemærk, at importdelen af diagrammet er valgfri, afhængigt af runtime-miljøet. Monolitisk WSDL, som f.eks. er oprettet vha. Axis rumtime-miljøet, har ingen importer.

Serviceprogramimplementeringen beskriver en forekomst af et serviceprogram. Forekomsten defineres vha. et WSDL-serviceprogramelement. Serviceprogramelementet i et dokument til serviceprogramimplementering bruges til at publicere UDDI businessService. Når en WSDL-serviceprogrambeskrivelse publiceres, skal der publiceres en serviceprogramgrænseflade som tModel, før en serviceprogramimplementering publiceres som businessService.

En serviceprogramimplementering publiceres i en UDDI-registreringsdatabase som del af en businessService med et eller flere bindingTemplate-elementer. businessService publiceres af serviceudbyderen. Der oprettes en ny businessService for et serviceprogramelement, der defineres i dokumentet til serviceprogramimplementeringen. Der oprettes et nyt bindingTemplate-element i en businessService for hvert portelement, som defineres i et serviceprogramelement.

Der er flere oplysninger om relationen mellem WSDL og UDDI i uddi.org/bestpractices.html.