Publishing WSDL Files to a UDDI Registry

Overview

You can register Web Services in the Web Services Repository using Web Services Description Language (WSDL) files. The Policy Studio can retrieve a WSDL file from the file system, from a URL, or from a UDDI registry. When you have registered a WSDL file in the Web Services Repository, you can use the Publish WSDL Wizard to publish the WSDL file to a UDDI registry. You can also use the Find WSDL Wizard to search for the selected WSDL file in a UDDI registry. This topic explains how to perform both of these tasks.

For background information and an introduction to general UDDI concepts, see Retrieving WSDL Files from a UDDI Registry. For details on how to register WSDL files, see Web Service Repository.

Finding WSDL Files

You can search a UDDI registry to determine if a Web Service is already published in the registry. To search for a selected WSDL file in a specified UDDI registry, perform the following steps:

  1. In the Policy Studio tree, expand the Business Services -> Web Services Repository node.

  2. Right-click a WSDL node (for example, http://HOSTNAME/TestService/StockQuote.svc?WSDL, where HOSTNAME is the endpoint host of the Web service).

  3. Select Find in UDDI Registry to launch the Find WSDL Wizard.

  4. In the Find WSDL screen, select a UDDI Registry from the list. You can add or edit a registry connection using the buttons provided. For details on configuring a registry connection, see Connecting to a UDDI Registry.

  5. You can select an optional language Locale from the list. The default is No Locale.

  6. Click Next. The WSDL Found in UDDI Registry screen displays the result of the search in a tree. The Node Counts field shows the total numbers of each UDDI entity type returned from the search (businessEntity, businessService, bindingTemplate, and tModel).

  7. You can right-click to edit a UDDI entity node in the tree, if necessary (for example, add a description, add a category or identifier node, or delete a duplicate node).

  8. Click the Refresh button to run the search again.

  9. Click Finish.

The Find WSDL Wizard provides is a quick and easy way of finding a selected WSDL file published in a UDDI registry. For more fine-grained ways of searching a UDDI registry (for example, for specific WSDL or UDDI entities), see Retrieving WSDL Files from a UDDI Registry.

Publishing WSDL Files

To publish a WSDL file registered in the Web Services Repository to a UDDI registry, perform the following steps:

  1. Expand the Business Services -> Web Services Repository tree node.

  2. Right-click a WSDL node (for example, http://HOSTNAME/TestService/StockQuote.svc?WSDL, where HOSTNAME is the host from which the Web service is registered).

  3. Select Publish WSDL to UDDI Registry to launch the Publish WSDL Wizard.

  4. Perform the steps in the wizard screens described in the next sections.

Step 1: Enter Virtualized Service Address and WSDL URL for Publishing in UDDI Registry

When you register a WSDL file in the Web Services Repository, the API Gateway exposes a virtualized version of the Web Service. The host and port for the Web Service are changed dynamically to point to the machine running the API Gateway. The client can then retrieve the WSDL for the virtualized Web Service from the API Gateway, without knowing its real location.

This screen enables you to optionally override the service address locations in the WSDL file with the virtualized addresses exposed by the API Gateway. You can also override the WSDL URL published to the UDDI registry. Complete the following fields:

Mapping of Service Addresses to Virtualized Service Addresses

You can enter multiple virtual service address mappings for each service address specified in the selected WSDL file. If you do not enter a mapping, the original address location in the WSDL file is published to the UDDI registry. If one or more mappings are provided, corresponding UDDI bindingTemplates are published in the UDDI registry, each with a different access point (virtual service address). This enables you to publish the access points of a service when it is exposed on different ports/schemes using the API Gateway.

When you launch the wizard, the mapping table is populated with a row for each wsdl:service, wsdl:port, soap:address, soap12:address, or http:address in the selected WSDL file. To modify an existing entry, select a row in the table, and click Edit. Alternatively, click Add to add an entry. In the Virtualize Service Address dialog, enter the virtualized service address. For example, if the API Gateway is running on a machine named roadrunner, the new URL on which the Web service is available to clients is: http://roadrunner:8080/TestServices/StockQuote.svc.

WSDL URL:

You can enter a WSDL URL to be published to the UDDI registry in the corresponding tModel overviewURL fields. If you do not enter a URL, the WSDL URL in the Original WSDL URL field is used. For example, an endpoint service is at http://coyote.qa.acmecorp.com/TestService/StockQuote.svc. Assume this service is virtualized in the API Gateway and exposed at http://HOST:8080/TestService/StockQuote.svc, where HOST is the machine on which the API Gateway is running. The http://HOST:8080/TestService/StockQuote.svc URL is entered as the virtual service address, and http://HOST:8080/TestService/StockQuote.svc?WSDL is entered as the WSDL URL to Publish.

[Note] Note

If incorrect URLs are published, you can edit these in the UDDI tree in later steps in this wizard, or when browsing the registry.

Click Next when finished.

Step 2: View WSDL to UDDI Mapping Result

You can use this screen to view the unpublished mapping of the WSDL file to a UDDI registry structure. You can also edit a specific mapping in the tree view. This screen includes the following fields:

Mapping of WSDL to a UDDI Registry Structure:

The unpublished mappings from the WSDL file to the UDDI registry are displayed in the table. For example, this includes the relevant businessService, bindingTemplate, tModel, Identifier, Category mappings. You can select a tree node to display its values in the table below.

You can optionally edit the values for a specific mapping in the table (for example, update a value, or add a key or description for the selected UDDI entity). You can also right-click a tree node to edit it (for example, add a description, add a category or identifier node, or delete a duplicate node).

Retrieve service address from WSDL instead of bindingTemplate access point:

When selected, this ensures that the bindingTemplate access point does not contain the service port address, and is set to WSDL instead. This means that you must retrieve the WSDL to get the service access point. When selected, the bindingTemplate contains an additional tModelInstanceInfo that points to the uddi:uddi.org.wsdl:address tModel. This option is not selected by default.

Include WS-Policy as:

When selected, you can choose one of the following options to specify how WS-Policy statements in the WSDL file are included in the registry:

Remote Policy Expressions Each WS-Policy URL in the WSDL that is associated with a mapped UDDI entity is accessed remotely. For example, a businessService is categorized with the uddi:w3.org:ws-policy:v1.5:attachment:remotepolicyreference tModel where the keyValue holds the remote WS-Policy URL. This is the default option.
Reusable Policy Expressions Each WS-Policy URL in the WSDL that is associated with a mapped UDDI entity has a separate tModel published for it. Other UDDI entities (for example, businessService) can then refer to these tModels. These are reusable because UDDI entities published in the future can also use these tModels. You can do this in Step 4: Select a duplicate publishing approach by selecting the Reuse duplicate tModels option.


Click Next when finished.

Step 3: Select a Registry for Publishing

Use this screen to select a UDDI registry in which to publish the WSDL to UDDI mapping. Complete the following fields:

Select Registry

Select an existing UDDI registry to browse for WSDL files from the Registry drop-down list. To configure the location of a new UDDI registry, click Add. Similarly, to edit an existing UDDI registry location, click Edit. For details on how to configure a UDDI connection, see Connecting to a UDDI Registry.

Select Locale:

You can select an optional language locale from this list. The default is No Locale.

Click Next when finished.

Step 4: Select a Duplicate Publishing Approach

This screen is displayed only if mapped WSDL entities already exist in the UDDI registry. Otherwise, the wizard skips to step 5. This screen includes the following fields:

Select Duplicate Mappings

The Mapped WSDL to publish pane on the left displays the unpublished WSDL mappings from Step 2. The Duplicates for WSDL mappings in UDDI registry pane on the right displays the nodes already published in the registry. The Node List at the bottom right shows a breakdown of the duplicate nodes.

Edit Duplicate Mappings

You can eliminate duplicate mappings by right-clicking a tree node in the right or left pane, and selecting edit to update a specific mapping in the dialog. Select the Refresh button on the right to run the search again, and view the updated Node List. Alternatively, you can configure the options in the next field.

Select Publishing Approach for Duplicate Entries:

Select one of the following options:

Reuse duplicate tModels Publishes the selected entries from the tree on the left, and reuses the selected duplicate entries in the tree on the right. This is the default option. Some or all duplicate tModels (for example, for portType, binding, and reusable WS-Policy expressions) that already exist in the registry can be reused. This means that a new businessService that points to existing tModels is published. Any entries selected on the left are published, and any referred to tModels on the left now point to selected duplicate tModels on the right. By default, this option selects all businessServices on the left, and all duplicate tModels on the right. If there is more than one duplicate tModels, only the first is selected.
Overwrite duplicates Publishes the selected entries from the tree on the left, and overwrites the selected duplicate entries in the tree on the right. When a UDDI entity is overwritten, its UUID key stays the same, but all the data associated with it is overwritten. This is not just a transfer of additions or differences. You can also overwrite some duplicates and create some new entries. By default, this option selects all businessServices and tModels on the left and all duplicate businessServices and tModels on the right. If there is more than one duplicate, only the first is selected. The default overwrites all selected duplicates and does not create any new UDDI entries, unless there is a new referred to tModel (for example, for a reusable WS-Policy expression).
Ignore duplicates Publishes the selected entries from the tree on the left, and ignores all duplicates. You can proceed to publish the mapped WSDL to UDDI data. New UDDI entries are created for each item that is selected in the tree on the left.


Click Next when finished.

[Note] Note

If you select duplicate businessServices in the tree, and select Overwrite duplicates, the wizard skips to Step 6 when you click Next.

Step 5: Create or Search for Business

Use this screen to specify a businessEntity for the Web Service. You can create a new businessEntity or search for an existing one in the UDDI registry. Complete the following fields:

Creating a New businessEntity

This is the default option. Enter a Name and Description for the businessEntity, and click Publish.

Searching for an Existing businessEntity

To search for an existing businessEntity name, perform the following steps:

  1. Select the Search for an existing businessEntity in the UDDI registry option.

  2. In the Search tab, ensure the Name Search option is selected.

  3. Enter a Name option (for example, Acme Corporation).

Alternatively, you can select the Advanced Search option to search by different criteria such as Keys, Categories, or tModels. For more details, see Retrieving WSDL Files from a UDDI Registry.

Advanced Options

You can also select a range of search options on the Advanced tab (for example, Exact match, Case sensitive, or Service subset). For more details, see Retrieving WSDL Files from a UDDI Registry.

The Node Counts field shows the total numbers of each UDDI entity type returned from the search (businessEntity, businessService, bindingTemplate, and tModel).

Click Next when finished.

Step 6: Publish WSDL

Use this screen to publish the WSDL to the UDDI registry.

Selected businessEntity for Publishing:

This field displays the name and tModel key of the businessEntity to be published. Click the Publish WSDL button on the right.

Published WSDL:

This field displays the tree of the UDDI mapping for the WSDL file. You can right-click to edit or delete any nodes in the tree if necessary, and click Refresh to run the search again. Click Publish WSDL to publish your updates.

Click Finish.