Version 9.6
 —  Access via UDDI  —

CentraSite's UDDI Architecture


Overview

CentraSite behaves like a UDDI registry, as described in the UDDI specification. The main components of CentraSite's UDDI environment are:

The following figure illustrates the multiple UDDI servlet scenario, in which multiple UDDI clients and a JAXR client interact with a single CentraSite registry/repository:

graphics/multic.png

Although there can be multiple UDDI servlets, a CentraSite installation is a single-node UDDI registry. Each UDDI servlet just provides an alternative endpoint for the UDDI web services.

When UDDI data is stored in the CentraSite Registry/Repository, it is mapped to a data model that is common for JAXR and UDDI clients. The data model is an XML representation of JAXR data. Since this representation is also used to store data from the JAXR API, UDDI and JAXR clients act on the same data. Note that JAXR instance-based security is the basis of the CentraSite UDDI security, so changes in the JAXR instance-based security may affect UDDI security.

Top of page

Client Access to CentraSite via UDDI

UDDI clients can access the CentraSite registry using the following URLs.

The URL for the inquiry API is: http://<hostname>:53307/UddiRegistry/inquiry, where <hostname> is the name of the host machine. For example, if the UDDI client is running on the same machine as the UDDI servlet, the URL is http://localhost:53307/UddiRegistry/inquiry.

The URL for the publish API is: http://<hostname>:53307/UddiRegistry/publish.

Every UDDI servlet in a multiple UDDI servlet environment has these endpoints.

Top of page

Localization

Localization for UDDI means that the error messages are localized. These messages are given in the content of an errorInfo element in the disposition report. Following is an example disposition report:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <soapenv:Fault>
      <faultcode>Client</faultcode> 
      <faultstring>Client Error</faultstring> 
      <faultactor /> 
      <detail>
      <dispositionReport generic="3.0" xmlns="urn:uddi-org:api_v3">
        <result errno="10120">
          <errInfo errCode="E_authTokenRequired">
            The authentication token value dummy passed in the authInfo
            argument of the UDDI request is not valid.
          </errInfo> 
        </result>
      </dispositionReport>
      </detail>
    </soapenv:Fault>
  </soapenv:Body>
</soapenv:Envelope>

Top of page

Modeling of the Node Business Entity

The modeling of the Node Business Entity follows the Recommended Modeling of Node Business Entity specified in section 6.2.2 of the UDDI 3.0.2 specification.

The following sections describe the registry constructs used to model the Node Business Entity.

Key Generator tModel

The UDDI objects needed for the self-modeling of the node business entity have keys defined internally by CentraSite that belong to the key partition that is owned by the key generator:

<tModel
  tModelkey="...:keyGenerator"
  xmlns="urn:uddi-org:api_v3">
    <name xml:lang="en-US">centrasite-node-com:keyGenerator</name>
    <description xml:lang="en-US">
        Key generator for self registering node business entity
    </description>
    <categoryBag>
        <keyedReference 
          tModelkey="...:keyGenerator" 
          keyName="uddi-org:types:keyGenerator" 
          keyValue="keyGenerator"/>
      </categoryBag>
    </categoryBag>
</tModel>

The key generator is preloaded in the UDDI registry.

Node Business Entity

The node business entity that is preloaded into the Registry/Repository looks like this:

<businessEntity                     
  businessKey="...">
    <name xml:lang="en-US">NodeBusinessEntity</uddi:name>
    <description xml:lang="en-US">
        Node Business Entity of the CentraSite UDDI registry
    </description>
    <categoryBag>
        <uddi:keyedReference
          keyName=""
          keyValue="node" 
          tModelkey="...:keyGenerator"/>
    </categoryBag>
</businessEntity>

The node business entity references certain businessService objects which reflect the UDDI API sets. The first UDDI registry interacting with the Registry/Repository adds the businessService objects. It also adds the bindingTemplate objects pointing to the API set's endpoints offered by the UDDI registry. Every additional UDDI registry in a multiple UDDI servlet environment adds bindingTemplate objects pointing to the additional endpoints where the UDDI services can be called. The tModels referenced by the businessService objects are preloaded into the UDDI registry. Due to the fact that multiple bindingTemplate objects are defined for each UDDI registry , the bindingTemplate objects get node generated keys.

The Inquiry Service

<businessService 
  serviceKey="uddi:centrasite.node.com:service_inquiry" 
  businessKey="..."
  xmlns="urn:uddi-org:api_v3">
    <name xml:lang="en-US">UDDI Inquiry Services</name>
    <description xml:lang="en-US">Web Service supporting UDDI Inquiry APIs 
    </description>
    <bindingTemplates>
        <bindingTemplate 
          bindingKey="..." 
          serviceKey="uddi:centrasite.service.com:inquiry">
            <description xml:lang="en-US">
                This binding supports the UDDI Programmer's API Specification 
                For inquiry
            </description>
            <accessPoint useType="endPoint">
                http://localhost:53307/UddiRegistry/inquiry
            </accessPoint>
            <tModelInstanceDetails>
                <tModelInstanceInfo
                  tModelkey="...:keyGenerator">
                    <description xml:lang="en-US">
                        This access point supports the UDDI Version 2.0 
                        Programmer's API Specification for inquiry
                   </description>
                </tModelInstanceInfo>
            </tModelInstanceDetails>
        </bindingTemplate>
        <bindingTemplate 
          bindingKey="..." 
          serviceKey="uddi:centrasite.node.com:service_inquiry">
            <description xml:lang="en-US">
                This binding supports the UDDI Programmer's API Specification 
                for inquiry
            </description>
            <accessPoint useType="endPoint">
               http://localhost:53307/UddiRegistry/inquiry
            </accessPoint>
            <tModelInstanceDetails>
                <tModelInstanceInfo tModelkey="...:keyGenerator">
                    <description xml:lang="en-US">
                        This access point supports the UDDI Version 3.0 
                        Programmer's API Specification for inquiry
                   </description>
                </tModelInstanceInfo>
            </tModelInstanceDetails>
        </bindingTemplate>
    </bindingTemplates>
</businessService>

The Publish Service

<businessService 
  serviceKey="uddi:centrasite.node.com:service_publish"
  businessKey="..."
  xmlns="urn:uddi-org:api_v3">
    <name xml:lang="en-US">UDDI Publish API Services</name>
    <description xml:lang="en-US">
        Web Service supporting UDDI specifications
    </description>
    <bindingTemplates>
        <bindingTemplate 
          bindingKey="..." 
          serviceKey="uddi:centrasite.node.com:service_publish">
            <description xml:lang="en">
                This binding supports the UDDI Programmer's API Specification
                for publication
            </description>
            <accessPoint useType="endPoint">
                http://localhost:53307/UddiRegistry/publish
            </accessPoint>
            <tModelInstanceDetails>
                <tModelInstanceInfo
                  tModelkey="...:keyGenerator">
                    <description xml:lang="en">
                        This binding supports the UDDI Version 2.0 Programmer's 
                        API Specification for publication
                    </description>
                </tModelInstanceInfo>
            </tModelInstanceDetails>
        </bindingTemplate>
        <bindingTemplate 
          bindingKey="uddi:centrasite.node.com:binding_publish_v3" 
          serviceKey="uddi:centrasite.node.com:service_publish">
            <description xml:lang="en">
                This binding supports the UDDI Programmer's API Specification 
                for publication
            </description>
            <accessPoint useType="endPoint">
                http://localhost:53307/UddiRegistry/publish
            </accessPoint>
            <tModelInstanceDetails>
                <tModelInstanceInfo tModelkey="...:keyGenerator">
                    <description xml:lang="en">
                        This binding supports the UDDI Version 3.0 Programmer's
                        API Specification for publication
                    </description>
                </tModelInstanceInfo>
            </tModelInstanceDetails>
        </bindingTemplate>
    </bindingTemplates>
</businessService>

The Security Service

<businessService 
  serviceKey="uddi:centrasite.node.com:service_security" 
  businessKey="..."
  xmlns="urn:uddi-org:api_v3">
    <name xml:lang="en">UDDI Security Service</name>
    <description xml:lang="en-US">
       Web Service supporting UDDI Security API
    </description>
    <bindingTemplates>
        <bindingTemplate 
          bindingKey="..." 
          serviceKey=" uddi:centrasite.node.com:service_security">
            <description xml:lang="en">
                This binding to authenticate with the UDDI services using the
                UDDI Security API.
            </description>
            <accessPoint useType="endPoint">
               http://localhost:53307/UddiRegistry/publish
            </accessPoint>
            <tModelInstanceDetails>
                <tModelInstanceInfo tModelkey="...:keyGenerator">
                    <description xml:lang="en">
                         This binding's supports the UDDI v3 Security API.
                    </description>
                </tModelInstanceInfo>
            </tModelInstanceDetails>
        </bindingTemplate>
    </bindingTemplates>
</businessService>

Custody and Ownership Transfer Service

<businessService 
  serviceKey="uddi:centrasite.node.com:service_ownership_transfer" 
  businessKey="..."
  xmlns="urn:uddi-org:api_v3">
    <name xml:lang="en">UDDI Custody and Ownership Transfer API</name>
    <description xml:lang="en-US">
       Web Service providing partly support for the UDDI Custody and Ownership 
       Transfer API
    </description>
    <bindingTemplates>
        <bindingTemplate 
          bindingKey="uddi..." 
          serviceKey=" uddi:centrasite.node.com:service_ownership_transfer">
            <description xml:lang="en-US">
                This binding provides partly support for the UDDI Custody and 
                Ownership Transfer API.
            </description>
            <accessPoint useType="endPoint">
               http://localhost:53307/UddiRegistry/publish
            </accessPoint>
            <tModelInstanceDetails>
                <tModelInstanceInfo 
                  tModelkey="...:keyGenerator">
                    <description xml:lang="en-US">
                        This binding provides partly support for the UDDI 
                        Custody and Ownership Transfer API
                    </description>
                </tModelInstanceInfo>
            </tModelInstanceDetails>
        </bindingTemplate>
    </bindingTemplates>
</businessService>

WSDL

The referenced tModels refer to the WSDL file shown below. Each port, specified by the <port> element, specifies an access point. The WSDL representation is a description of the web services that are provided by the UDDI servlets.

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="UDDI_API_V3"
  xmlns="http://schemas.xmlsoap.org/wsdl/"
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  xmlns:api_v3_binding="urn:uddi-org:api_v3_binding"
  xmlns:tns="urn:uddi-org:api_v3"
  targetNamespace="urn:uddi-org:api_v3">

    <documentation>
    UDDI V3 Security, Publication, Inquiry and Transfer APIs.
    </documentation>

    <import 
      namespace="urn:uddi-org:api_v3_binding"
      location="http://uddi.org/wsdl/uddi_api_v3_binding.wsdl"/>
    <import 
      namespace="urn:uddi-org:api_v3_binding"
      location="http://uddi.org/wsdl/uddi_custody_v3_binding.wsdl"/>
    <service name="UDDI_Security_SoapService">
        <port 
          name="UDDI_Security_PortType" 
          binding="api_v3_binding:UDDI_Security_SoapBinding">
            <soap:address 
              location="http://localhost:53307/UddiRegistry/publish"/>
        </port>
    </service>
    <service name="UDDI_Publication_SoapService">
        <port 
          name="UDDI_Publication_PortType" 
          binding="api_v3_binding:UDDI_Publication_SoapBinding">
            <soap:address 
              location="http://localhost:53307/UddiRegistry/publish"/>
        </port>
    </service>
    <service name="UDDI_Inquiry_SoapService">
        <port 
          name="UDDI_Inquiry_PortType" 
          binding="api_v3_binding:UDDI_Inquiry_SoapBinding">
            <soap:address  
              location="http://localhost:53307/UddiRegistry/inquiry"/>
        </port>
    </service>
    <service name="UDDI_Ownership_Transfer_SoapService">
        <port 
          name="UDDI_Inquiry_PortType" 
          binding="api_v3_binding:UDDI_Inquiry_SoapBinding">
            <soap:address  
              location="http://localhost:53307/UddiRegistry/inquiry"/>
        </port>
    </service>
</definitions>

The WSDL defines the proper endpoints of each web service. Each UDDI registry adds a port pointing to its endpoints. The first UDDI registry also inserts the service elements. The WSDL file can be accessed via the URIs:

The WSDL is stored in the CentraSite repository.

Top of page