XML related protocols survey

Prepared by:
Graham Klyne
Date:
2002-10-21

Survey of features and characteristics of a selection of protocols and data formats related to XML.


Any

Specification type: Generic encoding framework
Any data in the form of an arbitrary, unspecified octet sequence.

ASCII

Specification type: Generic encoding framework
Used by: MIME
Data in the form of a sequence of US-ASCII characters.

Unicode

Specification type: Generic encoding framework
Used by: XML
Data in the form of a sequence of Unicode characters. May be presented in a range of transfer encoding formats, including 32-bit character codes (UCS-4), UTF-16 or UTF-8.

TCP

Specification type: Transport protocol
Used by: SMTP
HTTP
BEEP
XMPP
Can contain or carry: Any
Octet stream transport protocol.

SMTP

Specification type: Application protocol
Uses: TCP
Contains or carries: MIME
Email protocol, which transfers MIME data.

HTTP

Specification type: Application protocol
Uses: TCP
Contains or carries: MIME
Web access protocol, which transfers MIME data.

XML

Specification type: Generic encoding framework
Specification(s): http://www.w3.org/TR/REC-xml
Uses: Unicode
Used by: XML-names
BEEP
SOAP
XMPP
EPP
XMLCONF
JXTA
Can contain or carry: Unicode
Cannot contain or carry: MIME
DIME
A textual framework for encoding various kinds of data structure.

XML-names

Specification type: Data labelling framework
Specification(s): http://www.w3.org/TR/REC-xml-names
Uses: XML
Used by: SOAP
XMPP
EPP
A textual framework for encoding various kinds of data structure.

MIME

Specification type: Generic transfer protocol, Generic encapsulation format, Data labelling framework
Specification(s): http://www.ietf.org/rfc/rfc2045.txt
http://www.ietf.org/rfc/rfc2046.txt
http://www.ietf.org/rfc/rfc2047.txt
http://www.ietf.org/rfc/rfc2048.txt
http://www.ietf.org/rfc/rfc2049.txt
Uses: ASCII
Used by: BEEP
Can contain or carry: XML
Unicode
Any
ASCII-based data encapsulation and metadata attachment format. Originally designed for conveying extended-content in mail messages, but subsequently used as a generic "tagging and bagging" format.

Has very little to do with XML, other than that it can be used to encapsulate XML data. Also, the metadata expression capabilities of MIME are fairly limited, and may be better served by attaching XML-formatted content.

DIME

Specification type: Generic encapsulation format
Specification(s): http://www.ietf.org/internet-drafts/draft-nielsen-dime-02.txt
Can contain or carry: XML
Unicode
Any
A general purpose binary content encapsulation format.

Has very little to do with XML, other than that it allows XML namespace URIs to be used as document payload type identifiers.

Performs a small subset of the functions of MIME. There is a clearer division of functional capability between DIME and XML than between MIME and XML.

BEEP

Specification type: Generic transfer protocol
Specification(s): http://www.ietf.org/rfc/rfc3080.txt
http://www.ietf.org/rfc/rfc3081.txt
Uses: XML
MIME
TCP
Can contain or carry: MIME
An application protocol framework that can be used to construct a variety of kinds of application protocols.

Uses XML and MIME for its own protocol elements, and can transfer arbitrary MIME content.

SOAP

Specification type: Message passing framework
Specification(s): http://www.w3.org/TR/soap12-part0/
http://www.w3.org/TR/soap12-part1/
http://www.w3.org/TR/soap12-part2/
Uses: XML
XML-names
Can use: HTTP
SMTP
BEEP
Can contain or carry: XML
An application messaging framework that can be used to construct a variety of kinds of XML applications.

Uses XML for its own protocol elements, and can transfer arbitrary XML content.

SOAP has three inter-related parts:

  • envelope structure for conveying arbitrary XML data
  • data encoding (optional)
  • protocol binding framework; HTTP is commonly used

XMPP

Specification type: Application protocol
Specification(s): http://www.ietf.org/internet-drafts/draft-miller-xmpp-core-00.txt
http://www.ietf.org/internet-drafts/draft-miller-xmpp-im-00.txt
http://www.ietf.org/internet-drafts/draft-miller-xmpp-cpim-00.txt
Uses: XML
XML-names
TCP
Contains or carries: XML
Jabber instant messaging transfer protocol.

EPP

Specification type: Application protocol
Specification(s): http://www.ietf.org/internet-drafts/draft-ietf-provreg-epp-07.txt
http://www.ietf.org/internet-drafts/draft-ietf-provreg-epp-tcp-05.txt
Uses: XML
XML-names
Can use: TCP
BEEP
Extensible provisioning protocol.

An XML text protocol that permits multiple service providers to perform object provisioning operations using a shared central object repository.

???what is "object provisioning"?

XMLCONF

Specification type: Application protocol
Specification(s): http://www.ietf.org/internet-drafts/draft-shafer-js-xml-api-00.txt
Uses: XML
Can use: TCP
A proposed protocol for network device management. An example of such a protocol, used here for survey purposes, is JUNOScript.

JXTA

Specification type: Network overlay framework
Specification(s): http://www.jxta.org/project/www/docs/JXTAprotocols.pdf
http://www.jxta.org/project/www/docs/TechOverview.pdf
http://www.ietf.org/internet-drafts/draft-duigou-jxta-protocols-01.txt
Uses: XML
JXTA-PDP
JXTA-PIP
JXTA-PBP
JXTA-PRP
JXTA-PEP
JXTA-RVP
An network overlay framework for peer-to-peer applications.

The following protocols are currently defined:

  • Peer Discovery Protocol
  • Peer Information Protocol
  • Pipe Binding Protocol
  • Peer Resolver Protocol
  • Endpoint Routing Protocol
  • Peer Membership Protocol
The Project JXTA protocols are composed of six protocols (Figure 4):

The Peer Discovery Protocol (PDP) is the protocol by which a peer publishes its own advertisements, and dis-covers advertisements from other peers (peer, peergroup, module, pipe and content). PDP uses the Peer Resolver Protocol for sending and propagating discovery advertisement requests.

The Peer Information Protocol (PIP) is the protocol by a which a peer may obtain status information about other peers, such as state, uptime, traffic load, capabilities, etc. PIP uses the PRP for sending and propagating peer information requests.

The Pipe Binding Protocol (PBP) is the protocol by which a peer can establish a virtual communication channel or pipe between one or more peers. The PBP is used by a peer to bind the two or more pipe ends of the connec-tion (input and output pipe) to a physical peer endpoint. PBP uses the PRP for sending and propagating pipe binding requests.

The Peer Resolver Protocol (PRP) is the protocol by which a peer can send a generic resolver query to one or more peers, and receive a response (or multiple responses) to the query. The PRP protocol permits the dissemi-nation of generic queries to one or more handlers within the group and to match them with responses. Each query is addressed to a specific handler name. This handler name defines the particular semantics of the query and its responses, but is not associated with any specific peer. A given query may be received by any number of peers in the group, possibly all, and processed according to the handler name if such a handler name is defined on that peer.

The Peer Endpoint Protocol (PEP) is the protocol by which a peer can discover a route (sequence of hops) used to send a message to another peer. If a peer A wants to send a message to peer C, and there is no direct route between A and C, then peer A needs to find the intermediary relay peer(s) to route the message to C. PEP is used to determine the routing information. If the network topology has changed such that the route to C can no longer be used, the peer can use PEP to find routes known by other peers to construct a new route to C.

The Rendezvous Protocol (RVP) is the protocol by which peers can subscribe or be a subscriber to a propagation service. Within a peergroup, peers can be rendezvous peers, or peers that are listening to rendezvous peers. RVP allows messages to be sent to all of the listeners of the service. RVP is used by the Peer Resolver Protocol in order to propagate messages.

JXTA-PDP

Specification type: Application protocol
Specification(s): http://www.ietf.org/internet-drafts/draft-duigou-jxta-protocols-01.txt
Used by: JXTA
JXTA-PDP: Peer discovery protocol.

JXTA-PIP

Specification type: Application protocol
Specification(s): http://www.ietf.org/internet-drafts/draft-duigou-jxta-protocols-01.txt
Used by: JXTA
JXTA-PIP: Peer information protocol.

JXTA-PBP

Specification type: Application protocol
Specification(s): http://www.ietf.org/internet-drafts/draft-duigou-jxta-protocols-01.txt
Used by: JXTA
JXTA-PBP: Pipe binding protocol.

JXTA-PRP

Specification type: Application protocol
Specification(s): http://www.ietf.org/internet-drafts/draft-duigou-jxta-protocols-01.txt
Used by: JXTA
JXTA-PRP: Peer resolver protocol.

JXTA-PEP

Specification type: Application protocol
Specification(s): http://www.ietf.org/internet-drafts/draft-duigou-jxta-protocols-01.txt
Used by: JXTA
JXTA-PEP: Endpoint routing protocol.

JXTA-RVP

Specification type: Application protocol
Specification(s): http://www.ietf.org/internet-drafts/draft-duigou-jxta-protocols-01.txt
Used by: JXTA
JXTA-RVP: Peer rendezvous/membership protocol.