Specyfikacja UDDI (Universal Description, Discovery, and Integration) definiuje sposób publikowania i wykrywania informacji o usługach Web Services. UDDI ma dwie funkcje: (1) jest to protokół wykorzystujący SOAP, który definiuje sposób komunikowania się przez klientów UDDI z rejestrami oraz (2) jest to konkretny zestaw globalnie replikowanych rejestrów.
Zarejestrowanie usługi wymaga czterech podstawowych typów struktury danych:
Więcej informacji na temat typów danych UDDI zawierają tematy pokrewne zamieszczone na końcu tego tematu.
Język opisu usług WSDL (WSDL - Web Services Description Language) to standardowa, wykorzystująca XML specyfikacja opisywania usług Web Services. Język WSDL definiuje format XML opisywania usług sieciowych jako zestawu punktów końcowych operujących na wiadomościach, które zawierają informacje zorientowane na obsługę dokumentów lub zorientowane na obsługę procedur.
Opis usługi WSDL może mieć różną strukturę. Aby jednak ułatwić publikowanie i znajdowanie opisów usług WSDL w rejestrze UDDI, dokumenty WSDL składają się z dwóch głównych części:
Gdy usługi Web Services są tworzone za pomocą środowiska wykonawczego Apache Axis, podczas generowania usług Web Services z komponentów Java™ bean lub komponentów EJB specjalne narzędzia tworzą pojedynczy dokument WSDL. Ten dokument WSDL zawiera zarówno dokumenty dotyczące implementacji, jak i interfejsu usługi.
Interfejs usługi jest opisywany przez dokument WSDL, który zawiera elementy typu, importu, wiadomości, typu portu i powiązania. Interfejs usługi zawiera definicję usługi WSDL, która posłuży do wdrożenia jednej lub więcej usług. Jest to abstrakcyjna definicja usługi Web Service i służy do opisania określonego typu usługi. Ten dokument może odwoływać się innego dokumentu interfejsu usługi za pomocą elementu importu. Zawarte w tym produkcie narzędzia do tworzenia usług Web Services generują dokument interfejsu usługi zawierający tylko elementy wiadomości i typu portu, do których odwołuje się dokument powiązania zawierający tylko powiązania dla typu portu.
Dokument implementacji usługi zawiera elementy usługi. Dokument implementacji usługi zawiera opis usługi, która implementuje interfejs usługi. Przynajmniej jeden element importu musi zawierać odwołanie do dokumentu WSDL interfejsu usługi, podczas gdy w monolitycznym dokumencie WSDL, jak np. takim, który jest tworzony w środowisku wykonawczym Axis, nie ma elementów importu. Dokument implementacji usługi może zawierać odwołania do więcej niż jednego dokumentu interfejsu usługi.
Dostawca usług udostępnia usługę Web Service za pomocą takich protokołów, jak SOAP/HTTP i SOAP/JMS. Usługa Web Service jest opisywana przez dokumenty WSDL przechowywane na serwerze dostawcy lub w specjalnym repozytorium. Do dokumentów WSDL odwołują się usługi biznesowe UDDI (dokumenty usługi) oraz dane tModel (dokumenty powiązania). Wskaźniki te umożliwiają korzystanie z wykrywania usługi Web Service przez requester usługi.
Rysunek 1. Relacja między UDDI a WSDL.
Na Rysunku 1 zilustrowano relację między UDDI a WSDL. Element usługi WSDL stanowi odwołanie dla elementu powiązania WSDL. Adres URL dokumentu zawierającego element powiązania WSDL jest publikowany w rejestrze biznesowym UDDI jako tModel. Adres URL dokumentu zawierającego element usługi WSDL jest publikowany w rejestrze biznesowym UDDI jako businessService i zawiera informacje o bindingTemplate. Więcej informacji na temat typów struktury danych rejestrów UDDI zawiera sekcja odwołań pokrewnych na końcu tego dokumentu. Należy zauważyć, że część diagramu dotycząca importu jest opcjonalna w zależności od środowiska wykonawczego; w monolitycznym dokumencie WSDL, jak np. takim, który jest tworzony w środowisku wykonawczym Axis, nie ma elementów importu.
Implementacja usługi opisuje instancję usługi. Instancja jest definiowana za pomocą elementu usługi WSDL. Element usługi to dokument implementacji usługi służący do publikowania danych businessService UDDI. Podczas publikowania opisu usługi WSDL interfejs usługi musi zostać opublikowany jako tModel, zanim implementacja usługi zostanie opublikowana jako businessService.
Implementacja usługi jest publikowana w rejestrze UDDI jako część danych businessService z elementem lub elementami bindingTemplate. Dane businessService są publikowane przez dostawcę usług. Dla elementu usługi zdefiniowanego w dokumencie implementacji usługi są tworzone nowe dane businessService. Dla każdego elementu portu zdefiniowanego w elemencie usługi tworzony jest nowy element bindingTemplate w danych businessService.
Więcej informacji na temat relacji między WSDL a UDDI zawiera strona uddi.org/bestpractices.html.