# $Id: XMLProtocolSurvey.n3,v 1.4 2002/10/22 13:00:59 graham Exp $ # # Survey of protocols and frameworks related to XML # #--------+---------+---------+---------+---------+---------+---------+---------+ # # Copyright (c) 2002, G. KLYNE # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # #--------+---------+---------+---------+---------+---------+---------+---------+ # $Source: /file/cvsweb/ninebynine.org/docs/IETF/XML/XMLProtocolSurvey.n3,v $ # $Author: graham $ # $Date: 2002/10/22 13:00:59 $ # $Id: XMLProtocolSurvey.n3,v 1.4 2002/10/22 13:00:59 graham Exp $ #--------+---------+---------+---------+---------+---------+---------+---------+ # 1 2 3 4 5 6 7 8 # # NOTES # # From this data, extract usage graph and containment graph. Are these different? # @prefix rdf: . @prefix rdfs: . @prefix foaf: . @prefix dc: . @prefix protocol: . #--------+---------+---------+---------+---------+---------+---------+---------+ # About this document: <> rdfs:label "XML related protocols survey" ; dc:author "Graham Klyne" ; dc:date "2002-10-21" ; rdfs:comment """ Survey of features and characteristics of a selection of protocols and data formats related to XML. """ . #--------+---------+---------+---------+---------+---------+---------+---------+ # Protocol classes protocol:Protocol a rdfs:Class . protocol:DataFormatFramework a rdfs:Class . protocol:DataLabellingFramework a rdfs:Class . protocol:EncapsulationFormat a rdfs:Class . protocol:TransferFramework a rdfs:Class . protocol:MessageFramework a rdfs:Class . protocol:ApplicationProtocol a rdfs:Class . protocol:TransportProtocol a rdfs:Class . protocol:NetworkOverlayFramework a rdfs:Class . protocol:Protocol a rdfs:Class ; rdfs:comment """ Common superclass for all protocol classes """ . protocol:NetworkOverlayFramework a rdfs:Class ; rdfs:subClassOf protocol:Protocol ; protocol:mayUse protocol:DataFormatFramework, protocol:TransferFramework, protocol:EncapsulationFormat, protocol:MessageFramework, protocol:ApplicationProtocol ; rdfs:label "Network overlay framework" ; rdfs:comment """ A comprehensive suite of protocols and other components that create an application framework hiding specific details of the underlying network. """ . protocol:TransportProtocol a rdfs:Class ; rdfs:label "Transport protocol" ; rdfs:comment """ A basic data transport protocol that does not recognize or impose any particular structure in the transferered data. """ . protocol:ApplicationProtocol a rdfs:Class ; protocol:mayUse protocol:DataFormatFramework, protocol:TransferFramework, protocol:EncapsulationFormat, protocol:MessageFramework ; rdfs:label "Application protocol" ; rdfs:comment """ A complete protocol for a specific application purpose. """ . protocol:MessageFramework a rdfs:Class ; protocol:mayUse protocol:DataFormatFramework, protocol:TransferFramework, protocol:EncapsulationFormat ; rdfs:label "Message passing framework" ; rdfs:comment """ A protocol element framework that can contain a variety of application data and may be bound to an underlying transfer protocol to create an application protocol. """ . protocol:TransferFramework a rdfs:Class ; protocol:mayUse protocol:DataFormatFramework, protocol:EncapsulationFormat, protocol:TransferFramework ; rdfs:label "Generic transfer protocol" ; rdfs:comment """ A data transfer framework that can be used to convey a variety of protocol elements or application data formats. Defines information that affects or is used in the transfer of data between endpoints. """ . protocol:EncapsulationFormat a rdfs:Class ; protocol:mayUse protocol:DataFormatFramework, protocol:EncapsulationFormat ; rdfs:label "Generic encapsulation format" ; rdfs:comment """ A framework for encapsulating a variety of application data formats. """ . protocol:DataLabellingFramework a rdfs:Class ; protocol:mayUse protocol:DataFormatFramework ; rdfs:label "Data labelling framework" ; rdfs:comment """ A framework for attaching labelling and other information to some data. """ . protocol:DataFormatFramework a rdfs:Class ; protocol:mayUse protocol:DataFormatFramework ; rdfs:label "Generic encoding framework" ; rdfs:comment """ A framework for encoding a variety of application data formats. """ . #--------+---------+---------+---------+---------+---------+---------+---------+ # Protocol proerties protocol:mayUse a rdfs:Property ; rdfs:domain rdfs:Class ; rdfs:range rdfs:Class ; rdfs:comment """ Indicates possible use relationship between protocol classes. See also protocol:uses, protocol:canUse. """ . protocol:type a rdfs:Property ; rdfs:subPropertyOf rdf:type ; rdfs:domain protocol:Property ; rdfs:range rdfs:Class ; rdfs:comment """ Provides additional protocol-specific type information about a protocol. """ . protocol:uses a rdfs:Property ; rdfs:domain protocol:Protocol ; rdfs:range protocol:Protocol ; rdfs:comment """ Indicates that the subject protocol is defined to always use the object protocol """ . protocol:canUse a rdfs:Property ; rdfs:domain protocol:Protocol ; rdfs:range protocol:Protocol ; rdfs:comment """ Indicates that the subject protocol has options to use the object protocol """ . protocol:contains a rdfs:Property ; rdfs:domain protocol:Protocol ; rdfs:range protocol:Protocol ; rdfs:comment """ Indicates that the subject protocol is defined to contain or convey the object protocol. """ . protocol:canContain a rdfs:Property ; rdfs:domain protocol:Protocol ; rdfs:range protocol:Protocol ; rdfs:comment """ Indicates that the subject protocol has capability to contain or convey the object protocol. """ . protocol:cannotContain a rdfs:Property ; rdfs:domain protocol:Protocol ; rdfs:range protocol:Protocol ; rdfs:comment """ Indicates that the subject protocol does not have any capability to contain or convey the object protocol. """ . protocol:specification a rdfs:Property ; rdfs:domain protocol:Protocol ; rdfs:comment """ Indicates URI of specification document. """ . #--------+---------+---------+---------+---------+---------+---------+---------+ # Protocols (including formats, frameworks, etc) protocol:Any a protocol:Protocol ; protocol:type protocol:DataFormatFramework ; rdfs:label "Any" ; rdfs:comment """ Any data in the form of an arbitrary, unspecified octet sequence. """ . protocol:USASCII a protocol:Protocol ; protocol:type protocol:DataFormatFramework ; rdfs:label "ASCII" ; rdfs:comment """ Data in the form of a sequence of US-ASCII characters. """ . protocol:Unicode a protocol:Protocol ; protocol:type protocol:DataFormatFramework ; rdfs:label "Unicode" ; rdfs:comment """ 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. """ . protocol:TCP a protocol:Protocol ; protocol:type protocol:TransportProtocol ; rdfs:label "TCP" ; protocol:canContain protocol:Any ; rdfs:comment """ Octet stream transport protocol. """ . protocol:SMTP a protocol:Protocol ; protocol:type protocol:ApplicationProtocol ; rdfs:label "SMTP" ; protocol:uses protocol:TCP ; protocol:contains protocol:MIME ; rdfs:comment """ Email protocol, which transfers MIME data. """ . protocol:HTTP a protocol:Protocol ; protocol:type protocol:ApplicationProtocol ; rdfs:label "HTTP" ; protocol:uses protocol:TCP ; protocol:contains protocol:MIME ; rdfs:comment """ Web access protocol, which transfers MIME data. """ . protocol:XML a protocol:Protocol ; protocol:type protocol:DataFormatFramework ; rdfs:label "XML" ; protocol:specification ; protocol:cannotContain protocol:MIME ; protocol:cannotContain protocol:DIME ; protocol:uses protocol:Unicode ; protocol:canContain protocol:Unicode ; rdfs:comment """ A textual framework for encoding various kinds of data structure. """ . protocol:XML-names a protocol:Protocol ; protocol:type protocol:DataLabellingFramework ; rdfs:label "XML-names" ; protocol:specification ; protocol:uses protocol:XML ; rdfs:comment """ A textual framework for encoding various kinds of data structure. """ . protocol:MIME a protocol:Protocol ; protocol:type protocol:TransferFramework, protocol:EncapsulationFormat, protocol:DataLabellingFramework ; rdfs:label "MIME" ; protocol:specification ; protocol:specification ; protocol:specification ; protocol:specification ; protocol:specification ; protocol:uses protocol:USASCII ; protocol:canContain protocol:XML ; protocol:canContain protocol:Unicode ; protocol:canContain protocol:Any ; rdfs:comment """ 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. """ . protocol:DIME a protocol:Protocol ; protocol:type protocol:EncapsulationFormat ; rdfs:label "DIME" ; protocol:specification ; protocol:canContain protocol:XML ; protocol:canContain protocol:Unicode ; protocol:canContain protocol:Any ; rdfs:comment """ 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. """ . protocol:BEEP a protocol:Protocol ; protocol:type protocol:TransferFramework ; rdfs:label "BEEP" ; protocol:specification ; protocol:specification ; protocol:uses protocol:XML ; protocol:uses protocol:MIME ; protocol:uses protocol:TCP ; protocol:canContain protocol:MIME ; rdfs:comment """ 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. """ . protocol:SOAP a protocol:Protocol ; protocol:type protocol:MessageFramework ; rdfs:label "SOAP" ; protocol:specification ; protocol:specification ; protocol:specification ; protocol:uses protocol:XML ; protocol:uses protocol:XML-names ; protocol:canUse protocol:HTTP ; protocol:canUse protocol:SMTP ; protocol:canUse protocol:BEEP ; protocol:canContain protocol:XML ; rdfs:seeAlso ; rdfs:comment """ 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
""" . protocol:XMPP a protocol:Protocol ; protocol:type protocol:ApplicationProtocol ; rdfs:label "XMPP" ; protocol:specification ; protocol:specification ; protocol:specification ; protocol:uses protocol:XML ; protocol:uses protocol:XML-names ; protocol:uses protocol:TCP ; protocol:contains protocol:XML ; rdfs:comment """ Jabber instant messaging transfer protocol. """ . protocol:EPP a protocol:Protocol ; protocol:type protocol:ApplicationProtocol ; rdfs:label "EPP" ; protocol:specification ; protocol:specification ; protocol:uses protocol:XML ; protocol:uses protocol:XML-names ; protocol:canUse protocol:TCP ; protocol:canUse protocol:BEEP ; rdfs:comment """ 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"? """ . protocol:XMLCONF a protocol:Protocol ; protocol:type protocol:ApplicationProtocol ; rdfs:label "XMLCONF" ; protocol:uses protocol:XML ; protocol:canUse protocol:TCP ; protocol:specification ; rdfs:comment """ A proposed protocol for network device management. An example of such a protocol, used here for survey purposes, is JUNOScript. """ . protocol:JXTA a protocol:Protocol ; protocol:type protocol:NetworkOverlayFramework ; rdfs:label "JXTA" ; protocol:specification ; protocol:specification ; protocol:specification ; protocol:uses protocol:XML ; protocol:uses protocol:JXTA-PDP ; # Peer discovery protocol:uses protocol:JXTA-PIP ; # Peer information protocol:uses protocol:JXTA-PBP ; # Pipe binding protocol:uses protocol:JXTA-PRP ; # Peer resolver protocol:uses protocol:JXTA-PEP ; # Endpoint routing protocol:uses protocol:JXTA-RVP ; # Peer rendezvous/membership # protocol:canUse protocol:TCP ; rdfs:comment """ 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. """ . protocol:JXTA-PDP a protocol:Protocol ; protocol:type protocol:ApplicationProtocol ; rdfs:label "JXTA-PDP" ; protocol:specification ; rdfs:comment """ JXTA-PDP: Peer discovery protocol. """ . protocol:JXTA-PIP a protocol:Protocol ; protocol:type protocol:ApplicationProtocol ; rdfs:label "JXTA-PIP" ; protocol:specification ; rdfs:comment """ JXTA-PIP: Peer information protocol. """ . protocol:JXTA-PBP a protocol:Protocol ; protocol:type protocol:ApplicationProtocol ; rdfs:label "JXTA-PBP" ; protocol:specification ; rdfs:comment """ JXTA-PBP: Pipe binding protocol. """ . protocol:JXTA-PRP a protocol:Protocol ; protocol:type protocol:ApplicationProtocol ; rdfs:label "JXTA-PRP" ; protocol:specification ; rdfs:comment """ JXTA-PRP: Peer resolver protocol. """ . protocol:JXTA-PEP a protocol:Protocol ; protocol:type protocol:ApplicationProtocol ; rdfs:label "JXTA-PEP" ; protocol:specification ; rdfs:comment """ JXTA-PEP: Endpoint routing protocol. """ . protocol:JXTA-RVP a protocol:Protocol ; protocol:type protocol:ApplicationProtocol ; rdfs:label "JXTA-RVP" ; protocol:specification ; rdfs:comment """ JXTA-RVP: Peer rendezvous/membership protocol. """ . #--------+---------+---------+---------+---------+---------+---------+---------+ # $Log: XMLProtocolSurvey.n3,v $ # Revision 1.4 2002/10/22 13:00:59 graham # Add protocol dependency graph generator # # Revision 1.3 2002/10/21 18:02:02 graham # Added XML protocol specification survey #