WSDL - What is UDDI

1. What is UDDI?

UDDI stands for Universal Description, Discovery, and Integration.
It is a service registry — a centralized directory where service providers publish their WSDL documents, and service consumers search for and discover available web services.

In simple terms:
UDDI = A phonebook for web services.

  • Providers → Register their services and WSDLs.

  • Consumers → Search for services and get the WSDL URLs.


2. UDDI’s Role in Web Services

UDDI is part of the SOA (Service-Oriented Architecture) model and works closely with WSDL and SOAP:

Component Purpose
WSDL Describes the service (what it does, how to use it, where to access it).
SOAP Handles the actual communication between systems.
UDDI Stores and organizes WSDLs so they can be discovered easily.

3. UDDI Functions

UDDI provides three main functions:

A. Publish (Service Provider → UDDI)

  • A Service Provider creates a WSDL and registers the service in UDDI.

  • The registry stores:

    • Service name

    • WSDL URL

    • Endpoint URL

    • Business information


B. Discover (Service Consumer → UDDI)

  • A Service Consumer searches the UDDI directory to find available services.

  • Search can be done by:

    • Service name

    • Business name

    • Category / Industry

    • Keywords


C. Integrate (Consumer ↔ Provider)

  • Once the consumer finds the desired service in UDDI:

    • They download the WSDL.

    • Generate client code using tools.

    • Use SOAP to call the service.


4. UDDI Architecture

UDDI organizes information in three layers, similar to a yellow pages directory:

UDDI Component Description
White Pages Stores business details (name, contact info, description).
Yellow Pages Categorizes services by industry, type, or functionality.
Green Pages Stores technical information such as WSDL URLs, endpoints, and bindings.

5. How UDDI Works with WSDL

Let’s understand the workflow:

Step 1 — Provider Publishes WSDL

  • A company, e.g., ABC Bank, develops a service AccountService.

  • The WSDL URL is:

    http://abcbank.com/ws/account?wsdl
    
  • ABC Bank publishes this WSDL in the UDDI registry.


Step 2 — Consumer Searches UDDI

  • Another company, XYZ Corp, needs the AccountService.

  • XYZ queries the UDDI registry:

    find_service("AccountService")
    
  • UDDI returns:

    Service Name: AccountService
    WSDL URL: http://abcbank.com/ws/account?wsdl
    Endpoint: http://abcbank.com/ws/account
    

Step 3 — Consumer Uses the Service

  • XYZ Corp downloads the WSDL.

  • Generates client code using tools like:

    wsimport http://abcbank.com/ws/account?wsdl
    
  • Calls the SOAP service as if it were a local method.


6. Example UDDI Workflow

Actors:

  • Service Provider → Publishes WSDL.

  • UDDI Registry → Stores WSDL.

  • Service Consumer → Discovers WSDL.

Process:

  1. Publish → Provider uploads WSDL to UDDI.

  2. Discover → Consumer searches UDDI for a service.

  3. Bind → Consumer downloads WSDL and communicates with provider via SOAP.


7. Example of UDDI Metadata

When a WSDL is registered, UDDI stores technical details like:

<service name="AccountService">
  <description>Bank account balance service</description>
  <binding type="SOAP" style="document"/>
  <wsdlURL>http://abcbank.com/ws/account?wsdl</wsdlURL>
  <endpoint>http://abcbank.com/ws/account</endpoint>
</service>

8. UDDI Example Registries

  • jUDDI → Apache-based open-source UDDI registry.

  • IBM WebSphere Service Registry.

  • Oracle Service Registry.

  • Microsoft UDDI Services (deprecated).


9. UDDI, WSDL, and SOAP Together

UDDI works alongside WSDL and SOAP in a typical service-oriented architecture:

Step Component Action
1 Service Provider Creates and publishes WSDL in UDDI
2 UDDI Registry Stores WSDL, makes it searchable
3 Service Consumer Discovers WSDL in UDDI
4 SOAP Sends requests and receives responses based on WSDL

10. Modern Alternatives to UDDI

UDDI was widely used with SOAP-based services, but today REST APIs dominate, and UDDI is mostly obsolete.
Modern alternatives include:

  • Swagger / OpenAPI → REST API discovery.

  • API Gateways → AWS API Gateway, Kong, Apigee.

  • Service Discovery Tools → Netflix Eureka, Consul, Zookeeper.