Software Engineering Institute Carnegie Mellon

ISIS Main Page
Conferences, Workshops,
and Other Events
Presentations
Publications
References
ISIS Staff
Working with Us
Performance-Critical Systems
COTS-Based Systems
Dynamic Systems Program

Web Services

     

In its simplest definition, Web services is an instantiation of a Service-Oriented Architecture (SOA) where all of the following apply.

Other combinations of technologies are possible, but this is the most common instantiation and the reason why the terms SOA and Web services are often used interchangeably.

The growing success of Web services is due to a number of factors, including those below.

The success of Web Services is based on the technologies that support it, as indicated in Figure 1. Items in bold indicate that these are the more standard and commonly used technologies. The vertical bars indicate that elements of Security, Quality of Service, Transactions, and Management have to be present in all layers of the protocol stack.


Figure 1. Web Services Protocol Stack

The base layers of the protocol stack are HTTP (HyperText Transfer Protocol) and XML (eXtensible Markup Language). HTTP is a ubiquitous protocol, running practically everywhere on the Internet and is used as the transport layer. XML is used to encode the exchanged messages. In essence, XML messages are converted to middleware requests and the results converted back to XML.

SOAP (Simple Object Access Protocol) defines a framework to construct XML-based messages that can be used to exchange information between nodes in a decentralized, networked environment. As shown in Figure 2, a SOAP message consists of header and body information. A SOAP message travels between SOAP nodes on a SOAP message path from an initial sender through one or more intermediate nodes to an ultimate receiver. Each node on the path may process the message in some way based on information in the header blocks. The message body is processed by the ultimate receiver. SOAP does not define how messages are transported between nodes and how they are routed, but in the case of Web Services, relies on HTTP for this.


Figure 2. SOAP Message

WSDL (Web Services Description Language) is used to describe what a Web Service can do, where it resides, and how to invoke it. It is XML-based and supports simple and complex transactions defined by message exchange patterns.

UDDI (Universal Description, Discovery and Integration Service) is an XML-based distributed directory that enables businesses to list themselves, as well as dynamically discover each other. Businesses register and categorize the Web services they offer and locate Web services they want to use. UDDI itself is a Web Service. The directory contains three types of information, similar to a phone book:

WSFL (Web Services Flow Language) is an XML language for the description of Web Services compositions. WSFL considers two types of Web Services compositions:

WSCL (Web Services Conversation Language) provides an XML schema for defining sequences of documents that Web Services can exchange. The difference between WSFL and WSCL is that WSFL describes the internal execution of a sequence of functions that constitute a Web service, while WSCL describes the order in which external users of a Web service will invoke its operations.

State of the Practice

With respect to the maturity of standards used in Web Services

To solve some of these problems, the Web Services Interoperability (WS-I) group is attempting to provide guidance on the usage of Web services standards. Established in early 2002, WS-I is an open industry effort chartered to promote Web services interoperability across platforms, applications, and programming languages. This organization brings together a diverse community of Web services leaders to respond to customer needs by providing guidance, recommended practices, and supporting resources for developing interoperable Web services. WS-I also recently announced the availability of its tools for testing interoperability with the WS-I Basic Profile for use of Web services.

There are groups interested in testing SOAP interoperability because of the available choices in formats, envelopes, and transport protocols that are offered by the standard. SOAPBuilders, for example, is an open group of SOAP developers defining interoperability test suites that check custom data types for compatibility. There are also many vendors that are releasing WSDL interoperability tests against the WS-I Basic Profile.

Impact for Systems of Systems

Interoperability between systems requires the capability for users to exchange information (syntactic interoperability) and a common understanding of its meaning or how to act upon it (semantic interoperability). The reason why many vendors and users associate Web services with interoperability is because interoperability is simply defined as the capability to implement a service in multiple programming languages and to communicate using well-known and platform-independent protocols and standards. This definition of interoperability is purely syntactic and will not be enough to support the vision of building systems on-the-fly.

From a syntactic point of view, Web services are very promising and are experiencing tremendous growth because of their reliance on well-known standards and organizations like WS-I. The current challenge, as expressed before, is that these standards are emerging and therefore there is still considerable room for different interpretations of the standards by parties implementing Web services.

From a semantic point of view, there are many limitations because Web services can currently only be discovered based on keywords. This is true for example of UDDI. Therefore, the ability for run-time discovery, a requirement for automatic Web Service composition, is limited. The Semantic Web is a collaborative effort led by W3C with participation from many researchers and industrial partners who wish to tag information on the Web in such a way that it can be interpreted by software agents looking for specific types of information. The combination of Web services with the Semantic Web is called Semantic Web Services. A Semantic Web Service is a Web Service whose description is in a machine-understandable language with formal semantics. The idea is to be able to describe Web services in such a way that applications can automatically coordinate information exchanges and hence improve interoperability. The Semantic Web Services arm of the DAML (DARPA Agent Markup Language) program is developing a Web Service Ontology based on OWL (Web Ontology Language) called OWL-S (formerly DAML-S), as well as supporting tools and agent technology to enable automation of services on the Semantic Web. With ontologies such as OWL-S, or others described using OWL, there is a much greater chance of semantic interoperability, but these ontologies are still emerging and primarily being used in research environments.

Open Issues

Current programs and projects are relying on Web Services for automatic discovery and composition of services to form systems "on-the-fly". Web Service technologies, although promising, are not there yet. To give an example, having a centralized registry of services, whether public or private, is necessary for dynamic composition of systems. A problem that applies to public registries, for example, is deciding who is responsible for the quality of the information.

Another problem that applies to both public and private registries is the need for a common taxonomy or ontology to describe services so that they can be discovered. Dynamic composition of systems will be challenging until these two problems are addressed. And this is only the beginning.

Being able to build systems on the fly requires the following:

With current technologies, developers are able to perform these tasks at design time, but not at run time. Therefore, building systems on the fly is not possible with current Web Service technologies. It is not the fault of Web Services though because that is really not what Web Services were initially built for. Nonetheless, if this is the direction in which Web Services want to go to, there needs to be more research and development in the layers above Description, as well as the vertical layers indicated in Figure 1.

This situation is best described by two apparently contradictory articles. One is called Web Services Are Not Distributed Objects by Werner Vogels from Cornell University, and the other is Like It Or Not, Web Services Are Distributed Objects by Kenneth Birman from Cornell University as well. [Vogels 03, Birman 04].

At first, the articles seem totally contradictory, but they actually both come to the same conclusion. The essence of the problem is that people fail to understand that Web Services is no more than a document exchange using standard Internet protocols, as opposed to a distributed object model where an object is referenced and instantiated, and then methods are called upon this object, which is then released. In Vogel's words: "interoperable document-centric computing as opposed to distributed objects." They both blame vendors for this misconception. Birman's argument is that the problem is that vendors have been selling Web Services technology as if they were distributed objects, that is, that they offer the same stability, reliability, and trustworthiness that distributed objects offer. And the truth as has been address above is that Web Services technology cannot currently offer all this.

References

[Birman 04]     Birman, K. "Like It or Not, Web Services Are Distributed Objects." Communications of the ACM. Vol. 47, No. 12, December 2004, 60-62.

[Vogels 03]     Vogels, W. "Web Services Are Not Distributed Objects." IEEE Internet Computing. 7, 6 (Nov.& Dec. 2003), 59–66.