<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
]>
<chapter id="uddi">
  <title>UDDI Integration</title>   
       
       <section>
       		<title>Overview</title>

       		<para>
       		The integration of a UDDI client into the RiftSaw runtime codebase allows for the auto-registration
       		of BPEL services to an UDDI registry upon deployment of the service. The registration
       		process uses the jUDDI-3 client libraries which are capable of communicating to any
       		UDDI v3 complaint registry. 
       		</para>
       		
       		<para>Upon deployment both the Service and its BindingTemplate (EndPoint information) are registered, upon undeployment
       		the BindingTemplate is removed.
       		</para>
       		
       </section>
  
       <section>
       		<title>UDDI config properties</title>

			<para>
			By default RiftSaw uses the jUDDI client libraries of JBossESB/SOA-P, and the client
			configuration is found in the deploy/jbossesb.saw/esb.juddi.client.xml. Both the
			name of the ClerkManager and the Clerk itself are specified in the
			<emphasis>bpel.properties</emphasis> file.
			</para>
       		
       		<para>
       		The UDDI properties in the bpel.properties file are:
       		</para>
       		
       		<itemizedlist>
       			<listitem>
       			<para>
       			bpel.uddi.registration
       			</para>
       			<para>
       			boolean
       			</para>
       			<para>
       			If set to 'false', the UDDI integration is turned off. The RiftSaw installation process
       			sets this value to 'true' only if the jbossesb-registry.sar is detected containing a jUDDI v3
       			registry. In all other case it is defaulted to false.
       			</para>
       			</listitem>
       			<listitem>
       			<para>
       			bpel.uddi.client.impl
       			</para>
       			<para>
       			String
       			</para>
       			<para>
       			Name of the a class that implements the org.jboss.soa.bpel.runtime.engine.ode.UDDIRegistration interface.
       			The RiftSaw installation process set this value to org.jboss.soa.bpel.uddi300.UDDI300RegistrationImpl 
       			if JBossESB-4.7 is detected. JBossESB-4.7 uses
       			the jUDDI-3.0.0 client libary, while SOA-P-5.0.0 and future version of JBossESB will use jUDDI-3.0.1 or higher and
       			for those it is set to org.jboss.soa.bpel.uddi.UDDIRegistrationImpl.
       			</para>
       			</listitem>
       			<listitem>
       			<para>
       			bpel.uddi.clerk.config
       			</para>
       			<para>
       			String
       			</para>
       			<para>
       			Defines the path to the bpel.uddi.client.xml config file. This can be left commented out if
       			you want to use the jbossesb.sar/esb.uddi.client.xml. However in that case a bpel.uddi.clerk.manager
       			needs to be defined.
       			</para>
       			</listitem>
       			<listitem>
       			<para>
       			bpel.uddi.clerk.manager
       			</para>
       			<para>
       			String
       			</para>
       			<para>
       			Defines the ClerkManager name that will be used if the bpel.uddi.clerk.config is left commented out.
       		    This value should correspond to the name of the manager
       			in the esb.juddi.client.xml. For JBossESB-4.7 this is 'test-manager', while for SOA-P-5.0.0 
       			and newer version of JBossESB it is 'esb-registry'. Note that if the bpel.uddi.clerk.manager is defined, the
       			setting of the bpel.uddi.clerk.manager is ignored.
       			</para>
       			</listitem>
       			<listitem>
       			<para>
       			bpel.uddi.clerk
       			</para>
       			<para>
       			String
       			</para>
       			<para>
       			Defines the Clerk name that will be used. This value should correspond to the name of the clerk
       			in the esb.juddi.client.xml. By default this is set to 'BPEL_clerk'.
       			</para>
       			</listitem>
       		</itemizedlist>
        </section>
        
        <section>
       		<title>Default configurations</title>
       		<para>When RiftSaw is deployed to a JBossAS-5.1.0, jUDDI v3 is not installed, and therefor
       		the UDDI integration is turned off (bpel.uddi.registration=false).</para>
       		
       		<para>When RiftSaw is deployed to JBossAS-5.1.0 + JBossESB-4.7, the UDDI integration is
       		turned on. By default we use the jUDDI client library which ships with the JBossESB, which
       		is configured in the jbossesb.sar/esb.uddi.client.xml, with manager name 'test-manager'. The bpel.uddi.client.impl is set 
       		to org.jboss.soa.bpel.uddi300.UDDI300RegistrationImpl.
       		</para>
       		
       		<para>When RiftSaw is deployed to SOA-P-5.0.0 (or JBossESB > 4.7) UDDI integration is
       		turned on and the bpel.uddi.client.impl is set to org.jboss.soa.bpel.uddi.UDDIRegistrationImpl.
       		Again the jbossesb.sar/esb.uddi.client.xml is used, with manager name 'esb.registry'.
       		</para>
       	</section>
       	
       	<section>
       		<title>Other UDDI v3 Registries</title>
       		
       		<para>Other UDDI v3 complaint registries can be used, however the UDDIv3 spec only requires
       		communication using the UDDI WebServices. To set up SOAP based communication specify the JAXWS-Transport.
       		At this point it makes sense to no longer use the the esb.uddi.client.xml, but rather use your
       		own bpel.uddi.client.xml. For more details please see the jUDDI v3 documentain.
       		</para>
       	</section>
       	
       	<section>
       		<title>UDDI Registry Entities and UDDI Seed Data</title>
       		
       		<para>In the esb.uddi.client.xml a few properties are defined that are used by the Clerk at 
       		registration time. These settings of these values can be customized, however they must
       		correspond to the UDDI seed data specified for the jbossesb publisher, in the 
       		jbossesb-registry.sar/juddi_custom_install_data. So you will need to change it there as well.
       		</para>
       		
       		<para>The clerk is configured to use the jbossesb publisher and the <emphasis>keyDomain
       		</emphasis> is set to "esb.jboss.org".
       		</para>
       		
       		<para>The <emphasis>businessKey</emphasis> is set to "redhat-jboss".</para>
       		
            <para>The <emphasis>serviceDescription</emphasis> is set to "BPEL Service deployed by Riftsaw".</para>
            
            <para>The <emphasis>bindingDescription</emphasis> is set to "BPEL Endpoint deployed by Riftsaw".</para>
       		
       		<para>Note that in SOA-P-5 the jbossesb-registry.sar/esb.uddi.xml contains a property 
       		<emphasis>juddi.seed.always</emphasis> which is set to "true". This means that that it
       		is always trying to load the root seed data on startup of the server. It is recommended
       		to turn this value to "false" once you are content with the UDDI Seed Data. 
       		</para>
       		
       		<warning>When running on JBossESB-4.7, the root seed data will only be installed if the UDDI tables are
       		still empty. This means that you need to make sure that the jUDDI Root Seed Data install process
       		did not run before installing RiftSaw. In other words, do not start JBossESB-4.7 before installing
       		RiftSaw.</warning>
       		
       	</section>
       		
</chapter>
