SOAP Underlying Protocol Binding Framework

Last Modified: $Date: 2001/10/11 17:33:41 $

Status

This is an attempt of a write-up of a framework for SOAP bindings based on discussions within the XML Protocol WG TBTF. The document has no status whatsoever nor does it necessarily represent consensus within the TBTF or within the XML Protocol WG as a whole.

Basic Binding Model

SOAP has been designed to be carried within or on top of a variety of other protocols that as a group are called "underlying protocols". The boundary between SOAP and the underlying protocol is called a protocol binding. A binding has two purposes:

  1. It defines the syntactic and semantic rules for passing an outgoing SOAP message from SOAP to the underlying protocol for the purpose of sending that message to another SOAP node
  2. It defines the syntactic and semantic rules for passing an incoming SOAP message from the underlying protocol to SOAP for the purpose of processing that message

The relationship between SOAP, bindings, and underlying protocols is illustrated below. Note that is not a requirement that implementations are layered in this manner. The purpose of this diagram is strictly to illustrate the abstract relationship between SOAP, bindings, and the underlying protocol.

 

Moving Data Up and Down the Stack

SOAP has the following two requirements to a binding in order to enable passing of data between SOAP and the underlying protocol:

  1. A binding must specify a mechanism for accepting a SOAP envelope described using XML infoset from SOAP and pass it to the underlying protocol.
  2. A binding must specify a mechanism for recreating a SOAP envelope described using XML infoset to SOAP from the underlying protocol.

The interactions between the binding and the underlying protocol can be in any format supported by the underlying protocol. SOAP has nothing to say about this interaction.

Exchanging Data between SOAP Nodes

In addition to defining the format of the data passed between the binding and the underlying protocol, a binding must define the rules for how the data is exchanged using that underlying protocol.

Exchanging information may require additional information from higher layers not expressed directly within the SOAP message. It is outside the scope of this framework to describe how such information is communicated within a SOAP node.

Additional Properties

A binding may provide any number of properties that the SOAP layer may choose to take advantage of if so desired. It is outside the scope of this specification to describe how these properties are named or how they are described.


Henrik Frystyk Nielsen
@(#) $Id: Overview.html,v 1.2 2001/10/11 17:33:41 hugo Exp $