Web Services and the W3C

21 August 2003

C. M. Sperberg-McQueen

TOC | First

Abstract

Web Services are the next step in the evolution of the World Wide Web. The Web of today is, for the most part, a network of documents intended to be read by human beings; they can be read by non-human agents like Web spiders, but for the most part such non-human agents cannot do much with them. Web Services promise to make the Web much more hospitable for information suited for machine processing.
This talk will give an introduction to Web Services, and an account of why W3C is active in the area and what we hope to accomplish. The talk will provide an overview of the Web Services standardization landscape, beginning with an account of where the fundamental ideas of Web Services come from and what is meant by the term. Some sample use cases and usage scenarios will help clarify the kinds of problems people hope to solve with Web Services; an introduction to the core specifications in the area will help show how the problems are to be solved. Some basic design principles and problems in Web Services will be identified.


W3C 

Overview

previous table of contents next
1 of 30
W3C 

Where do Web Services come from?

previous table of contents next
2 of 30
They grow under cabbage leaves.
They are left by storks.
This is not certain, but the term Web Services appears to have originated as an answer to the question “What are you developing SOAP for?”
The main evidence for this is the chaotic nature of replies to the question “What is a Web Service?”
W3C 

What are Web Services? (1)

previous table of contents next
3 of 30
The term Web Services refers to an architecture that allows applications to talk to each other. Period. End of statement.
-Adam Bosworth
W3C 

What are Web Services? (2)

previous table of contents next
4 of 30
Web Services are enabling technologies that facilitate the assembly and integration of applications in order to create new, more meaningful and/or more user-specific applications, all at the speed of the Internet.
-HEKATE (Higher Education Knowledge and Technology Exchange), "Web Services Enabling Technology for Application Integration and Assembly"
W3C 

What are Web Services? (3)

previous table of contents next
5 of 30
Basically, Web Services are a means of allowing applications to talk to one another using XML (Extensible Markup Language) messages sent via the standard Web protocol of HTTP (HyperText Transfer Protocol is used to request Web pages from Web servers, and combines it with XML to pass structured information back and forth between computers).
-http://www.convergemag.com/magazine/story.phtml?id=30079
W3C 

What are Web Services? (4)

previous table of contents next
6 of 30
[1] A Web service is a software system identified by a URI [RFC 2396], whose public interfaces and bindings are defined and described using XML. Its definition can be discovered by other software systems. These systems may then interact with the Web service in a manner prescribed by its definition, using XML based messages conveyed by Internet protocols.
[2] A collection of EndPoints. [WSD Reqs]
-W3C Web Services Glossary
W3C 

What are Web Services? (5)

previous table of contents next
7 of 30
W3C 

The ‘old’ Web

previous table of contents next
8 of 30
Humans read HTML served by Web applications.
W3C 

Web service interaction

previous table of contents next
9 of 30
Applications exchange XML with Web services.
W3C 

What are Web Services? (5)

previous table of contents next
10 of 30
Everything else follows from this. Most obviously:
W3C 

Roots / Origins / Anticipations

previous table of contents next
11 of 30
And don't forget:
W3C 

What problems do Web Services need to solve?

previous table of contents next
12 of 30
W3C 

Problems to solve (2)

previous table of contents next
13 of 30
W3C 

Use cases and usage scenarios

previous table of contents next
14 of 30
W3C 

Use cases, cont'd

previous table of contents next
15 of 30
W3C 

The core specifications

previous table of contents next
16 of 30
General consensus is that the core WS specs are
Oddly, security isn't on most lists as a core problem.
W3C 

Service-oriented architecture

previous table of contents next
17 of 30
Viewed this way, it seems clear what specs are needed.
W3C 

A closer look

previous table of contents next
18 of 30
The clustering is less obvious on closer inspection.
W3C 

Discovery: automated?

previous table of contents next
19 of 30
Discovery step seems to be logically necessary. But it may be out of band:
W3C 

SOAP in one slide

previous table of contents next
20 of 30
SOAP makes all things possible, but it doesn't do much itself. It's a lot like XML that way.
What it does define:
W3C 

WSDL in one slide

previous table of contents next
21 of 30
A WSDL document describes a service:
N.B. operations are atomic response+request pairs, not transition networks or state machines. Rules of operation are not captured completely.
Controversy over general vs specific interfaces.
W3C 

UDDI in one slide

previous table of contents next
22 of 30
Universal description, discovery, and integration
UDDI began as ad hoc consortium; now housed at OASIS.
W3C 

W3C work on Web Services

previous table of contents next
23 of 30
W3C 

Other specs

previous table of contents next
24 of 30
See also http://www.w3.org/2003/03/ws-specs.html
  • ebXML (lots of sub-parts)
  • security
    • WS-Security
    • SAML
  • choreography / orchestration / workflow
    • WSCL
    • WSCI
    • Business process execution language for Web Services (BPEL4WS)
    • WS-Coordination
  • attachments
    • Direct internet message encapsulation (DIME)
    • SOAP with attachments
    • WS-Attachments
  • transactions
    • WS-Transaction
  • Watch this space ...
W3C 

Some basic design ideas

previous table of contents next
25 of 30
Adam Bosworth lists these design principles for Web Services:
W3C 

Technical controversies

previous table of contents next
26 of 30
W3C 

Loose coupling? HA!

previous table of contents next
27 of 30
Q If Web Services is about loose coupling, why does SOAP make it easy to dump objects straight to XML and reconstitute them at the other end? In a loosely coupled system, object structure is the last thing you want to expose!
A Well spotted. The RPC usage of SOAP is not loosely coupled (but looser than binary calls). If old-style RPC, fine granularity, and tight coupling work for your application, SOAP-RPC should be fine for you.
W3C 

Defining a messaging infrastructure

previous table of contents next
28 of 30
W3C 

Message exchange patterns

previous table of contents next
29 of 30
If we want to build applications which communicate by passing messages, there are several patterns to consider:
Don't foreclose possible new patterns!
W3C 

The end

previous table of contents next
30 of 30
Thank you.
Questions?