<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='xmlspec.xsl'?>
<!DOCTYPE spec PUBLIC "-//W3C//DTD Specification V2.1//EN" "xmlspec.dtd"[
  <!--
  <!ENTITY % entities SYSTEM "entitieswd.dtd" >
-->
  <!ENTITY % entities SYSTEM "entitiesedcopy.dtd" >
%entities;
  <!ENTITY status "Editors copy $Date: 2002/03/05 14:35:15 $">
]>
<spec w3c-doctype="wd" role="editors-copy">
  <!-- <spec w3c-doctype="wd"> -->
  <header> 
    <title>XML Protocol (XMLP) Requirements</title> 
    <w3c-designation>&w3c-designation;</w3c-designation> 
    <w3c-doctype>&status;</w3c-doctype> 
    <pubdate> 
      <day>&draft.day;</day> 
      <month>&draft.month;</month> 
      <year>&draft.year;</year> 
    </pubdate> 
    <publoc><loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	xlink:show="replace" xlink:actuate="onRequest"
	href="&dated;">&dated;</loc></publoc> 
    <prevlocs>
      <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	xlink:show="replace" xlink:actuate="onRequest"
	href="http://www.w3.org/TR/2001/WD-xmlp-reqs-20010319/">http://www.w3.org/TR/2001/WD-xmlp-reqs-20010319/</loc>
    </prevlocs> 
    <latestloc><loc xmlns:xlink="http://www.w3.org/1999/xlink"
	xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"
	href="http://www.w3.org/TR/&shortname;/">http://www.w3.org/TR/&shortname;/</loc></latestloc>
    
    <authlist> 
      <author> 
	<name>Vidur Apparao</name> 
	<affiliation>Netscape</affiliation> 
      </author> 
      <author> 
	<name>Alex Ceponkus</name> 
	<affiliation>Bowstreet</affiliation> 
      </author> 
      <author> 
	<name>Paul Cotton</name> 
	<affiliation>Microsoft</affiliation> 
      </author> 
      <author> 
	<name>David Ezell</name> 
	<affiliation>Hewlett Packard</affiliation> 
      </author> 
      <author> 
	<name>David Fallside</name> 
	<affiliation>IBM</affiliation> 
      </author> 
      <author> 
	<name>Martin Gudgin</name> 
	<affiliation>DevelopMentor</affiliation> 
      </author> 
      <author> 
	<name>Oisin Hurley</name> 
	<affiliation>IONA Technologies</affiliation> 
      </author> 
      <author> 
	<name>John Ibbotson</name> 
	<affiliation>IBM</affiliation> 
      </author> 
      <author> 
	<name>R. Alexander Milowski</name> 
	<affiliation>Lexica, LLC</affiliation> 
      </author> 
      <author> 
	<name>Kevin Mitchell</name> 
	<affiliation>XMLSolutions</affiliation> 
      </author> 
      <author> 
	<name>Jean-Jacques Moreau</name> 
	<affiliation>Canon</affiliation> 
      </author> 
      <author> 
	<name>Eric Newcomer</name> 
	<affiliation>IONA Technologies</affiliation> 
      </author> 
      <author> 
	<name>Henrik Frystyk Nielsen</name> 
	<affiliation>Microsoft</affiliation> 
      </author> 
      <author> 
	<name>Mark Nottingham</name> 
	<affiliation>Akamai Technologies</affiliation> 
      </author> 
      <author> 
	<name>Waqar Sadiq</name> 
	<affiliation>Vitria Technology Inc.</affiliation> 
      </author> 
      <author> 
	<name>Stuart Williams</name> 
	<affiliation>Hewlett Packard</affiliation> 
      </author> 
      <author> 
	<name>Amr Yassin</name> 
	<affiliation>Philips Research</affiliation> 
      </author> 
    </authlist> 
    <abstract> 
      <p>This document describes the XML Protocol Working Group's requirements
	for the XML Protocol (XMLP) specification.</p> 
    </abstract> 
    <status> 
      <p><emph>This section describes the status of this document at the time
	  of its publication. Other documents may supersede this document. The latest
	  status of this document series is maintained at the W3C.</emph></p> 
      <p>This is the second
	<loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	  href="http://www.w3.org/Consortium/Process/Process-19991111/tr.html#RecsWD"
	  xlink:show="replace" xlink:actuate="onRequest">W3C Working Draft</loc> of the
	XML Protocol requirements document. It is a
	<loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	  href="http://www.w3.org/2000/09/XML-Protocol-Charter" xlink:show="replace"
	  xlink:actuate="onRequest">chartered deliverable</loc> of the XML Protocol
	Working Group (WG) <bibref ref="xmlp-wg"/>, which is part of the XML Protocol
	Activity <bibref ref="xmlp-activity"/>. The Working Group has agreed to publish
	this document, although this document does not necessarily represent consensus
	within the Working Group about XMLP requirements. This new version contains an
	updated glossary, some new requirements and usage scenarios.</p> 
      <p>Discussion of this document takes place on the public &lt;<loc
	  xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	  href="mailto:xml-dist-app@w3.org" xlink:show="replace"
	  xlink:actuate="onRequest">xml-dist-app@w3.org</loc>&gt; mailing list (Archives
	<bibref ref="xml-dist-app"/>) per the
	<xspecref href="http://www.w3.org/2000/09/XML-Protocol-Charter#email">email
	  communication rules</xspecref> in the XML Protocol Working Group Charter
	<bibref ref="xmlp-charter"/>.</p> 
      <p>This is a public W3C Working Draft for review by W3C members and other
	interested parties. It is a draft document and may be updated, replaced, or
	obsoleted by other documents at any time. It is inappropriate to use W3C
	Working Drafts as reference material or to cite them as other than "work in
	progress". A
	<loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	  href="http://www.w3.org/TR/" xlink:show="replace"
	  xlink:actuate="onRequest">list of all W3C technical reports</loc> can be found
	at http://www.w3.org/TR/.</p> 
    </status> 
    <langusage> 
      <language id="en">English</language> 
    </langusage> 
    <revisiondesc> 
      <p>Last Modified: $Date: 2002/03/05 14:35:15 $</p> 
    </revisiondesc> 
  </header> 
  <body> 
    <div1 id="N345"> 
      <head>Notations</head> 
      <p>The following terminology and typographical conventions have been used
	in this document.</p> 
      <p>Each requirement and scenario has a three digit number with a prefix
	indicating the status as follows:</p> 
      <ulist> 
	<item> 
	  <p>A "<term>DR</term>nnn" notation indicates a requirement that the
	    WG is actively considering (<emph>has not</emph> reached <emph>rough</emph>
	    consensus within the WG)</p> 
	</item> 
	<item> 
	  <p>An "<term>R</term>nnn" notation indicates a requirement that the
	    WG is not actively considering at present (<emph>has</emph> reached
	    <emph>rough</emph> consensus within the WG)</p> 
	</item> 
	<item> 
	  <p>A "<term>DS</term>nnn" notation indicates a usage scenario that
	    the WG is actively considering (<emph>has not</emph> reached <emph>rough</emph>
	    consensus within the WG)</p> 
	</item> 
	<item> 
	  <p>An "<term>S</term>nnn" notation indicates a usage scenario that
	    the WG is not actively considering at present (<emph>has rough</emph> consensus
	    within the WG)</p> 
	</item> 
      </ulist> 
      <p>The numbers used to identify requirements are arbitrary and does not
	imply any ordering or significance.</p> 
      <p>The document includes several verbatim quotes from the XML Protocol WG
	Charter <bibref ref="xmlp-charter"/> which provide context for the
	requirements. The quoted text is <emph>emphasized</emph> and prefixed with
	<term>Charter</term>.</p> 
    </div1> 
    <div1 id="N800"> 
      <head>Relationship to WG Charter</head> 
      <p>The XML Protocol WG Charter <bibref ref="xmlp-charter"/> has two
	sections describing what is
	<xspecref
	  href="http://www.w3.org/2000/09/XML-Protocol-Charter#scope">in-scope</xspecref>
	and what is
	<xspecref
	  href="http://www.w3.org/2000/09/XML-Protocol-Charter#outofscope">out-of-scope</xspecref>
	of the problem space defined for the WG. The WG considers all the requirements
	in <specref ref="N435"/> to be in-scope per the Charter.</p> 
      <p>Reviewers and readers should be familiar with the XML Protocol WG
	Charter <bibref ref="xmlp-charter"/> because it provides the critical context
	for the requirements and any discussion of them.</p> 
    </div1> 
    <div1 id="N396"> 
      <head>Requirements on Requirements</head> 
      <glist> 
	<gitem> 
	  <label id="z900">R900</label> 
	  <def> 
	    <p>The XMLP requirements must include usage scenarios that describe
	      how XMLP is used in various environments (see <specref ref="N2690"/>). The set
	      of usage scenarios must represent the expected range of XMLP's use. The
	      scenarios must be used as design cases during the development of XML Protocol,
	      and it must be possible to determine whether or not the XML Protocol design
	      enables each scenario. In addition, the usage scenarios are intended to help a
	      technically competent person understand the role of XMLP.</p> 
	  </def> 
	</gitem> 
      </glist> 
    </div1> 
    <div1 id="N435"> 
      <head>Requirements</head> 
      <div2 id="N443"> 
	<head>General Requirements</head> 
	<p><emph><term>Charter:</term> <quote>The envelope and the serialization mechanisms
	    developed by the Working Group may not preclude any programming model nor
	    assume any particular mode of communication between peers.</quote></emph></p> 
	<glist> 
	  <gitem> 
	    <label id="z500">R500</label> 
	    <def> 
	      <p>The specification will make reasonable efforts to support (but
		not define) a broad range of programming models suitable for the applications
		intended for XMLP.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z501">R501</label> 
	    <def> 
	      <p>The specification will make reasonable efforts to support (but
		not define) a broad range of protocol bindings between communicating peers (see
		also section <specref ref="N1423"/>).</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z502">R502</label> 
	    <def> 
	      <p>The specification developed by the Working Group must support
		either directly or via well defined extension mechanisms different messaging
		patterns and scenarios. The specification will directly support One-way and
		Request-response patterns as part of permanently and intermittently connected
		scenarios. The specification will not preclude the development of other
		patterns at either the application or transport layers. Examples of such
		patterns may include publish-subscribe or multicast delivery. All patterns and
		scenarios will be described by relevant usage scenarios (see
		<specref ref="N2690"/>).</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z503">R503</label> 
	    <def> 
	      <p>The Working Group will coordinate with the
		<loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
		  href="http://www.w3.org/XML/Activity" xlink:show="replace"
		  xlink:actuate="onRequest">W3C XML Activity</loc> through the
		<loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
		  href="http://www.w3.org/XML/Group/" xlink:show="replace"
		  xlink:actuate="onRequest">XML Coordination Group</loc> (W3C members only) and
		shall use available XML technologies whenever possible. If there are cases
		where this is not possible, the reasons must be documented thoroughly.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z504">R504</label> 
	    <def> 
	      <p>The specification developed by the XML Protocol Working Group
		WG <bibref ref="xmlp-wg"/> shall be as lightweight as possible keeping parts
		that are mandatory to the minimum. Optional parts of the specification should
		be orthogonal to each other allowing non-conflicting configurations to be
		implemented.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z505">R505</label> 
	    <def> 
	      <p>The specification must be suitable for use between
		communicating parties that do <emph>not</emph> have <emph>a priori
		</emph>knowledge of each other.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z506">R506</label> 
	    <def> 
	      <p>The specification must focus on the encapsulation and
		representation of data being transferred between parties capable of generating
		and/or accepting an XMLP envelope.</p> 
	    </def> 
	  </gitem> 
	</glist> 
      </div2> 
      <div2 id="N673"> 
	<head>Simplicity and Stability</head> 
	<p><emph><term>Charter:</term> <quote>Focus must be put on simplicity and modularity and
	    must support the kind of extensibility actually seen on the Web. In particular,
	    it must support distributed extensibility where the communicating parties do
	    not have a priori knowledge of each other.</quote></emph></p> 
	<p><emph><term>Charter:</term> <quote>Simplicity is a key element in making distributed
	    systems easy to understand, implement, maintain, and evolve. Modularity and
	    layering are two important design principles for achieving simplicity. Although
	    simplicity can only be measured in relative terms, the Working Group must
	    ensure that the complexity of any solution produced is comparable to that of
	    other current and widespread Web solutions.</quote></emph></p> 
	<p><emph><term>Charter:</term> <quote>Another important aspect of simplicity is ease of
	    deployment. The Working Group will look at various ways of deploying XML
	    Protocol in a manner that is compatible with the existing Web
	    infrastructure.</quote></emph></p> 
	<p>Over the years, many different companies and individuals have proven
	  the ability to design and implement workable open protocols for distributed
	  computing that operate largely within organizational boundaries. The design
	  center for XMLP must include the interoperation of systems across
	  organizational boundaries. The aim is to exploit Web philosophy and Web design
	  principles in order to help foster widespread decentralized computing on the
	  Web.</p> 
	<glist> 
	  <gitem> 
	    <label id="z307">R307</label> 
	    <def> 
	      <p>XMLP must be suitable for widespread use across organizational
		boundaries in support of the application usage scenarios supplied elsewhere in
		this document (see <specref ref="N2690"/>). This suitability requirement
		implies simplicity in the language of the XMLP specification, which itself
		describes a technology that is simple to understand and to implement correctly
		(see also <specref ref="z301"/>, <specref ref="z301"/>). Although simplicity
		can only be measured in relative terms, the Working Group should ensure that
		the complexity of any solution produced is comparable to that of other current
		and widespread Web solutions.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z308">R308</label> 
	    <def> 
	      <p>Since XMLP is intended to be a foundation protocol, its
		definition should remain simple and stable over time. Explicit use of
		modularity and layering in the resulting design will help assure longevity.
		Such a framework will allow subsequent extension of the design while leaving
		the foundation of the design intact. (<specref ref="z300"/> and
		<specref ref="z302"/> relate to stability).</p> 
	    </def> 
	  </gitem> 
	</glist> 
	<p>Requirements for simplicity and stability arise in the context of
	  the specification documents and in the context of the protocol technologies
	  being defined.</p> 
	<p>Simplicity in XMLP implies that many potentially important features
	  are out of scope for XMLP proper. However, the XML Protocol Working Group
	  recognizes that providing consistent ways to support these out of scope
	  features will help keep XMLP stable.</p> 
	<p>Examples of such features are:</p> 
	<olist> 
	  <item> 
	    <p>message authentication and encryption (perhaps using SMIME, SSL,
	      or digital signatures), </p> 
	  </item> 
	  <item> 
	    <p>sessions and transactions (possibly by providing globally unique
	      identifiers for messages), and </p> 
	  </item> 
	  <item> 
	    <p>service definition and discovery. </p> 
	  </item> 
	</olist> 
	<p>Facilities to support features like these may resemble SOAP/1.1
	  <bibref ref="soap11"/> facilities such as the "Header" element.</p> 
	<div3 id="N674"> 
	  <head>The XMLP Specification Documents</head> 
	  <glist> 
	    <gitem> 
	      <label id="z300">R300 (absorbs old DRs: DR023, DR053,
		DR088)</label> 
	      <def> 
		<p>The requirements that XMLP support the use of layering and
		  be modular, extensible, and transport independent imply that there is an
		  architectural design model behind XMLP. This architecture and the extensibility
		  framework must be explicitly defined (<specref ref="z308"/> references
		  modularity, <specref ref="z302"/> and <specref ref="z700a"/> reference
		  extensibility, <specref ref="z502"/> and <specref ref="z600"/> reference
		  transport neutrality).</p> 
		<p> In this context, layering refers to both XMLP's support of
		  XMLP modules (the layer(s) "above") as well as the capability of XMLP to define
		  services required (the layer(s) "below") for implementation across a variety of
		  underlying protocols</p> 
	      </def> 
	    </gitem> 
	    <gitem> 
	      <label id="z301">R301</label> 
	      <def> 
		<p>The XMLP specifications should be clear and easy to
		  understand. This clarity implies that considerable editorial effort will be
		  required in the structuring of the narrative through both outline/overview and
		  normative reference material.</p> 
	      </def> 
	    </gitem> 
	    <gitem> 
	      <label id="z301a">R301a</label> 
	      <def> 
		<p>The XMLP specification must clearly identify conformance
		  requirements in a way that enables the conformance of an implementation of the
		  specification to be tested (see also <bibref ref="w3c-conformance"/>).</p> 
	      </def> 
	    </gitem> 
	  </glist> 
	</div3> 
	<div3 id="N675"> 
	  <head>The XMLP Technologies</head> 
	  <glist> 
	    <gitem> 
	      <label id="z302">R302 (Absorbs old DR's: DR107)</label> 
	      <def> 
		<p>XMLP must support extensibility of vocabulary between
		  communicating parties in a way that allows for decentralized extensibility
		  without prior agreement. The WG must demonstrate through usage scenarios that
		  the solution supports decentralized extensibility in a modular and layered
		  manner (see <specref ref="N2690"/>).</p> 
		<p> To date the web has been enormously successful because it
		  has enabled the creators of web services adapt the user interfaces they provide
		  to human users of the web. A goal of XMLP is to achieve similar levels of
		  evolvability, extensibility and adaptability for interfaces between web
		  services.</p> 
	      </def> 
	    </gitem> 
	  </glist> 
	  <glist> 
	    <gitem> 
	      <label id="z304">R304</label> 
	      <def> 
		<p>XMLP should facilitate the creation of simple applications.
		  Simple applications are often characterized by message exchange patterns such
		  as one-way (or event), and two-way (or synchronous) request response
		  interactions. The specification should make such simple exchange applications
		  as easy as possible to create and to use.</p> 
	      </def> 
	    </gitem> 
	    <gitem> 
	      <label id="z306">R306 (Absorbs old DRs: DR090)</label> 
	      <def> 
		<p>XMLP and applications of XMLP must be easy to
		  deploy&mdash;especially in systems already supporting XML technologies like XML
		  namespaces <bibref ref="XMLNS"/> and XML schemas <bibref ref="XMLSchemaP1"/>
		  <bibref ref="XMLSchemaP2"/>.</p> 
		<p> The ease with which XMLP applications can be deployed will
		  be crucial to the success of XMLP. The design of the protocol architecture must
		  be sensitive to the issues arising in the full spectrum of deployment
		  environments ranging from resource constrained embedded devices (appliances)
		  through high performance service engines.</p> 
	      </def> 
	    </gitem> 
	    <gitem> 
	      <label id="z309">R309</label> 
	      <def> 
		<p>The specification should make reasonable efforts to support
		  applications that operate on resource constrained devices. Even though any
		  practical device is resource constrained in any number of dimensions including
		  but not limited to bandwidth, computational power and storage, the term
		  "resource constrained device" often refers to hand-portable devices. This
		  document does not attempt to define the term "resource constrained" nor what
		  the constraints are for the available resources.</p> 
	      </def> 
	    </gitem> 
	  </glist> 
	</div3> 
      </div2> 
      <div2 id="N774"> 
	<head>Data Encapsulation and Evolvability</head> 
	<p><emph><term>Charter:</term> <quote>For two peers to communicate in a distributed
	    environment, they must first agree on a unit of communication. The XML Protocol
	    Working Group must define such a unit by defining an encapsulation language
	    that allows for applications to independently introduce extensions and new
	    features. In this context, the following requirements for extensions and
	    features must be met:</quote></emph></p> 
	<ulist> 
	  <item> 
	    <p><emph><quote>They are or can be orthogonal to other
		extensions.</quote></emph></p> 
	  </item> 
	  <item> 
	    <p><emph><quote>They can be deployed automatically and dynamically across
		the Web with no prior coordination and no central authority.</quote></emph></p> 
	  </item> 
	  <item> 
	    <p><emph><quote>The sender can require that the recipient either obeys
		the semantics defined by an extension or aborts the processing of the
		message.</quote></emph></p> 
	  </item> 
	</ulist> 
	<glist> 
	  <gitem> 
	    <label id="z701a">R701a Requirement for Encapsulation</label> 
	    <def> 
	      <p>The XMLP specification must define the concept of an envelope
		or outermost syntactical construct or structure within which all other
		syntactical elements of the message must be enclosed. The envelope must be
		described with XML Schema <bibref ref="XMLSchemaP1"/>
		<bibref ref="XMLSchemaP2"/>.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z701b">R701b Requirement for Encapsulation</label> 
	    <def> 
	      <p>The XMLP specification must also define a processing model
		that defines what it means to properly process an XMLP envelope or produce a
		fault. This processing model must be independent of any extensions carried
		within the envelope. The processing model must apply equally to intermediaries
		as well as ultimate destinations of an XMLP envelope.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z700a">R700a Requirement for Extensibility</label> 
	    <def> 
	      <p id="z700">The XMLP specification must define a mechanism or
		mechanisms that allow applications to submit application-specific content or
		information for delivery by XMLP. In forming the standard for the mechanisms,
		the XMLP specification may consider support for:</p> 
	      <ulist> 
		<item> 
		  <p>carrying application specific payloads inside the XMLP
		    envelope,</p> 
		</item> 
		<item> 
		  <p>referring to application specific payloads outside the
		    XMLP envelope,</p> 
		</item> 
		<item> 
		  <p>carrying nested XMLP envelopes as application specific
		    data within the XMLP envelope,</p> 
		</item> 
		<item> 
		  <p>referring to XMLP envelopes as application specific data
		    outside the XMLP envelope</p> 
		</item> 
	      </ulist> 
	      <p>Regarding the handling of binary data in particular, the XML
		Protocol WG Charter <bibref ref="xmlp-charter"/> has the following to say:</p> 
	      <p><emph><term>Charter:</term> <quote>Note that XML Namespaces provide a flexible
		  and lightweight mechanism for handling language mixing as long as those
		  languages are expressed in XML. In contrast, there is only very rudimentary
		  support (base-64 encodings etc.) for including data languages expressed in
		  binary formats. Such formats include commonly used image formats like PNG, JPEG
		  etc. Although it is inconceivable to imagine a Web without such data formats,
		  it is not considered a priority of this Working Group to solve this problem.
		  This is in part because other organizations (e.g.
		  <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
		    href="http://www.ebxml.org" xlink:show="replace"
		    xlink:actuate="onRequest">ebXML</loc> and
		  <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
		    href="http://www.rosettanet.org" xlink:show="replace"
		    xlink:actuate="onRequest">RosettaNet</loc>) are already addressing the issue
		  using an approach based on MIME multipart. The Working Group can consider
		  solutions proposed by other groups as a matter of low priority, if there is
		  sufficient interest.</quote></emph></p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z700b">R700b Requirement for Extensibility</label> 
	    <def> 
	      <p>To manage the mechanisms, the XMLP specification must define a
		set of directives which will unambiguously indicate to an XMLP processor which
		extensions are optional and which are mandatory so that it can:</p> 
	      <ulist> 
		<item> 
		  <p>process all of the extensions in an XMLP envelope or
		    fail,</p> 
		</item> 
		<item> 
		  <p>process a subset of the extensions in an XMLP envelope or
		    fail.</p> 
		</item> 
	      </ulist> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z700c">R700c Requirement for Extensibility</label> 
	    <def> 
	      <p>In both cases above, the XMLP processor must fail in a
		standard and predictable fashion.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z702">R702 Requirement for Evolution</label> 
	    <def> 
	      <p>The XMLP specification must define the concept of protocol
		evolution and define a mechanism or mechanisms for identifying XMLP revisions.
		This mechanism or mechanisms must ensure that an XMLP processor, by simple
		inspection of an XMLP envelope, may determine whether or not the envelope is
		compatible with its processing ability. The specification must define the
		concepts of backwards compatible and backwards incompatible evolution.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z703a">R703a Requirement for Encapsulation of Error
	      Information</label> 
	    <def> 
	      <p>The XMLP specification must define a means to convey error
		information as a fault. The capability of XMLP carrying a fault message must
		not depend on any particular protocol binding.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z703b">R703b Requirement for Encapsulation of
	      Status</label> 
	    <def> 
	      <p>The XMLP specification must define a mechanism or mechanisms
		to allow the transfer of status information within an XMLP message without
		resort to use of XMLP fault messages or dependence on any particular
		interaction model.</p> 
	    </def> 
	  </gitem> 
	</glist> 
      </div2> 
      <div2 id="N1136"> 
	<head>Intermediaries</head> 
	<p><emph><term>Charter:</term> <quote>Intermediaries are essential parts of building
	    distributed systems that scale to the Web. Intermediaries can act in different
	    capacities ranging from proxies, caches, store-and-forward hops, to gateways.
	    Experience from HTTP <bibref ref="RFC2616"/> and other protocols has shown that
	    intermediaries cannot be implicitly defined but must be an explicit part of the
	    message path model for any data encapsulation language. Therefore, the Working
	    Group must ensure that the data encapsulation language supports composability
	    both in the vertical (within a peer) as well as in the horizontal (between
	    peers).</quote></emph></p> 
	<p>Because XMLP separates the message envelope from the transport
	  binding, two types of intermediaries are possible; transport intermediaries and
	  processing intermediaries.</p> 
	<div3 id="N1137"> 
	  <head>Transport Intermediaries</head> 
	  <p>Transport intermediaries are interposed by a transport binding, as
	    part of the message exchange pattern that it implies. They do not define a
	    processing model for messages; they only operate as part of the transport
	    binding, as a message routing mechanism and cannot be addressed from within an
	    XMLP envelope.</p> 
	  <glist> 
	    <gitem> 
	      <label id="z803">R803</label> 
	      <def> 
		<p>XMLP must not preclude the use of transport bindings that
		  define transport intermediary roles such as store-and-forward, proxy and
		  gateway.</p> 
	      </def> 
	    </gitem> 
	  </glist> 
	</div3> 
	<div3 id="N1138"> 
	  <head>Processing Intermediaries</head> 
	  <p>Processing intermediaries are full XMLP processors; they process
	    the message, but are not the ultimate recipient of it. They may be colocated
	    with transport intermediaries, using them as a routing mechanism, or they may
	    use in-message routing mechanisms.</p> 
	  <glist> 
	    <gitem> 
	      <label id="z811">R811</label> 
	      <def> 
		<p>XMLP must define and accommodate processing
		  intermediaries.</p> 
	      </def> 
	    </gitem> 
	  </glist> 
	  <p>To enable the interposition of processing intermediaries into the
	    message path, two core requirements must be met:</p> 
	  <glist> 
	    <gitem> 
	      <label id="z806">R806</label> 
	      <def> 
		<p>Targeting - XMLP must define mechanisms that allow XMLP
		  processors, including intermediaries, to identify XMLP extensions which they
		  are eligible to process.</p> 
	      </def> 
	    </gitem> 
	    <gitem> 
	      <label id="z808">R808</label> 
	      <def> 
		<p>Reporting - XMLP must enable the generation of status and/or
		  error messages by processing intermediaries, and enable propagation and proper
		  identification of status and/or error messages through processing
		  intermediaries.</p> 
	      </def> 
	    </gitem> 
	  </glist> 
	  <p>In addition</p> 
	  <glist> 
	    <gitem> 
	      <label id="z802">R802</label> 
	      <def> 
		<p>XMLP must also enable processing intermediaries to locate
		  and process XMLP extensions intended for them without processing the entire
		  message.</p> 
	      </def> 
	    </gitem> 
	  </glist> 
	</div3> 
      </div2> 
      <div2 id="N400"> 
	<head>Data Representation</head> 
	<p><emph><term>Charter:</term> <quote>With the introduction of XML and Resource
	    Description Framework (RDF) schema languages, and the existing capabilities of
	    object and type modeling languages such as Unified Modeling Language (UML),
	    applications can model data at either a syntactic or a more abstract level. In
	    order to propagate these data models in a distributed environment, it is
	    required that data conforming to a syntactic schema can be transported
	    directly, and that data conforming to an abstract schema can be converted to
	    and from XML for transport.</quote></emph></p> 
	<p><emph><term>Charter:</term> <quote>The Working Group should propose a mechanism for
	    serializing data representing non-syntactic data models in a manner that
	    maximizes the interoperability of independently developed Web applications.
	    Furthermore, as data models change, the serialization of such data models may
	    also change. Therefore it is important that the data encapsulation and data
	    representation mechanisms are designed to be orthogonal.</quote></emph></p> 
	<p><emph><term>Charter:</term> <quote>Examples of relationships that will have to be
	    serialized include subordinate relationships known from attachments and
	    manifests. Any general mechanism produced by the Working Group for serializing
	    data models must also be able to support this particular case.</quote></emph></p> 
	<glist> 
	  <gitem> 
	    <label id="z400">R400</label> 
	    <def> 
	      <p>The XMLP data encapsulation and data representation mechanisms
		must be orthogonal.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z401">R401</label> 
	    <def> 
	      <p>The XMLP data representation must support using XML Schema
		simple and complex types <bibref ref="XMLSchemaP1"/> <bibref
		  ref="XMLSchemaP2"/>.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z402">R402</label> 
	    <def> 
	      <p>The XMLP data representation must be able to serialize data
		based on data models not directly representable by XML Schema simple and
		complex types. These data models include object graphs and directed labeled
		graphs. It must be possible to reconstruct the original data from the data
		representation.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z403">R403</label> 
	    <def> 
	      <p>Data serialized according to the XMLP data representation may
		contain references to data outside the serialization. These references must be
		Uniform Resource Identifiers (URIs) <bibref ref="RFC2396"/>.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z404">R404</label> 
	    <def> 
	      <p>The XMLP data representation must be able to encode arrays
		which may be nested.</p> 
	    </def> 
	  </gitem> 
	</glist> 
      </div2> 
      <div2 id="N1423"> 
	<head>Protocol Bindings</head> 
	<p><emph><term>Charter:</term> <quote>A mechanism for using HTTP transport in the context
	    of an XML Protocol. This does not mean that HTTP is the only transport
	    mechanism that can be used for the technologies developed, nor that support for
	    HTTP transport is mandatory. This component merely addresses the fact that HTTP
	    transport is expected to be widely used, and so should be addressed by this
	    Working Group.</quote></emph></p> 
	<p><emph><term>Charter:</term> <quote>Mapping onto existing application layer protocols
	    may lead to scalability problems, security problems and semantic complications
	    when the application semantics defined by those protocols interfere with the
	    semantics defined by an XML Protocol. The WG may consider issuing a warning
	    about the possible problems of reusing non-safe "transports" like SMTP and
	    others. A mapping onto transport services other than HTTP will only be started
	    if enough interest is shown and time is available.</quote></emph></p> 
	<p><emph><term>Charter:</term> <quote>General transport issues were investigated by the
	    HTTP-NG Activity, which designed a general transport mechanism for handling
	    out-of-order delivery of message streams between two peers. While we do
	    strongly encourage work to be undertaken in this area, it is expected that work
	    in this area will be done in collaboration with the
	    <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	      href="http://www.ietf.org" xlink:show="replace"
	      xlink:actuate="onRequest">IETF</loc> and not as part of this Working
	    Group</quote></emph></p> 
	<glist> 
	  <gitem> 
	    <label id="z600">R600</label> 
	    <def> 
	      <p>The XMLP specification must not mandate any dependency on
		specific features or mechanisms provided by a particular transport protocol
		beyond the basic requirement that the transport protocol must have the ability
		to deliver the XMLP envelope as a whole unit. This requirement does not
		preclude a mapping or binding to a transport protocol taking advantages of such
		features. It is intended to ensure that the basic XMLP specification will be
		transport neutral.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z604">R604</label> 
	    <def> 
	      <p>The XMLP specification must consider the scenario where an
		XMLP message may be routed over possibly many different transport or
		application protocols as it moves between intermediaries on the message path.
		This requirement implies it must be possible to apply many transport or
		application protocol bindings to the XMLP message without information loss from
		the XMLP message content.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z608">R608</label> 
	    <def> 
	      <p>The XMLP binding mechanism should not preclude the possibility
		of constructing bindings to protocols that provide a security mechanism.</p> 
	      <p>Typical examples of such protocols are SSL providing a secure
		channel,and S/MIME which provides a secure wrapper. It should be possible to
		specify XMLP bindings for such security protocols.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z609">R609</label> 
	    <def> 
	      <p>The XMLP specification may mandate the use of a specific
		character encoding, such as UTF-8, at some point in the future.</p> 
	      <p>The Working Group is aware of the complexity resulting in the
		use of a large set of character encodings and is actively seeking feedback in
		this area. Until all the feedback has been evaluated, the Working Group will
		not make a decision in favor of restriction.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z612">R612</label> 
	    <def> 
	      <p>The XMLP specification must provide a normative description of
		the default binding of XMLP to HTTP <bibref ref="RFC2616"/>. This binding,
		while normative, is not to be exclusive. The binding provided by the Working
		Group will respect the semantics of HTTP and will demonstrate that it can
		co-exist with existing HTTP/1.0 and HTTP/1.1 implementations.</p> 
	    </def> 
	  </gitem> 
	</glist> 
      </div2> 
      <div2 id="N1595"> 
	<head>Convention for RPC</head> 
	<p><emph><term>Charter:</term> <quote>A convention for the content of the envelope when
	    used for RPC (Remote Procedure Call) applications. The protocol aspects of this
	    should be coordinated closely with the
	    <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	      href="http://www.ietf.org" xlink:show="replace"
	      xlink:actuate="onRequest">IETF</loc> and make an effort to leverage any work
	    they are doing</quote></emph></p> 
	<glist> 
	  <gitem> 
	    <label id="z200">R200</label> 
	    <def> 
	      <p>XMLP must contain a convention for representing calls and
		replies between RPC (Remote Procedure Call) applications and services. The
		conventions must include the following:</p> 
	      <olist> 
		<item> 
		  <p>Complete and unique identification, by means of URI syntax
		    <bibref ref="RFC2396"/>, of the program, service or object and procedure or
		    method to be called.</p> 
		</item> 
		<item> 
		  <p>Enable support for matching response messages to request
		    messages for cases in which matching is not provided by the underlying protocol
		    binding.</p> 
		</item> 
		<item> 
		  <p>The ability to specify the parameters to a call in a
		    request message and the results of a call in a reply messages.</p> 
		</item> 
		<item> 
		  <p>Provisions for specifying errors in a reply message (see
		    also <specref ref="z703a"/> and <specref ref="z703b"/>)</p> 
		</item> 
	      </olist> 
	      <p>Where possible, an attempt will be made to leverage any
		related work done by the
		<loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
		  href="http://www.ietf.org" xlink:show="replace"
		  xlink:actuate="onRequest">IETF</loc>.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z201">R201</label> 
	    <def> 
	      <p>The RPC conventions within XMLP should use the Data
		Representation model discussed in <specref ref="N400"/> to represent parameters
		to a call in the request message and results of the call in the reply message.
		It must be convenient to create straightforward mappings of the data types to a
		wide variety of widely deployed programming languages and object systems.</p> 
	    </def> 
	  </gitem> 
	  <gitem> 
	    <label id="z202">R202</label> 
	    <def> 
	      <p>XMLP should allow applications to include custom encodings for
		data types used for parameters and results in RPC messages.</p> 
	    </def> 
	  </gitem> 
	</glist> 
      </div2> 
    </div1> 
    <div1 id="N2100"> 
      <head>Requirements from other W3C WGs</head> 
      <p>These are requirements submitted by other W3C Working Groups and
	Activities.</p> 
      <div2 id="N2200"> 
	<head>XForms Requirements</head> 
	<p>These are the requirements that the XML Protocol WG
	  <bibref ref="xmlp-wg"/> has received from the (W3C Members only)
	  <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	    href="http://www.w3.org/MarkUp/Forms/" xlink:show="replace"
	    xlink:actuate="onRequest">XForms WG</loc><loc
	    xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	    href="http://lists.w3.org/Archives/Member/w3c-xml-protocol-wg/2000Oct/0065.html"
	    xlink:show="replace" xlink:actuate="onRequest">:</loc></p> 
	<p>XForms models the data to be obtained from the user, specifies how a
	  user interface for obtaining the data is declared using XHTML markup, and
	  finally specifies how the populated data is shipped backed to the server. The
	  [SEND] subgroup is responsible for the interactions between the XForms client
	  and the backend server.</p> 
	<p>The work on [SEND] could be a replacement for the various methods
	  for posting data to an HTTP server such as application/x-www-form-urlencoded or
	  multipart/form-data.</p> 
	<p>Requirements:</p> 
	<olist> 
	  <item> 
	    <p>An XForms client needs to send and receive well-formed XML data
	      that has been defined through the XForms specification. For example, XML data
	      will be "sent" when the user agent is done filling out an XForm or XML data
	      will be "received" when a server ships out initial values for populating a
	      form.</p> 
	  </item> 
	  <item> 
	    <p>An XForms client needs to send/receive partially completed XML
	      data to/from the server for persistence. This functionality will allow a user
	      agent to "save" or "load" a form in progress. Therefore, the XML data may not
	      fully conform to a schema when only partially completed.</p> 
	  </item> 
	  <item> 
	    <p>An XForms client needs to be able to send/receive arbitrary
	      binary content along with the XML data. This will be used to support features
	      such as the "file upload" feature available in many WWW browsers. There needs
	      to be support for both 'in-band' (i.e. the binary data is within the XML data
	      in an XML compatible encoding such as base64) and 'out-of-band' data (i.e. the
	      binary data is available at some other location, and the XML data refers to the
	      other location).</p> 
	  </item> 
	</olist> 
      </div2> 
      <div2 id="N1573"> 
	<head>P3P Requirements</head> 
	<p>These are the requirements that the XML Protocol WG
	  <bibref ref="xmlp-wg"/> has received from the
	  <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	    href="http://www.w3.org/P3P/" xlink:show="replace"
	    xlink:actuate="onRequest">P3P WG</loc><loc
	    xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	    href="http://lists.w3.org/Archives/Member/w3c-xml-protocol-wg/2000Oct/0065.html"
	    xlink:show="replace" xlink:actuate="onRequest">:</loc></p> 
	<ulist> 
	  <item> 
	    <p>It must be possible to associate a P3P Privacy Policy with an
	      XMLP message.</p> 
	  </item> 
	</ulist> 
      </div2> 
      <div2 id="L5908"> 
	<head>RDF and UML Requirements</head> 
	<p>The XML Protocol WG has not directly received a set of requirements
	  from the
	  <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	    href="http://www.w3.org/RDF/" xlink:show="replace"
	    xlink:actuate="onRequest">RDF WG</loc> and from the UML group similar to what
	  was received from the
	  <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	    href="#N1573" xlink:show="replace" xlink:actuate="onRequest">P3P</loc> and the
	  <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	    href="#N2200" xlink:show="replace" xlink:actuate="onRequest">XForms WGs</loc>.
	  However, the WG believes that <specref ref="z402"/> and
	  <xspecref
	    href="http://www.w3.org/2000/09/XML-Protocol-Charter#representation">section
	    1.4 of the XML Protocol WG charter</xspecref> addresses the primary concerns of
	  these groups. The WG has dealt with these concerns as part of
	  <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	    href="http://www.w3.org/2000/xp/Group/xmlp-issues#x29" xlink:show="replace"
	    xlink:actuate="onRequest">issue 29</loc>.</p> 
      </div2> 
    </div1> 
    <div1 id="N2690"> 
      <head>Usage Scenarios</head> 
      <p>Usage scenarios are intended to provide representative examples of
	situations where XMLP might be applicable. The purpose of usage scenarios is to
	help ensure that XMLP is capable of dealing with applications and services
	actually seen in the Web. Hence, usage scenario specifications should be at a
	coarse-grain level of an end user's desired XML document/message interchange,
	rather than at a detailed, implementation or transport specific level. Usage
	scenarios often make assumptions about the specific environments in which the
	use cases are described that the requirements cannot.</p> 
      <p>In other words, the requirements are explicitly targeted to the design
	of XMLP; usage scenarios are targeted to systems in which XMLP is most likely
	part of an overall solution. Not all requirements need to be referenced by an
	example usage scenario, since, in addition to higher-level, application
	specific requirements for use, there are internal, architectural requirements
	independent of any specific higher-level use (e.g., using XML, schemas, and
	namespaces imposes certain requirements irrespective of use).</p> 
      <glist> 
	<gitem> 
	  <label id="s1">S1 Fire-and-forget to single receiver</label> 
	  <def> 
	    <p>A sender wishes to send an unacknowledged message to a single
	      receiver (e.g. send a stock price update every 15 minutes)</p> 
	    <note>
	      <p>S1 Originates from splitting the
		<loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
		  href="http://www.ebxml.org" xlink:show="replace"
		  xlink:actuate="onRequest">ebXML</loc> use case 1.1 into 2 scenarios (S1 and
		S2).</p>
	    </note> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s2">S2 Fire-and-forget to multiple receivers</label> 
	  <def> 
	    <p>A sender wishes to send unacknowledged messages to a set of
	      receivers (e.g. send a stock price update every 15 minutes)</p> 
	    <note> 
	      <p>S2 Originates from splitting the
		<loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
		  href="http://www.ebxml.org" xlink:show="replace"
		  xlink:actuate="onRequest">ebXML</loc> use case 1.1 into 2 scenarios (S1 and
		S2). Note that S2 may be decomposed into Multiple instances of S1 under the
		control of some "higher-level" process such as multicast or
		publish/subscribe.</p> 
	    </note> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s3">S3 Request-response</label> 
	  <def> 
	    <p>Two parties wish to conduct electronic business by the exchange
	      of business documents. The sending party packages one or more documents into a
	      request message which is then sent to the receiving party. The receiving party
	      then processes the message contents and responds to the sending party. Examples
	      of the sending party's documents may be purchase order requests, manufacturing
	      information and patient healthcase information. Examples of the receiving
	      party's responses may include order confirmations, change control information
	      and contractual acknowledgements.</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s4">S4 Remote Procedure Call (RPC)</label> 
	  <def> 
	    <p>The sender invokes the service by passing parameters that are
	      serialised into a message for transmission to the receiving server.</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s5">S5 Request with acknowledgement</label> 
	  <def> 
	    <p>A sender wishes to reliably exchange data with a receiver. It
	      wishes to be notified of the status of the data delivery to the receiver. The
	      status may take the form of:</p> 
	    <olist> 
	      <item> 
		<p>The data has been successfully delivered to the receiver,
		  or</p> 
	      </item> 
	      <item> 
		<p>Some failure has occurred which prevents the sucessful
		  delivery to the receiver.</p> 
	      </item> 
	    </olist> 
	    <note> 
	      <p>This scenario does not imply that reliable message delivery
		will be supported by the XMLP core specification.</p> 
	    </note> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s6">S6 Request with encrypted payload</label> 
	  <def> 
	    <p>A sender wishes to exchange data with a receiver and has agreed
	      to encrypt the payload. The sending and receiving applications agree on the
	      encryption methodology. Data is encrypted by the originating application and
	      sent to the receiver via XMLP.The data reaches the receiving application
	      untouched, and may then be decrypted in the agreed-upon manner.</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s7">S7 Third part intermediary</label> 
	  <def> 
	    <p>A blind auction marketplace serves as a broker between buyers
	      and suppliers. Buyers submit their requirements to the marketplace hub, which
	      broadcasts this information to multiple suppliers. Suppliers respond to the
	      marketplace hub where the information is logged and ultimately delivered to the
	      buyer.</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s8">S8 Conversational message exchange</label> 
	  <def> 
	    <p>Two partners are engaged in a long-running process which
	      involves multiple message exchanges. Examples of such processes may be complex
	      supply chain management, dynamic manufacturing scheduling or information
	      retrieval. There may be multiple instances of the same process in progress
	      between the same two partners.</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s10">S10 Message header and payload encryption</label> 
	  <def> 
	    <p>Two trading partners engaged in a message exchange may agree to
	      cryptographically sign and verify either the message header, the routing
	      header(s) and/ or the payload. The sender or originating application may
	      perform the siging of the payload. The sending message extension signs the
	      message header. A routing header may be appended to the message header. The
	      routing header may also be signed by a message service extension.</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s11">S11 Communication via multiple intermediaries</label>
	  
	  <def> 
	    <p>An intermediary forwards a message to the ultimate receiver on
	      behalf of an initial sender. The initial sender wishes to enforce the
	      non-repudiation property of the route. Any intermediate message service
	      extension that appends a routing message must log the routing header
	      information. Signed routing headers and the message headers must be logged at
	      the intermediary which passes the message to the ultimate receiver to provide
	      the evidence of non-repudiation.</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s17">DS17 Asynchronous messaging</label> 
	  <def> 
	    <p>A sender sends a message asynchronously to a receiver expecting
	      some response at a later time. The sender tags the request with an identifier
	      allowing the response to be correlated with the originating request. The sender
	      may also tag the message with an identifier for another service (other than the
	      originating sender) which will be the recipient of the response.</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s19">S19 Sending non-XML data</label> 
	  <def> 
	    <p>A digital camera wishes to transmit image data over a wireless
	      link using XMLP to a remote server. The binary image data (non-XML) accompanies
	      the message. The digital camara represents a situation in which connections
	      from the receiver to the sender may not be permitted due to device limitations
	      or firewalls.</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s20">S20 Multiple asynchronous responses</label> 
	  <def> 
	    <p>An application requests some information from a server, which is
	      returned at a later time in multiple responses. This can be because the
	      requested information was not available all at once (e.g., distributed web
	      searches). (based on <bibref ref="mail1"/>)</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s21">S21 Incremental parsing/processing of XMLP
	    messages</label> 
	  <def> 
	    <p>An XMLP sender generates a lengthy XMLP message that is
	      incrementally transmitted and received by an XMLP receiver. The XMLP receiver
	      processes the body as it is received (e.g., employing a SAX-style XML parser on
	      the body as it arrives). Note that the entire message need not be present at
	      one time at any point in its existence.</p> 
	    <p>This would be particularly helpful for memory-limited
	      processors. It is also very efficient for services which are consistent with
	      incremental, real-time transformations of the data, direct archiving of
	      received data, etc. It would also be useful in scenarios in which voluminous
	      body data can be directly transduced into application data structures or events
	      by an XMLP (module) processor. In particular, there is no need for the explicit
	      construction of a DOM model of the data. Support for XMLP data models might
	      still be possible even with incremental processing if the models are
	      incrementally constructible (copied in its entirety from <bibref
		ref="mail2"/>)</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s23">S23 Event notification</label> 
	  <def> 
	    <p>An application subscribes to notifications of certain named
	      events from an event source. When such events occur, notifications are sent
	      back to the originating application (first party notification) or to another
	      application (third party notification). For example, an application can
	      subscribe to notification of various aspects of a printer's status (e.g.,
	      running out of paper, ink etc.). The notifications of such events could be
	      delivered to a management application (based on: See item 2 of
	      <bibref ref="mail3"/>)</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s24">DS24 Caching</label> 
	  <def> 
	    <p>Some applications may wish to make caching possible for latency,
	      bandwidth use or other gains in efficiency. To enable this, it should be
	      possible to assign cacheability in a variety of circumstances. For example,
	      "read" caching might be used to store messages at intermediaries for reuse in
	      the response phase of the request/response message exchange pattern. Such
	      caching might be on the scope of an entire message, an XMLP module, or scoped
	      to individual XMLP module elements.</p> 
	    <p>Similarly, "write" caching may be useful in situations when a
	      request message in a request/response message exchange pattern (as well as
	      similar messages in other message exchange patterns) does not need to be
	      immediately forwarded or responded to. Such cachability might be scoped by
	      different methods, as outlined above.</p> 
	    <p>Cacheability scoped by different elements might be associated by
	      an attribute to the target element, through use of XML Query or XPath to
	      describe the target elements in a header, or implied by the document schema,
	      for example.</p> 
	    <p>Cacheability mechanisms applied to messages, bodies or elements
	      might include time-to-live (delta time), expiry (absolute time), entity
	      validation, temporal validation, subscription to invalidation services, and
	      object update/purge.</p> 
	    <p>Finally, some applications may be capable of describing the
	      dependencies and relationships between message elements. For example, a
	      response element may be applicable to a wide range of requests; it would be
	      beneficial to describe this element's relationship with request elements, so
	      that it may satisfy a wide range of requests in an economical fashion.
	      Similarly, the presence of a particular element may be a trigger for a
	      cacheability mechanism to be applied to another element, such as validation or
	      invalidation (see also <bibref ref="mail4"/>)</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s805">S805 Routing</label> 
	  <def> 
	    <p>A developer wishes to force an explicit message path through
	      certain intermediaries - for instance, he might use an anonymizing intermediary
	      to make a call to a specified remote service without allowing the target
	      service to track the identity/IP of the caller. In this case, the intermediary
	      is responsible for calling the target service and returning the results to the
	      caller, using its own authentication credentials if any are required by the
	      target service.</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s807">S807 Tracking</label> 
	  <def> 
	    <p>A service provider wishes to track incoming messages to see
	      exactly which processing intermediaries have touched it by the time it arrives
	      at its destination. It therefore requires a tracking extension to be included
	      by all clients, and by any processing intermediaries along the message paths
	      from the clients to the server.</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s809">S809 Caching with Expiration</label> 
	  <def> 
	    <p>BizCo updates their online price catalog every morning at 8AM.
	      Therefore, when remote clients access their XMLP inventory service, clients and
	      intermediaries may cache the results of any price queries until 8AM the next
	      day.</p> 
	  </def> 
	</gitem> 
	<gitem> 
	  <label id="s810">S810 QoS</label> 
	  <def> 
	    <p>An XMLP sender (not necessarily the initial XMLP sender) wants
	      the XMLP message to be handled with specific quality of service as it traverses
	      the XMLP message path to include multiple XMLP Processing intermediaries.
	      Information in the XMLP message is used to select appropriate QoS mechanisms
	      (e.g.,
	      <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
		href="http://www.ietf.org/html.charters/rsvp-charter.html" xlink:show="replace"
		xlink:actuate="onRequest">RSVP</loc>,
	      <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
		href="http://www.ietf.org/html.charters/diffserv-charter.html"
		xlink:show="replace" xlink:actuate="onRequest">Diffserv</loc>,
	      <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
		href="http://www.ietf.org/html.charters/mpls-charter.html" xlink:show="replace"
		xlink:actuate="onRequest">MPLS</loc>, etc.). Selection of QoS may be
	      constrained by
	      <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
		href="http://www.ietf.org/html.charters/policy-charter.html"
		xlink:show="replace" xlink:actuate="onRequest">QoS policies</loc>,
	      <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
		href="http://www.dmtf.org/info/sla.html" xlink:show="replace"
		xlink:actuate="onRequest">Service Level Agreements</loc> (SLAs),
	      <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
		href="http://www.ist-tequila.org/" xlink:show="replace"
		xlink:actuate="onRequest">Service Level Specifications</loc> (SLS).</p> 
	  </def> 
	</gitem> 
      </glist> 
    </div1> 
    <div1 id="N2678"> 
      <head>References</head> 
      <blist> 
	<bibl key="1" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"
	  href="http://www.w3.org/2000/xp/Activity.html" id="xmlp-activity">XML Protocol
	  Activity</bibl> 
	<bibl key="2" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"
	  href="http://www.w3.org/2000/xp/Group" id="xmlp-wg">XML Protocol Working
	  Group</bibl> 
	<bibl key="3" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"
	  href="http://www.w3.org/2000/09/XML-Protocol-Charter" id="xmlp-charter">XML
	  Protocol Working Group Charter</bibl> 
	<bibl key="4" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"
	  href="http://lists.w3.org/Archives/Public/xml-dist-app/" id="xml-dist-app">XML
	  Protocol Discussion Archive</bibl> 
	<bibl key="5" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" id="RFC2396"
	  href="http://www.ietf.org/rfc/rfc2396.txt">IETF "RFC 2396: Uniform Resource
	  Identifiers (URI): Generic Syntax", T. Berners-Lee, R. Fielding, L. Masinter,
	  August 1998.</bibl> 
	<bibl key="6" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" id="RFC2616"
	  href="http://www.ietf.org/rfc/rfc2616.txt">IETF "RFC 2616: Hypertext Transfer
	  Protocol -- HTTP/1.1", R. Fielding, J. Gettys, J. C. Mogul, H. Frystyk, T.
	  Berners-Lee, January 1997.</bibl> 
	<bibl key="7" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" id="soap11"
	  href="http://www.w3.org/TR/SOAP/">W3C Note "Simple Object Access Protocol
	  (SOAP) 1.1", Don Box, David Ehnebuske, Gopal Kakivaya, Andrew Layman, Noah
	  Mendelsohn, Henrik Nielsen, Satish Thatte, Dave Winer, 8 May 2000.</bibl> 
	<bibl key="8" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"
	  id="XMLSchemaP1" href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">W3C
	  Recommendation "XML Schema Part 1: Structures", Henry S. Thompson, David Beech,
	  Murray Maloney, Noah Mendelsohn, 2 May 2001.</bibl> 
	<bibl key="9" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"
	  id="XMLSchemaP2" href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/">W3C
	  Recommendation "XML Schema Part 2: Datatypes", Paul V. Biron, Ashok Malhotra, 2
	  May 2001.</bibl> 
	<bibl key="10" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"
	  href="http://www.w3.org/TR/1999/REC-xml-names-19990114/" id="XMLNS">W3C
	  Recommendation "Namespaces in XML", Tim Bray, Dave Hollander, Andrew Layman, 14
	  January 1999.</bibl> 
	<bibl key="11" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"
	  href="http://www.w3.org/TR/2000/REC-xml-20001006" id="XML">W3C Recommendation
	  "Extensible Markup Language (XML) 1.0 (Second Edition)", Tim Bray, Jean Paoli,
	  C. M. Sperberg-McQueen, Eve Maler, 6 October 2000.</bibl> 
	<bibl key="12" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple" href="http://www.w3.org/Guide/Conformance.html"
	  xlink:show="replace" xlink:actuate="onRequest" id="w3c-conformance">W3C
	  Conformance requirements (W3C Members only)</bibl> 
	<bibl key="13" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple"
	  href="http://lists.w3.org/Archives/Public/xml-dist-app/2000Dec/0208.html"
	  xlink:show="replace" xlink:actuate="onRequest" id="mail1">Mail 1</bibl> 
	<bibl key="14" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple"
	  href="http://lists.w3.org/Archives/Public/xml-dist-app/2000Dec/0204.html"
	  xlink:show="replace" xlink:actuate="onRequest" id="mail2">Mail 2</bibl> 
	<bibl key="15" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple"
	  href="http://lists.w3.org/Archives/Public/xml-dist-app/2001Jan/0070.html"
	  xlink:show="replace" xlink:actuate="onRequest" id="mail3">Mail 3</bibl> 
	<bibl key="16" xmlns:xlink="http://www.w3.org/1999/xlink"
	  xlink:type="simple"
	  href="http://lists.w3.org/Archives/Public/xml-dist-app/2001Jan/0109.html"
	  xlink:show="replace" xlink:actuate="onRequest" id="mail4">Mail 4</bibl> 
      </blist> 
    </div1> 
  </body> 
  <back> 
    <inform-div1 id="N2672"> 
      <head>Acknowledgments</head> 
      <p>The WG thanks all participants of the
	<loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
	  href="mailto:xml-dist-app@w3.org" xlink:show="replace"
	  xlink:actuate="onRequest">xml-dist-app@w3.org</loc> mailing list (Archives
	<bibref ref="xml-dist-app"/>) for directly and indirectly contributing to this
	document.</p> 
    </inform-div1> 
  </back> 
</spec> 
