You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by ks...@apache.org on 2014/02/05 20:29:45 UTC

svn commit: r1564891 [38/39] - in /juddi/cms-site/trunk/content/docs/3.2: ./ juddi-client-guide/ juddi-client-guide/html/ juddi-client-guide/html/css/ juddi-client-guide/html/images/ juddi-client-guide/html/images/community/ juddi-client-guide/html/ima...

Added: juddi/cms-site/trunk/content/docs/3.2/juddi-guide/html_single/index.html
URL: http://svn.apache.org/viewvc/juddi/cms-site/trunk/content/docs/3.2/juddi-guide/html_single/index.html?rev=1564891&view=auto
==============================================================================
--- juddi/cms-site/trunk/content/docs/3.2/juddi-guide/html_single/index.html (added)
+++ juddi/cms-site/trunk/content/docs/3.2/juddi-guide/html_single/index.html Wed Feb  5 19:29:33 2014
@@ -0,0 +1,1838 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Apache jUDDI Guide</title><link rel="stylesheet" type="text/css" href="css/jbossorg.css"/><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"/><meta xmlns:d="http://docbook.org/ns/docbook" xmlns:rf="java:org.jboss.highlight.XhtmlRendererFactory" http-equiv="Content-Type" content="text/html; charset=UTF-8"/></head><body><div xml:lang="en" class="book" title="Apache jUDDI Guide"><div class="titlepage"><div><p xmlns:d="http://docbook.org/ns/docbook" id="title"><a href="http://www.jboss.org" class="site_href"><strong>JBoss.org</strong></a><a href="http://docs.jboss.org/" class="doc_href"><strong>Community Documentation</strong></a></p><div><h1 class="title"><a id="d5e1"/>Apache jUDDI Guide</h1></div><div><div class="authorgroup">
+
+    <div class="author"><h3 class="author"><span class="firstname">Kurt</span> <span class="othername">T</span> <span class="surname">Stam</span></h3><div class="affiliation">
+      <span class="shortaffil">RedHat<br/></span>
+      <span class="jobtitle">Enterprise Integration Magician (EIM)<br/></span>
+      <span class="orgname">Red Hat, Inc.<br/></span>
+       <span class="orgdiv"><a class="ulink" href="http://www.jboss.org/overlord">SOA Governance</a><br/></span>
+      <div class="authorblurb">
+      <p>
+        Open Source, written by domain experts.
+      </p>
+    </div>
+
+    </div></div>
+
+    <div class="author"><h3 class="author"><span class="firstname">Alex</span> <span class="surname">O'Ree</span></h3><div class="affiliation">
+      <span class="shortaffil">Apache Software Foundation (ASF)<br/></span>
+      <span class="orgname">Apache Software Foundation (ASF), http://juddi.apache.org<br/></span>
+    </div></div>
+
+     </div></div><div><p class="copyright">Copyright © 2003-2014 The Apache Software Foundation</p></div><div><a href="ln-d5e27.html">Legal Notice</a></div></div><hr/></div><div class="dedication" title="Dedication"><div class="titlepage"><div><div><h2 class="title"><a id="_dedication"/>Dedication</h2></div></div></div>
+
+<p>We’d like to dedicate this guide to Steve Viens and Andy Cutright who started this project back in 2003.</p>
+</div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="preface"><a href="#_preface">Preface</a></span></dt><dt><span class="chapter"><a href="#UDDI-Registry-Introduction">1. Universal Description, Discovery and Integration (UDDI)</a></span></dt><dd><dl><dt><span class="section"><a href="#_uddi_protocol_specification">1.1. UDDI Protocol, Specification</a></span></dt><dt><span class="section"><a href="#_uddi_registry">1.2. UDDI Registry</a></span></dt><dt><span class="section"><a href="#_juddi_project">1.3. jUDDI Project</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chapter-GettingStarted">2. Getting Started</a></span></dt><dd><dl><dt><span class="section"><a href="#_prerequisites">2.1. Prerequisites</a></span></dt><dt><span class="section"><a href="#_what_should_i_download">2.2. What should I Download?</a></span></dt><dt><span class="section"><a href="#_running_juddi">2.3. Running jUDDI</a></span></dt><dt><span class="section"><a href="#_u
 sing_the_juddi_administrative_interface">2.4. Using the jUDDI Administrative Interface</a></span></dt><dt><span class="section"><a href="#_using_juddi_web_services">2.5. Using jUDDI Web Services</a></span></dt><dt><span class="section"><a href="#_using_juddi_gui_to_create_your_keygenerator_and_business">2.6. Using jUDDI GUI to create your keygenerator and business</a></span></dt><dt><span class="section"><a href="#_running_the_demos_in_the_disto">2.7. Running the demos in the disto</a></span></dt><dt><span class="section"><a href="#_examples_on_the_juddi_blog">2.8. Examples on the jUDDI blog</a></span></dt><dt><span class="section"><a href="#_what_is_new_in_juddi_3_2">2.9. What is new in jUDDI 3.2?</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chapter-jUDDIArchitecture">3. jUDDI Architecture</a></span></dt><dd><dl><dt><span class="section"><a href="#_juddi_server">3.1. jUDDI Server</a></span></dt><dd><dl><dt><span class="section"><a href="#_uddi_api_layer_literal_uddi
 _ws_literal_using_jax_ws">3.1.1. UDDI API layer <code class="literal">uddi-ws</code> using JAX-WS</a></span></dt><dt><span class="section"><a href="#_core_uddi_literal_juddi_core_literal_using_jpa">3.1.2. Core UDDI <code class="literal">juddi-core</code> using JPA</a></span></dt><dt><span class="section"><a href="#_relational_databases">3.1.3. Relational Databases</a></span></dt><dt><span class="section"><a href="#_servlet_containers">3.1.4. Servlet Containers</a></span></dt></dl></dd><dt><span class="section"><a href="#_juddi_gui_literal_juddi_gui_war_literal">3.2. jUDDI GUI <code class="literal">juddi-gui.war</code></a></span></dt></dl></dd><dt><span class="chapter"><a href="#chapter-Administration">4. Administration</a></span></dt><dd><dl><dt><span class="section"><a href="#_changing_the_web_server_listen_port">4.1. Changing the Web Server Listen Port</a></span></dt><dt><span class="section"><a href="#_administering_users_and_access_control">4.2. Administering Users and Access Co
 ntrol</a></span></dt><dd><dl><dt><span class="section"><a href="#_administrative_users">4.2.1. Administrative Users</a></span></dt><dt><span class="section"><a href="#_end_users">4.2.2. End Users</a></span></dt></dl></dd><dt><span class="section"><a href="#ConfiguringDatabaseConnections">4.3. Configuration Database Connections</a></span></dt><dd><dl><dt><span class="section"><a href="#_derby_out_of_the_box">4.3.1. Derby Out-of-the-Box</a></span></dt><dt><span class="section"><a href="#_switching_to_another_database">4.3.2. Switching to another Database</a></span></dt><dt><span class="section"><a href="#_switch_to_mysql_on_tomcat_using_openjpa">4.3.3. Switch to MySQL on Tomcat using OpenJPA</a></span></dt><dt><span class="section"><a href="#_switch_to_postgres_on_tomcat_using_openjpa">4.3.4. Switch to Postgres on Tomcat using OpenJPA</a></span></dt><dt><span class="section"><a href="#_switch_to_postgres_on_jboss_using_hibernate">4.3.5. Switch to Postgres on JBoss using Hibernate</a><
 /span></dt><dt><span class="section"><a href="#_switch_to_oracle_on_tomcat_using_hibernate">4.3.6. Switch to Oracle on Tomcat using Hibernate</a></span></dt><dt><span class="section"><a href="#_switch_to_hsql_on_tomcat_using_hibernate">4.3.7. Switch to HSQL on Tomcat using Hibernate</a></span></dt><dt><span class="section"><a href="#_switch_to_other_db">4.3.8. Switch to other db</a></span></dt><dt><span class="section"><a href="#_override_persistence_properties_in_the_juddiv3_xml">4.3.9. Override persistence properties in the juddiv3.xml</a></span></dt></dl></dd><dt><span class="section"><a href="#_logging">4.4. Logging</a></span></dt><dt><span class="section"><a href="#_administering_the_gui_juddi_gui_war">4.5. Administering the GUI (juddi-gui.war)</a></span></dt><dt><span class="section"><a href="#_task_signing_the_digital_signature_applet_jar_file">4.6. Task: Signing the Digital Signature Applet jar file</a></span></dt><dt><span class="section"><a href="#_administrating_your_judd
 i_instance_using_the_administrative_console">4.7. Administrating your jUDDI Instance using the Administrative Console</a></span></dt><dt><span class="section"><a href="#_configure_juddi">4.8. Configure jUDDI</a></span></dt><dd><dl><dt><span class="section"><a href="#_enabling_remote_access">4.8.1. Enabling Remote Access</a></span></dt></dl></dd><dt><span class="section"><a href="#_monitoring_the_status_and_statistics">4.9. Monitoring the Status and Statistics</a></span></dt><dd><dl><dt><span class="section"><a href="#_statistics">4.9.1. Statistics</a></span></dt><dt><span class="section"><a href="#_status">4.9.2. Status</a></span></dt></dl></dd><dt><span class="section"><a href="#_accessing_the_juddiv3_api">4.10. Accessing the jUDDIv3 API</a></span></dt><dt><span class="section"><a href="#_security_guidance">4.11. Security Guidance</a></span></dt><dd><dl><dt><span class="section"><a href="#_juddi_server_2">4.11.1. jUDDI Server</a></span></dt><dt><span class="section"><a href="#_judd
 i_client_and_developers">4.11.2. jUDDI Client (and developers)</a></span></dt><dt><span class="section"><a href="#_juddi_gui_web_user_interface">4.11.3. jUDDI GUI (Web user interface)</a></span></dt></dl></dd><dt><span class="section"><a href="#_backups_upgrading_and_data_migration">4.12. Backups, Upgrading and Data Migration</a></span></dt><dd><dl><dt><span class="section"><a href="#_database_backups">4.12.1. Database Backups</a></span></dt><dt><span class="section"><a href="#_config_backup">4.12.2. Config Backup</a></span></dt></dl></dd><dt><span class="section"><a href="#_upgrading_juddi">4.13. Upgrading jUDDI</a></span></dt><dt><span class="section"><a href="#_scaling_juddi_and_federation">4.14. Scaling jUDDI and Federation</a></span></dt><dd><dl><dt><span class="section"><a href="#_scaling_the_juddi_services_multiple_servers">4.14.1. Scaling the jUDDI Services (multiple servers)</a></span></dt><dt><span class="section"><a href="#_limitations_of_juddi">4.14.2. Limitations of jUD
 DI</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#jUDDIServerConfig">5. jUDDI Server Configuration (<code class="literal">juddiv3.xml</code>)</a></span></dt><dd><dl><dt><span class="section"><a href="#_authentication">5.1. Authentication</a></span></dt><dt><span class="section"><a href="#_startup">5.2. Startup</a></span></dt><dt><span class="section"><a href="#_email">5.3. Email</a></span></dt><dt><span class="section"><a href="#_query_properties">5.4. Query Properties</a></span></dt><dt><span class="section"><a href="#_rmi_proxy">5.5. RMI Proxy</a></span></dt><dt><span class="section"><a href="#_key_generation_and_cryptography">5.6. Key Generation and Cryptography</a></span></dt><dt><span class="section"><a href="#_subscription">5.7. Subscription</a></span></dt><dt><span class="section"><a href="#_custody_transfer">5.8. Custody Transfer</a></span></dt><dt><span class="section"><a href="#_validation">5.9. Validation</a></span></dt><dt><span class="section"><a
  href="#_deploying_two_or_more_juddi_server_on_the_same_application_server">5.10. Deploying two or more jUDDI server on the same application server</a></span></dt><dt><span class="section"><a href="#_juddi_gui_configuration">5.11. jUDDI GUI Configuration</a></span></dt><dt><span class="section"><a href="#_juddi_client_uddi_xml_settings">5.12. jUDDI Client uddi.xml Settings</a></span></dt><dt><span class="section"><a href="#_encryption_keys">5.13. Encryption Keys</a></span></dt><dt><span class="section"><a href="#_customizing_the_juddi_gui">5.14. Customizing the juddi-gui</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chapter-UDDISeedData">6. UDDI Seed Data</a></span></dt><dd><dl><dt><span class="section"><a href="#_seed_data_files">6.1. Seed Data Files</a></span></dt><dt><span class="section"><a href="#_tokens_in_the_seed_data">6.2. Tokens in the Seed Data</a></span></dt><dt><span class="section"><a href="#_customer_seed_data">6.3. Customer Seed Data</a></span></dt></d
 l></dd><dt><span class="chapter"><a href="#chapter-HowToDeployjUDDITo">7. How to deploy jUDDI To?</a></span></dt><dd><dl><dt><span class="section"><a href="#_tomcat">7.1. Tomcat</a></span></dt><dd><dl><dt><span class="section"><a href="#_openjpa_and_cxf">7.1.1. OpenJPA and CXF</a></span></dt><dt><span class="section"><a href="#_hibernate_and_cxf">7.1.2. Hibernate and CXF</a></span></dt><dt><span class="section"><a href="#_openjpa_and_axis2">7.1.3. OpenJPA and Axis2</a></span></dt></dl></dd><dt><span class="section"><a href="#_jboss">7.2. JBoss</a></span></dt><dd><dl><dt><span class="section"><a href="#_jbossas_6_0_0_ga">7.2.1. JBossAS 6.0.0.GA</a></span></dt><dt><span class="section"><a href="#_jbossas_7_x_jbosseap_6_x">7.2.2. JBossAS 7.x/JBossEAP-6.x</a></span></dt></dl></dd><dt><span class="section"><a href="#_deploying_to_glassfish">7.3. Deploying to Glassfish</a></span></dt><dd><dl><dt><span class="section"><a href="#_glassfish_jars">7.3.1. Glassfish jars</a></span></dt><dt><spa
 n class="section"><a href="#_configure_the_juddi_datasource">7.3.2. Configure the JUDDI datasource</a></span></dt><dt><span class="section"><a href="#_add_juddiv3_cxf_war">7.3.3. Add juddiv3-cxf.war</a></span></dt><dt><span class="section"><a href="#_run_juddi">7.3.4. Run jUDDI</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#_extending_uddi">8. Extending UDDI</a></span></dt><dd><dl><dt><span class="section"><a href="#_authentication_modules">8.1. Authentication modules</a></span></dt><dt><span class="section"><a href="#_subscription_notification_handlers">8.2. Subscription Notification Handlers</a></span></dt><dt><span class="section"><a href="#_keyedreference_value_set_validation_services">8.3. KeyedReference Value Set Validation Services</a></span></dt><dt><span class="section"><a href="#_cryptographic_providers">8.4. Cryptographic Providers</a></span></dt><dt><span class="section"><a href="#_juddi_client_transport">8.5. jUDDI Client Transport</a></span></dt
 ></dl></dd><dt><span class="chapter"><a href="#DigitalSignatures">9. Digital Signatures</a></span></dt><dd><dl><dt><span class="section"><a href="#_requirements">9.1. Requirements</a></span></dt><dt><span class="section"><a href="#_using_digital_signatures_using_the_juddi_gui">9.2. Using Digital Signatures using the jUDDI GUI</a></span></dt><dt><span class="section"><a href="#_frequently_asked_questions">9.3. Frequently Asked Questions</a></span></dt></dl></dd><dt><span class="chapter"><a href="#_troubleshooting_juddi">10. Troubleshooting jUDDI</a></span></dt><dd><dl><dt><span class="section"><a href="#_juddi_web_services_juddiv3_war">10.1. jUDDI Web Services, juddiv3.war</a></span></dt><dd><dl><dt><span class="section"><a href="#_enable_debugging_logging">10.1.1. Enable debugging logging</a></span></dt></dl></dd><dt><span class="section"><a href="#_juddi_gui_juddi_gui_war">10.2. jUDDI GUI, juddi-gui.war</a></span></dt><dt><span class="section"><a href="#_juddi_client_java">10.3. jU
 DDI Client Java</a></span></dt><dd><dl><dt><span class="section"><a href="#_enable_debugging_logging_2">10.3.1. Enable debugging logging</a></span></dt></dl></dd><dt><span class="section"><a href="#_juddi_client_net">10.4. jUDDI Client .NET</a></span></dt><dt><span class="section"><a href="#_getting_help">10.5. Getting help</a></span></dt></dl></dd><dt><span class="chapter"><a href="#_contributing_to_juddi">11. Contributing to jUDDI</a></span></dt><dd><dl><dt><span class="section"><a href="#_license_guidance">11.1. License guidance</a></span></dt><dt><span class="section"><a href="#_svn_access">11.2. SVN access</a></span></dt><dt><span class="section"><a href="#_project_structure">11.3. Project structure</a></span></dt><dt><span class="section"><a href="#_building_and_testing_juddi">11.4. Building and testing jUDDI</a></span></dt><dd><dl><dt><span class="section"><a href="#_all_java_components">11.4.1. All Java Components</a></span></dt><dt><span class="section"><a href="#__net">11.
 4.2. .NET</a></span></dt></dl></dd><dt><span class="section"><a href="#_other_ways_to_contribute_to_juddi">11.5. Other ways to Contribute to jUDDI</a></span></dt><dd><dl><dt><span class="section"><a href="#_bug_reports">11.5.1. Bug Reports</a></span></dt><dt><span class="section"><a href="#_internationalization">11.5.2. Internationalization</a></span></dt><dt><span class="section"><a href="#_contributing_source_code">11.5.3. Contributing Source code</a></span></dt><dt><span class="section"><a href="#_releases">11.5.4. Releases</a></span></dt></dl></dd><dt><span class="section"><a href="#_what_the">11.6. What the?</a></span></dt></dl></dd><dt><span class="bibliography"><a href="#_bibliography">Bibliography</a></span></dt><dt><span class="index"><a href="#_index">Index</a></span></dt></dl></div><div class="list-of-figures"><p><strong>List of Figures</strong></p><dl><dt>1.1. <a href="#figure-UDDIREG-InvocationPattern">Invocation Pattern using the UDDI Registry</a></dt><dt>2.1. <a href=
 "#figure-GettingStarted-Welcome">jUDDI welcome page</a></dt><dt>2.2. <a href="#figure--GettingStarted-Admin">jUDDI admin</a></dt><dt>2.3. <a href="#figure-GettingStarted-HappyjUDDI">Happy jUDDI.</a></dt><dt>2.4. <a href="#figure-GettingStarted-FormLogin">Form login</a></dt><dt>2.5. <a href="#figure-GettingStarted-AddPublisher">Add Publisher</a></dt><dt>2.6. <a href="#figure-GettingStarted-jUDDIServices">jUDDI Services</a></dt><dt>2.7. <a href="#figure-GettingStarted-SoapUI">Getting an authToken using SoapUI</a></dt><dt>2.8. <a href="#figure-GettingStarted-CreateKeygenerator">Create Key Generator</a></dt><dt>2.9. <a href="#figure-GettingStarted-CreateBusiness">Create Business</a></dt><dt>3.1. <a href="#figure-jUDDIArchitecture-Architecture">jUDDI Architecture</a></dt><dt>3.2. <a href="#figure-jUDDIArchitecture-ClientGui">jUDDI Client and Console Architecture</a></dt><dt>3.3. <a href="#figure-jUDDIArchitecture-Gui">jUDDI Console Architecture</a></dt><dt>4.1. <a href="#figure-GuideAdmi
 nistrator-Configure">jUDDI Server Configuration Page.</a></dt><dt>4.2. <a href="#figure-GuideAdministrator-Statistics">jUDDI Server Statistics.</a></dt><dt>4.3. <a href="#figure-GuideAdministrator-MBeans">jUDDI MBeans.</a></dt><dt>4.4. <a href="#figure-GuideAdministrator-Status">jUDDI Server Status.</a></dt><dt>4.5. <a href="#figure-GuideAdministrator-API">jUDDI API.</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="#d5e97">Supported UDDI Interfaces</a></dt><dt>1.2. <a href="#d5e230">jUDDI Features</a></dt><dt>1.3. <a href="#d5e321">Supported Sort Orders</a></dt><dt>1.4. <a href="#d5e413">Supported Find Qualifiers</a></dt><dt>4.1. <a href="#d5e1050">Hibernate properties that can be referenced in the <span class="emphasis"><em>juddiv3.xml</em></span> file</a></dt><dt>5.1. <a href="#d5e1317">Authentication properties that can be referenced in the juddiv3.xml file</a></dt><dt>5.2. <a href="#d5e1388">Startup properties that can be
  referenced in the <span class="emphasis"><em>juddiv3.xml</em></span> file</a></dt><dt>5.3. <a href="#d5e1526">As of 3.1.5, jUDDI supports Email delivery options for Subscription API functions. Email properties can be referenced in the <span class="emphasis"><em>juddiv3.xml</em></span> file</a></dt><dt>5.4. <a href="#d5e1666">Query properties that can be referenced in the <span class="emphasis"><em>juddiv3.xml</em></span> file</a></dt><dt>5.5. <a href="#d5e1825">UDDI Key generation properties that can be referenced in the <code class="literal">juddiv3.xml</code> file.</a></dt><dt>5.6. <a href="#d5e1874">Subscription properties that can be referenced in the <span class="emphasis"><em>juddiv3.xml</em></span> file.</a></dt><dt>5.7. <a href="#d5e1974">Transfer properties that can be referenced in the _juddiv3.xml file.</a></dt><dt>5.8. <a href="#d5e2001">These settings are for validating the data that users store in jUDDI. They can be referenced in the _juddiv3.xml file.</a></dt><dt>5.9
 . <a href="#d5e2068">jUDDI GUI Configuration</a></dt></dl></div>
+
+
+<div class="preface" title="Preface"><div class="titlepage"><div><div><h2 class="title"><a id="_preface"/>Preface</h2></div></div></div>
+
+<p>The jUDDI project maintains a UDDIv3 registry that can be deployed to most modern JEE application servers. The jUDDI project is part of the Apache Software Foundation and encourages participation. It is easy to participate and if you discover a simple typo or would like to contribute to this guide in general please read the README page (add link).</p>
+</div>
+<div class="chapter" title="Chapter 1. Universal Description, Discovery and Integration (UDDI)"><div class="titlepage"><div><div><h2 class="title"><a id="UDDI-Registry-Introduction"/>Chapter 1. Universal Description, Discovery and Integration (UDDI)</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="#_uddi_protocol_specification">1.1. UDDI Protocol, Specification</a></span></dt><dt><span class="section"><a href="#_uddi_registry">1.2. UDDI Registry</a></span></dt><dt><span class="section"><a href="#_juddi_project">1.3. jUDDI Project</a></span></dt></dl></div>
+
+<div class="section" title="1.1. UDDI Protocol, Specification"><div class="titlepage"><div><div><h2 class="title"><a id="_uddi_protocol_specification"/>1.1. UDDI Protocol, Specification</h2></div></div></div>
+
+<p>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 (or Intranet). 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 <a class="xref" href="#uddi-oasis-open-org">[uddi-oasis-open-org]</a>. UDDI has gone through 3 revisions and the latest version is 3.0.2 <a class="xref" href="#uddi-v3">[uddi-v3]</a>. Additional information regarding UDDI can be found at <a class="ulink" href="http://uddi.xml.org">http://uddi.xml.org</a> <a class="xref" href="#uddi-xml-org">[uddi-xml-org]</a>.</p>
+</div>
+<div class="section" title="1.2. UDDI Registry"><div class="titlepage"><div><div><h2 class="title"><a id="_uddi_registry"/>1.2. UDDI Registry</h2></div></div></div>
+
+<p>The UDDI Registry <a id="d5e50" class="indexterm"/>
+<a id="d5e53" class="indexterm"/> implements the UDDI specification <a id="d5e55" class="indexterm"/>
+<a id="d5e58" class="indexterm"/>. UDDI is a Web-based <span class="emphasis"><em>distributed</em></span> <span class="emphasis"><em>directory</em></span> <a id="d5e62" class="indexterm"/> that enables businesses to list themselves on the Internet (or Intranet) 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.</p>
+<div class="figure"><a id="figure-UDDIREG-InvocationPattern"/><p class="title"><strong>Figure 1.1. Invocation Pattern using the UDDI Registry</strong></p><div class="figure-contents">
+
+  <div class="mediaobject"><img src="./images/UDDI_Registry_invocation_pattern.png" alt="Invocation Pattern using the UDDI Registry"/></div>
+</div></div><br class="figure-break"/>
+
+<p>In step 1 of <a class="xref" href="#figure-UDDIREG-InvocationPattern" title="Figure 1.1. Invocation Pattern using the UDDI Registry">Figure 1.1, “Invocation Pattern using the UDDI Registry”</a> it is shown how a business publishes services to the UDDI registry. In step 2, a client looks up the service in the registry and receives service binding information. Finally in step 3, the client then uses the binding information to invoke the service. The UDDI APIs are SOAP based for interoperability reasons. In this example we’ve three APIs specified in the UDDI v3 specification, Security, Publication and Inquiry. The UDDI v3 specification defines 9 APIs:</p>
+<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
+UDDI_Security_PortType, 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.
+</li><li class="listitem">
+UDDI_Publication_PortType, defines the API to publish business and service information to the UDDI registry.
+</li><li class="listitem">
+UDDI_Inquiry_PortType, defines the API to query the UDDI registry. Typically this API does not require a security token.
+</li><li class="listitem">
+UDDI_CustodyTransfer_PortType, this API can be used to transfer the custody of a business from one UDDI node to another.
+</li><li class="listitem">
+UDDI_Subscription_PortType, defines the API to register for updates on a particular business of service.
+</li><li class="listitem">
+UDDI_SubscriptionListener_PortType, defines the API a client must implement to receive subscription notifications from a UDDI node.
+</li><li class="listitem">
+UDDI_Replication_PortType, defines the API to replicate registry data between UDDI nodes.
+</li><li class="listitem">
+UDDI_ValueSetValidation_PortType, by nodes to allow external providers of value set validation. Web services to assess whether keyedReferences or keyedReferenceGroups are valid.
+</li><li class="listitem">
+UDDI_ValueSetCaching_PortType, UDDI nodes may perform validation of publisher references themselves using the cached values obtained from such a Web service.
+</li></ol></div>
+
+</div>
+<div class="section" title="1.3. jUDDI Project"><div class="titlepage"><div><div><h2 class="title"><a id="_juddi_project"/>1.3. jUDDI Project</h2></div></div></div>
+
+<p>Apache jUDDI is server and client-side implementation of the UDDI v3 specification. The server side is the UDDI Registry, the client side are the juddi-client libraries. There is a Java as well as a C# version of the client libraries. The jUDDI GUI uses the client libraries to connect to a UDDI Registry. For more details please see the <a class="xref" href="#chapter-GettingStarted" title="Chapter 2. Getting Started">Chapter 2, <em>Getting Started</em></a>.</p>
+<p>The following is a list of all supported UDDI interfaces provided by this release of jUDDI</p>
+<div class="table"><a id="d5e97"/><p class="title"><strong>Table 1.1. Supported UDDI Interfaces</strong></p><div class="table-contents">
+
+  
+  <table summary="Supported UDDI Interfaces" border="1"><colgroup><col width="25*" class="col_1"/><col width="25*" class="col_2"/><col width="25*" class="col_3"/><col width="25*" class="col_4"/></colgroup><thead><tr><th align="left" valign="top">API</th><th align="left" valign="top">Spec</th><th align="left" valign="top">Supported</th><th align="left" valign="top">Notes</th></tr></thead><tbody><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908076">Inquiry</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>All Methods</p></td><td align="left" valign="top"> </td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908158">Inquiry HTTP GET</a></p></td><td align="left" valign="top"><p>Optional</p></td><td align="left" valign="top"><p>All Methods</p></td><td align="left" valign="top"><p>Plus a number of additional 
 methods</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908095">Publication</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>All Methods</p></td><td align="left" valign="top"> </td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908115">Security</a></p></td><td align="left" valign="top"><p>Optional</p></td><td align="left" valign="top"><p>All Methods</p></td><td align="left" valign="top"><p>Pluggable authentication</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908128">Subscription</a></p></td><td align="left" valign="top"><p>Optional</p></td><td align="left" valign="top"><p>All Methods</p></td><td align="left" valign="top"><p>HTTP, SMTP delivery implemented, pluggable</p></td></tr><tr><td align="left" valign="top"
 ><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908336">Subscription Listener</a></p></td><td align="left" valign="top"><p>Optional</p></td><td align="left" valign="top"><p>All Methods</p></td><td align="left" valign="top"><p>Client and Server side implementations</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908141">Value Set Caching</a></p></td><td align="left" valign="top"><p>Optional</p></td><td align="left" valign="top"><p>Partial</p></td><td align="left" valign="top"><p>Scheduled for 3.3</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908141">Value Set Validation</a></p></td><td align="left" valign="top"><p>Optional</p></td><td align="left" valign="top"><p>Implemented</p></td><td align="left" valign="top"><p>Scheduled for 3.3</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" h
 ref="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908180">Replication</a></p></td><td align="left" valign="top"><p>Optional</p></td><td align="left" valign="top"><p>Partial</p></td><td align="left" valign="top"><p>Scheduled for 3.3</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908118">Custody and Ownership Transfer</a></p></td><td align="left" valign="top"><p>Optional</p></td><td align="left" valign="top"><p>All Methods</p></td><td align="left" valign="top"><p>Only supports user to user transfers on the same node</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/ProgrammersAPI-V2.04-Published-20020719.htm#_Toc25137711">UDDIv2 Inquiry</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>BETA</p></td><td align="left" valign="top"><p>Supported via API translator</p></td></tr><tr><td align="left" valign="top"><p><a cl
 ass="ulink" href="http://uddi.org/pubs/ProgrammersAPI-V2.04-Published-20020719.htm#_Toc25137722">UDDIv2 Publish</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>BETA</p></td><td align="left" valign="top"><p>Supported via API translator</p></td></tr></tbody></table>
+</div></div><br class="table-break"/>
+
+<p>The following is a list of other features of interest that was either defined in the UDDI specifications or in technical notes.</p>
+<div class="table"><a id="d5e230"/><p class="title"><strong>Table 1.2. jUDDI Features</strong></p><div class="table-contents">
+
+  
+  <table summary="jUDDI Features" border="1"><colgroup><col width="25*" class="col_1"/><col width="25*" class="col_2"/><col width="25*" class="col_3"/><col width="25*" class="col_4"/></colgroup><thead><tr><th align="left" valign="top">API</th><th align="left" valign="top">Spec</th><th align="left" valign="top">Supported</th><th align="left" valign="top">Notes</th></tr></thead><tbody><tr><td align="left" valign="top"><p>Digital Signatures</p></td><td align="left" valign="top"><p>Server req</p></td><td align="left" valign="top"><p>Full support</p></td><td align="left" valign="top"><p>Java and .NET clients and in browser signing</p></td></tr><tr><td align="left" valign="top"><p>Client side Subscription Listener</p></td><td align="left" valign="top"><p>Optional</p></td><td align="left" valign="top"><p>Full support</p></td><td align="left" valign="top"><p>Java and .NET clients</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="https://www.oasis-open.org/committees/u
 ddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm">WSDL to UDDI</a></p></td><td align="left" valign="top"><p>Recommendation</p></td><td align="left" valign="top"><p>Full support</p></td><td align="left" valign="top"><p>Java, .NET clients and web GUI</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="https://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm">WADL to UDDI</a></p></td><td align="left" valign="top"><p>Recommendation</p></td><td align="left" valign="top"><p>Full support</p></td><td align="left" valign="top"><p>Java, .NET clients and web GUI</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="https://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-bpel-20040725.htm">BPEL to UDDI</a></p></td><td align="left" valign="top"><p>Recommendation</p></td><td align="left" valign="top"><p>Full support</p></td><td align="left" valign="top"><p>Java client</p></td></tr><tr><td align="left" valign="top"><p>UDDI
  Technical Compliance Kit</p></td><td align="left" valign="top"><p>-</p></td><td align="left" valign="top"><p>Full support</p></td><td align="left" valign="top"><p>Provides a standalone UDDI testing capability</p></td></tr><tr><td align="left" valign="top"><p>Internationalization</p></td><td align="left" valign="top"><p>Recommendation</p></td><td align="left" valign="top"><p>Yes</p></td><td align="left" valign="top"><p>Both end user interfaces (User and Admin web apps) are supported. Error messages from the server are external and can be overwritten.</p></td></tr><tr><td align="left" valign="top"><p>Registration via Annotations</p></td><td align="left" valign="top"><p>-</p></td><td align="left" valign="top"><p>Full support</p></td><td align="left" valign="top"><p>Provides automated registration of classes via Java/.NET Annotations</p></td></tr></tbody></table>
+</div></div><br class="table-break"/>
+
+<p>UDDI defines a number of <a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908080">sorting mechanisms</a>.</p>
+<div class="table"><a id="d5e321"/><p class="title"><strong>Table 1.3. Supported Sort Orders</strong></p><div class="table-contents">
+
+  
+  <table summary="Supported Sort Orders" border="1"><colgroup><col width="25*" class="col_1"/><col width="25*" class="col_2"/><col width="25*" class="col_3"/><col width="25*" class="col_4"/></colgroup><thead><tr><th align="left" valign="top">Find Qualifier</th><th align="left" valign="top">Spec</th><th align="left" valign="top">Supported</th><th align="left" valign="top">Notes</th></tr></thead><tbody><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#sortOrd">binarySort</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td><td align="left" valign="top"> </td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#caseInsensSort">caseInsensitiveSort</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>party</p></td><td align="left" valign="top"><p>Only when using caseInsentitiveM
 atch, <a class="ulink" href="https://issues.apache.org/jira/browse/JUDDI-785">JIRA opened</a></p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908355">caseSensitiveSort</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td><td align="left" valign="top"> </td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908356">sortByNameAsc</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td><td align="left" valign="top"> </td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908357">sortByNameDesc</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td><td align="left" valign="top"> </td></tr><tr><td align="left" valign="t
 op"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908358">sortByDateAsc</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td><td align="left" valign="top"> </td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908359">sortByDateDesc</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td><td align="left" valign="top"> </td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc42047570">JIS-X4061</a></p></td><td align="left" valign="top"><p>Optional</p></td><td align="left" valign="top"><p>no</p></td><td align="left" valign="top"><p>Japanese Character Strings</p></td></tr></tbody></table>
+</div></div><br class="table-break"/>
+
+<p>UDDI also defines a number of <a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908080">Find Qualifiers</a>, which modify the default search behavior of the <a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908076">Inquiry</a> Find* APIs.</p>
+<div class="table"><a id="d5e413"/><p class="title"><strong>Table 1.4. Supported Find Qualifiers</strong></p><div class="table-contents">
+
+  
+  <table summary="Supported Find Qualifiers" border="1"><colgroup><col width="33*" class="col_1"/><col width="33*" class="col_2"/><col width="33*" class="col_3"/></colgroup><thead><tr><th align="left" valign="top">Find Qualifier</th><th align="left" valign="top">Spec</th><th align="left" valign="top">Supported</th></tr></thead><tbody><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908360">andAllKeys</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908346">approximateMatch</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908365">bindingSubset</a></p></td><td align="left" valign
 ="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908348">caseInsensitiveMatch</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908349">caseSensitiveMatch</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908363">combineCategoryBags</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908350">diacriticInsensitiveMatch</a></p></td><td al
 ign="left" valign="top"><p>Optional</p></td><td align="left" valign="top"><p>yes</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908351">diacriticSensitiveMatch</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908347">exactMatch</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908367">signaturePresent</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908361">orAllKeys</a></p></td><td align="le
 ft" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908362">orLikeKeys</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908364">serviceSubset</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td></tr><tr><td align="left" valign="top"><p><a class="ulink" href="http://uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908366">suppressProjectedServices</a></p></td><td align="left" valign="top"><p>Required</p></td><td align="left" valign="top"><p>yes</p></td></tr></tbody></table>
+</div></div><br class="table-break"/>
+
+</div>
+</div>
+<div class="chapter" title="Chapter 2. Getting Started"><div class="titlepage"><div><div><h2 class="title"><a id="chapter-GettingStarted"/>Chapter 2. Getting Started</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="#_prerequisites">2.1. Prerequisites</a></span></dt><dt><span class="section"><a href="#_what_should_i_download">2.2. What should I Download?</a></span></dt><dt><span class="section"><a href="#_running_juddi">2.3. Running jUDDI</a></span></dt><dt><span class="section"><a href="#_using_the_juddi_administrative_interface">2.4. Using the jUDDI Administrative Interface</a></span></dt><dt><span class="section"><a href="#_using_juddi_web_services">2.5. Using jUDDI Web Services</a></span></dt><dt><span class="section"><a href="#_using_juddi_gui_to_create_your_keygenerator_and_business">2.6. Using jUDDI GUI to create your keygenerator and business</a></span></dt><dt><span class="section"><a href="#_r
 unning_the_demos_in_the_disto">2.7. Running the demos in the disto</a></span></dt><dt><span class="section"><a href="#_examples_on_the_juddi_blog">2.8. Examples on the jUDDI blog</a></span></dt><dt><span class="section"><a href="#_what_is_new_in_juddi_3_2">2.9. What is new in jUDDI 3.2?</a></span></dt></dl></div>
+
+<p>The jUDDI project is an open source implementation of the UDDI specification. The registry implementation is a WebArchive (war) <span class="emphasis"><em>juddiv3.war</em></span>  which is deployable to any JEE container. The application exposes a WebService API which can be accessed using any generic SOAP client, the <span class="emphasis"><em>juddi-gui</em></span> or, if you are looking to integrate the UDDI api in your application, the Java or .NET version of the <span class="emphasis"><em>juddi-client</em></span>.</p>
+<div class="section" title="2.1. Prerequisites"><div class="titlepage"><div><div><h2 class="title"><a id="_prerequisites"/>2.1. Prerequisites</h2></div></div></div>
+
+<p>jUDDI is written in Java and minimally requires</p>
+<div class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+JDK1.6+, although jUDDI should run on JDK1.6, please use the latest JDK if possible
+</li></ul></div>
+
+<p>optionally</p>
+<div class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+Maven 3.0.3+ if you want to run the examples
+</li><li class="listitem">
+A Relation Database, to replace Derby
+</li></ul></div>
+
+<p>The versions mentioned above are minimal versions and it is recommended to use the latest version available. By default jUDDI ships and uses a <span class="emphasis"><em>Derby</em></span> database. After evaluation you probably want to move to a more full featured database.</p>
+</div>
+<div class="section" title="2.2. What should I Download?"><div class="titlepage"><div><div><h2 class="title"><a id="_what_should_i_download"/>2.2. What should I Download?</h2></div></div></div>
+
+<p>At the jUDDI download page <a class="ulink" href="http://juddi.apache.org/releases.html">http://juddi.apache.org/releases.html</a>, you have the chioce of two distributions; the <span class="emphasis"><em>juddi-client</em></span> distro or the juddi-distro, where the latter includes both client and server. Each distribution contains signed binaries, source, examples and documentation. It you are not sure which distribution to download, then take the <span class="emphasis"><em>juddi-distro</em></span> since it contains everything which is by far the easiest way to get going.</p>
+</div>
+<div class="section" title="2.3. Running jUDDI"><div class="titlepage"><div><div><h2 class="title"><a id="_running_juddi"/>2.3. Running jUDDI</h2></div></div></div>
+
+<p>After downloading and unpacking of the <span class="emphasis"><em>juddi-distro</em></span>, you can start the preconfigured tomcat server by going into the <span class="emphasis"><em>juddi-distro-&lt;version&gt;</em></span> directory and running startup</p>
+<pre class="screen">$ cd apache-tomcat-&lt;version&gt;/bin
+$ ./startup.sh</pre>
+
+<p>Once the server is up and running can make sure the root data was properly installed by browsing to <a class="ulink" href="http://localhost:8080/juddiv3">http://localhost:8080/juddiv3</a></p>
+<p>You should see the screen show in <a class="xref" href="#figure-GettingStarted-Welcome" title="Figure 2.1. jUDDI welcome page">Figure 2.1, “jUDDI welcome page”</a>, the jUDDI Welcome Page.</p>
+<div class="figure"><a id="figure-GettingStarted-Welcome"/><p class="title"><strong>Figure 2.1. jUDDI welcome page</strong></p><div class="figure-contents">
+
+  <div class="mediaobject"><img src="./images/GettingStarted-jUDDI_welcome.png" alt="Welcome to jUDDI"/></div>
+</div></div><br class="figure-break"/>
+
+<p>Before continuing please check the jUDDI instalation Status on this page and make sure it says: "jUDDI has been successfully installed!". If the page won’t load or the status is anything else please check the <span class="emphasis"><em>apache-tomcat-x.x.x/logs/juddi.log</em></span> and if you need help you can contact us via the jUDDI user mailing list. Also note that it created a <span class="emphasis"><em>root</em></span> partition, using seed data. You can modify or add to the seed, for that see <a class="xref" href="#chapter-UDDISeedData" title="Chapter 6. UDDI Seed Data">Chapter 6, <em>UDDI Seed Data</em></a>.</p>
+</div>
+<div class="section" title="2.4. Using the jUDDI Administrative Interface"><div class="titlepage"><div><div><h2 class="title"><a id="_using_the_juddi_administrative_interface"/>2.4. Using the jUDDI Administrative Interface</h2></div></div></div>
+
+<p>The juddi admin console runs at <a class="ulink" href="http://localhost:8080/juddiv3/admin">http://localhost:8080/juddiv3/admin</a> and requires a login with the role of uddiadmin via the basic authentication popup dialog box. Check the <span class="emphasis"><em>apache-tomcat-x.x.x/conf/tomcat-users.conf</em></span> file for the password of the <span class="emphasis"><em>uddiadmin</em></span> user. Please change the password before going live.</p>
+<div class="figure"><a id="figure--GettingStarted-Admin"/><p class="title"><strong>Figure 2.2. jUDDI admin</strong></p><div class="figure-contents">
+
+  <div class="mediaobject"><img src="./images/GettingStarted-jUDDI_admin.png" alt="jUDDI Admin"/></div>
+</div></div><br class="figure-break"/>
+
+<p>By popular demand we brought back the happy jUDDI!' page. Just click on <span class="emphasis"><em>Status and Statistics</em></span> page. By default we run on CXF, so it is normal if says the AxisServlet is not found. There should be no other red on this page.</p>
+<div class="figure"><a id="figure-GettingStarted-HappyjUDDI"/><p class="title"><strong>Figure 2.3. Happy jUDDI.</strong></p><div class="figure-contents">
+
+  <div class="mediaobject"><img src="./images/GettingStarted-happy_juddi.png" alt="Happy jUDDI!"/></div>
+</div></div><br class="figure-break"/>
+
+<p>By default jUDDI ships with 2 publishers: <span class="emphasis"><em>root</em></span> and <span class="emphasis"><em>uddi</em></span>. Root is the owner of the repository, while the <span class="emphasis"><em>uddi</em></span> user is the owner of all the default tmodels and categorizations. Please use the <span class="emphasis"><em>root</em></span> user to log into the form login in the admin console.</p>
+<div xmlns:d="http://docbook.org/ns/docbook" xmlns:rf="java:org.jboss.highlight.XhtmlRendererFactory" class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h2>Important</h2>
+<p>Please use the <span class="emphasis"><em>root</em></span> user to log into the form login in the admin console.</p>
+</div>
+
+<div class="figure"><a id="figure-GettingStarted-FormLogin"/><p class="title"><strong>Figure 2.4. Form login</strong></p><div class="figure-contents">
+
+  <div class="mediaobject"><img src="./images/GettingStarted-form_login.png" alt="Form Login"/></div>
+</div></div><br class="figure-break"/>
+
+<p>You will now be able to do more then simple browsing. Navigate to the Administration and select <span class="emphasis"><em>save_publisher</em></span> from the dropdown. This will allow you to add your own publisher.</p>
+<div class="figure"><a id="figure-GettingStarted-AddPublisher"/><p class="title"><strong>Figure 2.5. Add Publisher</strong></p><div class="figure-contents">
+
+  <div class="mediaobject"><img src="./images/GettingStarted-add_publisher.png" alt="Add Publisher"/></div>
+</div></div><br class="figure-break"/>
+
+</div>
+<div class="section" title="2.5. Using jUDDI Web Services"><div class="titlepage"><div><div><h2 class="title"><a id="_using_juddi_web_services"/>2.5. Using jUDDI Web Services</h2></div></div></div>
+
+<p>OK now that we have verified that jUDDI is good to go we can inspect the UDDI WebService API by browsing to <a class="ulink" href="http://localhost:8080/juddiv3/services">http://localhost:8080/juddiv3/services</a></p>
+<p>You should see an overview of all the SOAP Services and their WSDLs.</p>
+<div class="figure"><a id="figure-GettingStarted-jUDDIServices"/><p class="title"><strong>Figure 2.6. jUDDI Services</strong></p><div class="figure-contents">
+
+  <div class="mediaobject"><img src="./images/GettingStarted-juddi_services.png" alt="jUDDI Services"/></div>
+</div></div><br class="figure-break"/>
+
+<p>The services page shows you the available endpoints and methods available. Using any SOAP client, you should be able to import the wsdls into a tool like SoapUI as shown in <a class="xref" href="#figure-GettingStarted-SoapUI" title="Figure 2.7. Getting an authToken using SoapUI">Figure 2.7, “Getting an authToken using SoapUI”</a> and send some sample requests to jUDDI to test:</p>
+<div class="figure"><a id="figure-GettingStarted-SoapUI"/><p class="title"><strong>Figure 2.7. Getting an authToken using SoapUI</strong></p><div class="figure-contents">
+
+  <div class="mediaobject"><img src="./images/GettingStarted-authToken_SoapUI.png" alt="Getting an authToken using SoapUI"/></div>
+</div></div><br class="figure-break"/>
+
+<div xmlns:d="http://docbook.org/ns/docbook" xmlns:rf="java:org.jboss.highlight.XhtmlRendererFactory" class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h2>Tip</h2>
+<p>Try obtaining an authToken for the publisher you created earlier.</p>
+</div>
+
+</div>
+<div class="section" title="2.6. Using jUDDI GUI to create your keygenerator and business"><div class="titlepage"><div><div><h2 class="title"><a id="_using_juddi_gui_to_create_your_keygenerator_and_business"/>2.6. Using jUDDI GUI to create your keygenerator and business</h2></div></div></div>
+
+<p>Navigate to <a class="ulink" href="http://localhost:8080/juddi-gui/">http://localhost:8080/juddi-gui/</a> to get to the jUDDI-GUI. Please use the Form Login and use the credentials of the publisher you created above. You can browse around, but really the first thing that needs to be done is to create a Key Generator or Partition at <a class="ulink" href="http://localhost:8080/juddi-gui/tmodelPartitions.jsp">http://localhost:8080/juddi-gui/tmodelPartitions.jsp</a>. A Key Generator is needed to save human readable, universally unique UDDIv3 keys. Please read more about UDDI v3 formatted keys, but the short story is that UDDI v3 keys are formatted like: <span class="emphasis"><em>uddi:&lt;domain&gt;:name</em></span>. For example, if you wanted a tModel defined as "uddi:www.mycompany.com:serviceauthenticationmethod", you would first have to create a tModel key generator with value "uddi:www.mycompany.com:keygenerator".</p>
+<div class="figure"><a id="figure-GettingStarted-CreateKeygenerator"/><p class="title"><strong>Figure 2.8. Create Key Generator</strong></p><div class="figure-contents">
+
+  <div class="mediaobject"><img src="./images/GettingStarted-create_keygenerator.png" alt="Create Key Generator"/></div>
+</div></div><br class="figure-break"/>
+
+<p>Next create your business using the key generator format you just registered. For example in <a class="xref" href="#figure-GettingStarted-CreateBusiness" title="Figure 2.9. Create Business">Figure 2.9, “Create Business”</a> we use a businessKey of <span class="emphasis"><em>uddi:www.mycompany.com:mybusiness</em></span>.</p>
+<div class="figure"><a id="figure-GettingStarted-CreateBusiness"/><p class="title"><strong>Figure 2.9. Create Business</strong></p><div class="figure-contents">
+
+  <div class="mediaobject"><img src="./images/GettingStarted-create_business.png" alt="Create Business"/></div>
+</div></div><br class="figure-break"/>
+
+<p>See the Client and GUI Guide <a class="xref" href="#stam-oree">[stam-oree]</a> for more details on how to use the GUI.</p>
+</div>
+<div class="section" title="2.7. Running the demos in the disto"><div class="titlepage"><div><div><h2 class="title"><a id="_running_the_demos_in_the_disto"/>2.7. Running the demos in the disto</h2></div></div></div>
+
+<p>The jUDDI distribution ships with a lot of demos to get yourself more familiarized with the features of jUDDI. You are encouraged to go over the demos and follow the instructions in the README files. To ensure the demos work they use the root publisher. In practice you should not be using the root publisher for this, but rather your own publisher you created above. To reference your own publisher simply update the uddi.xml file in each demo. For more details on running the demos see the Client and GUI Guide <a class="xref" href="#stam-oree">[stam-oree]</a>.</p>
+</div>
+<div class="section" title="2.8. Examples on the jUDDI blog"><div class="titlepage"><div><div><h2 class="title"><a id="_examples_on_the_juddi_blog"/>2.8. Examples on the jUDDI blog</h2></div></div></div>
+
+<p>The jUDDI blog at <a class="ulink" href="http://apachejuddi.blogspot.com/">http://apachejuddi.blogspot.com/</a> has examples as well as screencasts. This can be a useful resource to learn about some new feature or to simply get started.</p>
+</div>
+<div class="section" title="2.9. What is new in jUDDI 3.2?"><div class="titlepage"><div><div><h2 class="title"><a id="_what_is_new_in_juddi_3_2"/>2.9. What is new in jUDDI 3.2?</h2></div></div></div>
+
+<p>Here’s the change log for version 3.2</p>
+<div class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+A new end user interface based on Twitter’s Bootstrap
+</li><li class="listitem">
+A new administrative user interface based on Twitter’s Bootstrap with in browser monitoring
+</li><li class="listitem">
+A client side subscription callback API
+</li><li class="listitem">
+Client distribution package
+</li><li class="listitem">
+Many more examples
+</li><li class="listitem">
+WADL to UDDI mappings
+</li><li class="listitem">
+All credentials are now encryptable with command line tools
+</li><li class="listitem">
+Removal of the porlet services
+</li><li class="listitem">
+Deployment templates for Jboss EAP 6+
+</li><li class="listitem">
+Client side digital signature support
+</li><li class="listitem">
+REST style interface for Inquiry API
+</li><li class="listitem">
+Added many more tModels to the base install
+</li><li class="listitem">
+More documentation
+</li></ul></div>
+
+</div>
+</div>
+<div class="chapter" title="Chapter 3. jUDDI Architecture"><div class="titlepage"><div><div><h2 class="title"><a id="chapter-jUDDIArchitecture"/>Chapter 3. jUDDI Architecture</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="#_juddi_server">3.1. jUDDI Server</a></span></dt><dd><dl><dt><span class="section"><a href="#_uddi_api_layer_literal_uddi_ws_literal_using_jax_ws">3.1.1. UDDI API layer <code class="literal">uddi-ws</code> using JAX-WS</a></span></dt><dt><span class="section"><a href="#_core_uddi_literal_juddi_core_literal_using_jpa">3.1.2. Core UDDI <code class="literal">juddi-core</code> using JPA</a></span></dt><dt><span class="section"><a href="#_relational_databases">3.1.3. Relational Databases</a></span></dt><dt><span class="section"><a href="#_servlet_containers">3.1.4. Servlet Containers</a></span></dt></dl></dd><dt><span class="section"><a href="#_juddi_gui_literal_juddi_gui_war_literal">3.
 2. jUDDI GUI <code class="literal">juddi-gui.war</code></a></span></dt></dl></div>
+
+<div class="section" title="3.1. jUDDI Server"><div class="titlepage"><div><div><h2 class="title"><a id="_juddi_server"/>3.1. jUDDI Server</h2></div></div></div>
+
+<p>The jUDDI Architecture leverages well known frameworks to minimize the codebase we need to maintain. The API layer uses JAX-WS, while the persistence layer uses JPA. The entire server is packages as a war archive that can be deployed to different servlet containers with minimal configuration changes. The JPA layer uses JDBC to communicate to a relational database. <a class="xref" href="#figure-jUDDIArchitecture-Architecture" title="Figure 3.1. jUDDI Architecture">Figure 3.1, “jUDDI Architecture”</a> shows the different components, where the implementation providers marked with a blue dot are the implementations we use by default.</p>
+<div class="figure"><a id="figure-jUDDIArchitecture-Architecture"/><p class="title"><strong>Figure 3.1. jUDDI Architecture</strong></p><div class="figure-contents">
+
+  <div class="mediaobject"><img src="./images/jUDDIArchitecture_server.png" alt="jUDDI Architecture Diagram"/></div>
+</div></div><br class="figure-break"/>
+
+<div class="section" title="3.1.1. UDDI API layer uddi-ws using JAX-WS"><div class="titlepage"><div><div><h3 class="title"><a id="_uddi_api_layer_literal_uddi_ws_literal_using_jax_ws"/>3.1.1. UDDI API layer <code class="literal">uddi-ws</code> using JAX-WS</h3></div></div></div>
+
+<p>The API layer is generated from the WSDL files provided with the UDDI specification. Since the 3.2 release we support both the UDDIv2 as well as the UDDIv3 API.  The <code class="literal">uddi-ws</code> components leverages <code class="literal">JAX-WS</code> annotations to bring up the UDDIv2 and v3 Endpoints.  In addition to these two sets of SOAP based services, we also support a REST based API. The REST based API is a subset of the SOAP API. The  default JAX-WS implemention used is Apache CXF, but we also offer scripted deployments for JBossWS and Axis2. Each WebService stack relies on the web.xml as well as vendor specific configuration files. For example, CXF uses a beans.xml file in the WEB-INF directory. For more details on this see  <a class="xref" href="#">???</a>.</p>
+<p>The <code class="literal">juddi-client.jar</code> can be used on the client side to communicate with the API layer. The juddi-client can be configured to use either SOAP, RMI or and inVM protocol, where the inVM protocol is the most performant. For more details on the juddi-client configuration options see the Client Guide <a class="xref" href="#stam-oree">[stam-oree]</a>.</p>
+</div>
+<div class="section" title="3.1.2. Core UDDI juddi-core using JPA"><div class="titlepage"><div><div><h3 class="title"><a id="_core_uddi_literal_juddi_core_literal_using_jpa"/>3.1.2. Core UDDI <code class="literal">juddi-core</code> using JPA</h3></div></div></div>
+
+<p>The jUDDI server logic is packaged in the <code class="literal">juddi-core.jar</code>. It implements all of the server side behavior defined in the UDDI specification. For persistence it uses the Java Peristence Api (JPA). The default JPA implemenation used is OpenJPA, but Hibernate is supported as well. The configuration for JPA implementations lives in the <code class="literal">WEB-INF/classes/META-INF/persistence.xml</code> file. This file also references the datasource that is used to connect to the datasource.</p>
+<div xmlns:d="http://docbook.org/ns/docbook" xmlns:rf="java:org.jboss.highlight.XhtmlRendererFactory" class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h2>Important</h2>
+<p>It is important to note that there are two JARs provided through maven. If you will be using Hibernate, please use the juddi-core JAR, if you are using OpenJPA, use juddi-core-openjpa.</p>
+</div>
+
+<p>The difference between these JARs is that the persistence classes within juddi-core-openjpa have been enhanced (<a class="ulink" href="http://people.apache.org/~mprudhom/openjpa/site/openjpa-project/manual/ref_guide_pc_enhance.html">http://people.apache.org/~mprudhom/openjpa/site/openjpa-project/manual/ref_guide_pc_enhance.html</a>). Unfortunately, the Hibernate classloader does not deal well with these enhanced classes, so it it important to note not to use the juddi-core-openjpa JAR with Hibernate.</p>
+</div>
+<div class="section" title="3.1.3. Relational Databases"><div class="titlepage"><div><div><h3 class="title"><a id="_relational_databases"/>3.1.3. Relational Databases</h3></div></div></div>
+
+<p>By default we ship jUDDI preconfigured with a Java based Database called <code class="literal">Derby</code>. This database persists to the local file system, typically from where the application was started.</p>
+<div xmlns:d="http://docbook.org/ns/docbook" xmlns:rf="java:org.jboss.highlight.XhtmlRendererFactory" class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h2>Note</h2>
+<p>To switch databases, you need to change the JDBC driver configuration in the datasource as well as the database dialect setting in the persistence.xml.</p>
+</div>
+
+<p>For details on switching database see the <a class="xref" href="#ConfiguringDatabaseConnections" title="4.3. Configuration Database Connections">Section 4.3, “Configuration Database Connections”</a>.</p>
+</div>
+<div class="section" title="3.1.4. Servlet Containers"><div class="titlepage"><div><div><h3 class="title"><a id="_servlet_containers"/>3.1.4. Servlet Containers</h3></div></div></div>
+
+<p>The jUDDI server is packaged up a WebArchive (<code class="literal">juddiv3.war</code>). This war archive can be deployed to different servlet containers with minimal configuration changes. By default we ship on Apache Tomcat but we also have scripted deployment support for GlassFish and JBoss.</p>
+<div xmlns:d="http://docbook.org/ns/docbook" xmlns:rf="java:org.jboss.highlight.XhtmlRendererFactory" class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h2>Tip</h2>
+<p>Most open source EE6 containers (JBoss, Geronimo, Glassfish) ship with jUDDI preconfigured to pass the JAXR tests in the TCK.</p>
+</div>
+
+<p>When switching containers you may need to use different configuration to create a datasource. Some containers already package up a WebServices stack which can be used instead of the CXF packages up in juddiv3.war/WEB-INF/lib. In that case the number of dependent jars in the <code class="literal">juddiv3.war</code> can be reduced significantly. For details on switching containers see the <a class="xref" href="#chapter-HowToDeployjUDDITo" title="Chapter 7. How to deploy jUDDI To?">Chapter 7, <em>How to deploy jUDDI To?</em></a>.</p>
+</div>
+</div>
+<div class="section" title="3.2. jUDDI GUI juddi-gui.war"><div class="titlepage"><div><div><h2 class="title"><a id="_juddi_gui_literal_juddi_gui_war_literal"/>3.2. jUDDI GUI <code class="literal">juddi-gui.war</code></h2></div></div></div>
+
+<p>The jUDDI GUI is also a Web Archive that is deployed along side the <code class="literal">juddiv3</code> server in the same servlet container. The GUI uses the <code class="literal">juddi-client</code> to communicate to the UDDI API Endpoints. It can use a SOAP, RMI or an inVM transport protocol, so the GUI can be deployed in a different location then the server as long as it can connect to the UDDI SOAP API.</p>
+<div class="figure"><a id="figure-jUDDIArchitecture-ClientGui"/><p class="title"><strong>Figure 3.2. jUDDI Client and Console Architecture</strong></p><div class="figure-contents">
+
+  <div class="mediaobject"><img src="./images/jUDDIArchitecture_clientAndGui.png" alt="jUDDI Client and GUI Diagram"/></div>
+</div></div><br class="figure-break"/>
+
+<p><a class="xref" href="#figure-jUDDIArchitecture-ClientGui" title="Figure 3.2. jUDDI Client and Console Architecture">Figure 3.2, “jUDDI Client and Console Architecture”</a> shows the admin console and the juddi-gui. Typically one one run the admin console behind a firewall. The admin console interacts over a jUDDI WS API and, among other things, it can be used to create and delete publishers.</p>
+<p>The <code class="literal">juddi-gui</code> can be configured to connect to any UDDIv2 or UDDIv3 compliant UDDI server.</p>
+<div class="figure"><a id="figure-jUDDIArchitecture-Gui"/><p class="title"><strong>Figure 3.3. jUDDI Console Architecture</strong></p><div class="figure-contents">
+
+  <div class="mediaobject"><img src="./images/jUDDIArchitecture_Gui.png" alt="jUDDI GUI Diagram"/></div>
+</div></div><br class="figure-break"/>
+
+<p>You may have a jUDDI v3 Server for each type of environment (Dev, QA and Prod) and you would only need one console to connect to each one of them.</p>
+<p>For details on using the GUI see the Client and GUI Guide <a class="xref" href="#stam-oree">[stam-oree]</a>.</p>
+</div>
+</div>
+<div class="chapter" title="Chapter 4. Administration"><div class="titlepage"><div><div><h2 class="title"><a id="chapter-Administration"/>Chapter 4. Administration</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="#_changing_the_web_server_listen_port">4.1. Changing the Web Server Listen Port</a></span></dt><dt><span class="section"><a href="#_administering_users_and_access_control">4.2. Administering Users and Access Control</a></span></dt><dd><dl><dt><span class="section"><a href="#_administrative_users">4.2.1. Administrative Users</a></span></dt><dt><span class="section"><a href="#_end_users">4.2.2. End Users</a></span></dt></dl></dd><dt><span class="section"><a href="#ConfiguringDatabaseConnections">4.3. Configuration Database Connections</a></span></dt><dd><dl><dt><span class="section"><a href="#_derby_out_of_the_box">4.3.1. Derby Out-of-the-Box</a></span></dt><dt><span class="section"><a href="#_s
 witching_to_another_database">4.3.2. Switching to another Database</a></span></dt><dt><span class="section"><a href="#_switch_to_mysql_on_tomcat_using_openjpa">4.3.3. Switch to MySQL on Tomcat using OpenJPA</a></span></dt><dt><span class="section"><a href="#_switch_to_postgres_on_tomcat_using_openjpa">4.3.4. Switch to Postgres on Tomcat using OpenJPA</a></span></dt><dt><span class="section"><a href="#_switch_to_postgres_on_jboss_using_hibernate">4.3.5. Switch to Postgres on JBoss using Hibernate</a></span></dt><dt><span class="section"><a href="#_switch_to_oracle_on_tomcat_using_hibernate">4.3.6. Switch to Oracle on Tomcat using Hibernate</a></span></dt><dt><span class="section"><a href="#_switch_to_hsql_on_tomcat_using_hibernate">4.3.7. Switch to HSQL on Tomcat using Hibernate</a></span></dt><dt><span class="section"><a href="#_switch_to_other_db">4.3.8. Switch to other db</a></span></dt><dt><span class="section"><a href="#_override_persistence_properties_in_the_juddiv3_xml">4.3.9.
  Override persistence properties in the juddiv3.xml</a></span></dt></dl></dd><dt><span class="section"><a href="#_logging">4.4. Logging</a></span></dt><dt><span class="section"><a href="#_administering_the_gui_juddi_gui_war">4.5. Administering the GUI (juddi-gui.war)</a></span></dt><dt><span class="section"><a href="#_task_signing_the_digital_signature_applet_jar_file">4.6. Task: Signing the Digital Signature Applet jar file</a></span></dt><dt><span class="section"><a href="#_administrating_your_juddi_instance_using_the_administrative_console">4.7. Administrating your jUDDI Instance using the Administrative Console</a></span></dt><dt><span class="section"><a href="#_configure_juddi">4.8. Configure jUDDI</a></span></dt><dd><dl><dt><span class="section"><a href="#_enabling_remote_access">4.8.1. Enabling Remote Access</a></span></dt></dl></dd><dt><span class="section"><a href="#_monitoring_the_status_and_statistics">4.9. Monitoring the Status and Statistics</a></span></dt><dd><dl><dt><
 span class="section"><a href="#_statistics">4.9.1. Statistics</a></span></dt><dt><span class="section"><a href="#_status">4.9.2. Status</a></span></dt></dl></dd><dt><span class="section"><a href="#_accessing_the_juddiv3_api">4.10. Accessing the jUDDIv3 API</a></span></dt><dt><span class="section"><a href="#_security_guidance">4.11. Security Guidance</a></span></dt><dd><dl><dt><span class="section"><a href="#_juddi_server_2">4.11.1. jUDDI Server</a></span></dt><dt><span class="section"><a href="#_juddi_client_and_developers">4.11.2. jUDDI Client (and developers)</a></span></dt><dt><span class="section"><a href="#_juddi_gui_web_user_interface">4.11.3. jUDDI GUI (Web user interface)</a></span></dt></dl></dd><dt><span class="section"><a href="#_backups_upgrading_and_data_migration">4.12. Backups, Upgrading and Data Migration</a></span></dt><dd><dl><dt><span class="section"><a href="#_database_backups">4.12.1. Database Backups</a></span></dt><dt><span class="section"><a href="#_config_ba
 ckup">4.12.2. Config Backup</a></span></dt></dl></dd><dt><span class="section"><a href="#_upgrading_juddi">4.13. Upgrading jUDDI</a></span></dt><dt><span class="section"><a href="#_scaling_juddi_and_federation">4.14. Scaling jUDDI and Federation</a></span></dt><dd><dl><dt><span class="section"><a href="#_scaling_the_juddi_services_multiple_servers">4.14.1. Scaling the jUDDI Services (multiple servers)</a></span></dt><dt><span class="section"><a href="#_limitations_of_juddi">4.14.2. Limitations of jUDDI</a></span></dt></dl></dd></dl></div>
+
+<div class="section" title="4.1. Changing the Web Server Listen Port"><div class="titlepage"><div><div><h2 class="title"><a id="_changing_the_web_server_listen_port"/>4.1. Changing the Web Server Listen Port</h2></div></div></div>
+
+<p>If you want to change the port Tomcat listens on to something non-standard (something other than 8080), use the following guidance.</p>
+<p>jUDDI Server (Tomcat) - This assumes you are using the jUDDI server bundled with Apache Tomcat. For other application servers, consult their documentation, however the juddiv3.xml must still be altered.</p>
+<div class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+Edit <code class="literal">conf/server.xml</code> and change the port within the &lt;Connector&gt; element.
+</li><li class="listitem">
+Edit <code class="literal">webapps/juddiv3/WEB-INF/classes/juddiv3.xml</code> and change the port number jUDDI Server Baseurl.
+</li><li class="listitem">
+Edit <code class="literal">webapps/juddiv3/WEB-INF/config.properties</code> and change the port numbers for "securityurl" and "juddipapi".
+</li><li class="listitem">
+Edit <code class="literal">webapps/juddi-gui/META-INF/config.properties</code> and change the port numbers for all of the URLs listed.
+</li></ul></div>
+
+</div>
+<div class="section" title="4.2. Administering Users and Access Control"><div class="titlepage"><div><div><h2 class="title"><a id="_administering_users_and_access_control"/>4.2. Administering Users and Access Control</h2></div></div></div>
+
+<p>As of version 3.2, jUDDI Authentication is handled from two perspectives, administrator and end user access.</p>
+<div class="section" title="4.2.1. Administrative Users"><div class="titlepage"><div><div><h3 class="title"><a id="_administrative_users"/>4.2.1. Administrative Users</h3></div></div></div>
+
+<p>Administrative users have special access to juddi-gui’s remote configuration page at <a class="ulink" href="http://localhost:8080/juddi-gui/settings.jsp">http://localhost:8080/juddi-gui/settings.jsp</a> and to the Administrative Console at <a class="ulink" href="http://localhost:8080/juddiv3/admin">http://localhost:8080/juddiv3/admin</a>. Access to both of these is configured at the container level (i.e. Jboss, Tomcat, etc). By default, users that need to access these pages need to have the "uddiadmin" role (which is defined in the WEB-INF/web.xml of both web application archives). When you are running on tomcat this configuration can be found in the <code class="literal">&lt;tomcat&gt;/conf/tomcat-users.conf</code> file.</p>
+</div>
+<div class="section" title="4.2.2. End Users"><div class="titlepage"><div><div><h3 class="title"><a id="_end_users"/>4.2.2. End Users</h3></div></div></div>
+
+<p>End users typically will either access jUDDI’s services directly at <a class="ulink" href="http://localhost:8080/juddiv3/">http://localhost:8080/juddiv3/</a> or via the user interfaces <a class="ulink" href="http://localhost:8080/juddi-gui">http://localhost:8080/juddi-gui</a>. In both cases, authentication is handled via jUDDI’s Authentication providers which is configured in <code class="literal">juddiv3.war/WEB-INF/classes/juddiv3.xml</code>.</p>
+<div class="section" title="4.2.2.1. Under the Hood"><div class="titlepage"><div><div><h4 class="title"><a id="_under_the_hood"/>4.2.2.1. Under the Hood</h4></div></div></div>
+
+<p>In order to enforce proper write access to jUDDI, each request to jUDDI needs a valid authToken. Note that read access is not restricted (by default, but can be enabled) and therefore queries into the registries are not restricted.</p>
+<p>To obtain a valid authToken a getAuthToken() request must be made, where a GetAuthToken object is passed. On the GetAuthToken object a userid and credential (password) needs to be set.</p>
+<pre class="screen">org.uddi.api_v3.GetAuthToken ga = new org.uddi.api_v3.GetAuthToken();
+ga.setUserID("username");
+ga.setCred("password");
+org.uddi.api_v3.AuthToken token = securityService.getAuthToken(ga);</pre>
+
+<p>The property <code class="literal">juddi/auth/*</code> in the <code class="literal">juddiv3.xml</code> configuration file can be used to configure how jUDDI is going to check the credentials passed in on the GetAuthToken request. By default jUDDI uses the JUDDIAuthenticator implementation. You can provide your own authentication implementation or use any of the ones mention below. The implementation needs to implement the org.apache.juddi.auth.Authenticator interface, and <code class="literal">juddi/auth/authenticator/class</code> property should refer to the implementation class.</p>
+<p>There are two phases involved in Authentication. The authenticate phase and the identify phase. Both of these phases are represented by a method in the Authenticator interface.</p>
+<p>The authenticate phase occurs during the GetAuthToken request as described above. The goal of this phase is to turn a user id and credentials into a valid publisher id. The publisher id (referred to as the "authorized name" in UDDI terminology) is the value that assigns ownership within UDDI. Whenever a new entity is created, it must be tagged with ownership by the authorized name of the publisher. The value of the publisher id can be completely transparent to jUDDI - the only requirement is that one exists to assign to new entities. Thus, the authenticate phase must return a non-null publisher id. Upon completion of the GetAuthToken request, an authentication token is issued to the caller.</p>
+<p>In subsequent calls to the UDDI API that require authentication, the token issued from the GetAuthToken request must be provided. This leads to the next phase of jUDDI authentication - the identify phase.</p>
+<p>The identify phase is responsible for turning the authentication token (or the publisher id associated with that authentication token) into a valid UddiEntityPublisher object. The UddiEntityPublisher object contains all the properties necessary to handle ownership of UDDI entities. Thus, the token (or publisher id) is used to "identify" the publisher.</p>
+<p>The two phases provide compliance with the UDDI authentication structure and grant flexibility for users that wish to provide their own authentication mechanism. Handling of credentials and publisher properties can be done entirely outside of jUDDI. However, jUDDI provides the Publisher entity, which is a sub-class of UddiEntityPublisher, to persist publisher properties within jUDDI. This is used in the default authentication and is the subject of the next section.</p>
+</div>
+<div class="section" title="4.2.2.2. Choosing a Cryptographic Provider"><div class="titlepage"><div><div><h4 class="title"><a id="_choosing_a_cryptographic_provider"/>4.2.2.2. Choosing a Cryptographic Provider</h4></div></div></div>
+
+<p>jUDDI provides a number of cryptographic providers. Some of them may not be available in your region of the world due to export restrictions. All of these providers are provides that are included with the Oracle Java Runtime Environment.</p>
+<div class="section" title="4.2.2.2.1. jUDDI’s Cryptographic Providers"><div class="titlepage"><div><div><h5 class="title"><a id="_juddi_s_cryptographic_providers"/>4.2.2.2.1. jUDDI’s Cryptographic Providers</h5></div></div></div>
+
+<div xmlns:d="http://docbook.org/ns/docbook" xmlns:rf="java:org.jboss.highlight.XhtmlRendererFactory" class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h2>Tip</h2>
+<p>The AES256Cryptor requires the Sun Java unlimited strength Crypograhpic Extensions to be installed. OpenJDK users are not affected by this.</p>
+</div>
+
+<p>In the following section, Authentication, a Cryptographic Provider must be selected using the following property in juddiv3.xml:</p>
+<pre class="screen">juddi/cryptor</pre>
+
+</div>
+<div class="section" title="4.2.2.2.2. jUDDI Server Providers"><div class="titlepage"><div><div><h5 class="title"><a id="_juddi_server_providers"/>4.2.2.2.2. jUDDI Server Providers</h5></div></div></div>
+
+<div class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+org.apache.juddi.cryptor.DefaultCryptor - Password Based Encryption With MD5 and DES
+</li><li class="listitem">
+org.apache.juddi.cryptor.TripleDESCrytor - Triple DES 168 bit
+</li><li class="listitem">
+org.apache.juddi.cryptor.AES128Cryptor - Advanced Encryption Standard 128 bit
+</li><li class="listitem">
+org.apache.juddi.cryptor.AES256Cryptor - Advanced Encryption Standard 256 bit
+</li></ul></div>
+
+</div>
+</div>
+<div class="section" title="4.2.2.3. jUDDI Client Providers (Java and .NET)"><div class="titlepage"><div><div><h4 class="title"><a id="_juddi_client_providers_java_and_net"/>4.2.2.3. jUDDI Client Providers (Java and .NET)</h4></div></div></div>
+
+<div class="itemizedlist"><ul class="itemizedlist"><li class="listitem">
+org.apache.juddi.v3.client.crypto.DefaultCryptor - Password Based Encryption With MD5 and DES
+</li><li class="listitem">
+org.apache.juddi.v3.client.crypto.TripleDESCrytor - Triple DES 168 bit
+</li><li class="listitem">
+org.apache.juddi.v3.client.crypto.AES128Cryptor - Advanced Encryption Standard 128 bit
+</li><li class="listitem">
+org.apache.juddi.v3.client.crypto.AES256Cryptor - Advanced Encryption Standard 256 bit
+</li></ul></div>
+
+<div class="section" title="4.2.2.3.1. Encrypting a Password"><div class="titlepage"><div><div><h5 class="title"><a id="_encrypting_a_password"/>4.2.2.3.1. Encrypting a Password</h5></div></div></div>
+
+<p>To encrypt a password, the jUDDI Tomcat server comes with a basic Windows Batch file and a Unix Bash script which will fire off the correct Java command. It is located at the following path:</p>
+<pre class="screen">{tomcat_home}/bin/juddi-cryptor.bat/sh</pre>
+
+<div xmlns:d="http://docbook.org/ns/docbook" xmlns:rf="java:org.jboss.highlight.XhtmlRendererFactory" class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h2>Tip</h2>
+<p>The jUDDI-Client (Java only) uses the same encryption keys and the jUDDI Server, therefore encrypted passwords using this tool will work with the jUDDI-client’s configuration file.</p>
+</div>
+
+<p>In addition, an MD5 hashing program is included to assist with setting users passwords for the MD5XMLDocAuthenticator.</p>
+<pre class="screen">{tomcat_home}/bin/juddi-md5.bat/sh</pre>
+
+</div>
+</div>
+<div class="section" title="4.2.2.4. jUDDI Authentication"><div class="titlepage"><div><div><h4 class="title"><a id="_juddi_authentication"/>4.2.2.4. jUDDI Authentication</h4></div></div></div>
+
+<p>The default authentication mechanism provided by jUDDI is the JUDDIAuthenticator. The authenticate phase of the JUDDIAuthenticator simply checks to see if the user id passed in has an associated record in the Publisher table. No credentials checks are made. If, during authentication, the publisher does not exist, it the publisher is added on the fly.</p>
+<div xmlns:d="http://docbook.org/ns/docbook" xmlns:rf="java:org.jboss.highlight.XhtmlRendererFactory" class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h2>Warning</h2>
+<p>Do not use jUDDI Default Authenticator in production. It does not compare passwords to anything!</p>
+</div>
+
+<p>The identify phase uses the publisher id to retrieve the Publisher record and return it. All necessary publisher properties are populated as Publisher inherits from UddiEntityPublisher.</p>
+<pre class="screen">juddi/auth/authenticator/class = org.apache.juddi.auth.JUDDIAuthentication</pre>
+
+</div>
+<div class="section" title="4.2.2.5. XMLDocAuthentication"><div class="titlepage"><div><div><h4 class="title"><a id="_xmldocauthentication"/>4.2.2.5. XMLDocAuthentication</h4></div></div></div>
+
+<p>The XMLDocAuthentication implementation needs a XML file on the classpath. The juddiv3.xml file would need to look like</p>
+<pre class="screen">juddi/auth/authenticator/class = org.apache.juddi.auth.XMLDocAuthentication
+juddi/auth/usersfile = juddi-users.xml</pre>
+
+<p>where the name of the XML can be provided but it defaults to juddi-users.xml, and the content of the file would looks something like</p>
+<pre class="screen">&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;
+&lt;juddi-users&gt;
+    &lt;user userid="anou_mana" password="password" /&gt;
+    &lt;user userid="bozo" password="clown" /&gt;
+    &lt;user userid="sviens" password="password" /&gt;
+&lt;/juddi-users&gt;</pre>
+
+<p>The authenticate phase checks that the user id and password match a value in the XML file. The identify phase simply uses the user id to populate a new UddiEntityPublisher.</p>
+</div>
+<div class="section" title="4.2.2.6. CryptedXMLDocAuthentication"><div class="titlepage"><div><div><h4 class="title"><a id="_cryptedxmldocauthentication"/>4.2.2.6. CryptedXMLDocAuthentication</h4></div></div></div>
+
+<p>The CryptedXMLDocAuthentication implementation is similar to the XMLDocAuthentication implementation, but the passwords are encrypted.</p>
+<pre class="screen">juddi/auth/authenticator/class = org.apache.juddi.auth.CryptedXMLDocAuthentication
+juddi/auth/usersfile = juddi-users-encrypted.xml
+juddi/cryptor = org.apache.juddi.cryptor.DefaultCryptor</pre>
+
+<p>where the name user credential file is juddi-users-encrypted.xml, and the content of the file would looks something like</p>
+<pre class="screen">&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;
+&lt;juddi-users&gt;
+    &lt;user userid="anou_mana" password="+j/kXkZJftwTFTBH6Cf6IQ=="/&gt;
+    &lt;user userid="bozo" password="Na2Ait+2aW0="/&gt;
+    &lt;user userid="sviens" password="+j/kXkZJftwTFTBH6Cf6IQ=="/&gt;
+&lt;/juddi-users&gt;</pre>
+
+<p>The DefaultCryptor implementation uses BEWithMD5AndDES and Base64 to encrypt the passwords. Note that the code in the AuthenticatorTest can be used to learn more about how to use this Authenticator implementation. You can plugin your own encryption algorithm by implementing the org.apache.juddi.cryptor.Cryptor interface and referencing your implementation class in the juddi.cryptor property.
+The authenticate phase checks that the user id and password match a value in the XML file. The identify phase simply uses the user id to populate a new UddiEntityPublisher.</p>
+</div>
+<div class="section" title="4.2.2.7. MD5XMLDocAuthenticator"><div class="titlepage"><div><div><h4 class="title"><a id="_md5xmldocauthenticator"/>4.2.2.7. MD5XMLDocAuthenticator</h4></div></div></div>
+
+<p>The MD5XMLDocAuthenticator implementation is similar to the XMLDocAuthentication implementation, but the passwords are hashed using MD5.</p>
+<pre class="screen">juddi/auth/authenticator/class = org.apache.juddi.auth.MD5XMLDocAuthenticator
+juddi/auth/usersfile = juddi-users-hashed.xml
+juddi/cryptor = org.apache.juddi.cryptor.DefaultCryptor</pre>
+
+<p>where the name user credential file is juddi-users-encrypted.xml, and the content of the file would looks something like</p>
+<pre class="screen">&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;
+&lt;juddi-users&gt;
+    &lt;user userid="anou_mana" password="+j/kXkZJftwTFTBH6Cf6IQ=="/&gt;
+    &lt;user userid="bozo" password="Na2Ait+2aW0="/&gt;
+    &lt;user userid="sviens" password="+j/kXkZJftwTFTBH6Cf6IQ=="/&gt;
+&lt;/juddi-users&gt;</pre>
+
+<p>The DefaultCryptor implementation uses BEWithMD5AndDES and Base64 to encrypt the passwords. Note that the code in the AuthenticatorTest can be used to learn more about how to use this Authenticator implementation. You can plugin your own encryption algorithm by implementing the org.apache.juddi.cryptor.Cryptor interface and referencing your implementation class in the juddi.cryptor property.
+The authenticate phase checks that the user id and password match a value in the XML file. The identify phase simply uses the user id to populate a new UddiEntityPublisher.</p>
+</div>
+<div class="section" title="4.2.2.8. LDAP Authentication"><div class="titlepage"><div><div><h4 class="title"><a id="_ldap_authentication"/>4.2.2.8. LDAP Authentication</h4></div></div></div>
+
+<p>LdapSimpleAuthenticator provides a way of authenticating users using LDAP simple authentication. It is fairly rudimentary and more LDAP integration is planned in the future, but this class allows you to authenticate a user based on an LDAP prinicipal, provided that the principal (usually the distinguished name) and the juddi publisher ID are the same.</p>
+<p>To use this class you must add the following properties to the juddi3v.xml file:</p>
+<pre class="screen">juddi/auth/authenticator/class=org.apache.juddi.auth.LdapSimpleAuthenticator
+juddi/auth/authenticator/url=ldap://localhost:389
+juddi/auth/authenticator/style=simple</pre>
+
+<p>The juddi/authenticator/url property configures the LdapSimpleAuthenticator class so that it knows where the LDAP server resides. Future work is planned in this area to use the LDAP uid rather than the LDAP principal as the default publisher id.</p>
+<p>LdapExpandedAuthenticator provides a slightly more flexible way to authenticate users via LDAP.</p>
+<pre class="screen">juddi/auth/authenticator/class=org.apache.juddi.v3.auth.LdapSimpleAuthenticator
+juddi/auth/authenticator/url=ldap://localhost:389
+juddi/auth/authenticator/style=simple
+juddi/auth/authenticator/ldapexp=CN=%s, OU=Users,DC=Domain, etc</pre>
+
+</div>
+<div class="section" title="4.2.2.9. JBoss Authentication"><div class="titlepage"><div><div><h4 class="title"><a id="_jboss_authentication"/>4.2.2.9. JBoss Authentication</h4></div></div></div>
+
+<p>Finally is it possible to hook up to third party credential stores. If for example jUDDI is deployed to the JBoss Application server it is possible to hook up to it’s authentication machinery. The JBossAuthenticator class is provided in the docs/examples/auth directory. This class enables jUDDI deployments on JBoss use a server security domain to authenticate users.</p>
+<div xmlns:d="http://docbook.org/ns/docbook" xmlns:rf="java:org.jboss.highlight.XhtmlRendererFactory" class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h2>Tip</h2>

[... 1349 lines stripped ...]


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org