Skip to main content

The role of private UDDI nodes, Part 2: Private nodes and operator nodes

Steve Graham, Web Services Architect, IBM Emerging Internet Technologies
Photo of Steve Graham
Steve Graham is an architect in the Emerging Technologies division of IBM Software Group. He has spent the last several years working on service-oriented architectures, most recently as part of the IBM Web Services Initiative. Prior to this, Steve worked as a technologist and consultant working with various emerging technologies such as Java and XML, and before that he was an architect and consultant with the IBM Smalltalk consulting organization. Before joining IBM, Steve was a developer with Sybase, a consultant, and a faculty member in the Department of Computer Science at the University of Waterloo. Steve holds a BMath and MMAth in computer science from The University of Waterloo.You can reach him at sggraham@us.ibm.com.

Summary:  Part one of this series introduced the topic of Web service discovery and examined six basic UDDI species. In this installment, Steve Graham contrasts the programming models associated with using a UDDI operator node and those models associated with using a private, non-operator node. He also discusses two kinds of additional API and related facilities: those that support interactions between different private UDDI nodes, and those that allow interoperability between private UDDI nodes and the UDDI operator cloud.

Date:  01 May 2001
Level:  Introductory
Activity:  972 views

Private UDDI nodes and the UDDI operator cloud make up two distinct usage categories, each of which implies a very different programming model. Although they both implement the 20 APIs represented in the UDDI API specification, the implementations for the operator cloud and for the private nodes optimize different areas of the design, corresponding to their different uses. A set of additional functions discussed in this article specifies collaboration among private nodes and between the operator nodes and operator cloud. Let's take a look at each of these nodes and the ways in which they can be made to communicate effectively.

Operator cloud use: design-time discovery

The operator cloud contains Web services data for different kinds of businesses in various geographies and industries. Some of this data represents legitimate business and information about the business processes exposed as Web services. Some of this data represents organizations posing on the transactional Web, but do not provide Web services. Finally, some of this data can represent fraudulent or misleading information on business intent. So, we must be able to distinguish between meaningful entries and entries that are a waste of time.

The operator cloud also contains a wide range of mechanisms to describe services. Although the IBM Web Services Architecture recommends the use of WSDL to describe Web services, the tModel facility in UDDI actually allows any mechanism to describe Web services. The tModel could, among other things, be something computable, like a WSDL service-interface definition, or a reference to a text document describing the service in prose, or a description using RosettaNet' PIP format. Its flexibility allows for these different options.

But the universality of the UDDI Business Registry limits its usefulness for dynamic binding. It is not a target-rich environment for doing dynamic service find and bind operations since the ratio of potential targets to actual matches for the operation are very low. Businesses generate a lot of false hits that are not interesting or legitimate business partners. Service descriptions allow too varied a set of find operation results to be immediately translated into code for service invocation. Future versions of the UDDI API may improve the find APIs to address some of these concerns.

If Web services discovery relies only on the operator cloud, all discovery operations must be performed at design-time. So you can not rely on supporting tools to build the application's use of the UDDI entries returned from the find operations. This means that the tModel must be examined in detail, and the Web service must be invoked by handcrafted code based on the text-prose description of the tModel.


Private node use: design-time or run-time discovery

The contents of the UDDI entries within a private node can be constrained to follow certain patterns. These patterns include only approved partners (for example, partner-catalog UDDI species) or only allowed WSDL-based tModels. Efforts taken at publish-time to ensure a target-rich environment will have significant impact on the programming model for requestor-applications doing find calls against the private UDDI and using the resulting entries to bind to Web services.

For example, a requestor-application suite executes find calls against a partner-catalog UDDI node. Because of publish-restrictions on this private node, both the legitimacy of the service provider and the computability of the service description found in associated tModels (for example, entries reflecting Web services described using WSDL), guarantee the application. These guarantees mean the programming model may use dynamic find and bind operations at run-time. These dynamic find and bind operations are the foundation of the loosely-coupled nature of Web services.

The requestor-application specifies the find call parameters (for example, find all services that implement the tModel corresponding to some RFQ web service interface standard). The find operation executes at run-time against the partner-catalog UDDI node; the resulting set is all of the approved business partners that support the RFQ Web service interface definition. The application is then free to invoke any or all of the Web services found. Because they all implement the same tModel, and the tModel refers to a WSDL service interface definition, the application can use a single service proxy as a front-end to the RFQ Web service of any business partner selected by the find operation.


Implementing private nodes vs. operator nodes

Due to the possible volume of data and the replication semantics imposed by the operator-agreement, operator cloud nodes must be designed to optimize data throughput. Private nodes are free from this restriction, but the intended use of private nodes encourages other design tradeoffs.

Private nodes have several distinguishing characteristics. They can be lighter weight, they do not have to implement the replication API, and their transaction volumes are significantly less than operator nodes. Some large organizations may choose to implement private nodes as a federation of nodes, in which case a replication model may be required. A private UDDI implementation should emphasize design characteristics such as ease of configuration or reconfiguration (this is, pluggability of supporting components, including the XML Parser, SOAP message processor, database, Web application server, etc.) and deployment flexibility to decide which UDDI APIs to deploy (that is, standard UDDI APIs as well as value-added APIs).


Managing the relationships between UDDI nodes

The world is somewhat simpler when there is only one species of UDDI. The UDDI spec was written to support use-cases related to the single UDDI operator cloud. The replication semantics and the conventions surrounding the use of Universally Unique Identifiers (UUIDs) for entity keys specify the relationship between the nodes (all operator nodes in the cloud).

When we introduce additional species of UDDI, all which are private nodes that do not collaborate using the replication agreement, we must clarify how information can be shared between private nodes.


Additional UDDI functionality

This article proposes an additional set of functions based on the standard UDDI APIs that address the management of collaborations among private UDDI nodes, and between private UDDI nodes and the UDDI Business Registry.

Consider the following scenario involving private UDDI nodes, and the issue of publishing and subscribing service data between them. The URL for acme.com's html Web presence is www.acme.com. The transactional Web presence (that is, www.acme.com/uddi) is a URL to a UDDI API-compliant private node (that is, a portal UDDI). This portal UDDI contains the Web services metadata from acme.com.

The collection of remotely hosted UDDI entries should be easy to accumulate and manage via a nice interface. Also, the target UDDI node should be kept in sync with the original source of the data (for example, an e-marketplace UDDI, the UDDI cloud or the partners' transactional Web presence UDDI node). It should be possible to move entries back and forth from private nodes to the operator cloud, making it easy for the developer to verify that the entry is accurate before it is published to the cloud or other UDDI nodes.

Here is a set of functions that help to solve these problems. Some of these functions will make excellent candidates for version 3.0 of the UDDI API specification:

Management of UUID assignment

  • UDDI is very particular about how entity keys (UUIDs) are assigned. Operator nodes assign keys, not the business that makes the registration. This affects how the save_XXXX APIs work. A save_businessEntity operation, for example, uses the value in the businessKey as a switch to decide whether the save is a new entry (when businessKey is empty) or an update to an existing entity (when businessKey has a UUID). So entries from private UDDI nodes new to the operator cloud must be presented to the operator node with an empty key. The UDDI operator node itself must assign the value of the key.
    In order to encourage the use of private nodes, we must provide a facility for users to create UDDI entries in private nodes (for example, portal nodes, e-marketplace nodes, etc.). Subsequently, we must publish these entries to the UDDI operator cloud. Support, in this case, involves negotiating the assignment of UUID keys. If the private node originally creates the entry, the private node will assign the key. If the entry is subsequently published to an operator node, either the key must be removed from the entry before publishing to allow the operator to assign UUID values to these keys, or the operator node must approve the UUID assignment algorithm used by the private UDDI node.

Facilitate copy-and-paste between nodes

  • It must be easy to select an entry from a private or operator UDDI node and copy the entry into a target UDDI node. For example, partner.com has an entry for an important Web service in its portal UDDI node. Acme.com can use this copy-and-paste facility to select this entry (perhaps through a simple browse facility built on top of UDDI4J). By the click of a button, acme.com can copy that entry into a target UDDI node (for example, acme.com's partner-catalog UDDI node).

Subscribe-for changes to existing entries

  • This function is related to the copy-and-paste operations described above. For any change to the copied entry results, a notification is sent to the target specified in the subscription. The target is a Web service invoked when the notification is generated. The user specifies the implementation of the notification-handler Web service that may ignore all notifications, delete or update the entry in a target private UDDI node, or even post the change to a separate node for examination.

Subscribe-to pattern

  • The requestor doing a find operation against a UDDI node asks to be notified of any new entry matching a specified pattern. This function can, for example, set up a subscription service within an e-marketplace UDDI node. FlowerWholesalers.com sets up a wholesale e-marketplace catering to flower retailers. Participants in this e-marketplace place subscriptions against the UDDI node. The combination of property values (that is, taxonomy) and service tModel use forms a pattern against which each publish operation is compared. When the pattern matches, the notification-handler Web service is sent a notification specified by the subscription.

Caching and delegation

  • A caching and delegation model provides an alternative to the copy-paste-subscribe mechanism to populate a private UDDI node and keep it in sync with collaborating UDDI nodes. The user still selects a UDDI entry (or pattern). But instead of duplicating the entry from the original UDDI node to the target UDDI node, an indirection is set up. This indirection acts like a real UDDI entry. However, when found, it goes back to the original source UDDI node to retrieve details. For example, acme.com might not keep the complete businessEntity entries for its partners. Rather, it uses the indirection mechanism to satisfy the find_business, and redirects follow-up get_business requests through to the UDDI instance that is the original location of the businessEntity entry.

    In this way, the administrator of the UDDI node can choose which entries should be cached (for example, copy/paste and subscribe) and which entries should be redirected.

Conclusion

The deployment of private UDDI registries presents additional opportunities for Web services discovery and integration beyond the those provided by the UDDI Business Registry. In order to encourage the adoption of private UDDI registries, the UDDI API needs to be extended to support federating multiple UDDI registries.


Resources

About the author

Photo of Steve Graham

Steve Graham is an architect in the Emerging Technologies division of IBM Software Group. He has spent the last several years working on service-oriented architectures, most recently as part of the IBM Web Services Initiative. Prior to this, Steve worked as a technologist and consultant working with various emerging technologies such as Java and XML, and before that he was an architect and consultant with the IBM Smalltalk consulting organization. Before joining IBM, Steve was a developer with Sybase, a consultant, and a faculty member in the Department of Computer Science at the University of Waterloo. Steve holds a BMath and MMAth in computer science from The University of Waterloo.You can reach him at sggraham@us.ibm.com.

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=SOA and Web services
ArticleID=11537
ArticleTitle=The role of private UDDI nodes, Part 2: Private nodes and operator nodes
publish-date=05012001
author1-email=sggraham@us.ibm.com
author1-email-cc=

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Rate a product. Write a review.

Special offers