The eXtensible Markup Language (XML)

Universal Description, Discovery and Integration (UDDI)

UDDI is intended to create a "platform-independent, open framework for describing services, discovering businesses, and integrating business services using the Internet." [UDDI WWW page]

According the UDDI Version 2.0 API, UDDI registires "expose information about a business or other entity and its technical interfaces (or API s). These registries are run by multiple Operator Sites, and can be used by anyone who wants to make information available about one or more businesses or entities, as well as anyone that wants to find that information."

UDDI is being developed by a broad-based industry consortium that includes EDS, IBM, Microsoft, SAP, SUN, and many other companies.  The UDDI effort is described at www.uddi.org.

The UDDI Version 1.0 API was released in September 2000.  The UDDI Version 2.0 API was released in April 2001.  Long-term plans call for the
UDDI recommendations to a standards organization, but there is no given timetable.

Motivation

From the WDDI FAQ:

What are some of the problems is UDDI solving?

Today organizations find it difficult to find a business that offers services that best fit their needs. UDDI makes it possible for organizations to quickly discover the right business out of the millions that are currently online.

Once an organization finds a potential business partner, there's no standard mechanism to figure out how to conduct electronic business with this partner. UDDI makes it possible for organizations to programmatically describe their services and specify how they prefer to conduct business, so that partners can quickly and easily begin trading.

 Q: What  are some of the benefits UDDI provides?

UDDI can give a business visibility on a global scale by providing a means for an organization to advertise its business and services in a global registry.

UDDI can help a business develop new e-business partnerships, by enabling businesses to quickly and dynamically discover and interact with each other on the Internet.

UDDI enables businesses to programmatically describe their services and business processes and their preferred methods for conducting business.

UDDI can simplify the effort of integrating disparate business processes.  In short, UDDI can help an organization expand markets, improve efficiency, and reduce costs by easing the way into the global Internet economy.

APIs and SOAP

Within UDDI, there are two APIs: a Publishers API and an Inquiry API.  The API functions are exposed as SOAP messages over HTTP.  HTTPS
(with SSL 3.0) is used for Publisher API calls.  No authentication is required for Inquiry API functions.  The first line of error reporting is governed by SOAP.

UDDI Model

The UDDI tModel is the information about specifications, i.e., metadata construct about the specification.  UDDI tModels are registered within UDDI and there is a corresponding tModelkey that uniquely identifies the service specification.

There are three Inquiry query patterns: browse, drill-down, and invocation.  The browse pattern allows users to explore and examine data via find_xxx API calls.  For example, it would be possible to find whether a particular business has any information registered.  If particular information is desired, it is possible to drill-down to get more detailed data.  The current UDDI datatypes are:
    businessEntity,
    businessService,
    bindingTemplate, and
    tModel.
Given the the key for one of the four datatypes (e.g., returned in browsing), the get_xxx functions provide access to these four types of information.  The invocation pattern provides the means for applications to invoke a service.

The UDDI Publishing API has 16 functions:
    add_publisherAssertions
    delete_binding
    delete_business
    delete_publisherAssertions
    delete_service
    delete_tModel
    discard_authToken
    get_assertionStatusReport
    get_authToken
    get_publisherAssertions
    get_registeredInfo
    save_binding
    save_business
    save_service
    save_tModel
    set_publisherAssertions