A W3C Web Services Glossary
by Thomas Erl

The quick-reference glossary provided here consists of high-level defintions of some of the more commonly used Web services terms. These are further supplemented with code samples that demonstrate the structure of the types of XML documents that drive the Web services architecture. This glossary makes reference to the W3C WSDL, SOAP, and Web Services Architecture specifications.

Binding (WSDL)

WSDL <binding> elements relate protocol and message format information to operations. Corresponding port sections then associate bindings to physical addresses. [W3C]

<definitions>
  <service>
    <binding name="Binding1">
      <operation>
        ...
      </operation>
    </binding>
  </service>
</definitions>

Body (SOAP)

The body of a SOAP document acts as a container for the data being delivered by the SOAP message. Data within the SOAP body is often referred to as the “payload” or “payload data”.

The body section is represented by the <Body> element, and can also be used to host exception information within a nested fault construct. [W3C]

<env:Envelope xmlns:env="http://...
  <env:Header>
    ...
  </env:Header>
  <env:Body>
    <x:Book xmlns:x="http://www.xmltc.com">
      <x:Title>
        Field Guide to Integrating
         XML
        and Web services
      </x:Title>
    </x:Book>
  </env:Body>
</env:Envelope>

Definition (WSDL)

A WSDL definition corresponds to a Web service’s service definition.

Represented by the root <definitions> element, it provides a description of the Web service interface, as well as related implementation information.

<definitions>
  <message name="book">
    ...
  </message>
  <portType name="Catalog">
    ...
  </portType >
</definitions>

Documentation (WSDL)

The optional <documentation> element of a WSDL document allows supplementary comments to be added to the service definition. It can be used for a wide variety of annotations.

<definitions>
  <documentation>
    I wrote this service definition some time ago, when I was younger and times were simpler for us all...
  </documentation>
</definitions>

Envelope (SOAP)

A SOAP envelope represents the container of the SOAP message information. The <envelope> element is the root element of the SOAP document, and consists of a body, and an optional header section. [W3C]

<env:Envelope xmlns:env="http://www.w3...
  <env:Header>
    ...
  </env:Header>
  <env:Body>
    ...
  </env:Body>
</env:Envelope>

Fault (SOAP)

The optional <fault> element establishes a section of the SOAP message dedicated to providing exception handling information. The fault block falls within the body section of the SOAP message.

Although fault sections can reside alongside standard data payloads, fault information is often sent separately in response messages that communicate error conditions.

The fault construct consists of a series of system elements used to identify characteristics of the exception. [W3C]

<env:Envelope xmlns:env="http://www.w3...
  <env:Header>
    ...
  </env:Header>
  <env:Body>
    <env:Fault>
      ...
    </env:Fault>
  </env:Body>
</env:Envelope>

Header (SOAP)

A SOAP header is an optional part of a SOAP message that can contain one or more sections or blocks. Common uses of header blocks are to implement SOAP extensions, identify target SOAP intermediaries, and provide supplementary meta information about the SOAP message.

While a SOAP message progresses along a message path, intermediaries may add, remove or process information in SOAP header blocks. The SOAP header section is represented by the <Header> element. [W3C]

<env:Envelope xmlns:env="http://www.w3...
  <env:Header>
    <n:shipping xmlns:n="http://...
      UPS
    </n:shipping>
  </env:Header>
  <env:Body>
    ...
  </env:Body>
</env:Envelope>

Initial Sender (SOAP)

A sender at the beginning of the message path, responsible for initiating the transmission of a SOAP message. [W3C]

Intermediary (Web Services Architecture)

The role of intermediary is assumed by the Web service when it receives a message from a service requestor, and then forwards the message to the a service provider.

Within the Web Services Architecture, an intermediary is only allowed to process and modify the message header. To preserve the integrity of the message, its data cannot be altered.

Intermediary (SOAP)

A SOAP sender and receiver that resides along a message path between the initial sender and the ultimate receiver. The SOAP specification defines two types of intermediaries:

- Forwarding intermediaries, which relay a message to the next intermediary or the ultimate SOAP receiver.

- Active intermediaries, that process the SOAP message prior to forwarding.
[W3C]

Message (SOAP)

A SOAP-compliant XML document transmitted from a SOAP sender to a SOAP receiver. A SOAP message consists of mandatory envelope and body sections, and an optional header. [W3C]

Message (WSDL)

An incoming or outgoing message involved in the execution of a Web service action or operation. Within a WSDL document, a <message> element represents one or more input or output parameters that belong to an operation.

In a component-based architecture, a WSDL message is comparable to a collection of input or output parameters of a component method. [W3C]

<definitions>
  <message name="book">
    <part name="title" type="xs:string">
      Field Guide to Integrating XML
      and Web services
    </part>
    <part name="author" type="xs:string">
      T-man
    </part>
  </message>
  <portType name="Catalog">
    <operation name="GetBook">
      <input name="Msg1" message="book" />
    </operation>
  </portType >
</definitions>

Message Path (SOAP)

Essentially, the path along which a SOAP message travels, starting with the initial SOAP sender and ending with the ultimate SOAP receiver.

Within the SOAP messaging framework, a message path must consist of one initial sender, one ultimate receiver, and zero or more intermediaries.

SOAP intermediaries can affect message paths, depending on message characteristics and other variables processed by the routing logic at runtime. [W3C]

Message Exchange Patterns (Web Services Architecture, SOAP)

Established interaction scenarios whereby service requestors and service providers exchange messages. Examples include: request and response, publish and subscribe, fire and forget (one-to-one or broadcast).

SOAP message exchange patterns involve one or more SOAP message paths. [W3C]

Operation (WSDL)

A WSDL operation represents a single action or function of a Web service. A typical <operation> element consists of a group of related input and output messages. The execution of an operation requires the transmission or exchange of messages between the service requestor and the service provider.

In a component-based architecture, a WSDL operation is comparable to a component method. [W3C]

<definitions>
  <message name="book">
    ...
  </message>
  <portType name="Catalog">
    <operation name="GetBook">
      <input name="Msg1" message="book" />
    </operation>
  </portType >
</definitions>

Part (WSDL)

Each <part> element defines one parameter of a WSDL message. It provides a name/value set, along with an associated data type.

In a component-based architecture, a WSDL part is the equivalent of an input or output parameter (or a return value) of a component method.

<definitions>
  <message name="book">
    <part name="title" type="xs:string">
      Field Guide
    </part>
    <part name="author" type="xs:string">
      T-man
    </part>
  </message>
  <portType name="Catalog">
    ...
  </portType >
</definitions>

Port (WSDL)

Also known as an “EndPoint”, a Web service port represents the contact point of the service, and consists of location and protocol information.

Within a WSDL document, each <port> element represents a binding. [W3C]

<definitions>
  <service>
    <port name="Port1" binding="Binding1">
      ...
    </port>
  </service>
</definitions>

Port Type (WSDL)

Individual Web service interfaces are represented by WSDL port types. The <portType> element contains a group of logically related operations.

In a component-based architecture, a WSDL port type is comparable to a component interface.

<definitions>
  <message name="book">
    ...
  </message>
  <portType name="Catalog">
    <operation name="GetBook">
      <input name="Msg1" message="book"/>
    </operation>
  </portType >
</definitions>

Receiver (SOAP)

Essentially, the part of the SOAP service that takes delivery of a SOAP message. SOAP receivers are the external-most contact point for Web services. [W3C]

Sender (SOAP)

A SOAP sender transmits a message on behalf of the underlying Web service. [W3C]

Service (WSDL)

Within a WSDL document, the <service> element represents a collection of ports. This construct is primarily used to host multiple port blocks, and provide the complete set of end points supported by a Web service.

<definitions>
  <service name="Service1">
    <binding name="Binding1">
      ...
    </binding >
    <binding name="Binding2">
      ...
    </binding >
  </service>
</definitions>

Service Definition (Web Services Architecture)

The interface and implementation definitions of a Web service. Generally, the contents of a WSDL document constitute a service definition.

Service Interface Definition + Service Implementation Definition = Service Definition

Service Definition + additional documents = Service Description

Service Description (Web Services Architecture)

A complete description of a Web service. Within the W3C Web Services Architecture, a service description consists of a stack of documents that describe the Web service itself, as well as how it relates to other Web services.

A service description includes the service definition, which consists of the service interface definition and the service implementation definition provided by the WSDL document.

Service Interface Definition + Service Implementation Definition = Service Definition

Service Definition + additional documents = Service Description

Service Interface Definition (Web Services Architecture)

The description of a Web service interface. Within a WSDL document, the service interface definition is primarily made up of the binding, port type, message and types sections.

Note that the term “service interface definition” is not synonymous with “service definition”. A service interface definition represents a part of the service definition.

In a component-based architecture, the service interface definition is comparable to the Interface Definition Language (IDL) file used to describe a component interface.

Service Interface Definition + Service Implementation Definition = Service Definition

Service Definition + additional documents = Service Description

Service Implementation Definition (Web Services Architecture)

The location and implementation information about a Web service. The service implementation definition part of a WSDL document is primarily represented by the service and port sections.

The service implementation definition, combined with the service interface definition, represents a complete service definition.

Service Interface Definition + Service Implementation Definition = Service Definition

Service Definition + additional documents = Service Description

Service Provider (Web Services Architecture)

A Web service can assume different roles within a business process or when involved with various message exchange patterns. When acting as a service provider it offers a public interface that can be invoked by service requestors.

It is the responsibility of a service provider to supply a service description. A Web service can be designed to be a service provider, a service requestor, or both.

For example, a Web service can play the role of service provider when a service requestor asks it for a piece of information. It can then act as a service requestor when it later contacts the original service requestor (now acting as a service provider) to ask for status information.

In a client-server model, the service provider is comparable to the server. Note that this term can also be used to describe the organization or environment hosting (providing) the Web service. [W3C]

Service Requestor (Web Services Architecture)

The sender of a Web service message or the software program requesting a specific Web service. A service requestor can also be a service provider.

For instance, in a request and response pattern, the initiating Web service first acts as a service requestor when initially requesting information from the service provider. The same Web service then plays the role of a service provider when responding to the original request.

In a client-server model, the service requestor is comparable to the client. Note that service requestors are sometimes also referred to as "Service Consumers".

Simple Object Access Protocol (SOAP)

SOAP is the most widely supported messaging format and protocol for use with Web services. A SOAP message is an XML document capable of hosting document-centric and RPC-centric data.

The SOAP messaging framework is implemented through the use of receivers, senders and optional intermediaries that collectively establish a message path. [W3C]

View the SOAP primer document at: http://www.w3.org/TR/soap12-part0

Types (WSDL)

The WSDL <types> element contains the data types used by Web service messages. This section of the WSDL document allows XSDL schemas to be embedded or imported into the Web service definition.

<definitions>
  <types>
    <xsd:schema...
      ...
    </xsd:schema>
  </types>
</definitions>

Ultimate Receiver (SOAP)

Receivers at the end of a message path, that represent the final destination of a SOAP message. [W3C]

Web Services Description Language (WSDL)

A W3C specification providing the foremost language for the description of Web services. A WSDL file is an XML document consisting of a service interface definition and a service implementation definition.

View the specification at: www.w3.org/TR/wsdl12

SOA Design Patterns by Thomas Erl
Foreword by Grady Booch
With contributions from David Chappell, Jason Hogg, Anish Karmarkar, Mark Little, David Orchard, Satadru Roy, Thomas Rischbeck, Arnaud Simon, Clemens Utschig, Dennis Wisnosky, and others.
Web Service Contract Design & Versioning for SOA by Thomas Erl, Anish Karmarkar, Priscilla Walmsley, Hugo Haas, Umit Yalcinalp, Canyang Kevin Liu, David Orchard, Andre Tost, James Pasley
SOA Principles of Service Design by Thomas Erl
Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services by Thomas Erl
Service-Oriented Infrastructure:On-Premise and in the Cloud by Raj Balasubramanian, Benjamin Carlyle, Thomas Erl, Cesare Pautasso
Next Generation SOA:A Real-World Guide to Modern Service-Oriented Computing by Pethuru Cheliah, Thomas Erl, Clive Gee, Robert Laird, Berthold Maier, Hajo Normann, Leo Shuster, Bernd Trops, Clemens Utschig, Torsten Winterberg
SOA with .NET & Windows Azure: Realizing Service-Orientation with the Microsoft Platform by David Chou, John deVadoss, Thomas Erl, Nitin Gandhi, Hanu Kommalapati, Brian Loesgen, Christoph Schittko, Herbjorn Wilhelmsen, Mickey Williams
SOA Governance:
Governing Shared Services On-Premise & in the Cloud
by Stephen Bennett, Thomas Erl, Clive Gee, Anne Thomas Manes, Robert Schneider, Leo Shuster, Andre Tost, Chris Venable
SOA with Java by Raj Balasubramanian, David Chou, Thomas Erl, Thomas Plunkett, Satadru Roy, Philip Thomas, Andre Tost
Modern SOA Methodology: Methods for Applying Service-Orientation On-Premise & in the Cloud by Raj Balasubramanian, David Chou, Thomas Erl, Thomas Plunkett, Satadru Roy, Philip Thomas, Andre Tost
Cloud Computing: Concepts, Technology & Architecture by Thomas Erl, Zaigham Mahmood, Ricardo Puttini
Cloud Computing Design Patterns by Thomas Erl, Amin Naserpour

For more information about these books, visit: www.servicetechbooks.com


Arcitura Education Inc.
Arcitura Education Inc. is a leading global provider of progressive, vendor-neutral training and certification programs, providing industry-recognized certification programs for a range of certifications.
For more information:
www.arcitura.com
SOA Certified Professional (SOACP)
The books in this series are part of the official curriculum for the SOA Certified Professional program.
For more information:
www.soaschool.com
Cloud Certified Professional (CCP)
The books in this series are part of the official curriculum for the Cloud Certified Professional program.
For more information:
www.cloudschool.com
Big Data Science Certified Professional (BDSCP)
The books in this series are part of the official curriculum for the Big Data Science Certified Professional program.
For more information:
www.bigdatascienceschool.com/