| By Anne Thomas Manes | Article Rating: |
|
| September 26, 2003 12:00 AM EDT | Reads: |
23,988 |
UDDI (Universal Description, Discovery and Integration) is a registry for Web services. It provides a mechanism to advertise and discover Web services. Although you don't need to use UDDI to implement a Web services solution, you'll find that a UDDI registry greatly simplifies the management and administration of your services, particularly once they have reached a certain critical mass.
Once you've developed more than a few services, and once you start giving access to those services to more than a few controlled individuals, management starts to get more challenging. Potential service consumers need a way to search for available services, to determine which services might be applicable to their projects, and to find metadata about those services. In particular, a service consumer must find the WSDL (Web Services Description Language) files that define a service. UDDI was designed to support these requirements.
A business may set up multiple UDDI registries in-house to support intranet and extranet operations, and a business may use UDDI registries set up by its customers and business partners. The UDDI Business Registry (UBR) is a free, public registry operated by IBM, Microsoft, SAP, and NTT, although few businesses feel comfortable advertising their business services in such an insecure public forum.
One key difference between a UDDI registry and other registries and directories is that UDDI provides a mechanism to categorize businesses and services using taxonomies. For example, service providers can use a taxonomy to indicate that a service implements a specific domain standard, or that it provides services to a specific geographic area. These taxonomies make it easier for consumers to find services that match their specific requirements.
Now, of course, in order for consumers to find a service, the service provider must first properly register the service. There are many different ways to register a service, so it's important to define registration conventions so that consumers know what to search for.
In July 2003, the standards group that manages the UDDI specification (the OASIS UDDI-Spec Technical Committee) published a Technical Note called "Using WSDL in a UDDI Registry, Version 2.0." This Technical Note defines conventions for registering a Web service based on information in the service's WSDL definition. (This Technical Note supercedes the previous UDDI Best Practices document, "Using WSDL in a UDDI Registry, Version 1.08.")
The UDDI Data Model
A UDDI registry manages information about service types and service implementations. Going back to basic object-oriented concepts, a type is the definition of a thing, and an implementation is an instance of a thing. A service-type registration, called a technical model (tModel), represents a technical specification or some other metadata. For example, a tModel could represent a WSDL document that defines a Web service.
A service implementation registration represents a service offered by a specific service provider. It specifies information about the business entity that offers the service (businessEntity), describes the service (businessService), and captures the binding information (bindingTemplate) required to use the service. The binding Template captures the service endpoint address, and associates the service with the tModels that represent its technical specifications. Figure 1 shows the UDDI data model that captures these registrations.

UDDI also uses tModels to represent taxonomies. Service providers categorize UDDI registrations using a construct called a keyedReference. A keyedReference allows you to assign property values to a UDDI entity using a name/value pair. The "name" is the tModelKey of the taxonomy tModel. The "value" is the descriptive information supplied for this categorization. You may define a limited set of valid values (a Value Set) for a taxonomy. For example, you could define a taxonomy to represent the deployment status of a service, and define a Value Set with values of "development", "test", and "production". To indicate that a service is in production, you would add a keyedReference to the businessService entity that represents the service. The keyedReference would specify the tModelKey for the deployment status tModel taxonomy, and a value of "production". It would look something like this:
<keyedReference
tModelKey="uuid:2e444afb-33e5-
3a7b-81b7-1cb8a373f457"
keyName="deployment status"
keyValue="production"/>
You'll notice that the keyedReference includes three attributes: tModelKey, keyName, and keyValue. The tModelKey and keyValue attributes are required. The keyName attribute is optional and insignificant. The keyName attribute allows you to assign a human-readable name to the keyedReference attribute, but you cannot search the registry using this name.
The WSDL Data Model
A WSDL file describes a Web service. A WSDL file describes what functionality a Web service offers, how it communicates, and where to find it. Figure 2 shows the WSDL data model, and shows the relationship of the various definition elements.

The what part of a WSDL document (a portType) defines the abstract interface of a Web service. A portType is a reusable definition component. Multiple providers can offer Web services that implement the same portType. A portType specifies what operations the abstract service supports, and it specifies the input and output messages associated with each operation. Each message is defined in a separate message definition, which in turn references element or type definitions in the types section.
The how part of a WSDL document (a binding) maps a portType to a concrete set of formats and protocols. A binding indicates how the input and output messages defined in the referenced portType should be packaged into a message, and it specifies what communication protocols can be used to convey the messages. As with portTypes, a WSDL binding is a reusable definition component. Multiple service providers can support the same WSDL binding. A service can also implement multiple bindings of the same portType, thereby supporting multiple protocols.
The where part of a WSDL document (a service) describes a specific Web service implementation. A Web service implementation contains one or more ports. A port implements the referenced binding and specifies the endpoint of that Web service binding. A business might offer multiple endpoints to a particular service, each implementing a different binding.
Mapping WSDL to UDDI
The "Using WSDL in a UDDI Registry" Technical Note defines a mapping model between WSDL and UDDI that supports the reusability characteristics of the WSDL data model.
Figure 3 shows a Web service description that consists of three different WSDL files for the portType, binding, and service definitions. The service definition imports the binding definition, and the binding definition imports the portType definition. By breaking the descriptions into multiple files, the portType and binding definitions support reusability.

This is the approach people should take when defining corporate standards or industry-specific domain standards. A standards group should define the abstract service portTypes and bindings, but it should not define specific service implementations. A service provider that implements a standard service description should not redefine the standard definitions. It should import the standard definitions.
The WSDL-to-UDDI mapping model is designed to help users find services that implement standard definitions. It also helps users find services that support a specific set of protocols, such as SOAP over HTTP. The Technical Note defines a new set of canonical tModels to help capture the necessary information. These tModels include categorization systems to capture the WSDL element type (portType, binding, or service) and the element's fully qualified name (its local name and namespace name), along with the protocols supported by a WSDL binding.
The mapping model works as follows:
Conclusion
The new mapping gives users some powerful options when searching for services. It permits users to perform the following types of queries:
- Find specifications by namespace name
- Find specifications by WSDL portType or binding name
- Find all bindings for a portType
- Find all SOAP bindings for a portType
- Find implementations by namespace name
- Find all implementations of a WSDL portType
- Find all SOAP implementations of a WSDL portType
- Find all implementations of a WSDL binding
Published September 26, 2003 Reads 23,988
Copyright © 2003 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Anne Thomas Manes
Anne Thomas Manes is a Research Director at Burton Group, a research, consulting, and advisory firm. Anne leads research for the Application Platform Strategies service. Named one of NetworkWorld's "50 Most Powerful People in Networking," in 2002 and one of Enterprise Systems Journal's "Power 100 IT Leaders," in 2001, Anne is a renowned technologist in the Web services space. Anne participates in standards development at W3C and OASIS. She is a member of the editorial board of Web Services Journal. She is a frequent speaker at trade shows and author of numerous articles and the book, Web Services: A Manager's Guide, published by Addison Wesley.
Prior to joining Burton Group, Anne was chief technology officer at Systinet, a Web services infrastructure company, and before that she pioneered Sun's Web services strategy. A 24-year industry veteran, Anne developed her expertise working at a number of the world's leading hardware and software companies. You can reach Anne via e-mail at anne@manes.net or through her Web site at http://www.bowlight.net.
![]() |
Anne Thomas Manes 12/02/03 12:14:23 PM EST | |||
A number of vendors supply private UDDI implementations, including Systinet (www.systinet.com), Blazeworks (www.blazeworks.biz), Select (www.selectbs.com), and Acumen Technologies (www.acumentechnologies.com). My personal favorite is Systinet's, but I'm biased (I used to work there). It's available for free download and evaluation, and the documentation is excellent. |
||||
![]() |
yangxiaoman 12/02/03 12:28:11 AM EST | |||
Dear Anne: |
||||
![]() |
Anne Thomas Manes 10/14/03 09:10:54 AM EDT | |||
I agree that the public UDDI (the UDDI Business Registry -- UBR -- operated by IBM, Microsoft, SAP, and NTT) doesn't play a particularly important role in Web services today. It will grow in importance as more industry groups define standard Web services specifications. The UBR will become the official registry of standard specifications. But you shouldn't constrain your view of UDDI just to the UBR. You can also set up a private UDDI registry within your organization to support intenal and external applications. Private UDDI plays a very important SOA management role within an organization. Many companies are still just experimenting with Web services, so it's still viable to communicate between groups via word of mouth. But once a company gets beyond the pilot stage -- once you have lots of people in lots of different departments building and consuming Web services, you need a automated mechanism to disseminate metadata about these services. You could do so using a Web page or a Wiki page, or you could use a proprietary content management systems. Or you could use a Web services standard registry. I'm biased, but I think UDDI is the right way to go. |
||||
![]() |
David 10/06/03 08:45:32 PM EDT | |||
UDDI is a perfect example of a new "standard" that's created before its time. There are hardly any web services out there, yet we have a standard to create an automated system to "discover" these. What sort of search scheme to you use today to find a product you need? What scheme do you use to find a class library that you may need for your project? What scheme do you use to find a car, a date or anything else in life? My guess is that you don't go to some large directory and do queries. The descriptions in a public UDDI will be marketing fluff, with no pricing and no real way to determine if there's a fit. You'll need to investigate the product, learn about licensing/usage terms, find out about pricing, determine if the product will really work in your environment, you'll need to test it using a test account/system, you'll need to pay and sign service agreements, etc. The easiest part will be writing the code that integrates the web service. The hard part is doing what humans do best: take information and think about which options are really important. Just as there is no Automobile or Account or Customer class in Java that works for most people, you'll find the same is true of web services. Getting the URL and XML structures in place is easy. The business decision is harder. I don't think UDDI will really be much help now or in the future. Google and Yahoo will no doubt lead the race in searches for such technologies in the future as there is just too much more to selecting a web service than whether it's listed in UDDI or not. Also, you have the chicken and egg issue. Why list in UDDI if it doesn't drive business now? And if I don't list, then good web services can't be found in UDDI, so it's not worthwhile searching using it because I rarely find what's truly available out there. UDDI is a solution to a problem that doesn't exist. But it's sure to sell some new front ends to the large vendor's LDAP and other proprietary directory services. |
||||
- Big Data in Telecom: The Need for Analytics
- Patterns for Building High Performance Applications
- Microsoft Tries Hadoop on Azure
- Amazon to Fix Some Kindle Fire Problems
- What Motivates Open Standards in the Cloud?
- What to Expect in 2012: Cloud Computing and Open Source Software
- Will PaaS Finally Bring Open Source Love to the Enterprise?
- Ten Hot Trends in Cloud Data for 2012
- Cross-Platform Mobile Website Development – a Tool Comparison
- Oracle Disaster Recovery Site Hosted by Amazon Cloud
- Three Buzzwords That Every CIO Hears but One They Should Listen To
- Write Once Run Anywhere or Cross Platform Mobile Development Tools
- The Future of Cloud Computing: Industry Predictions for 2012
- Gartner Hype Cycle for Emerging Technologies 2011
- Book Excerpt: Introducing HTML5
- Adobe Sends Flex to the Apache Foundation
- Big Data in Telecom: The Need for Analytics
- Book Excerpt: Java Application Profiling Tips and Tricks
- i-Technology in 2012: Five Industry Predictions
- Patterns for Building High Performance Applications
- Microsoft Tries Hadoop on Azure
- The Next Web Architecture
- Cloud Computing: A Comparison of Computing Models
- Amazon to Fix Some Kindle Fire Problems
- The i-Technology Right Stuff
- The Top 150 Players in Cloud Computing
- Who Are The All-Time Heroes of i-Technology?
- Where Are RIA Technologies Headed in 2008?
- Get the Message
- ESB Myth Busters: 10 Enterprise Service Bus Myths Debunked
- i-Technology Viewpoint: Is Web 2.0 the Global SOA?
- i-Technology Viewpoint: Thinking Outside the VC Box
- i-Technology Viewpoint: When to Leave Your First IT Job
- SOA Web Services Edge Conference Coverage on SYS-CON.TV
- SYS-CON.TV's "SOA Web Services" and "Enterprise Open Source" Programs To Air in December
- Five Reasons Why Web 2.0 Matters






















