I recently found out about this protocol I never heard of, so I decided to write a post about it to share it with you.
If you want to implement a Service Oriented Architecture UDDI will help a lot to implement it, most of the Enterprise Service Bus solutions that are in the market implement this protocol.
UDDI is a standard for publishing and discovering information about web services, it behaves as a directory service for describing services, discovering businesses, and integrating business services.
It defines a group of Web services and programmatic interfaces for publishing, retrieving, and managing information about services. (In true SOA fashion, a UDDI registry is itself composed of Web services!)
It is a protocol developed by OASIS, It focuses on the process of discovery in the service-oriented architecture, so most of the Enterprise Service Bus implements this standard.
UDDI registry can have three types of information white pages, yellow pages and green pages:
- White pages: Basic contact information and identifiers, such as business name, address.
- Yellow pages: Information that describes a web service using different categorizations, such as business type manufacturing.
- Green pages: Technical information that describes the behaviors and supported functions of a web service hosted by your business.
Developers use the UDDI to publish services and query the registry to discover services matching various criteria., they can query one or more UDDI registries to view the different businesses that expose web services and the specifications of those services.
The UDDI Business Registry (UBR) or the Public Cloud, is built from multiple nodes that has their data synchronized through replication, so each node has the same information.
Content inserted into the UBR is done at a single node, and that operator node becomes the master owner of that content. Any subsequent updates or deletes of the data must occur at the operator node where the data was inserted.
Private nodes can be created too forming a private cloud, these nodes do not have data synchronized with the UBR they just have information replicated between them.
UDDI builds upon several other established industry standards, including HTTP, XML, XML Schema (XSD), SOAP, and WSDL.
UDDI defines a set of XML Schema definitions that describe the data formats used by the various specification APIs.
UDDI Version 3.0.2 XML Schema. UDDI uses the XML Schema Language to formally describe its data structures. UDDI Version 3.0.2 XML Schema is provided by these files:
- UDDI API Schema: http://uddi.org/schema/uddi_v3.xsd
- UDDI Custody Schema: http://uddi.org/schema/uddi_v3custody.xsd
- UDDI Subscription Schema: http://uddi.org/schema/uddi_v3subscription.xsd
- UDDI Subscription Listener Schema: http://uddi.org/schema/uddi_v3subscriptionListener.xsd
- UDDI Replication Schema: http://uddi.org/schema/ uddi_v3replication.xsd
- UDDI Value Set Validation Schema: http://uddi.org/schema/uddi_v3valueset.xsd
- UDDI Value Set Caching: http://uddi.org/schema/uddi_v3valuesetcaching.xsd
- UDDI Policy: http://uddi.org/schema/uddi_v3policy.xsd
- UDDI Policy Instance Parameters: http://uddi.org/schema/uddi_v3policy_instanceParms.xsd
UDDI Version 3.0.2 WSDL Service Interface Descriptions. The complete set of UDDI Version 3.0.2 WSDL definitions is provided by these files:
- UDDI API Binding: http://uddi.org/schema/uddi_api_v3_binding.wsdl
- UDDI API Port Type: http://uddi.org/schema/uddi_api_v3_portType.wsdl
- UDDI Custody Binding: http://uddi.org/schema/uddi_custody_v3_binding.wsdl
- UDDI Custody Port Type: http://uddi.org/schema/uddi_custody_v3_portType.wsdl
- UDDI Replication Binding: http://uddi.org/schema/uddi_repl_v3_binding.wsdl
- UDDI Replication Port Type: http://uddi.org/schema/uddi_repl_v3_portType.wsdl
- UDDI Subscription Binding: http://uddi.org/schema/uddi_sub_v3_binding.wsdl
- UDDI Subscription Port Type: http://uddi.org/schema/uddi_sub_v3_portType.wsdl
- UDDI Subscription Listener Binding: http://uddi.org/schema/uddi_subr_v3_binding.wsdl
- UDDI Subscription Listener Port Type: http://uddi.org/schema/uddi_subr_v3_portType.wsdl
- UDDI Value Set Validation Binding: http://uddi.org/schema/uddi_vs_v3_binding.wsdl
- UDDI Value Set Validation Port Type: http://uddi.org/schema/uddi_vs_v3_portType.wsdl
- UDDI Value Set Caching Binding: http://uddi.org/schema/uddi_vscache_v3_binding.wsdl
- UDDI Value Set Caching Port Type: http://uddi.org/schema/uddi_vscache_v3_portType.wsdl
What you can do with these documents:
This document describes the data replication processes and interfaces to which a registry operator must conform to achieve data replication between sites. This specification is not a programmer's API; it defines the replication mechanism used among UBR nodes.
This document outlines the behavior and operational parameters required by UDDI node operators. This specification defines data management requirements to which operators must adhere. For example, node operators are responsible for durable recording and backup of all data, ensuring that each business registration has a valid email address associated with it, and the integrity of the data during deletions (e.g., deleting a business means that all of its service entries must also be deleted). This document is not a programmer's API and private registries are not required to support it.
UDDI Programmer's API
This specification defines a set of functions that all UDDI registries support for inquiring about services hosted in a registry and for publishing information about a business or a service to a registry. This specification defines a series of SOAP messages containing XML documents that a UDDI registry accepts, parses, and responds to. This specification, along with the UDDI XML API schema and the UDDI Data Structure specification, makes up a complete programming interface to a UDDI registry.
UDDI data structures
This specification covers the specifics of the XML structures contained within the SOAP messages defined by the UDDI Programmer's API. This specification defines five core data structures and their relationships to one another.
So this is a brief introduction to UDDI protocol so in case you heard of it you can know what is all about.