UDDI-specifikationen (Universal Description, Discovery, and Integration) definerer en måde at publicere og opspore oplysninger om webserviceprogrammer på. UDDI har to funktioner: (1) den er en SOAP-baseret protokol, der definerer, hvordan UDDI-klienter kommunikerer med registreringsdatabaser, og (2) den består af et særligt sæt globalt replikerede registreringsdatabaser.
Registrering af et serviceprogram involverer fire typer kernedatastruktur:
Du finder flere oplysninger om UDDI-datatypes i de relaterede referenceemner, der findes i slutningen af dette emne.
WSDL (Web Services Description Language) er en XML-baseret standardspecifikation til brug for beskrivelse af webserviceprogrammer. WSDL definerer et XML-format til brug for beskrivelse af netværksserviceprogrammer som et sæt slutpunkter, der fungerer på meddelelser, som indeholder enten dokument- eller procedureorienterede oplysninger.
WSDL-serviceprogrambeskrivelsen kan være struktureret på mange måder. Men for at kunne hjælpe med at publicere og finde WSDL-serviceprogrambeskrivelser i en UDDI-registreringsdatabase, består WSDL-dokumenter af to hoveddele:
Når du opretter webserviceprogrammer med Apache Axis-runtime-miljøet, opretter webserviceprogramværktøjerne et enkelt WSDL-dokument, når webserviceprogrammerne genereres fra Java™-beans eller EJB'er. WSDL-dokumentet indeholder både serviceprogramgrænsefladen og implementeringsdokumenter.
En serviceprogramgrænseflade beskrives i et WSDL-dokument, der indeholder type-, import-, meddelelses-, portType- og bindingselementer. En serviceprogramgrænseflade indeholder definitionen af WSDL-serviceprogrammet, som vil blive benyttet til at implementere et eller flere serviceprogrammer. Det er en abstrakt definition af et webserviceprogram og benyttes til at beskrive en bestemt type service. Dette dokument kan referere til et andet serviceprogramgrænsefladedokument vha. et importelement. Webserviceprogramværktøjerne i dette produkt genererer et serviceprogramgrænsefladedokument, der kun indeholder meddelelses- og portType-elementerne, som der refereres til af det bindingsdokument, der kun indeholder bindinger for portType.
Serviceprogramimplementeringsdokumentet indeholder serviceprogramelementerne. Et serviceprogramimplementeringsdokument indeholder en beskrivelse af et serviceprogram, der implementerer en serviceprogramgrænseflade. Mindst ét af importelementerne indeholder en reference til WSDL-serviceprogramgrænsesfladedokumentet, men monolitisk WSDL, f.eks. det som oprettes vha. Axis-runtime-miljøet, indeholder ikke import. Et serviceprogramimplementeringsdokument kan indeholde referencer til mere end ét serviceprogramimplementeringsdokument.
En serviceprogramudbyder er vært for et webserviceprogram og gør det tilgængeligt vha. protokoller, f.eks. SOAP/HTTP og SOAP/JMS. Webserviceprogrammet er beskrevet i de WSDL-dokumenter, der er placeret på udbyderens server eller i et særligt opbevaringssted. UDDI-virksomhedsserviceprogrammer (serviceprogramdokumenter) og tModels (bindingsdokumenter) refererer til WSDL-dokumenter. Disse pointers gør det muligt for en serviceprogramanmoder at opspore et webserviceprogram.
Figur 1. Relation mellem UDDI og WSDL.
Figur 1 illustrerer relationen mellem UDDI og WSDL. WSDL-serviceprogramelementet refererer til WSDL-bindingselementet. URL'en for det dokument, der indeholder WSDL-bindingselementet, publiceres i UDDI-forretningsregistreringsdatabasen som en tModel. URL'en for det dokument, der indeholder WSDL-serviceprogramelementet, publiceres i UDDI-virksomhedsregistreringsdatabasen som en businessService og indeholder oplysninger om bindingTemplate. Du finder flere oplysninger om datastrukturtyperne i UDDI-registreringsdatabaser i afsnittet med relaterede referencer i slutningen af dette dokument. 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 er defineret vha. et WSDL-serviceprogramelement. Serviceprogramelementet i et serviceprogramimplementeringsdokument bruges til at publicere en UDDI businessService. Når du publicerer en beskrivelse af et WSDL-serviceprogram, skal du også publicere en tModel, inden der kan publiceres en serviceprogramimplementering som en businessService.
En serviceprogramimplementering publiceres i en UDDI-registreringsdatabase som en del af en businessService med en eller flere bindingTemplate-elementer. En businessService publiceres af serviceprogramudbyderen. Der oprettes en ny businessService for et serviceprogramelement, der er defineret i serviceprogramimplementeringsdokumentet. Et nyt bindingTemplate-element oprettes i en businessService for hvert portelement, der er defineret i et serviceprogramelement.
Du finder flere oplysninger om relationen mellem WSDL og UDDI i uddi.org/bestpractices.html.