<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- /*******************************************************************************
 * Copyright (c) 2000, 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/ -->
<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />
<title>Relationship between UDDI and WSDL</title>
</head>
<body id="cwsdlud"><a name="cwsdlud"><!-- --></a>

<h1 class="topictitle1">Relationship between UDDI and WSDL</h1>
<div><p>The Universal Description, Discovery, and Integration (UDDI) specification
defines a way to publish and discover information about Web services. UDDI
has two functions: (1) it is a SOAP-based protocol that defines how UDDI clients
communicate with registries, and (2) it is a particular set of globally replicated
registries.</p>
<p>Registering a service involves four core data structure types:</p>
<ul><li>The  <tt class="sysout">businessEntity</tt> data type contains information
about the business that has a published service.</li>
<li>The  <tt class="sysout">businessService</tt> data type is a description
of a Web service.</li>
<li>The  <tt class="sysout">bindingTemplate</tt> data type contains technical
information for determining the entry point and construction specifications
for invoking a Web service.</li>
<li>The  <tt class="sysout">tModel</tt> data type provides a reference
system to assist in the discovery of Web services and acts as a technical
specification for a Web service.</li>
</ul>
<p>For more information on the UDDI data types, refer to the related reference
topics at the end of this topic.</p>
<p>Web Services Description Language (WSDL) is an XML-based standard specification
for describing Web services. WSDL defines an XML format for describing network
services as a set of endpoints that operate on messages that contain either
document-oriented or procedure-oriented information.</p>
<p>The WSDL service description can be structured in many ways. However, to
assist with publishing and finding WSDL service descriptions in a UDDI registry,
WSDL documents consist of two main parts: </p>
<ul><li>The service interface definition describes the abstract type interface
and its protocol binding, known as the WSDL binding document</li>
<li>The service implementation definition describes the service access location
information, known as the WSDL service document</li>
</ul>
<p>When creating Web services with the the Apache Axis run-time environment, the Web services tools create a single
WSDL document when generating Web services from Java beans or EJBs. This WSDL document contains
both the service interface and implementation documents.</p>
<p>A service interface is described by a WSDL document that contains the types,
import, message, portType, and binding elements. A service interface contains
the WSDL service definition that will be used to implement one or more services.
It is an abstract definition of a Web service, and is used to describe a specific
type of service. This document can reference another service interface document
using an import element. The Web services tools in this product generate a
service interface document that contains only the message and portType elements
that are referenced by the binding document that contains only bindings for
the portType.</p>
<p>The service implementation document contains the service elements. A service
implementation document contains a description of a service that implements
a service interface. At least one of the import elements will contain a reference
to the WSDL service interface document; however monolithic WSDL such as that
created using the Axis and WebSphere run-time environments do not have imports.
A service implementation document can contain references to more than one
service interface document.</p>
<p>A service provider hosts a Web service and makes it accessible using protocols
such as SOAP/HTTP and SOAP/JMS. The Web service is described by the WSDL documents
that are stored on the provider's server or in a special repository. The WSDL
documents are referenced by UDDI business services (service documents) and
tModels (binding documents). These pointers enable discovery of a Web service
by a service requestor.</p>
<p>Figure 1. Relationship between UDDI and WSDL.</p>
<p> <img src="../images/wsdluddi.gif" alt="Illustration of the relationship between UDDI and WSDL." /> </p>
<p>Figure 1 illustrates the relationship between UDDI and WSDL. The WSDL service
element references the WSDL binding element. The URL of the document containing
the WSDL binding element is published to the UDDI business registry as a tModel.
The URL of the document containing the WSDL service element is published to
the UDDI business registry as a businessService and contains information about
the bindingTemplate. For more information on UDDI registry data structure
types, refer to the related reference section at the end of this document.
Note that the import portion of the diagram is optional depending on the run-time
environment; monolithic WSDL such as that created using the Axis and WebSphere run-time
environments do not have imports.</p>
<p>The service implementation describes an instance of a service. The instance
is defined using a WSDL service element. The service element in a service
implementation document is used to publish a UDDI businessService. When publishing
a WSDL service description, a service interface must be published as a tModel
before a service implementation is published as a businessService.</p>
<p>A service implementation is published in a UDDI registry as part of a businessService
with one or more bindingTemplate elements. The businessService is published
by the service provider. A new businessService is created for a service element
that is defined in the service implementation document. A new bindingTemplate
element is created within a businessService for each port element that is
defined within a service element.</p>
<p>For more information on the relationship between WSDL and UDDI refer to
 <a href="http://uddi.org/bestpractices.html" target="_blank">uddi.org/bestpractices.html</a>.</p>
</div>
<div>
<div class="linklist"><strong>Related Concepts</strong><br />

<div><a href="cuddi.html" title="Universal Description, Discovery, and Integration (UDDI) specification defines a way to publish and discover information about Web services.">Universal Description, Discovery, and Integration (UDDI)</a></div>
<div><a href="../../org.eclipse.jst.ws.doc.user/concepts/cwsdl.html">Web Services Description Language (WSDL)</a></div></div>

<div class="linklist"><strong>Related Reference</strong><br />

<div><a href="../ref/ruddi.html" title="Once you have registered and logged in to the UDDI registry that you want to use, you can register your Web service.  Registration of a service involves four core data structure types: business information, service information, binding information, and information describing the specifications for services. The relationship between these data types is described in Figure 1.">Data structure types (UDDI registry)</a></div>
<div><a href="../../org.eclipse.jst.ws.doc.user/ref/rwsdl.html">Web Services Description Language (WSDL)</a></div></div>
</div>
</body>
</html>