Skip to content

GuideUDDIRegistryIntroduction

spyhunter99 edited this page Feb 2, 2014 · 11 revisions

Universal Description, Discovery and Integration (UDDI)

UDDI Protocol, Specification

The Universal Description, Discovery and Integration (UDDI) protocol is one of the major building blocks required for successful Web services. UDDI creates a standard interoperable platform that enables companies and applications to quickly, easily, and dynamically find and use Web services over the Internet (or Intranet). UDDI also allows operational registries to be maintained for different purposes in different contexts. UDDI is a cross-industry effort driven by major platform and software providers, as well as marketplace operators and e-business leaders within the OASIS standards consortium Guide.asciidoc. UDDI has gone through 3 revisions and the latest version is 3.0.2 Guide.asciidoc. Additional information regarding UDDI can be found at http://uddi.xml.org Guide.asciidoc.

UDDI Registry

The UDDI Registry implements the UDDI specification . UDDI is a Web-based distributed directory that enables businesses to list themselves on the Internet (or Intranet) and discover each other, similar to a traditional phone book’s yellow and white pages. The UDDI registry is both a white pages business directory and a technical specifications library. The Registry is designed to store information about Businesses and Services and it holds references to detailed documentation.

Invocation Pattern using the UDDI Registry
Figure 1. Invocation Pattern using the UDDI Registry

In step 1 of Invocation Pattern using the UDDI Registry it is shown how a business publishes services to the UDDI registry. In step 2, a client looks up the service in the registry and receives service binding information. Finally in step 3, the client then uses the binding information to invoke the service. The UDDI APIs are SOAP based for interoperability reasons. In this example we’ve three APIs specified in the UDDI v3 specification, Security, Publication and Inquiry. The UDDI v3 specification defines 9 APIs:

  1. UDDI_Security_PortType, defines the API to obtain a security token. With a valid security token a publisher can publish to the registry. A security token can be used for the entire session.

  2. UDDI_Publication_PortType, defines the API to publish business and service information to the UDDI registry.

  3. UDDI_Inquiry_PortType, defines the API to query the UDDI registry. Typically this API does not require a security token.

  4. UDDI_CustodyTransfer_PortType, this API can be used to transfer the custody of a business from one UDDI node to another.

  5. UDDI_Subscription_PortType, defines the API to register for updates on a particular business of service.

  6. UDDI_SubscriptionListener_PortType, defines the API a client must implement to receive subscription notifications from a UDDI node.

  7. UDDI_Replication_PortType, defines the API to replicate registry data between UDDI nodes.

  8. UDDI_ValueSetValidation_PortType, by nodes to allow external providers of value set validation. Web services to assess whether keyedReferences or keyedReferenceGroups are valid.

  9. UDDI_ValueSetCaching_PortType, UDDI nodes may perform validation of publisher references themselves using the cached values obtained from such a Web service.

jUDDI Project

Apache jUDDI is server and client-side implementation of the UDDI v3 specification. The server side is the UDDI Registry, the client side are the juddi-client libraries. There is a Java as well as a C# version of the client libraries. The jUDDI GUI uses the client libraries to connect to a UDDI Registry. For more details please see the GuideGettingStarted.asciidoc.

The following is a list of all supported UDDI interfaces provided by this release of jUDDI

Table 1. Supported UDDI Interfaces
API Spec Supported Notes

Inquiry

Required

All Methods

Inquiry HTTP GET

Optional

All Methods

Plus a number of additional methods

Publication

Required

All Methods

Security

Optional

All Methods

Pluggable authentication

Subscription

Optional

All Methods

HTTP, SMTP delivery implemented, pluggable

Subscription Listener

Optional

All Methods

Client and Server side implementations

Value Set Caching

Optional

Partial

Scheduled for 3.3

Value Set Validation

Optional

Implemented

Scheduled for 3.3

Replication

Optional

Partial

Scheduled for 3.3

Custody and Ownership Transfer

Optional

All Methods

Only supports user to user transfers on the same node

UDDIv2 Inquiry

Required

BETA

Supported via API translator

UDDIv2 Publish

Required

BETA

Supported via API translator

The following is a list of other features of interest that was either defined in the UDDI specifications or in technical notes.

Table 2. jUDDI Features
API Spec Supported Notes

Digital Signatures

Server req

Full support

Java and .NET clients and in browser signing

Client side Subscription Listener

Optional

Full support

Java and .NET clients

WSDL to UDDI

Recommendation

Full support

Java, .NET clients and web GUI

WADL to UDDI

Recommendation

Full support

Java, .NET clients and web GUI

BPEL to UDDI

Recommendation

Full support

Java client

UDDI Technical Compliance Kit

-

Full support

Provides a standalone UDDI testing capability

Internationalization

Recommendation

Yes

UDDI defines a number of sorting mechanisms.

Table 3. Supported Sort Orders
Find Qualifier Spec Supported Notes

binarySort

Required

yes

caseInsensitiveSort

Required

no

JIRA opened

caseSensitiveSort

Required

yes

sortByNameAsc

Required

yes

sortByNameDesc

Required

yes

sortByDateAsc

Required

yes

sortByDateDesc

Required

yes

JIS-X4061

Optional

no

Japanese Character Strings

UDDI also defines a number of Find Qualifiers, which modify the default search behavior of the Inquiry Find* APIs.

Table 4. Supported Find Qualifiers
Find Qualifier Spec Supported

andAllKeys

Required

yes

approximateMatch

Required

yes

bindingSubset

Required

yes

caseInsensitiveMatch

Required

yes

caseSensitiveMatch

Required

yes

combineCategoryBags

Required

yes

diacriticInsensitiveMatch

Optional

yes

diacriticSensitiveMatch

Required

yes

exactMatch

Required

yes

signaturePresent

Required

yes

orAllKeys

Required

yes

orLikeKeys

Required

yes

serviceSubset

Required

yes

suppressProjectedServices

Required

yes