<?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>Data structure types (UDDI registry)</title>
</head>
<body id="ruddi"><a name="ruddi"><!-- --></a>

<h1 class="topictitle1">Data structure types (UDDI registry)</h1>
<div><p>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.</p>
<div class="section"><blockquote> <p> <span class="uicontrol">Business information.</span> Information
that is contained in a  <tt class="sysout">businessEntity</tt> structure.
The  <tt class="sysout">businessEntity</tt> contains information about
the business that has published the service, such as business name, description,
contacts and identifiers.</p>
 <p> <span class="uicontrol">Service information.</span> Information
that describes a group of Web services. It is contained in a  <tt class="sysout">businessService</tt> structure.
The  <tt class="sysout">businessService</tt> contains information about
families of technical services.  It groups a set of Web services related
to either a business process or group of services.</p>
 <p> <span class="uicontrol">Binding
information.</span> Information represented by the  <tt class="sysout">bindingTemplate</tt> structure.
The  <tt class="sysout">bindingTemplate</tt> holds technical information
for determining the entry point and construction specifications for invoking
a Web service.  The  <tt class="sysout">bindingTemplate</tt> provides
the Web service descriptions relevant for application developers that want
to find and invoke a Web service.  The  <tt class="sysout">bindingTemplate</tt> points
to a service implementation descriptions, for example via a URL.</p>
 <p> <span class="uicontrol">Information
describing the specifications for services.</span> Metadata about the
various specifications implemented by a given Web service represented by the
 <tt class="sysout">tModel</tt>. The  <tt class="sysout">tModel</tt> provides
a reference system to assist in the discovery of Web services.</p>
 </blockquote>
<p>Figure
1. Relationship between data types.</p>
<p> <img src="../images/uddi.gif" alt="Figure 1 illustrates the relationship between the business entity, business service, binding template, and tmodel." /> </p>
<p>Each child structure has a unique
parent structure. This means that each  <tt class="sysout">businessService</tt> structure
is owned by a specific  <tt class="sysout">businessEntity</tt>. In turn,
each  <tt class="sysout">bindingTemplate</tt> is owned by a specific
 <tt class="sysout">businessService</tt>. Each  <tt class="sysout">bindingTemplate</tt> structure
references to unique instances of  <tt class="sysout">tModel</tt> structures;
however, since references can be repeated within several parent structures,
there can be many references to  <tt class="sysout">tModels</tt> from
different Entity-Service-Template parents, as seen in Figure 2.</p>
<p>Figure
2. References to tModel.</p>
<p> <img src="../images/uddiref.gif" alt="Figure 2 illustrates the multiple references to a tModel." /> </p>
</div>
<div class="section"><h4 class="sectiontitle">Publisher assertions</h4><p>A publisher assertion is a
way in UDDI to associate businessEntity structures. The publisher assertion
defines a group of businessEntity structures. Many businesses are not effectively
represented by a single businessEntity. A publisher assertion allows for the
association between businessEntity structures. For example, a large company
may have several subsidiaries that have different descriptions but are still
closely coupled and want to make their relationships visible in UDDI registries.</p>
</div>
<div class="section"><h4 class="sectiontitle">Service projections</h4><p>A service projection enables
a business entity to reference a service that was published by another business
entity. By using the businessService structure as a projection to an already
published businessService, businesses can share or reuse services. Service
projections are managed centrally as part of the referencing businessEntity.
This means that any changes made to the businessService by any of the referencing
businessEntity structures are valid for all of the referencing businessEntity
structures.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="../tasks/tpublish.html" title="The Web service, also known as the business service, describes a Web service's endpoint and where its WSDL file resides. The WSDL file lists the operations that service provides.">Publishing a Web service</a></div>
</div>

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

<div><a href="../../org.eclipse.jst.ws.doc.user/concepts/cwsinwsa.html"> Tools for Web services development</a></div>
<div><a href="../../org.eclipse.jst.ws.doc.user/concepts/cws.html">Web services development</a></div></div>

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

<div><a href="../tasks/tuddiexp.html" title="Through UDDI and WSIL, other applications can discover WSDL documents and bind with them to execute transactions or perform other business processes.">Publishing Web services and business entities</a></div></div>
</div>
</body>
</html>