Wednesday, October 16, 2013

UDDI: Universal Description, Discovery, and Integration


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.

Introduction

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.

Architecture

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.

Specifications

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 Version 3.0.2 WSDL Service Interface Descriptions. The complete set of UDDI Version 3.0.2 WSDL definitions is provided by these files:
What you can do with these documents:

UDDI replication

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.

UDDI operators

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.