Monday, October 24, 2011

Universal Description, Discovery and Integration - UDDI


Universal Description, Discovery and Integration (UDDI) is a directory service where businesses can register and search for Web services.


What is UDDI
UDDI is a platform-independent framework for describing services, discovering businesses, and integrating business services by using the Internet.
  • UDDI stands for Universal Description, Discovery and Integration
  • UDDI is a directory for storing information about web services
  • UDDI is a directory of web service interfaces described by WSDL
  • UDDI communicates via SOAP
  • UDDI is built into the Microsoft .NET platform


What is UDDI Based On?
UDDI uses World Wide Web Consortium (W3C) and Internet Engineering Task Force (IETF) Internet standards such as XML, HTTP, and DNS protocols.
UDDI uses WSDL to describe interfaces to web services
Additionally, cross platform programming features are addressed by adopting SOAP, known as XML Protocol messaging specifications found at the W3C Web site.


UDDI Benefits
Any industry or businesses of all sizes can benefit from UDDI.
Before UDDI, there was no Internet standard for businesses to reach their customers and partners with information about their products and services. Nor was there a method of how to integrate into each other's systems and processes.
Problems the UDDI specification can help to solve:
  • Making it possible to discover the right business from the millions currently online
  • Defining how to enable commerce once the preferred business is discovered
  • Reaching new customers and increasing access to current customers
  • Expanding offerings and extending market reach
  • Solving customer-driven need to remove barriers to allow for rapid participation in the global Internet economy
  • Describing services and business processes programmatically in a single, open, and secure environment


How can UDDI be Used
If the industry published an UDDI standard for flight rate checking and reservation, airlines could register their services into an UDDI directory. Travel agencies could then search the UDDI directory to find the airline's reservation interface. When the interface is found, the travel agency can communicate with the service immediately because it uses a well-defined reservation interface.


Who is Supporting UDDI?
UDDI is a cross-industry effort driven by all major platform and software providers like Dell, Fujitsu, HP, Hitachi, IBM, Intel, Microsoft, Oracle, SAP, and Sun, as well as a large community of marketplace operators, and e-business leaders.
Over 220 companies are members of the UDDI community.

WSDL Summary
This tutorial has taught you how to create WSDL documents that describes a web service. It also specifies the location of the service and the operations (or methods) the service exposes.
You have learned how to define the message format and protocol details for a web service.
You have also learned that you can register and search for web services with UDDI.


Now You Know WSDL, What's Next?
The next step is to learn about SOAP and Web Services.
SOAP
SOAP is a simple XML-based protocol that allows applications to exchange information over HTTP.
Or more simply: SOAP is a protocol for accessing a web service.
If you want to learn more about SOAP, please visit our SOAP tutorial.
Web Services
Web services can convert your applications into web-applications.
By using XML,  messages can be sent between applications.
If you want to learn more about web services, please visit our Web Services tutorial

What is UDDI?

UDDI is an XML-based standard for describing, publishing, and finding Web services.
*       UDDI stands for Universal Description, Discovery and Integration.
*       UDDI is a specification for a distributed registry of Web services.
*       UDDI is platform independent, open framework.
*       UDDI can communicate via SOAP, CORBA, Java RMI Protocol.
*       UDDI uses WSDL to describe interfaces to web services.
*       UDDI is seen with SOAP and WSDL as one of the three foundation standards of web services.
*       UDDI is an open industry initiative enabling businesses to discover each other and define how they interact over the Internet.
UDDI has two parts:
*       A registry of all a web service's metadata including a pointer to the WSDL description of a service
*       A set of WSDL port type definitions for manipulating and searching that registry


History of UDDI

*       UDDI 1.0 was originally announced by Microsoft, IBM, and Ariba in September 2000.
*       Since the initial announcement, the UDDI initiative has grown to include more than 300 companies inclduing Dell, Fujitsu, HP, Hitachi, IBM, Intel, Microsoft, Oracle, SAP, and Sun.
*       May 2001, Microsoft and IBM launched the first UDDI operator sites and turned the UDDI registry live.
*       June 2001, UDDI announced Version 2.0.
*       As of this writing, the Microsoft and IBM sites implement the 1.0 specification and plan 2.0 support in the near future
*       Currently UDDI is sponsored by OASIS


Partner Interface Processes - PIPs

Partner Interface Processes (PIPs) are XMLbased interfaces that enable two trading partners to exchange data. Dozens of PIPs already exist. Few are listed here:
*       PIP2A2 : Enables a partner to query another for product information.
*       PIP3A2 : Enables a partner to query the price and availability of specific products.
*       PIP3A4 : Enables a partner to submit an electronic purchase order and receive acknowledgment of the order
*       PIP3A3 : Enables a partner to transfer the contents of an electronic shopping cart.
*       PIP3B4 : Enables a partner to query status on a specific shipment.


Private UDDI Registries

As an alternative to using the public federated network of UDDI registries available on the Internet, companies or industry groups may choose to implement their own private UDDI registries.
These exclusive services would be designed for the sole purpose of allowing members of the company or of the industry group to share and advertise services amongst themselves.
However, whether the UDDI registry is part of the global federated network or a privately owned and operated registry, the one thing that ties it all together is a common web services API for publishing and locating businesses and services advertised within the UDDI registry.

What is UDDI?

UDDI is an XML-based standard for describing, publishing, and finding Web services.
*       UDDI stands for Universal Description, Discovery and Integration.
*       UDDI is a specification for a distributed registry of Web services.
*       UDDI is platform independent, open framework.
*       UDDI can communicate via SOAP, CORBA, Java RMI Protocol.
*       UDDI uses WSDL to describe interfaces to web services.
*       UDDI is seen with SOAP and WSDL as one of the three foundation standards of web services.
*       UDDI is an open industry initiative enabling businesses to discover each other and define how they interact over the Internet.
UDDI has two parts:
*       A registry of all a web service's metadata including a pointer to the WSDL description of a service
*       A set of WSDL port type definitions for manipulating and searching that registry

The UDDI technical architecture consists of three parts:

UDDI data model:

An XML Schema for describing businesses and web services. The data model is described in detail in the "UDDI Data Model" section.

UDDI API Specification:

A Specification of API for searching and publishing UDDI data.

UDDI cloud services:

This is operator sites that provide implementations of the UDDI specification and synchronize all data on a scheduled basis.

The UDDI Business Registry (UBR), also known as the Public Cloud, is a conceptually single system built from multiple nodes that has their data synchronized through replication.
The current cloud services provide a logically centralized, but physically distributed, directory. This means that data submitted to one root node will automatically be replicated across all the other root nodes. Currently, data replication occurs every 24 hours.
UDDI cloud services are currently provided by Microsoft and IBM. Ariba had originally planned to offer an operator as well, but has since backed away from the commitment. Additional operators from other companies, including Hewlett-Packard, are planned for the near future.
It is also possible to set up private UDDI registries. For example, a large company may set up its own private UDDI registry for registering all internal web services. As these registries are not automatically synchronized with the root UDDI nodes, they are not considered part of the UDDI cloud.
*       The UDDI data model defines a generic structure for storing information about a business and the Web services it publishes. The UDDI data model is completely extensible, including several repeating sequence structures of information.
*       However, WSDL is used to describe the interface of a web service. WSDL is fairly straightforward to use with UDDI.
*       WSDL is represented in UDDI using a combination of businessService, bindingTemplate, and tModel information.
*       As with any service registered in UDDI, generic information about the service is stored in the businessService data structure, and information specific to how and where the service is accessed is stored in one or more associated bindingTemplate structures. Each bindingTemplate structure includes an element that contains the network address of the service and has associated with it one or more tModel structures that describe and uniquely identify the service.
*       When UDDI is used to store WSDL information, or pointers to WSDL files, the tModel should be referred to by convention as type wsdlSpec, meaning that the overviewDoc element is clearly identified as pointing to a WSDL service interface definition.
*       For UDDI, WSDL contents are split into two major elements the interface file and the implementation file.
The Hertz reservation system web service provides a concrete example of how UDDI and WSDL work together. Here is the <tModel> for this web service:
<tModel authorizedName="..." operator="..." tModelKey="...">
  <name>HertzReserveService</name>
       <description xml:lang="en">
          WSDL description of the Hertz reservation service interface
       </description>
       <overviewDoc>
         <description xml:lang="en">
                    WSDL source document.
                </description>
         <overviewURL>
                    http://mach3.ebphost.net/wsdl/hertz_reserve.wsdl
                </overviewURL>
       </overviewDoc>
       <categoryBag>
           <keyedReference
              tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4"
              keyName="uddi-org:types" keyValue="wsdlSpec"/>
       </categoryBag>
</tModel>
The key points are:
*       The overviewURL element gives the URL to where the service interface definition WSDL file can be found. This allows humans and UDDI/WSDLaware tooling to locate the service interface definition.
*       The purpose of the keyedReference element in the categoryBag is to make sure that this tModel is categorized as a WSDL specification document.

No comments: