blob: f87d313726222fbd5f80fdc8ee3ca1ea30461be9 [file] [log] [blame]
<?xml version='1.0'?>
<!--
* Copyright 2001-2009 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/ -->
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "jUDDI_User_Guide.ent">
%BOOK_ENTITIES;
]>
<!-- chapter: UDDI Registry -->
<chapter id="chap-UDDI_Registry">
<title>UDDI Registry</title>
<!-- section: Introduction -->
<section id="sect-UDDI_Registry-intro">
<title>Introduction</title>
<para>
The Universal Description, Discovery and Integration (UDDI) protocol is one of the
major building blocks required for successful Web services. UDDI creates a standard
interoperable platform that enables companies and applications to quickly, easily, and
dynamically find and use Web services over the Internet. UDDI also allows operational
registries to be maintained for different purposes in different contexts. UDDI is a
cross-industry effort driven by major platform and software providers, as well as
marketplace operators and e-business leaders within the OASIS standards consortium.
UDDI has gone through 3 revisions and the latest version is 3.0.2. Additional
information regarding UDDI can be found at <ulink url="http://uddi.xml.org"/>.
</para>
</section>
<!-- section: UDDI Registry -->
<section id="sect-UDDI_Registry">
<title>UDDI Registry</title>
<para>
The UDDI Registry implements the UDDI specification. UDDI is a Web-based distributed
directory that enables businesses to list themselves on the Internet and discover each
other, similar to a traditional phone book's yellow and white pages. The UDDI registry
is both a white pages business directory and a technical specifications library. The
Registry is designed to store information about Businesses and Services and it holds
references to detailed documentation.
</para>
<!-- figure: Invocation Pattern using the UDDI Registry -->
<figure id="fig-UDDI_Registry_Invocation_Pattern">
<title>Invocation Pattern using the UDDI Registry</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/UDDI_Registry_invocation_pattern.png" scalefit="1"/>
</imageobject>
<textobject>
<phrase>Invocation Pattern using the UDDI Registry</phrase>
</textobject>
</mediaobject>
</figure>
<para>
A business publishes services to the UDDI registry. A client looks up the service in
the registry and receives service binding information. The client then uses the binding
information to invoke the service. The UDDI APIs are SOAP based for interoperability
reasons. The UDDI v3 specification defines 9 APIs:
</para>
<orderedlist>
<listitem>
<para>
<classname>UDDI_Security_PortType</classname>, defines the API to obtain a
security token. With a valid security token a publisher can publish to the
registry. A security token can be used for the entire session.
</para>
</listitem>
<listitem>
<para>
<classname>UDDI_Publication_PortType</classname>, defines the API to publish
business and service information to the UDDI registry.
</para>
</listitem>
<listitem>
<para>
<classname>UDDI_Inquiry_PortType</classname>, defines the API to query the
UDDI registry. Typically this API does not require a security token.
</para>
</listitem>
<listitem>
<para>
<classname>UDDI_CustodyTransfer_PortType</classname>, this API can be used to
transfer the custody of a business from one UDDI node to another.
</para>
</listitem>
<listitem>
<para>
<classname>UDDI_Subscription_PortType</classname>, defines the API to
register for updates on a particular business of service.
</para>
</listitem>
<listitem>
<para>
<classname>UDDI_SubscriptionListener_PortType</classname>, defines the API a
client must implement to receive subscription notifications from a UDDI node.
</para>
</listitem>
<listitem>
<para>
<classname>UDDI_Replication_PortType</classname>, defines the API to replicate
registry data between UDDI nodes.
</para>
</listitem>
<listitem>
<para>
<classname>UDDI_ValueSetValidation_PortType</classname>, by nodes to allow
external providers of value set validation. Web services to assess whether
keyedReferences or keyedReferenceGroups are valid.
</para>
</listitem>
<listitem>
<para>
<classname>UDDI_ValueSetCaching_PortType</classname>, UDDI nodes may perform
validation of publisher references themselves using the cached values obtained
from such a Web service.
</para>
</listitem>
</orderedlist>
<!--
<para>
Within jUDDI, there are three downloadable files (juddi-core.jar, juddi.war, and
juddi-tomcat.zip). You should determine which one to use depending on what level of
integration you want with your application and your platform / server choices.
</para>
Using the JAR
The juddi-core module produces a JAR which contains the jUDDI source and a jUDDI
persistence.xml configuration. jUDDI's persistence is being actively tested with both
OpenJPA and with Hibernate.
If you are going to use only the JAR, you would need to directly insert objects into jUDDI
through the database backend or persistence layer, or configure your own Webservice
provider with the provided WSDL files and classes.
Using the WAR files
As with the JAR, you need to make a decision on what framework you would like to use when
building the WAR. There will eventually be two WAR files shipped – one using CXF and one
using Axis 2. For the alpha release, only CXF has been tested thoroughly.
Simple copy the WAR to the deploy folder of your server (this release has been tested
under Apache Tomcat 5.5.23), start your server, and follow the directions under “using
jUDDI as a Web Service”.
Using the Tomcat Bundle
The jUDDI Tomcat bundle packages up the jUDDI WAR, Apache Derby, and a few necessary
configuration files and provides the user with a pre-configured jUDDI instance. By
default, the Hibernate is used as the persistence layer and CXF is used as a Web Serice
framework.
To get started using the Tomcat bundle, unzip the juddi-tomcat-bundle.zip, and start
Tomcat :
% cd apache-tomcat-5.5.23/bin % ./startup.sh
Using jUDDI as Web Service
Browse to http://localhost:8080/juddi/services
The services page shows you the available endpoints and methods available. Using any SOAP
client, you should be able to send some sample requests to jUDDI to test:
Using jUDDI with your application
As of the Alpha release, two of the UDDI v3 APIs should be active within jUDDI : inquiry
and publish.
-->
</section>
</chapter>