UDDI Extensions
Various extensions to the UDDI standard have been published by the standards bodies OASIS and W3C. The extensions described below are implemented in CentraSite's UDDI environment.
Using WSDL in a UDDI Registry
Since a UDDI registry houses information about web services and their providers, it is essential that the information contained in a web service's WSDL document is accurately mapped to the UDDI data model. This means that subsequent search operations to discover a registered web service are possible, based on the information that is mapped from the WSDL.
How CentraSite performs WSDL-to-UDDI mappings is based on the recommendations that OASIS has published. The technical description of the OASIS recommendation for WSDL-to-UDDI mapping can be found on the OASIS website.
Using WS-PolicyAttachment
An XML-based expression grammar for policies is described in the Web Services Policy Framework (WS-Policy) specification, published by the W3C. The specification also describes how a policy can be associated with a registry object.
The CentraSite UDDI registry supports WS-PolicyAttachment version 1.2 and 1.5. Policy attachments can be either WSDL-based or UDDI-based. Currently, CentraSite supports UDDI-based policy attachments. With UDDI-based policy attachments, the policies are modeled in the UDDI registry using UDDI elements.
Version 1.2 Support
The CentraSite WS-PolicyAttachment support for version 1.2 covers the following aspects of the WS-PolicyAttachment specification:
Supported Policy Subjects
CentraSite supports the UDDI-based policy attachments for the following policy subjects:
Service Provider Policy Subject
Service Policy Subject
Endpoint Policy Subject
Referencing Remote Policy Expressions
An example for a remote policy reference is shown by the following uddi:businessService that is taken from the WS-PolicyAttachment specification:
<businessService serviceKey="…" >
<name>…</name>
<description>…</description>
<bindingTemplates>…</bindingTemplates>
<categoryBag>
<keyedReference
keyName="Policy Expression for example's Web services"
keyValue="http://www.example.com/myservice/policy"
tModelKey="uuid:a27078e4-fd38-320a-806f-6749e84f8005" />
</categoryBag>
</businessService>
The uddi:businessService is attached to a WS-Policy that accessible through the URL http://www.example.com/myservice/policy. The uddi:keyedReference represents the attachment. It is referencing the remote policy reference category system via its uddi:tModelKey and its value holds the URI of the policy document.
Registering Reusable Policy Expressions
A reusable policy expression is represented by a dedicated uddi:tModel in the UDDI registry. The following uddi:tModel shows an example:
<tModel tModelKey="uuid:04cfa…">
<name>…</name>
<description xml:lang="EN">
Policy Expression for example's Web services
</description>
<overviewDoc>
<description xml:lang="EN">WS-Policy Expression</description>
<overviewURL>http://www.example.com/myservice/policy</overviewURL>
</overviewDoc>
<categoryBag>
<keyedReference
keyName="Reusable policy Expression"
keyValue="policy"
tModelKey="uuid:fa1d77dc-edf0-3a84-a99a-5972e434e993" />
<keyedReference
keyName="Policy Expression for example's Web services"
keyValue="http://www.example.com/myservice/policy"
tModelKey="uuid:a27078e4-fd38-320a-806f-6749e84f8005" />
</categoryBag>
</tModel>
The uddi:tModel comes with two uddi:keyedReferences. The first uddi:keyedReference specifies the uddi:tModel to represent a reusable policy expression. The second one points to the document holding the policy expression. An example that shows the attachment of a reusable policy expression is given by the following uddi:businessService:
<businessService serviceKey="…" >
<name>…</name>
<description>…</description>
<bindingTemplates>…</bindingTemplates>
<categoryBag>
<keyedReference
keyName="Policy Expression for example's Web services"
keyValue="uuid:04cfa…"
tModelKey="uuid:a27f7d45-ec90-31f7-a655-efe91433527c" />
</categoryBag>
</businessService>
The uddi:businessService holds a keyedReference pointing to the uddi:tModel holding the reusable policy expression. The uddi:tModelKey of the uddi:keyedReference points to the local policy reference uddi:tModel.
Registering Policies in UDDI Version 3
CentraSite supports UDDI-based policy attachments for UDDI version 2 and 3.
tModels to Support UDDI-Based WS-PolicyAttachments
CentraSite provides the tModels necessary to support UDDI-based WS-PolicyAttachments.
Remote Policy Reference Category System
This tModel is used to attach a policy to a UDDI entity by referencing the policy's URI.
<tModel tModelKey="uddi:schemas.xmlsoap.org:remotepolicyreference:2003_03" >
<name>http://schemas.xmlsoap.org/ws/2003/03/remotepolicyreference</name>
<description xml:lang="EN">
Category system used for UDDI entities to point to an external
WS-PolicyAttachment Policy Expression that describes their
characteristics. See WS-PolicyAttachment specification for further details.
</description>
<categoryBag>
<keyedReference
keyName="uddi-org:types:categorization"
keyValue="categorization"
tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" />
</categoryBag>
</tModel>
WS-Policy Types Category System
This tModel is used to categorize tModels as representing Policy Expressions. There is only one valid value, namely policy, that indicates this very fact. It is recommended that tModels categorized as representing Policy Expressions reference no more and no less than this very Policy Expression using the Remote Policy Reference category system.
<tModel tModelKey=" uddi:schemas.xmlsoap.org:policytypes:2003_03" >
<name>http://schemas.xmlsoap.org/ws/2003/03/policytypes</name>
<description xml:lang="EN">
WS-Policy Types category system used for UDDI tModels to characterize them
as WS-Policy – based Policy Expressions.
</description>
<categoryBag>
<keyedReference
keyName="uddi-org:types:categorization"
keyValue="categorization"
tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" />
</categoryBag>
</tModel>
Local Policy Reference Category System
This tModel is used to attach a Policy Expression to a UDDI entity by referencing the UDDI entity that represents this Policy Expression. The Local Policy Reference category system is based on tModelKeys. It is expected that referenced tModels are registered with the same UDDI registry and are categorized as representing Policy Expressions using the WS-Policy Types category system.
UDDI Key (V3): uddi:schemas.xmlsoap.org:remotepolicyreference:2003_03
UDDI V1,V2 format key: uuid:a27f7d45-ec90-31f7-a655-efe91433527c
Categorization: categorization
Checked: Yes
<tModel tModelKey="uddi:schemas.xmlsoap.org:localpolicyreference:2003_03" >
<name>http://schemas.xmlsoap.org/ws/2003/03/localpolicyreference</name>
<description xml:lang="en">
Category system used for UDDI entities to point to a WS-Policy
Policy Expression tModel that describes their characteristics.
See WS-PolicyAttachment specification for further details.
</description>
<categoryBag>
<keyedReference
keyName="uddi-org:types:categorization"
keyValue="categorization"
tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62aB4" />
<keyedReference
keyName="uddi-org:entityKeyValues"
keyValue="tModelKey"
tModelKey="uuid:916b87bf-0756-3919-8eae-97dfa325e5a4" />
</categoryBag>
</tModel>
Version 1.5 Support
The CentraSite WS-PolicyAttachment support for version 1.5 covers the same aspects as for version 1.2. Additionally, CentraSite provides the following tModels necessary to support UDDI-based WS-PolicyAttachments:
uddi:w3.org:ws-policy:v1.5:attachment:localpolicyreference
uddi:w3.org:ws-policy:v1.5:attachment:policytypes
uddi:w3.org:ws-policy:v1.5:attachment:remotepolicyreference
Extending UDDI Publisher API Set to Enable Physical Deletion of tModels
For the physical deletion of un-referenced tModels, CentraSite extends the UDDI Publication API set. Appendix H of the UDDI V3 Specification describes how UDDI can be extended. For removing a tModel from a registry, CentraSite introduces the request purge_tModel. This extension is only supported for UDDI version 3.
Arguments
The purge_tModel request has the same arguments as the delete_tModel V3 request:
authInfo: This optional argument is an element that contains an authentication token.
tModelKey: One or more required uddiKey values that represent specific instances of known tModel data.
Behavior
The request removes a hidden tModel from the registry that is not referenced by any other UDDI object.
Returns
On successful completion an empty message is returned.
Caveats
In the case of an error, a disposition report will be returned within a SOAP fault. In addition to the errors which are common to all API calls, the following errors are relevant here:
E_invalidKeyPassed: Signifies that one of the uddiKey values passed did not match any known tModelKey values, or multiple instances of the same tModelKey values were passed. The error is also returned if the referenced tModel is not hidden, or it is still referenced. This means there are four conditions for this error. The different conditions should be reflected in the
errInfo element:
The specified tModel cannot be found
Multiple references to the same tModel
The specified tModel is not hidden
The specified tModel is still referenced
E_userMismatch: Signifies that one or more of the tModelKey values passed refers to data that is not owned by the individual publisher who is represented by the authentication token.