Oracle Service Registry provides several ways to define and use validation services for taxonomies or identifier systems. For details about Oracle Service Registry taxonomies, please see User's Guide, Taxonomy: Principles, Creation and Validation. This chapter focuses on custom validation services that you can deploy:
Locally on Oracle Service Registry - Local validation service.
Remotely to a SOAP server, for example the Systinet Server for Java - External validation service.
There are three different Java interfaces for validation services, one for each of the main UDDI data structures. These interfaces correspond to the WSDL Port Types of the Validation Service defined in the UDDI specification.
UDDI v3 validation services must implement org.systinet.uddi.client.valueset.validation.v3.UDDI_ValueSetValidation_PortType .
UDDI v2 validation services must implement org.systinet.uddi.client.vv.v2.ValidateValues .
UDDI v1 validation services must implement org.systinet.uddi.client.vv.v1.ValidateValues .
These interfaces are similar enough that we will only describe v3 validation. Your validation service must implement the interface UDDI_ValueSetValidation_PortType. This interface only has the validate_values method which has only one parameter, Validate_values. This parameter is a wrapper for real parameters: optional authInfo and basic UDDI data structures (businessEntities, businessServices, bindingTemplates, tModels and publisherAssertions) to validate. The validate_values method returns DispositionReport. If validation passes successfully, the DispositionReport should contain only one Result with errNo equals UDDIErrorCodes.E_SUCCESS.
Once the validation service is implemented, you can deploy the validation service locally on Oracle Service Registry. To deploy the validation service on Oracle Service Registry
Create a classes subdirectory under REGISTRY_HOME/app/uddi/services/WASP-INF and copy the class file into this directory (with respect to subdirectories corresponding to packages).
Shutdown Oracle Service Registry, delete the REGISTRY/work directory, and restart Oracle Service Registry.
To deploy an external validation service, you must create a deployment package.
This section shows you how to implement and package an external validation service that will be deployed to Systinet Server for Java. We show you how to package and deploy the ISBN validation service from the validation demo described in Validation. We assume you have already built the Validation demo.
We also assume Oracle Service Registry is installed in the REGISTRY_HOME folder and running at http://localhost:8888/registry/ and that
Systinet Server for Java is installed in WASP_HOME folder and running at http://localhost:6060/
To package and deploy a validation service to Systinet Server for Java:
Create a deployment package.
Create the jar file ExampleValidation.jar with the following structure:
Copy ISBNValidation.class from REGISTRY_HOME/demos/advanced/validation/build/classes to the package.
Copy the wsdl and xsd files from REGISTRY_HOME/doc/wsdl to the package.
Copy the package.xml file shown at Example 12 to the package.
Deploy the validation package with required Oracle Service Registry client packages into Systinet Server for Java.
copy %REGISTRY_HOME%\dist\uddiclient_api_v3.jar %WASP_HOME%\app\system\uddi
copy %REGISTRY_HOME%\dist\uddiclient_value_set_validation_v3.jar %WASP_HOME%\app\system\uddi
copy ExampleValidation.jar %WASP_HOME%\app\system\uddi
Shutdown the Systinet Server for Java, delete the WASP_HOME/work directory, and restart the Systinet Server for Java
Now you can upload the checked taxonomy from REGISTRY/demos/advanced/validation/data. For more information, please see User's Guide Uploading Taxonomies.
Modify the validation service endpoint as shown in Figure 10
You can run and test the validation service using Validation demo described in Validation.
Example 12. package.xml
<?xml version="1.0" encoding="UTF-8"?> <package xmlns="http://systinet.com/wasp/package/1.2" xsi:schemaLocation= "http://systinet.com/wasp/package/1.2 http://systinet.com/wasp/package/1.2" targetNamespace="http://my.org" version="1.0" name="ISBNValidation" client-package="false" library="false" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://my.org" xmlns:UDDIClient-value-set-validation-v3= "http://systinet.com/uddi/client/value-set-validation/v3/5.0"> <dependency ref="UDDIClient-value-set-validation-v3:UDDIClient-value-set-validation-v3" version="5.0"/> <service-endpoint name="ISBNValidation" path="/ISBNValidation" service-instance="tns:ISBNValidationInstance" processing="UDDIClient-value-set-validation-v3:UDDIClientProcessing"> <wsdl uri="uddi_vs_v3.wsdl" xmlns:wsdl="urn:uddi-org:vs_v3_binding" service="wsdl:UDDI_ValueSetValidation_SoapService"/> </service-endpoint> <service-instance name="ISBNValidationInstance" implementation-class="demo.uddi.validation.ISBNValidation" preload="false" ttl="600" instantiation-method="shared"/> </package>