Web Services Essentials
April 3, 2002
|
This concise book gives programmers both a concrete introduction
and handy reference to XML web services. It explains the
foundations of this new breed of distributed services,
demonstrates quick ways to create services with open-source
Java tools, and explores four key emerging technologies: XML-RPC,
SOAP, UDDI, and WSDL. If you want to break through the Web
Services hype and find useful information on these evolving
technologies, look no further.
|
WSDL is a specification defining how to describe web services in
a common
XML grammar. WSDL describes four critical pieces of data:
- Interface information describing all publicly available
functions
- Data type information for all message requests and
message responses
- Binding information about the transport protocol to be
used
- Address information for locating the specified service
In a nutshell, WSDL represents a contract between the service
requestor and the service provider, in much the same way that a
Java interface
represents a contract between client code and the actual Java object. The
crucial difference is that WSDL is platform- and language-independent and is
used primarily (although not exclusively) to describe SOAP services.
Using WSDL, a client can locate a web service and invoke any of
its publicly available functions. With WSDL-aware tools, you can also automate
this process, enabling applications to easily integrate new services with
little or no manual code. WSDL therefore represents a cornerstone of the web
service architecture, because it provides a common language for describing
services and a platform for automatically integrating those services.
This chapter covers all aspects of WSDL, including the following
topics:
- An overview of the WSDL specification, complete with
detailed explanations of the major WSDL elements
- Two basic WSDL examples to get you started
- A brief survey of WSDL invocation tools, including the
IBM Web Services Invocation Framework (WSIF), SOAP::Lite, and The Mind
Electric's GLUE platform
- A discussion of how to automatically generate WSDL
files from existing SOAP services
- An overview of using XML Schema types within WSDL,
including the use of arrays and complex types
The WSDL Specification
WSDL is an XML grammar for describing web services. The
specification itself is divided into six major elements:
definitions
- The
definitions element
must be the root element of all WSDL documents. It defines the name of the
web service, declares multiple namespaces used throughout the remainder of
the document, and contains all the service elements described here.
types
- The
types element
describes all the data types used between the client and server. WSDL is not
tied exclusively to a specific typing system, but it uses the W3C XML Schema
specification as its default choice. If the service uses only XML Schema
built-in simple types, such as strings and integers, the types element is not required. A full discussion of the
types element and XML Schema is deferred to the
end of the chapter.
message
- The
message element
describes a one-way message, whether it is a single message request or a
single message response. It defines the name of the message and contains
zero or more message part elements, which can
refer to message parameters or message return values.
portType
- The
portType element
combines multiple message elements to form a
complete one-way or round-trip operation. For example, a portType can combine one request and one response
message into a single request/response operation, most commonly used in SOAP
services. Note that a portType can (and
frequently does) define multiple operations.
binding
- The
binding element
describes the concrete specifics of how the service will be implemented on
the wire. WSDL includes built-in extensions for defining SOAP services, and
SOAP-specific information therefore goes here.
service
- The
service element
defines the address for invoking the specified service. Most commonly, this
includes a URL for invoking the SOAP service.
To help you keep the meaning of each element clear, Figure
6-1 offers a concise representation of the WSDL specification. As you
continue reading the remainder of the chapter, you may wish to refer back to
this diagram.
Figure 6-1. The WSDL specification in a nutshell
|
|
In addition to the six major elements, the WSDL specification
also defines the following utility elements:
documentation
- The
documentation element
is used to provide human-readable documentation and can be included inside
any other WSDL element.
import
- The
import element is used
to import other WSDL documents or XML Schemas. This enables more modular
WSDL documents. For example, two WSDL documents can import the same basic
elements and yet include their own service
elements to make the same service available at two physical addresses. Note,
however, that not all WSDL tools support the import functionality as of yet.
TIP: WSDL is not an official recommendation
of the W3C and, as such, has no official status within the W3C. WSDL
Version 1.1 was submitted to the W3C in March 2001. Original submitters
included IBM, Microsoft, Ariba, and a half dozen other companies. Most
probably, WSDL will be placed under the consideration of the new W3C Web
Services Activity's Web Services Description Working Group, which will
decide if the specification advances to an official recommendation status.
The WSDL Version 1.1 specification is available online at http://www.w3.org/TR/wsdl.
Web Services Essentials
Basic WSDL Example: HelloService.wsdl - Page 2
|