Web Services Architect : Articles : Do we need WSIL?
Web Services Architect

Register for e-mail updates:

 

WSIL: Do we need another Web Services Specification?

Explaining the difference between UDDI

Tarak Modi

Printer-friendly version

The Universal Description, Discovery, and Integration (UDDI) specification started out with and still has very noble intentions. The promise of UDDI is simple: to provide a place where service creators can publish their services and service consumers can search for and ultimately integrate with services for consumption. But let's face it; UDDI is not really fulfilling its promise. In fact, preliminary results from independent research and tests conducted by SalCentral (see Resources) makes it pretty obvious that UDDI has yet a long way to go.

The truth is that there still exists a chasm between service providers and service consumers. That's exactly where the Web Services Inspection Language (WSIL) fits in. WSIL promises to help us cross this chasm while UDDI registries get their act together. WSIL was announced by IBM and Microsoft in November of 2001. As I will show you in this article, WSIL is complementary to UDDI. Better yet, this is also another example of how Microsoft and IBM continue to pave the Web Services road ahead. In this article, I will attempt to explain what WSIL is and why it is not just another specification.

The Million Dollar Question

If the existing UDDI, SOAP, and WSDL specifications (from IBM and Microsoft) already cover all aspects of the basic Web Service architecture, do we really need another Web Services related specification (also from IBM and Microsoft)? A very good question indeed and in the remainder of this article I will attempt to answer it.

The Problem with UDDI

Although from a distance all seems well in Web Services land, the truth is there are still many glitches that need to be overcome. A few such glitches have to do with the current state of UDDI registries. As mentioned in the leading paragraph of this article, UDDI started out with and still has the noble intention of providing a directory service for service providers and service subscribers. UDDI compliant registries serve as central hubs where service providers and service requestors come together and satisfy their needs. There is no doubt that the concept of service registries is at the center of today's Web Services architecture. There are, however, two critical flaws in the UDDI business model that prevents it from taking off (at least today) the way it was intended:

  1. Lack of moderation in existing UDDI registries
    Just a moment ago I compared a UDDI registry with a directory service. What if these directory services did not have any moderation? Moderators are in charge of regulating the contents of the registries they moderate. In the absence of such moderation, you would end up with a registry that would contain in the best-case out-of-date and duplicate records and in the worst (and more likely) case records of companies posing as providers of services that they don't provide. This is not far from what is going on in UDDI registries today! Independent research carried out by SalCentral shows that over 67% of entries in UDDI registries today are either invalidly formatted or validly formatted but unavailable. That means that two out of every three entries that you will find in a UDDI registry will probably be useless. UDDI registries are built to be extremely scalable and fault-tolerant. This means that a single UDDI registry may contain hundreds of thousands of entries, with as much as two-thirds of these entries being invalid!
  2. Inadequate Quality of Service (QoS) guarantees in Existing Web Services
    Let's say that your company needs to wire significant amounts of money from one place to another on a regular basis and you wanted to automate this process by utilizing a readily available Web Service. To do so, assume that you did a search in a UDDI registry and three such services showed up. Based on the discussion above, two of the three entries will probably be invalid. The next question is, do you even know or trust the vendor that is publishing the third entry? How can you be sure that this is a legitimate company? Even if you know and trust the vendor, you will probably not be able to or even want to use the service without entering into a Service Level Agreement (SLA) with the vendor. The SLA outlines the terms of use such as any associated fees of use and QoS characteristics such as minimum levels of security, guaranteed reliability and availably, transactional support, and so on. Such SLAs are a standard part of doing business between business partners and are especially required in this case since UDDI registries do not have any way of capturing, verifying, or enforcing such QoS characteristics.

Most business partners today do not find one another from UDDI registries; rather they are based on existing relationships. The above two shortcomings further justify why businesses choose to do so. That is where the Web Services Inspection Language (WSIL, also WS-Inspection) fits in. WSIL decentralizes the centralized model of service publication within a UDDI registry and distributes the pieces such that each service provider itself can advertise its Web Services offerings. WSIL thus facilitates the behavior that most businesses desiring to use Web Services (today) are most comfortable with (today).

What is Web Services Inspection Language?

The gist of the WS-Inspection specification can be summarized as follows:

"WSIL defines how a service requestor can discover an XML Web Service description on a Web server, enabling such requestors to easily browse Web servers for XML Web Services."

Thus, using WSIL, a service provider can make services available for discovery and use by service requestors. This is very similar to UDDI's mission statement and should come as no surprise since WSIL is meant to be the stepping-stone to UDDI (more on this later). The following diagram shows the modified relationship between the service requestor, provider, and centralized UDDI registry when WSIL gets added to the mix. The primary difference from earlier is that the Web Service "find" no longer goes directly to a centralized UDDI registry. Instead, the "find" is sent directly to the service providers from the requestors. Thus the centralized, un-moderated registry is now a decentralized, moderated registry distributed over the web. Also note that there is nothing preventing the service providers from registering their service offerings in a UDDI registry and redirecting a service "find" to that UDDI registry as shown in the figure.



An XML based Language allowing publishers to advertise their services

WSIL defines an XML based language by which services can be advertised to interested requestors.

Note that this is not a language to describe the capabilities of the Web Services themselves; that part is covered by WSDL. The WSIL language is only used to advertise the Web Services.

The elements for this language are defined in the schema namespace http://schemas.xmlsoap.org/ws/2001/10/inspection/, which must be referenced by all WSIL documents. The simplest WSIL document consists of a service element, which contains a description element.

All WSIL documents must have a root element called service, which wraps the service advertisements. WSIL documents are not restricted to just advertising or listing Web Services that are described using WSDL. Rather, the WSIL specification is designed to be extensible with other definition types. In fact, even the WSDL support in WSIL is achieved through the use of these extensibility elements. The only difference here is that the WSDL extensions are pre-built. WSIL also comes with pre-built support for UDDI. I'll cover this in more detail in the section on UDDI interoperability.

A set of conventions allowing service requestors to locate WSIL documents

One could advertise Web Services using WSIL documents all day long and it would be of little value if there were no standard way of finding these documents. That is why the WSIL specification defines a set of conventions allowing requestors to locate WSIL documents on any web site. These conventions are:

  1. Fixed name WSIL documents
  2. Linked WSIL documents

The fixed name for WS-Inspection documents is inspection.wsil. A document with this name should be placed at common entry points for a web site. For example, if the common entry point for a web site were http://www.aprovider.com/, then the location of the WSIL document would be http://www.aprovider.com/inspection.wsil. At the very least all service providers using WSIL should provide this top level WSIL document. It is reasonable to think that as WSIL is adopted more widely, established and forthcoming search engines such as Google and Yahoo! will enable searching for WSIL documents.

In order to allow service providers to organize their service listings in a hierarchical manner, WSIL documents can be linked. This is achieved through the presence of a link element. All WSIL documents can have any number of such links, thus creating an entire hierarchy of WSIL documents.

To put the usefulness of linking WSIL documents in perspective, consider a financial services company that offers a variety of related Web Services. These Web Services could be grouped together in three categories, namely banking services, insurance-related services, and investment services. The insurance service category itself could be comprised of a variety of subcategories such as car insurance, home insurance, health insurance, life insurance, etc. In this scenario, the top level WSIL document (at the web site entry level) would not advertise any services itself. Instead, it would contain links to three other WSIL documents; one WSIL document each for banking, insurance-related, and investment services. The WSIL document at the insurance services level in turn would have multiple WSIL document links corresponding to the various categories of insurance services. Thus, WSIL allows a hierarchical layout of Web Services very similar to the hierarchical web page layout used by web designers or directory structure on your hard drive.

UDDI Interoperability

While it is true that UDDI still faces a few challenges to becoming a feasible Web Services repository solution, it is very likely that it will overcome these challenges in the future. WSIL recognizes this and does not intend to replace or compete with UDDI. In fact, WSIL is not only complementary to UDDI, but an excellent stepping-stone for businesses to become comfortable with UDDI. This is because as mentioned earlier, WSIL has pre-built support for working with UDDI.

In such a case, the WSIL document provides a reference to an entry in a UDDI registry via the serviceDescription element in the http://schemas.xmlsoap.org/ws/2001/10/inspection/uddi namespace. This element has a location attribute, which specifies the location URL of the UDDI registry, and has a child element, serviceKey (also in the same namespace), which specifies the UDDI key for locating the service within the registry. If the service has been properly registered with the UDDI registry, then the same WSDL document should be available from the service entry in the UDDI registry as was available from the service provider in the WSIL document. Note that the UDDI registry referenced by the location attribute could be one of the Public UDDI registries, run by IBM or Microsoft.

Linking WSIL and UDDI

Initially, service providers can advertise services and their associated descriptions directly from their web site. Gradually, though, they will be able to migrate the service descriptions to UDDI registries as they become more mature.

Conclusion

Currently, despite UDDI, there exists a chasm between service providers and service requestors. WSIL is a specification proposed by IBM and Microsoft to help cross this chasm today, while UDDI matures and becomes a feasible solution for tomorrow. Although WSIL is still a proprietary specification, both IBM and Microsoft have announced their intentions of submitting the WSIL specification to a standards body. I would speculate that this body will probably be the World Wide Web Consortium (W3C) since that is also where SOAP and WSDL were submitted.

Resources

Tarak Modi, a Senior Specialist at North Highland, has been architecting scalable, high performance, distributed applications for over seven years. His professional experience includes hardcore C++ and Java programming; working with Microsoft technologies such as COM, MTS, and COM+; Java-based technologies including J2EE; and CORBA. Tarak is the lead author on an upcoming book on JMS by Manning Publications and a co-author of Professional Java Web Services by Wrox.

Printer-friendly version

Keep up to date with all the new articles and features on Web Services Architect:
Register for e-mail updates


How useful is this article?
What's wrong and right about it?
What are your suggestions for taking it further?
Your views keep Web Services Architect focused.

E-mail us at feedback@WebServicesArchitect.com, or complete this form.
Note: fields marked * are compulsory.

Comments *:

E-mail *:

Job title:

First name:

Last name:

Allow Web Services Architect to display all or part of this message in an online forum.
I have read and agree to the terms and conditions.