Understanding Web Services- XML, WSDL, SOAP and UDDI
Page 1
Preface
I first encountered XML as an integration technology in early 1998 during a visit to KPN Telecom
in the Netherlands. The company was asking for proposals to help it develop an enterprise
integration architecture based on the hub and spoke model, using XML as the canonical message
format that would tie together the company's thousands of systems and hundreds of programming
languages. My employer at the time, Compaq (Digital), did not win the project, but the
controversial idea of using XML in a data-independent integration layer stuck with me. Now Web
services are fulfilling that promise for everyone.
I joined IONA in the fall of 1999 and among other things soon began chairing the Object
Management Group submitter's team drafting the XML Value specification, mapping XML to
CORBA. In early 2000, I got involved in the new effort Microsoft was leading to define a
distributed computing protocol for the Internet: SOAP. Previous attempts to promote the CORBA
protocol had failed by then, and the W3C's own attempt, HTTP-NG, had also fallen flat. But the
idea of serializing XML over HTTP seemed to hold promise for a solution.
IONA formally joined the SOAP effort in March 2000, before IBM joined and put the effort on
the map. I worked with Andrew Layman, David Turner, John Montgomery, and others at
Microsoft to bring IONA into the picture as a SOAP supporter and, in fact, as the first J2EE
vendor to support SOAP. IONA demonstrated Web services interoperability at several Microsoft
events during that year. The Microsoft presenter would introduce its SOAP Toolkit and
demonstrate interoperability with a COM server. Then the IONA presenter was called on to
describe how the same SOAP interface could interoperate with a Java server.
After that, I organized IONA's initial participation at W3C, supported the establishment of the
XML Protocols Working Group, helped write the group charter, and began representing IONA at
the XML Protocols Working Group, and more recently, at the Web Services Architecture
Working Group. IONA has supported the submission of SOAP to W3C, WSDL, SOAP with
Attachments, and XKMS. One thing led to another, and I eventually took on the responsibility of
delivering IONA's implementation of Web services integration technologies.
In October 2000, I represented IONA at the UDDI kick-off meeting. It was then that I realized the
potential for Web services technologies for application integration inside the firewall. Why not use
SOAP, UDDI, and WSDL for internal projects? Then you could use the same approach for
integration, regardless of whether it's inside the company or across the Internet.
David Vaskevitch presented at the UDDI conference, and this reminded me of the 1995 chapter in
The Future of Software that I coauthored for Digital Equipment Corporation. David was author of
the Microsoft chapter in that same book. In the Digital chapter, "The Key to the Highway," Peter
Conklin and I compared the potential power of software standards to the impact of standards on
the automobile. Standardized parts enabled mass production, which revolutionized the industry
and society.
Today, software remains essentially a craft business, as automobiles were at the start of the
twentieth century. Having widely adopted standards has remained elusive despite many attempts.
We may be at the crossroads; Web services may finally do the trick.
I hope this book helps you understand what Web services are all about. If it serves as a decent
introduction to the main ideas, concepts, and technologies, it will have done its job and find its
place in the Web services community.
Understanding Web Services- XML, WSDL, SOAP and UDDI
Page 2
Acknowledgments
First of all, thanks to David Chappell for giving me the opportunity to contribute to his new series.
David helped shape the organization, content, and overall approach of the book, which I greatly
appreciated. The .NET information in this book is drawn primarily from David's book, which he
was kind enough to share with me in advance of publication.
Second, I'd like to thank Steve Vinoski, who provided the most thorough and helpful review of the
entire manuscript, commenting with equal emphasis on small details and big ideas. Qun (Joanna)
Liang was tremendously helpful in providing and correcting examples in Chapter 2. Ben Bernhard
and Daniel Kulp helped with examples for Chapters 3 and 4. Pyounguk Cho provided a helpful,
last-minute review of Chapter 5.
Sean Baker, Vimal Kansal, Miloslav Nic, Jamie Osborne, Tom Sullivan, and Sanjiva
Weerawarana reviewed the entire manuscript or large portions of it, offering many helpful
comments and suggestions. Other people provided helpful reviews of specific portions of the
manuscript on which they have expertise: Klaus-Dieter Naujok, ebXML; Igor Balabine, security;
and Karsten Januszewski, UDDI.
I'd also like to thank the representatives of the vendors whose responses to the survey on Web
services implementations are presented in Chapter 8, including: Christina Grenier and Terry
Dwyer of BEA; Annrai O'Toole and Hugh Grant of Cape Clear; Joseph McGonnell and Mark
Little of HP; Sanjiva Weerawarana and Heather Kreger of IBM; Rebecca Dias and Alex Roedling
of IONA; Philip DesAutels and John Montgomery of Microsoft; Kuassi Mensah and Jeff
Mischkinsky of Oracle; Peter Kacandes, Karen Shipe, and Peter Walker of Sun Microsystems; and
Miloslav Nic and Ann Thomas-Manes of Systinet. Although they provided the original
information and reviewed the text, any remaining errors are solely my responsibility.
Many thanks to the Addison-Wesley editorial and production staff, who made the preparation and
finishing of the manuscript a truly professional, high-quality endeavor: Mary O'Brien, Alicia
Carey, Marilyn Rash, Jacquelyn Doucette, and Evelyn Pyle.
Finally, I would really, really like to thank my wife, Jane, and kids, Erica and Alex—yes, really—
for bearing with me and for understanding the time away.
Introduction
Web services are changing the way we think about distributed software systems, but there's a limit
to what they can do. This book describes the core enabling technologies—WSDL, SOAP, and
UDDI—and identifies where Web services begin and end and where existing technologies take
over.
This book describes the concepts behind the basic Web services technologies, and it also includes
chapters on ebXML, additional Web services technologies, and product implementations. The
book is intended for IT professionals who are interested in understanding Web services, how they
work, and what they are good for.
About Web Services
Web services provide a layer of abstraction above existing software systems, such as application
servers, CORBA, .NET servers, messaging, and packaged applications. Web services work at a
level of abstraction similar to the Internet and are capable of bridging any operating system,
hardware platform, or programming language, just as the Web is.
Understanding Web Services- XML, WSDL, SOAP and UDDI
Page 3
Unlike existing distributed computing systems, Web services are adapted to the Web. The default
network protocol is HTTP. Most existing distributed computing technologies include the
communications protocol as part of their scope. With Web services, the communications protocol
is already there, in the far-flung, worldwide Web.
New applications become possible when everything is Web service enabled. Once the world
becomes Web service enabled, all kinds of new business paradigms, discussion groups, interactive
forums, and publishing models will emerge to take advantage of this new capability.
Software and hardware vendors alike are rushing Web services products to market. The
widespread adoption of the core standards represents a significant breakthrough in the industry.
Applications can truly be built using a combination of components from multiple suppliers.
Specialists are emerging to provide services in the areas of security, transaction coordination, bill
processing, language translation, document transformation, registries and repositories, accounting,
reporting, and specialized calculation. Applications being built anywhere, anytime, on any system
can take advantage of prebuilt components, speeding time to market and reducing cost.
Meanwhile, ebXML, which chartered and maintains a separate course, continues to solve tough
problems for corporate trading partners that are establishing automated supply chain purchasing
and invoicing systems, large electronic document transfers, and business communities sharing
common goals. The rightful heir to EDI, ebXML is providing an easier-to-use, lower-cost
alternative to businesses automating their interactions with other businesses. With ebXML, a
company's internal IT systems are connected to the IT systems of its trading partners,
subcontractors, and business collaborators. The value inherent in these systems is therefore greatly
increased, as they become essentially part of one large IT system, with essential information
flowing freely across corporate boundaries rather than stuck within them.
Considerable overlap exists between the core Web services technologies and ebXML.
Convergence between the two is based on their common adoption of SOAP as the transport and on
the ability of the respective registries to share data. The ebXML specifications include many
qualities-of-service requirements that are not yet included in Web services, such as message
integrity and nonrepudiation, reliable messaging, business process flow, and protocol negotiation.
Further convergence is possible as the core Web services technologies begin to adopt proposals in
these additional technology areas.
Disagreement remains over the best approach to defining these additional technologies in the
context of Web services. Once the core standards are adopted widely, the discussion moves up the
stack to tackle quality-of-service issues. Security, transactions, process flow, and reliable
messaging standards are needed, and some are further along than others.
The power of XML drives Web services technologies in general, whether it's the core standards,
additional technologies, or ebXML. XML finally solves the problem of data independence for
programming languages, middleware systems, and database management systems. Previously,
data types and structures were specific to these types of software, and attempts at common
definitions, such as CORBA IDL, gained limited acceptance. XML is well on its way to becoming
as well established as its sibling, HTML.
The Web services technologies described in this book are all created using applications of XML in
one way or another. XML is not one thing but rather a variety of technologies in itself, covering
instance data as well as typing, structure, and semantic information associated with data. XML not
only describes data independently but also contains useful information for mapping the data into
and out of any software system or programming language.
Web services provide almost unlimited potential. Any program can be mapped to Web services,
and Web services can be mapped to any program. Transformation of data to and from XML is
essential, but XML is flexible enough to accommodate any data type and structure and even to
Understanding Web Services- XML, WSDL, SOAP and UDDI
Page 4
create new ones, if necessary. When all programs and software systems are finally Web service
enabled, the world of distributed computing will be very different from what it is today.
About This Book
To provide a background and sufficient detail for practical understanding and use of these
technologies, this book is organized into chapters on the main topics of interest.
Chapter 1, Introducing Web Services
This chapter highlights the most important aspects of Web services and what they can be used for,
as well as contains a detailed overview of the entire book. Information is provided about the
following:
n XML (Extensible Markup Language), the family of related specifications on which all
Web services technologies are built
n WSDL (Web Services Description Language), providing the fundamental and most
important abstraction of Web services, the interface exposed to other Web services and
through which Web services are mapped to underlying programs and software systems
n SOAP (Simple Object Access Protocol), providing communications capability for Web
services interfaces to talk to one another over the Internet and other networks
n UDDI (universal description, discovery, and integration), providing registry and
repository services for storing and retrieving Web services interfaces
n ebXML (electronic business XML), an architecture and set of specifications designed to
automate business process interaction among trading partners
n Additional technologies, going beyond the core Web services standards to meet
requirements for security, reliable messaging, transaction processing, and business
process flow so that more complex and critical business applications can use them
n Vendor implementations, providing a variety of implementations usually aligned with
existing products but in some cases entirely new products for flexible and extensible Web
services
Chapter 2, Describing Information: XML
The Extensible Markup Language (XML), like the Hypertext Markup Language, shares a common
ancestry in the Standard Generalized Markup Language (SGML). One of the characteristics of
SGML was the separation of format and content. Whether a document was produced for A4 or in
letter format, for example, the format was described independently of the content of the document.
The same document could therefore be output in multiple formats without changing the content.
This principle of markup languages is applied to Web services through the separation of the
document instance, which contains the data, and the schema, which describes the data structures
and types, including semantic information useful for mapping the document to multiple
programming languages and software systems.
XML represents a large number of specifications, many of which are more pertinent to document
processing than to information processing. This chapter describes the XML specifications and
technologies most important to Web services, which in general can be said to go "beyond markup"
to provide facilities for structuring and serializing data. This chapter includes only those XML
technologies relevant to Web services and explains how and what they are.
Chapter 3, Describing Web Services: WSDL
The Web Services Description Language (WSDL) provides the mechanism through which Web
services definitions are exposed to the world and to which Web services implementers need to
conform when sending SOAP messages. WSDL describes the data types and structures for the