CentraSite behaves like a UDDI registry, as described in the UDDI specification. The main components of CentraSite's UDDI environment are:
The CentraSite Registry/Repository, in which the UDDI objects are stored.
One or more UDDI servlets running on different application servers. Each UDDI servlet implements the web services of the UDDI API sets.
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:
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.
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.
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>
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.
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.
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.
Inquiry API set
Publication API set
Security Policy API set
Custody and Ownership Transfer API Set
<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>
<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>
<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>
<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>
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:
http://localhost:53307/UddiRegistry/inquiry?WSDL
http://localhost:53307/UddiRegistry/publish?WSDL
The WSDL is stored in the CentraSite repository.