| <?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> |