Microservices Expo Authors: Pat Romanski, Elizabeth White, Zakia Bouachraoui, Liz McMillan, Yeshim Deniz

Related Topics: Microservices Expo

Microservices Expo: Article

Understanding UDDItModels and Taxonomies

Understanding UDDItModels and Taxonomies

The Universal Description, Discovery, and Integration (UDDI) specifications provide a standardized way for businesses to discover each other over the Internet and find details of services provided. UDDI is a combination of White Pages (contacts, addresses, telephone numbers), Yellow Pages (listing by industry classification), and Green Pages (technical details of services offered). UDDI is indeed universal in scope, in that the services offered can be anything from a telephone number to a SOAP endpoint for a Web service.

Businesses that want to publish their details on the Internet can use either a Web interface provided by one of the public UDDI operators (currently IBM and Microsoft), or a programmatic interface from within their IT systems. Information published to one public UDDI repository becomes replicated to the other public repositories automatically.

UDDI also has great value behind the firewall in intranet environments. There are advantages to using Web services to connect internal systems, rather than implementation-specific protocols, such as RMI, CORBA, or DCOM. Web services are truly independent of vendor, platform, and language, and can minimize the pain of integration issues. An internal, private UDDI repository can then be used as a logically centralized database of these systems. This repository can be replicated across sites within the company using the same techniques as public UDDI repositories.

Web Services Fundamentals
Before we go into the details behind UDDI, it's important to have an understanding of two other standards - SOAP and WSDL.

The Simple Object Access Protocol (SOAP) specification provides an XML-based dialect for invoking Web services across Internet or intranet environments. The specification details a particular XML structure for making a request, including detailed rules on encoding different data types to ensure that SOAP implementations from different vendors are compatible. SOAP defines the structure of the message but, contrary to its name, isn't really a protocol. Instead, SOAP is usable with existing Internet protocols, such as HTTP and SMTP.

The Web Service Description Language (WSDL) is another XML-based specification that provides a format for describing the interface to a Web service. The WSDL file lists the operations, parameters and data types used by that service and is all a developer needs to write a client application that can use that Web service.

Although WSDL documents describe a programmatic interface to a Web service, they're not enough to enable Web services to be published or discovered over the Internet. UDDI is roughly equivalent to a DNS for Web services, allowing companies to change details about where services are hosted. Applications connecting to those services should always locate the service through UDDI first.

UDDI Basics
The UDDI specification provides four core XML data structures to describe a business and the services it offers:

  • businessEntity
  • businessService
  • bindingTemplate
  • tModel
The first three data structures are simple to understand. A businessEntity structure provides information about a business, such as the head office address. Each business entity can have multiple businessService structures associated with it - one for each service offered by that business. Each business service can have multiple bindingTemplate entries. The binding template represents the way that the business service is accessed. For instance, a binding template can represent a telephone number, a Web site, or a Web service.

Introducing tModels
All three of these data structures can have relationships with tModels, but the meaning of the tModel differs in each context. tModels are an abstract concept representing standards, specifications, and docu-ments. They're designed to be very general purpose so perhaps this is why they appear so confusing at first.

A tModel could be used to represent a taxonomy system such as the North American Industry Classification System (NAICS), which allows companies to be classified depending on the nature of their business activities.

Another use of a tModel is to represent a "service type" offered, such as a Stock Quote service. Table 1 shows the meaning of a tModel in different contexts.

What Is a Taxonomy?
A taxonomy is simply a classification system with a finite set of values. For instance, a geo graphic taxonomy such as ISO3166 allows classification of a business by its location.

Each taxonomy system is represented by a tModel and the classification of a particular entity within that taxonomy system is represented through use of the categoryBag structure, defined by UDDI. A categoryBag is a collection of keyedReference structures. Each keyedReference provides a name-value pair within the scope of the taxonomy system referred to by its tModelKey.

The XML fragment shown in Listing 1 demonstrates the use of the cate-goryBag and keyedReference structures within a businessEntity.

In this example, Cape Clear Software is categorized as "Software Publishers" within the NAICS taxonomy and "US" within the ISO3166 taxonomy. These taxonomies are referred to by their tModelKey references. When new tModels are registered, they're automatically given tModelKeys, which are guaranteed to be a Universally Unique Identifier (UUID).

tModel Categorization and Identification
In the previous section, we saw how business entities and business services can be identified and categorized according to taxonomies described by tModel structures. We've also seen how binding templates refer to a technical specification described in a tModel structure. We'll now look at how tModels themselves are identified and classified.

The UDDI specification provides some core tModels that must be supported in all UDDI repositories. These include standard industry classification and identification taxonomies, such as NAICS, UNSPC, and D-U-N-S. Another key tModel is one representing the "UDDI Types Taxonomy."

The purpose of the UDDI Types Taxonomy is to allow tModels to be classified according to their purpose. For instance, the NAICS taxonomy tModel is classified as a "categorization taxonomy" within the UDDI Types Taxonomy. Other valid values within the UDDI Types Taxonomy are "identifier" and "namespace." Table 2 shows the valid classifications within the UDDI Types Taxonomy.

Registering a Web Service
Now that we've covered the main structures within a UDDI entry, we'll look at a real-world example of publishing a Web service within UDDI. The example is that of an Airport Weather service that can provide weather information for international airports. As a starting point, assume the Web service has already been developed and there's a valid WSDL document to describe the interface to the service.

The first step is to create a "Service Type" tModel to represent the Airport Weather service. This tModel is the generic specification of the Airport Weather service and this allows for the creation of actual Web services (business service entries) that are classified as being of type "Airport Weather." This is the equivalent of the separation of interface and implementation in object-oriented languages, such as Java. Any business entity may register business services referring to this service type.

Because this Web service is based on WSDL, this tModel should be classified within the UDDI Types Taxonomy (uddi-org:types) as being of type "wsdlSpec." This implies that the overviewDoc within the tModel contains a URL pointing to the WSDL document describing the interface to the Web service. Without this classification, there would be no standardized way for consumers of the service to know where to find a definition of the interface.

Listing 2 is the resulting tModel for the Airport Weather service. It's listed in the public UDDI operator cloud and can be queried from either the IBM or the Microsoft Web site.

The next step is to list a business service to implement this tModel. The business service uses the bindingTemplate structure to reference the Service Type tModel (see Listing 3).

Software applications can make use of the UDDI Types Taxonomy to limit searches to Web services that are based on WSDL, as shown in this sample UDDI request:

<find_tModel xmlns="urn:uddi-org:api" generic="1.0" maxRows="1000">
keyName="Specification for a web service described in WSDL"
UDDI provides a technical infrastructure for publishing details of Web services on the Internet for use by other companies, or on the intranet for use by other depart xments. UDDI will become the key integration point for products supporting Web services. Runtime products will expose their capabilities through UDDI and developer tools will use UDDI to find those services.

There are still many business issues to be addressed around the use of UDDI on the Internet, such as how to ensure the validity or usefulness of data registered and how businesses will agree on contractual terms for the use of these services. It's unlikely that technology alone will be able to solve these problems but UDDI does provide a good framework for enabling both human and programmatic interaction between organizations. In the short term, the use of private UDDI repositories within intranets is likely to play a bigger role in the proliferation of the Web services paradigm.


More Stories By Andy Grove

Andy Grove is a product manager at Cape Clear Software. He cofounded Orbware, a J2EE application server vendor, in 1999, and has extensive experience in building business systems using J2EE and XML technology.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

Microservices Articles
Lori MacVittie is a subject matter expert on emerging technology responsible for outbound evangelism across F5's entire product suite. MacVittie has extensive development and technical architecture experience in both high-tech and enterprise organizations, in addition to network and systems administration expertise. Prior to joining F5, MacVittie was an award-winning technology editor at Network Computing Magazine where she evaluated and tested application-focused technologies including app secu...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
When building large, cloud-based applications that operate at a high scale, it’s important to maintain a high availability and resilience to failures. In order to do that, you must be tolerant of failures, even in light of failures in other areas of your application. “Fly two mistakes high” is an old adage in the radio control airplane hobby. It means, fly high enough so that if you make a mistake, you can continue flying with room to still make mistakes. In his session at 18th Cloud Expo, Lee A...
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application portability. In this session we'll describe best practices for "configuration as code" in a Kubernetes environment. We will demonstrate how a properly constructed containerized app can be deployed to both Amazon and Azure ...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is foundational - something customers routinely cite as a top pain point. In his session at @DevOpsSummit at 21st Cloud Expo, Bill Borsari, Head of Systems Engineering at Datera, explored how organizations can reap the bene...
Using new techniques of information modeling, indexing, and processing, new cloud-based systems can support cloud-based workloads previously not possible for high-throughput insurance, banking, and case-based applications. In his session at 18th Cloud Expo, John Newton, CTO, Founder and Chairman of Alfresco, described how to scale cloud-based content management repositories to store, manage, and retrieve billions of documents and related information with fast and linear scalability. He addresse...
The now mainstream platform changes stemming from the first Internet boom brought many changes but didn’t really change the basic relationship between servers and the applications running on them. In fact, that was sort of the point. In his session at 18th Cloud Expo, Gordon Haff, senior cloud strategy marketing and evangelism manager at Red Hat, will discuss how today’s workloads require a new model and a new platform for development and execution. The platform must handle a wide range of rec...
SYS-CON Events announced today that DatacenterDynamics has been named “Media Sponsor” of SYS-CON's 18th International Cloud Expo, which will take place on June 7–9, 2016, at the Javits Center in New York City, NY. DatacenterDynamics is a brand of DCD Group, a global B2B media and publishing company that develops products to help senior professionals in the world's most ICT dependent organizations make risk-based infrastructure and capacity decisions.
Discussions of cloud computing have evolved in recent years from a focus on specific types of cloud, to a world of hybrid cloud, and to a world dominated by the APIs that make today's multi-cloud environments and hybrid clouds possible. In this Power Panel at 17th Cloud Expo, moderated by Conference Chair Roger Strukhoff, panelists addressed the importance of customers being able to use the specific technologies they need, through environments and ecosystems that expose their APIs to make true ...
In his keynote at 19th Cloud Expo, Sheng Liang, co-founder and CEO of Rancher Labs, discussed the technological advances and new business opportunities created by the rapid adoption of containers. With the success of Amazon Web Services (AWS) and various open source technologies used to build private clouds, cloud computing has become an essential component of IT strategy. However, users continue to face challenges in implementing clouds, as older technologies evolve and newer ones like Docker c...