<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:st1="urn:schemas-microsoft-com:office:smarttags"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<link rel=Original-File
href="file:///C:\Documents%20and%20Settings\ddg\Desktop\MOBY\Protocols.doc">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="Protocols_files/filelist.xml">
<title>Protocols</title>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="country-region"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="place"/>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Author>ddg</o:Author>
  <o:Template>Normal</o:Template>
  <o:LastAuthor>ddg</o:LastAuthor>
  <o:Revision>15</o:Revision>
  <o:TotalTime>910</o:TotalTime>
  <o:Created>2003-03-12T02:10:00Z</o:Created>
  <o:LastSaved>2003-03-13T09:41:00Z</o:LastSaved>
  <o:Pages>1</o:Pages>
  <o:Words>1982</o:Words>
  <o:Characters>11302</o:Characters>
  <o:Company>NCGR</o:Company>
  <o:Lines>94</o:Lines>
  <o:Paragraphs>26</o:Paragraphs>
  <o:CharactersWithSpaces>13258</o:CharactersWithSpaces>
  <o:Version>10.2625</o:Version>
 </o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Print</w:View>
  <w:Zoom>BestFit</w:Zoom>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if !mso]><object
 classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object>
<style>
st1\:*{behavior:url(#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-style-parent:"";
        margin:0in;
        margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:12.0pt;
        font-family:"Times New Roman";
        mso-fareast-font-family:"Times New Roman";}
p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText
        {mso-style-noshow:yes;
        margin:0in;
        margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";
        mso-fareast-font-family:"Times New Roman";}
p.MsoFooter, li.MsoFooter, div.MsoFooter
        {margin:0in;
        margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        tab-stops:center 3.0in right 6.0in;
        font-size:12.0pt;
        font-family:"Times New Roman";
        mso-fareast-font-family:"Times New Roman";}
span.MsoFootnoteReference
        {mso-style-noshow:yes;
        vertical-align:super;}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;
        text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;
        text-underline:single;}
span.GramE
        {mso-style-name:"";
        mso-gram-e:yes;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;
        mso-header-margin:.5in;
        mso-footer-margin:.5in;
        mso-even-footer:url("Protocols_files/header.htm") ef1;
        mso-footer:url("Protocols_files/header.htm") f1;
        mso-paper-source:0;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
        {mso-style-name:"Table Normal";
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-parent:"";
        mso-padding-alt:0in 5.4pt 0in 5.4pt;
        mso-para-margin:0in;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";}
table.MsoTableGrid
        {mso-style-name:"Table Grid";
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        border:solid windowtext 1.0pt;
        mso-border-alt:solid windowtext .5pt;
        mso-padding-alt:0in 5.4pt 0in 5.4pt;
        mso-border-insideh:.5pt solid windowtext;
        mso-border-insidev:.5pt solid windowtext;
        mso-para-margin:0in;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";}
</style>
<![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>

<div class=Section1>

<p class=MsoNormal align=center style='text-align:center'><b style='mso-bidi-font-weight:
normal'><span style='font-size:14.0pt'>Protocols<o:p></o:p></span></b></p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify;text-indent:
.5in'>A <i style='mso-bidi-font-style:normal'>protocol</i> is a set of
conventions or rules that allow the orderly and sensible exchange of
information.<span style='mso-spacerun:yes'>  </span>When two parties or
software agents agree on a protocol, they agree on <span class=GramE>a</span>
encoding and decoding scheme for the representation and interpretation of
data.<span style='mso-spacerun:yes'>  </span>There are hundreds of communication
protocols (see, for example, Javvin’s map of communication protocols at <a
href="http://www.javvin.com/pics/map_big.gif">www.javvin.com/pics/map_big.gif</a>).
A common organization of communication protocols is the OSI-RM (Open Systems
Interconnect Reference Model) which was developed by the ISO in 1978.<span
style='mso-spacerun:yes'>  </span>This multi-layer model creates a <i
style='mso-bidi-font-style:normal'>protocol stack</i>:</p>

<p class=MsoNormal style='text-align:justify'><o:p>&nbsp;</o:p></p>

<div align=center>

<table class=MsoTableGrid border=0 cellspacing=0 cellpadding=0
 style='border-collapse:collapse;mso-yfti-tbllook:480;mso-padding-alt:0in 5.4pt 0in 5.4pt'>
 <tr style='mso-yfti-irow:0'>
  <td width=127 valign=top style='width:95.4pt;border-top:double windowtext 1.5pt;
  border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;
  mso-border-top-alt:double windowtext 1.5pt;mso-border-bottom-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:12.0pt;text-align:center'><b
  style='mso-bidi-font-weight:normal'>Protocol Layer<o:p></o:p></b></p>
  </td>
  <td width=278 valign=top style='width:2.9in;border-top:double windowtext 1.5pt;
  border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;
  mso-border-top-alt:double windowtext 1.5pt;mso-border-bottom-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:12.0pt;text-align:center'><b
  style='mso-bidi-font-weight:normal'>Description<o:p></o:p></b></p>
  </td>
  <td width=156 valign=top style='width:117.0pt;border-top:double windowtext 1.5pt;
  border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;
  mso-border-top-alt:double windowtext 1.5pt;mso-border-bottom-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:12.0pt;text-align:center'><b
  style='mso-bidi-font-weight:normal'>Example<o:p></o:p></b></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:1'>
  <td width=127 valign=top style='width:95.4pt;border:none;mso-border-top-alt:
  solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:12.0pt;text-align:justify'>7. Application<o:p></o:p></p>
  </td>
  <td width=278 valign=top style='width:2.9in;border:none;mso-border-top-alt:
  solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:12.0pt'>Interface to user processes<o:p></o:p></p>
  </td>
  <td width=156 valign=top style='width:117.0pt;border:none;mso-border-top-alt:
  solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:12.0pt;text-align:justify'>HTTP, FTP,
  SMTP<o:p></o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:2'>
  <td width=127 valign=top style='width:95.4pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;text-align:justify'>6. Presentation<o:p></o:p></p>
  </td>
  <td width=278 valign=top style='width:2.9in;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt'>Architecture-independent data
  encoding<o:p></o:p></p>
  </td>
  <td width=156 valign=top style='width:117.0pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;text-align:justify'>PP<o:p></o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:3'>
  <td width=127 valign=top style='width:95.4pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;text-align:justify'>5. Session<o:p></o:p></p>
  </td>
  <td width=278 valign=top style='width:2.9in;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt'>Establishes connection between processes
  on different hosts; handles security and creation of the sessions.<o:p></o:p></p>
  </td>
  <td width=156 valign=top style='width:117.0pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;text-align:justify'>NetBIOS/IP<o:p></o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:4'>
  <td width=127 valign=top style='width:95.4pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;text-align:justify'>4. Transport<o:p></o:p></p>
  </td>
  <td width=278 valign=top style='width:2.9in;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt'>Point to point connection between
  hosts<o:p></o:p></p>
  </td>
  <td width=156 valign=top style='width:117.0pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;text-align:justify'>TCP<a
  style='mso-footnote-id:ftn1' href="#_ftn1" name="_ftnref1" title=""><span
  class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]><span
  class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman";
  mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
  EN-US;mso-bidi-language:AR-SA'>[1]</span></span><![endif]></span></span></a>,
  UDP<o:p></o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:5'>
  <td width=127 valign=top style='width:95.4pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;text-align:justify'>3. Network<o:p></o:p></p>
  </td>
  <td width=278 valign=top style='width:2.9in;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt'>Packet routing and multicast<o:p></o:p></p>
  </td>
  <td width=156 valign=top style='width:117.0pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;text-align:justify'>IP<o:p></o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:6'>
  <td width=127 valign=top style='width:95.4pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;text-align:justify'>2. Data link<o:p></o:p></p>
  </td>
  <td width=278 valign=top style='width:2.9in;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt'>Low-level framing and error
  correction.<span style='mso-spacerun:yes'>  </span>MAC addresses are at this
  level.<o:p></o:p></p>
  </td>
  <td width=156 valign=top style='width:117.0pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;text-align:justify'>IEEE protocols<o:p></o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:7;mso-yfti-lastrow:yes'>
  <td width=127 valign=top style='width:95.4pt;border:none;border-bottom:double windowtext 1.5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;margin-right:0in;margin-bottom:
  6.0pt;margin-left:0in;text-align:justify'>1. Physical<o:p></o:p></p>
  </td>
  <td width=278 valign=top style='width:2.9in;border:none;border-bottom:double windowtext 1.5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;margin-right:0in;margin-bottom:
  6.0pt;margin-left:0in'>Electrical and mechanical connections to the network<o:p></o:p></p>
  </td>
  <td width=156 valign=top style='width:117.0pt;border:none;border-bottom:double windowtext 1.5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;margin-right:0in;margin-bottom:
  6.0pt;margin-left:0in;text-align:justify'>Ethernet, Token ring<o:p></o:p></p>
  </td>
 </tr>
</table>

</div>

<p class=MsoNormal align=center style='margin-top:6.0pt;text-align:center'><b
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt'>Protocol
Layers</span></b><span style='font-size:10.0pt'> (Reconstructed from queries at:
<a href="http://foldoc.doc.ic.ac.uk/foldoc/index.html">http://foldoc.doc.ic.ac.uk/foldoc/index.html</a>)<o:p></o:p></span></p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify;text-indent:
.5in'>For MOBY, we will be concerned exclusively with the <i style='mso-bidi-font-style:
normal'>Application layer</i>; that is, a new protocol that uses HTTP, FTP,
etc. to handle the exchange of data under a shared syntax and semantic.<span
style='mso-spacerun:yes'>  </span>This may be accomplished by either extending
an existing protocol (for example, using <i style='mso-bidi-font-style:normal'>extension
headers</i> in HTTP), or layering on top an existing application layer (for
example, using SOAP’s binding to HTTP, SMTP, etc.).<span
style='mso-spacerun:yes'>  </span>A benefit to the former approach is that HTTP
is functionally rich yet simple; it is well documented and broadly adopted, and
this makes it is relative easy to implement a set of extension standards
amongst compliant web servers.<span style='mso-spacerun:yes'>  </span>HTTP’s clean
use of headers and payloads, MIME-types, and its set of mature helper
applications <span class=GramE>makes</span> it an excellent platform with which
to rapidly develop a prototypical model or even a new protocol<a
style='mso-footnote-id:ftn2' href="#_ftn2" name="_ftnref2" title=""><span
class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[2]</span></span><![endif]></span></span></a>.</p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify;text-indent:
.5in'>Yet a tight dependency on HTTP has its limitations: HTTP is a stateless,
synchronous protocol (see below), and this has limitations in a web service
environment. For example, see IBM’s proposal for a “reliable” HTTPR protocol to
be layered on top of HTTP<a style='mso-footnote-id:ftn3' href="#_ftn3"
name="_ftnref3" title=""><span class=MsoFootnoteReference><span
style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[3]</span></span><![endif]></span></span></a>.<span
style='mso-spacerun:yes'>  </span>Just as SOAP<a style='mso-footnote-id:ftn4'
href="#_ftn4" name="_ftnref4" title=""><span class=MsoFootnoteReference><span
style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[4]</span></span><![endif]></span></span></a>
can be layered on top of HTTP, it can be layered on top of HTTPR, so the use of
a separate messaging protocol like SOAP offers an additional layer of encapsulation.<span
style='mso-spacerun:yes'>  </span>Messaging layers like SOAP that can layer on
top of both synchronous and asynchronous protocols may offer elegant benefits,
since asynchronous protocols are increasingly considered essential for web
services.</p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify;text-indent:
.5in'>The decision between the extension <span class=GramE>or</span> additional
layering of protocols may be aided by “grading” protocols—including a new MOBY
protocol—on how they satisfy desirable properties.<span
style='mso-spacerun:yes'>  </span>Ideally, protocols are scalable, efficient,
simple, and extensible.<span style='mso-spacerun:yes'>  </span>Additionally, protocols
may operate without the need for a maintained open connection (asynchronous),
or they may maintain an interaction between sender and receiver (synchronous);
they may send a series of self-contained requests (stateless), or they may set
and use information across requests (stateful). Desirable properties may
sometimes be antagonistic, for example, a compact binary encoding may increase
a protocol’s efficiency but reduce its simplicity; similarly, the construction
of state information may increase per request efficiency at the cost of
connection overheads.<span style='mso-spacerun:yes'>  </span>The protocol
designer should consult the use cases and technical requirements of the
protocol to balance these conflicting properties.</p>

<p class=MsoNormal style='text-align:justify;text-indent:.5in'><o:p>&nbsp;</o:p></p>

<div align=center>

<table class=MsoTableGrid border=0 cellspacing=0 cellpadding=0
 style='border-collapse:collapse;mso-yfti-tbllook:480;mso-padding-alt:0in 5.4pt 0in 5.4pt'>
 <tr style='mso-yfti-irow:0'>
  <td width=112 valign=top style='width:84.3pt;border-top:double windowtext 1.5pt;
  border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;
  mso-border-top-alt:double windowtext 1.5pt;mso-border-bottom-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:12.0pt;text-align:center'><b
  style='mso-bidi-font-weight:normal'>Property<o:p></o:p></b></p>
  </td>
  <td width=448 valign=top style='width:335.75pt;border-top:double windowtext 1.5pt;
  border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;
  mso-border-top-alt:double windowtext 1.5pt;mso-border-bottom-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:12.0pt;text-align:center'><b
  style='mso-bidi-font-weight:normal'>Description<o:p></o:p></b></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:1'>
  <td width=112 valign=top style='width:84.3pt;border:none;mso-border-top-alt:
  solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:12.0pt;text-align:center'>Scalability<o:p></o:p></p>
  </td>
  <td width=448 valign=top style='width:335.75pt;border:none;mso-border-top-alt:
  solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:12.0pt'>Properties are preserved upon
  massive scaling.<o:p></o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:2'>
  <td width=112 valign=top style='width:84.3pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:6.0pt;text-align:center'>Efficiency<o:p></o:p></p>
  </td>
  <td width=448 valign=top style='width:335.75pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt'>Bandwidth is conserved by compactly
  sending relevant, and only relevant, information.<o:p></o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:3'>
  <td width=112 valign=top style='width:84.3pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:6.0pt;text-align:center'>Simplicity<o:p></o:p></p>
  </td>
  <td width=448 valign=top style='width:335.75pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt'>Simple tasks are done <span
  class=GramE>simply,</span> complicated tasks can be decomposed into simple
  tasks.<o:p></o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:4'>
  <td width=112 valign=top style='width:84.3pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:6.0pt;text-align:center'>Extensibility<o:p></o:p></p>
  </td>
  <td width=448 valign=top style='width:335.75pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt'>The protocol can adapt to address
  unforeseen changes.<o:p></o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:5'>
  <td width=112 valign=top style='width:84.3pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:6.0pt;text-align:center'>Synchronicity</p>
  </td>
  <td width=448 valign=top style='width:335.75pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt'>Asynchronous: does not wait for
  reply from receiver (<i style='mso-bidi-font-style:normal'>e.g.</i>, ANTP<a
  style='mso-footnote-id:ftn5' href="#_ftn5" name="_ftnref5" title=""><span
  class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]><span
  class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman";
  mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
  EN-US;mso-bidi-language:AR-SA'>[5]</span></span><![endif]></span></span></a>,
  BEEP<a style='mso-footnote-id:ftn6' href="#_ftn6" name="_ftnref6" title=""><span
  class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]><span
  class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman";
  mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
  EN-US;mso-bidi-language:AR-SA'>[6]</span></span><![endif]></span></span></a>)<a
  style='mso-footnote-id:ftn7' href="#_ftn7" name="_ftnref7" title=""><span
  class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]><span
  class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman";
  mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
  EN-US;mso-bidi-language:AR-SA'>[7]</span></span><![endif]></span></span></a>.</p>
  <p class=MsoNormal style='margin-top:6.0pt'>Synchronous: waits (blocks) for a
  reply (<i style='mso-bidi-font-style:normal'>e.g</i>., HTTP, FTP).</p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:6;mso-yfti-lastrow:yes'>
  <td width=112 valign=top style='width:84.3pt;border:none;border-bottom:double windowtext 1.5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:6.0pt;margin-right:0in;
  margin-bottom:6.0pt;margin-left:0in;text-align:center'>State</p>
  </td>
  <td width=448 valign=top style='width:335.75pt;border:none;border-bottom:
  double windowtext 1.5pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:6.0pt;margin-right:0in;margin-bottom:
  6.0pt;margin-left:0in'>Stateless: requests are self-contained (<i
  style='mso-bidi-font-style:normal'>e.g</i>., HTTP, IP, NFS, <span
  class=GramE>UDP</span>).</p>
  <p class=MsoNormal style='margin-top:6.0pt;margin-right:0in;margin-bottom:
  6.0pt;margin-left:0in'>Stateful: connection or session information is used
  over the packet stream or across multiple requests within a session (<i
  style='mso-bidi-font-style:normal'>e.g</i>., FTP, SMTP, <span class=GramE>TCP</span>).</p>
  </td>
 </tr>
</table>

</div>

<p class=MsoNormal align=center style='margin-top:6.0pt;text-align:center'><b
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt'>Desirable Protocol
Properties</span></b><span style='font-size:10.0pt'> (Based in part on: <a
href="http://mappa.mundi.net/features/mtr/properties.html">http://mappa.mundi.net/features/mtr/properties.html</a>)</span></p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify;text-indent:
.5in'>Because of the ubiquitousness of HTTP as an Application layer for the
web, the remainder of this document discusses the above six properties as they
relate to HTTP and contrasting protocols.<span style='mso-spacerun:yes'> 
</span>HTTP is a connection-based, client-server protocol; that means it is
based on the model that one computer (a <i style='mso-bidi-font-style:normal'>client</i>)
sends a <i style='mso-bidi-font-style:normal'>request</i> to another computer
(the <i style='mso-bidi-font-style:normal'>server</i>), and the server then
sends a <i style='mso-bidi-font-style:normal'>response</i> back to the
client.<span style='mso-spacerun:yes'>  </span>The client-server model places
distinctly different software demands on the client and the server, which is
easily seen in noting that merely accessing the web (as a client) is not the
same as publishing on the web (as a server).<span style='mso-spacerun:yes'> 
</span>This basic design can be contrasted with peer-to-peer architectures,
where all parties access and publish data.<span style='mso-spacerun:yes'> 
</span>HTTP is synchronous:<span style='mso-spacerun:yes'>  </span>there is no
way within the protocol itself to get a response without first sending a
request.<span style='mso-spacerun:yes'>  </span>Both the request and the
response may contain arbitrary data in the message body.<span
style='mso-spacerun:yes'>  </span>This differs from single-direction protocols
like SMTP (Simple Mail Transfer Protocol) for email, where the protocol does
not support anything other than acknowledgements and status messages as a
response. </p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify;text-indent:
.5in'>There are only two types of messages in HTTP: requests and
responses.<span style='mso-spacerun:yes'>  </span>Both are specified in a simple,
human-readable format, with requests consisting of a start line specifying a
method (such as GET or POST), a series of headers (specifying details about the
request), and in some cases a body or payload for data.<span
style='mso-spacerun:yes'>  </span>Responses are equally simple, with a status
code in the start line, a series of headers, and also a body.<span
style='mso-spacerun:yes'>  </span>A useful header is the <i style='mso-bidi-font-style:
normal'>content-type</i>, which allows a binding of the data to specific
applications, thus allowing clients a simple lookup mechanism for custom data
handling.</p>

<p class=MsoNormal style='text-align:justify'><o:p>&nbsp;</o:p></p>

<div align=center>

<table class=MsoTableGrid border=0 cellspacing=0 cellpadding=0
 style='border-collapse:collapse;mso-yfti-tbllook:480;mso-padding-alt:0in 5.4pt 0in 5.4pt'>
 <tr style='mso-yfti-irow:0'>
  <td width=118 valign=top style='width:88.2pt;border-top:double windowtext 1.5pt;
  border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;
  mso-border-top-alt:double windowtext 1.5pt;mso-border-bottom-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:6.0pt;margin-right:0in;
  margin-bottom:6.0pt;margin-left:0in;text-align:center;page-break-after:avoid'><b
  style='mso-bidi-font-weight:normal'><o:p>&nbsp;</o:p></b></p>
  </td>
  <td width=228 valign=top style='width:171.0pt;border-top:double windowtext 1.5pt;
  border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;
  mso-border-top-alt:double windowtext 1.5pt;mso-border-bottom-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:6.0pt;margin-right:0in;
  margin-bottom:6.0pt;margin-left:0in;text-align:center;page-break-after:avoid'><b
  style='mso-bidi-font-weight:normal'>Request<o:p></o:p></b></p>
  </td>
  <td width=168 valign=top style='width:1.75in;border-top:double windowtext 1.5pt;
  border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;
  mso-border-top-alt:double windowtext 1.5pt;mso-border-bottom-alt:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=center style='margin-top:6.0pt;margin-right:0in;
  margin-bottom:6.0pt;margin-left:0in;text-align:center;page-break-after:avoid'><b
  style='mso-bidi-font-weight:normal'>Response<o:p></o:p></b></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:1'>
  <td width=118 valign=top style='width:88.2pt;border:none;mso-border-top-alt:
  solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=right style='margin-top:12.0pt;margin-right:12.6pt;
  margin-bottom:0in;margin-left:0in;margin-bottom:.0001pt;text-align:right;
  page-break-after:avoid'>Start line<o:p></o:p></p>
  </td>
  <td width=228 valign=top style='width:171.0pt;border:none;mso-border-top-alt:
  solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:12.0pt;text-align:justify;page-break-after:
  avoid'>GET /resource/file.txt HTTP/1.1<o:p></o:p></p>
  </td>
  <td width=168 valign=top style='width:1.75in;border:none;mso-border-top-alt:
  solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-top:12.0pt;text-align:justify;page-break-after:
  avoid'>HTTP/1.1 200 OK<o:p></o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:2'>
  <td width=118 valign=top style='width:88.2pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=right style='margin-right:12.6pt;text-align:right;
  page-break-after:avoid'>Headers<o:p></o:p></p>
  </td>
  <td width=228 valign=top style='width:171.0pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='text-align:justify;page-break-after:avoid'>Accept:
  text/*<o:p></o:p></p>
  </td>
  <td width=168 valign=top style='width:1.75in;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='text-align:justify;page-break-after:avoid'>Content-length:
  14<o:p></o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:3'>
  <td width=118 valign=top style='width:88.2pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-right:12.6pt;page-break-after:avoid'><o:p>&nbsp;</o:p></p>
  </td>
  <td width=228 valign=top style='width:171.0pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='text-align:justify;page-break-after:avoid'><o:p>&nbsp;</o:p></p>
  </td>
  <td width=168 valign=top style='width:1.75in;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='text-align:justify;page-break-after:avoid'>Content-type:
  text/plain<o:p></o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:4'>
  <td width=118 valign=top style='width:88.2pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=right style='margin-right:12.6pt;text-align:right;
  page-break-after:avoid'>&lt;blank line&gt;</p>
  </td>
  <td width=228 valign=top style='width:171.0pt;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='text-align:justify;page-break-after:avoid'><o:p>&nbsp;</o:p></p>
  </td>
  <td width=168 valign=top style='width:1.75in;padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='text-align:justify;page-break-after:avoid'><o:p>&nbsp;</o:p></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:5;mso-yfti-lastrow:yes'>
  <td width=118 valign=top style='width:88.2pt;border:none;border-bottom:double windowtext 1.5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal align=right style='margin-top:0in;margin-right:12.6pt;
  margin-bottom:6.0pt;margin-left:0in;text-align:right'>Body<o:p></o:p></p>
  </td>
  <td width=228 valign=top style='width:171.0pt;border:none;border-bottom:double windowtext 1.5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-bottom:6.0pt;text-align:justify'><o:p>&nbsp;</o:p></p>
  </td>
  <td width=168 valign=top style='width:1.75in;border:none;border-bottom:double windowtext 1.5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoNormal style='margin-bottom:6.0pt;text-align:justify'>Hello,
  world!<o:p></o:p></p>
  </td>
 </tr>
</table>

</div>

<p class=MsoNormal align=center style='margin-top:6.0pt;text-align:center'><span
class=GramE><span style='font-size:10.0pt'>Based on Figure 1-7 of Gourley, D.
and B. Totty 2002 HTTP: The Definitive Guide.</span></span><span
style='font-size:10.0pt'> <span class=GramE>O’Reilly &amp; Associates.</span> </span><st1:place><span
 class=GramE><span style='font-size:10.0pt'>Sebastopol</span></span></st1:place><span
class=GramE><span style='font-size:10.0pt'>, CA. p. 10.</span></span><span
style='font-size:10.0pt'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify;text-indent:
.5in'>The web and HTTP rely heavily on the concept of data as <i
style='mso-bidi-font-style:normal'>resources</i>, and these resources are
referenced by <i style='mso-bidi-font-style:normal'>Uniform Resource
Identifiers</i>, or <i style='mso-bidi-font-style:normal'>URIs</i>.<span
style='mso-spacerun:yes'>  </span>URIs may be of two types, either URLs
(Uniform Resource Locators) or URNs (Uniform Resource Names).<span
style='mso-spacerun:yes'>  </span>URLs specify a location via a <i
style='mso-bidi-font-style:normal'>scheme</i> (or protocol, such as http:// or <span
class=GramE>ftp:</span>//), a server, and a path within the server (<i
style='mso-bidi-font-style:normal'>e.g</i>., http://www.server.org/path/file.htm).<span
style='mso-spacerun:yes'>  </span>In dereferencing the URL, the server’s name
is mapped to a unique electronic address (IP address) by a network of DNS
(Domain Name Service) lookup servers.<span style='mso-spacerun:yes'> 
</span>URNs are location independent resources and thus are not tied to IP
addresses (<i style='mso-bidi-font-style:normal'>e.g</i>., urn<span
class=GramE>:nameSpaceID:nameSpaceString</span>).<span
style='mso-spacerun:yes'>  </span>This makes dereferencing the URN problematic
(where is it?), and thus—in the absence of URN-URL mapping servers—URLs are
used to the virtual exclusion of URNs.<span style='mso-spacerun:yes'> 
</span>URIs are highly relevant to MOBY, since early thinking on MOBY has not
exploited the application of MOBY objects as URI identified resources.<b
style='mso-bidi-font-weight:normal'><o:p></o:p></b></p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify'><span
class=GramE><b style='mso-bidi-font-weight:normal'>Scalability</b><span
style='mso-spacerun:yes'>  </span>HTTP</span>, as the <i style='mso-bidi-font-style:
normal'>de facto</i> protocol of the web, is massively scalable; a clear
requirement for a web architecture.<span style='mso-spacerun:yes'> 
</span>While most protocols aim for scalability, this is not always immediately
attainable.<span style='mso-spacerun:yes'>  </span>For example, packet
forwarding in wireless protocols can cause severe performance degradation upon
scaling<a style='mso-footnote-id:ftn8' href="#_ftn8" name="_ftnref8" title=""><span
class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[8]</span></span><![endif]></span></span></a>.</p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify'><span
class=GramE><b style='mso-bidi-font-weight:normal'>Efficiency</b><span
style='mso-spacerun:yes'>  </span>While</span> greater efficiency is always
desirable, HTTP on top of TCP/IP is considered reasonably efficient given its
breath of application.<span style='mso-spacerun:yes'>  </span>As reported in
Touch <i style='mso-bidi-font-style:normal'>et al</i>. 1996, HTTP was developed
(in part) to address inefficiencies in FTP<a style='mso-footnote-id:ftn9'
href="#_ftn9" name="_ftnref9" title=""><span class=MsoFootnoteReference><span
style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[9]</span></span><![endif]></span></span></a><span
class=GramE><sup>,<a style='mso-footnote-id:ftn10' href="#_ftn10"
name="_ftnref10" title=""><span class=MsoFootnoteReference><span
style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[10]</span></span><![endif]></span></span></a></sup>.</span><span
style='mso-spacerun:yes'>  </span>And while there are performance issues with HTTP
over TCP/IP, Touch <i style='mso-bidi-font-style:normal'>et al</i>.’s, analysis
of did not support any particular pathology with HTTP for low bandwidth users.<span
style='mso-spacerun:yes'>  </span>Additionally, increased performance was an
important advancement of HTTP 1.1 over previous versions (<a
href="http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html">www.w3.org/Protocols/HTTP/Performance/Pipeline.html</a>).
For one source of work in preventing the World Wide Web from becoming the World
Wide Wait, see <a
href="http://www.w3.org/Protocols/HTTP/Performance/Overview.html">http://www.w3.org/Protocols/HTTP/Performance/Overview.html</a>
and <a href="http://www.w3.org/Protocols/NL-PerfNote.html">http://www.w3.org/Protocols/NL-PerfNote.html</a>.<span
style='mso-spacerun:yes'>  </span>Of course, performance is not the same as
efficiency, and efficiency often comes at the price of readability and
generality:<span style='mso-spacerun:yes'>  </span>the latter two are noted
characteristics of HTTP.</p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify'><span
class=GramE><b style='mso-bidi-font-weight:normal'>Simplicity</b><span
style='mso-spacerun:yes'>  </span>HTTP</span> is a reasonably powerful and mature
protocol, yet it is also relatively simple in implementation and operation for
the programmer.<span style='mso-spacerun:yes'>  </span>There are only eight
methods (HEAD, GET, POST, PUT, DELETE, TRACE, CONNECT, and OPTIONS) in the HTTP
1.1 specification, and a simple, invariant model of request/response, each
consisting of a human-readable format of <i style='mso-bidi-font-style:normal'>start
line</i>, <i style='mso-bidi-font-style:normal'>headers</i>, and <i
style='mso-bidi-font-style:normal'>body</i>.<span style='mso-spacerun:yes'> 
</span>Contrast this with CORBA, which is complex in both design and implementation.</p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify'><span
class=GramE><b style='mso-bidi-font-weight:normal'>Extensibility</b><span
style='mso-spacerun:yes'>  </span>HTTP</span> can be extended in both its
methods and headers.<span style='mso-spacerun:yes'>  </span>New methods, such
as LOCK, UNLOCK, COPY, and MOVE, are used by WebDAV (Web Distributed Authoring
and Versioning) in the area of web publishing and collaboration.<span
style='mso-spacerun:yes'>  </span>Method extensibility is not dynamic, <i
style='mso-bidi-font-style:normal'>i.e</i>., there is no specification in the
protocol for generic web servers to “understand” a new method by invoking some
process, thus method extensibility relies on the adoption of new compliant
servers<a style='mso-footnote-id:ftn11' href="#_ftn11" name="_ftnref11" title=""><span
class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[11]</span></span><![endif]></span></span></a>.<span
style='mso-spacerun:yes'>  </span>Similarly, servers may introduce new
headers.<span style='mso-spacerun:yes'>  </span>Currently, HTTP extensibility
is <i style='mso-bidi-font-style:normal'>ad hoc</i>; the W3C is examining ways
to develop an extension framework (For example, by using SOAP or URI-prefixed
extensions; see <a href="http://www.w3.org/Protocols/HTTP/ietf-http-ext">www.w3.org/Protocols/HTTP/ietf-http-ext</a>
and <a href="ftp://ftp.isi.edu/in-notes/rfc2774.txt">ftp://ftp.isi.edu/in-notes/rfc2774.txt</a>).</p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify'><span
class=GramE><b style='mso-bidi-font-weight:normal'>Synchronicity</b><span
style='mso-spacerun:yes'>  </span>While</span> the web is asynchronous, HTTP is
a synchronous protocol.<span style='mso-spacerun:yes'>  </span>It is
synchronous, because a single TCP/IP connection is kept open to receive a reply
from the server.<span style='mso-spacerun:yes'>  </span>If that connection is
broken, then the server cannot notify the client with a response as part of the
HTTP protocol itself.<span style='mso-spacerun:yes'>  </span>Since most HTTP
connections have a default timeout of 300 seconds, this means that HTTP is not
well suited for batch processing.<span style='mso-spacerun:yes'>  </span>For
example, submitters of a BLAST job may get notification by email that their job
is complete: it cannot happen as a response to the initiating HTTP request unless
the connection is kept open.<span style='mso-spacerun:yes'>  </span>Email is an
asynchronous application:<span style='mso-spacerun:yes'>  </span><span
class=GramE>a one-way messaging service were</span> the receiver does not need
be on-line at the time of transmission (though SMTP as a protocol is synchronous,
since sender and receiver partake in a stateful transaction).<span
style='mso-spacerun:yes'>  </span>Because many services have asynchronous
demands, a synchronous protocol is considered non-optimal for web services.</p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify'><span
class=GramE><b style='mso-bidi-font-weight:normal'>State</b><span
style='mso-spacerun:yes'>  </span>HTTP</span> is stateless, meaning that the
response to one request is not dependent on the content of previous
requests.<span style='mso-spacerun:yes'>  </span>Contrast this to FTP, which
keeps the state of the “current working directory” across <i style='mso-bidi-font-style:
normal'>get</i> and <i style='mso-bidi-font-style:normal'>put</i> calls.<span
style='mso-spacerun:yes'>  </span>The stateless nature of HTTP adds robustness
across network interruptions, since new requests do not have to re-establish
state information.<span style='mso-spacerun:yes'>  </span>Yet the stateless
nature of HTTP complicates cross-session management (for example, multiple,
discontinuous visits to a web site) and requires the <i style='mso-bidi-font-style:
normal'>ad hoc</i> use of cookies and “fat URLs”<a style='mso-footnote-id:ftn12'
href="#_ftn12" name="_ftnref12" title=""><span class=MsoFootnoteReference><span
style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[12]</span></span><![endif]></span></span></a>
to mimic stateful connections.<span style='mso-spacerun:yes'>  </span>There are
benefits to both stateful and stateless properties in a distributed environment,
though statelessness is necessary as well as desirable on the web.<span
style='mso-spacerun:yes'>  </span>The stateless property of HTTP is particular
suited to MOBY: just as multiple transactions within a web page are independent
of each other, there is a natural extension of this to MOBY’s emphasis on atomically
tagged data <i style='mso-bidi-font-style:normal'>vs</i>. HTML documents as a
basic unit of manipulation.</p>

<p class=MsoNormal style='margin-top:12.0pt;text-align:justify;text-indent:
.5in'>MOBY will essentially encompass three protocols, one for syntactical
messaging, one for semantic interpretation, and one for data/service discovery
and mapping.<span style='mso-spacerun:yes'>  </span>Even if these properties
are embedded in a single API instead of being delineated as separate
“protocols,” MOBY will have to specify the conventions or rules for the parsing
of data, its meaning, and its mechanisms for service discovery.<span
style='mso-spacerun:yes'>  </span>The design and construction of solutions to these
tasks may be aided by assessing technologies against the properties of
scalability, efficiency, simplicity, extensibility, synchronousity, and state.</p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div style='mso-element:footnote-list'><![if !supportFootnotes]><br clear=all>

<hr align=left size=1 width="33%">

<![endif]>

<div style='mso-element:footnote' id=ftn1>

<p class=MsoFootnoteText style='text-align:justify'><a style='mso-footnote-id:
ftn1' href="#_ftnref1" name="_ftn1" title=""><span class=MsoFootnoteReference><span
style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:10.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[1]</span></span><![endif]></span></span></a>
TCP (Transmission Control Protocol) is a <i style='mso-bidi-font-style:normal'>reliable</i>,
<i style='mso-bidi-font-style:normal'>byte-stream</i> protocol: data is bundled
into packets with a checksum and each packet is sequentially numbered.<span
style='mso-spacerun:yes'>  </span>The byte-stream is guaranteed to be able to
be reassembled in order, and the protocol allows the receiver to send requests
back to the sender to resend corrupt packets.<span style='mso-spacerun:yes'> 
</span>In this sense, TCP is reliable, since higher layered protocols can send
and forget over TCP with respect to data transmission integrity.<span
style='mso-spacerun:yes'>  </span>UDP (Use Datagram Protocol) is a datagram (<i
style='mso-bidi-font-style:normal'>vs</i>. a byte-stream) protocol: it <i
style='mso-bidi-font-style:normal'>unreliable</i> and <i style='mso-bidi-font-style:
normal'>connectionless</i>, meaning that it does not employ receiver
acknowledgements (though datagrams do have checksums), nor does it guarantee a
sequential flow of datagrams across larger data streams.<span
style='mso-spacerun:yes'>  </span>UDP is “datagram centric,” and is thus
appropriate where small amounts of data are being sent in low-overhead
conditions. Because UDP does not handle data loss or corruption as part of the
protocol <i style='mso-bidi-font-style:normal'>per se</i>, integrity is the
responsibility of higher layers.<span style='mso-spacerun:yes'>  </span>See <a
href="http://www.tcm.hut.fi/Studies/Tik-110.350/1997/Essays/udp.html">http://www.tcm.hut.fi/Studies/Tik-110.350/1997/Essays/udp.html</a>
and <a
href="http://www.novell.com/documentation/lg/nw6p/index.html?page=/documentation/lg/nw6p/tcpipenu/data/h1a308vx.html">www.novell.com/documentation/lg/nw6p/index.html?page=/documentation/lg/nw6p/tcpipenu/data/h1a308vx.html</a>.<o:p></o:p></p>

</div>

<div style='mso-element:footnote' id=ftn2>

<p class=MsoFootnoteText style='text-align:justify'><a style='mso-footnote-id:
ftn2' href="#_ftnref2" name="_ftn2" title=""><span class=MsoFootnoteReference><span
style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:10.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[2]</span></span><![endif]></span></span></a>
Roy Fielding, a noted web guru, proposes the deployment of a new web protocol
via HTTP’s <i style='mso-bidi-font-style:normal'>Update</i> header field in
“waka: A replacement for HTTP” available at <a
href="http://www.apache.org/~fielding/waka/%20200211_fielding_apachecon.ppt">www.apache.org/~fielding/waka/
200211_fielding_apachecon.ppt</a>.</p>

</div>

<div style='mso-element:footnote' id=ftn3>

<p class=MsoFootnoteText style='text-align:justify'><a style='mso-footnote-id:
ftn3' href="#_ftnref3" name="_ftn3" title=""><span class=MsoFootnoteReference><span
style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:10.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[3]</span></span><![endif]></span></span></a>
See <a href="http://www-106.ibm.com/developerworks/library/ws-phtt">www-106.ibm.com/developerworks/library/ws-phtt</a>.<span
style='mso-spacerun:yes'>  </span>“Reliability” is used with respect to failure
recovery; <i style='mso-bidi-font-style:normal'>e.g</i>., multiple POSTs under
HTTP may have side-effects such as duplicate orders in a shopping cart or
replicate updates in a database, so failed connections while POSTing should not
be naively resent.<span style='mso-spacerun:yes'>  </span>HTTPR addresses these
types of issues in both synchronous and asynchronous settings.</p>

</div>

<div style='mso-element:footnote' id=ftn4>

<p class=MsoFootnoteText style='text-align:justify'><a style='mso-footnote-id:
ftn4' href="#_ftnref4" name="_ftn4" title=""><span class=MsoFootnoteReference><span
style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:10.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[4]</span></span><![endif]></span></span></a> SOAP,
Simple Object Access Protocol, is an XML-based messaging protocol <span
class=GramE>for<span style='mso-spacerun:yes'>  </span>data</span> exchange (<a
href="http://www.w3.org/TR/SOAP">www.w3.org/TR/SOAP</a>).<span
style='mso-spacerun:yes'>  </span>SOAP is an Application layer <i
style='mso-bidi-font-style:normal'>messaging</i> protocol: the emphasis in SOAP
is how messages are constructed (<i style='mso-bidi-font-style:normal'>vs</i>.,
for example, the Transport layer protocol TCP where the emphasis is in how data
is delivered).<o:p></o:p></p>

</div>

<div style='mso-element:footnote' id=ftn5>

<p class=MsoFootnoteText><a style='mso-footnote-id:ftn5' href="#_ftnref5"
name="_ftn5" title=""><span class=MsoFootnoteReference><span style='mso-special-character:
footnote'><![if !supportFootnotes]><span class=MsoFootnoteReference><span
style='font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:
"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:EN-US;
mso-bidi-language:AR-SA'>[5]</span></span><![endif]></span></span></a> <span
class=GramE>Asynchronous Notification Transport Protocol; see <a
href="http://simp.mitre.org/drafts/antp.html">http://simp.mitre.org/drafts/antp.html</a>.</span><o:p></o:p></p>

</div>

<div style='mso-element:footnote' id=ftn6>

<p class=MsoFootnoteText><a style='mso-footnote-id:ftn6' href="#_ftnref6"
name="_ftn6" title=""><span class=MsoFootnoteReference><span style='mso-special-character:
footnote'><![if !supportFootnotes]><span class=MsoFootnoteReference><span
style='font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:
"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:EN-US;
mso-bidi-language:AR-SA'>[6]</span></span><![endif]></span></span></a> Blocks
Extensible Exchange Protocol; see <a
href="http://www.beepcore.org/beepcore/home.jsp">http://www.beepcore.org/beepcore/home.jsp</a>,
<a href="http://www.clipcode.com/peer/beep_technical_whitepaper.htm">http://www.clipcode.com/peer/beep_technical_whitepaper.htm</a>,
and <a href="http://www.ietf.org/rfc/rfc3080.txt">www.ietf.org/rfc/rfc3080.txt</a>.<o:p></o:p></p>

</div>

<div style='mso-element:footnote' id=ftn7>

<p class=MsoFootnoteText style='text-align:justify'><a style='mso-footnote-id:
ftn7' href="#_ftnref7" name="_ftn7" title=""><span class=MsoFootnoteReference><span
style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:10.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[7]</span></span><![endif]></span></span></a>
For interesting reading on how to use HTTP asynchronously, see Technical
Whitepaper by Clipcode.com at <a
href="http://www.clipcode.com/peer/http_async_notif.htm">www.clipcode.com/peer/http_async_notif.htm</a>.<o:p></o:p></p>

</div>

<div style='mso-element:footnote' id=ftn8>

<p class=MsoFootnoteText style='text-align:justify'><a style='mso-footnote-id:
ftn8' href="#_ftnref8" name="_ftn8" title=""><span class=MsoFootnoteReference><span
style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:10.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[8]</span></span><![endif]></span></span></a> <span
class=GramE>Wu, J. and F.</span><span style='mso-spacerun:yes'>  </span>Dai 2003
A Generic Broadcast Protocol in Ad Hoc Networks Based on Self-Pruning, Accepted
by the 17th International Parallel and Distributed Processing Symposium (IPDPS
2003<span class=GramE>) ,</span> Apr. 2003, Nice, <st1:country-region><st1:place>France</st1:place></st1:country-region>.<span
style='mso-spacerun:yes'>  </span><span class=GramE>Available at <a
href="http://www.cse.fau.edu/~fdai/pub/wu_dai_sp_ipdps_2003.pdf">www.cse.fau.edu/~fdai/pub/wu_dai_sp_ipdps_2003.pdf</a>.</span><o:p></o:p></p>

</div>

<div style='mso-element:footnote' id=ftn9>

<p class=MsoFootnoteText style='text-align:justify'><a style='mso-footnote-id:
ftn9' href="#_ftnref9" name="_ftn9" title=""><span class=MsoFootnoteReference><span
style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:10.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[9]</span></span><![endif]></span></span></a>
See studies cited in Touch, J. J. Heidemann, and K. Obraczka 1996 Analysis of
HTTP Performance. USC/Information Sciences <span class=GramE>Institute<span
style='mso-spacerun:yes'>  </span>Available</span> at <a
href="http://www.isi.edu/lsam/publications/http-perf">www.isi.edu/lsam/publications/http-perf</a>.<o:p></o:p></p>

</div>

<div style='mso-element:footnote' id=ftn10>

<p class=MsoFootnoteText style='text-align:justify'><a style='mso-footnote-id:
ftn10' href="#_ftnref10" name="_ftn10" title=""><span
class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoFootnoteReference><span style='font-size:10.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>[10]</span></span><![endif]></span></span></a>
See also Litjens, R. M. Siler, and M. D. Spiller 1995 FTP versus HTTP: A
Comparison of Two Mainstream Transfer Protocols EE228A Fall 1995.<span
style='mso-spacerun:yes'>  </span><span class=GramE>Available at <a
href="http://www-cad.eecs.berkeley.edu/~mds/research/1995/http.html">www-cad.eecs.berkeley.edu/~mds/research/1995/http.html</a>.</span><o:p></o:p></p>

</div>

<div style='mso-element:footnote' id=ftn11>

<p class=MsoFootnoteText><a style='mso-footnote-id:ftn11' href="#_ftnref11"
name="_ftn11" title=""><span class=MsoFootnoteReference><span style='mso-special-character:
footnote'><![if !supportFootnotes]><span class=MsoFootnoteReference><span
style='font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:
"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:EN-US;
mso-bidi-language:AR-SA'>[11]</span></span><![endif]></span></span></a> Though
see some of the earlier work on PEP - an Extension Mechanism for HTTP <a
href="http://www.w3.org/TR/WD-http-pep.html">http://www.w3.org/TR/WD-http-pep.html</a>.<o:p></o:p></p>

</div>

<div style='mso-element:footnote' id=ftn12>

<p class=MsoFootnoteText><a style='mso-footnote-id:ftn12' href="#_ftnref12"
name="_ftn12" title=""><span class=MsoFootnoteReference><span style='mso-special-character:
footnote'><![if !supportFootnotes]><span class=MsoFootnoteReference><span
style='font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:
"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:EN-US;
mso-bidi-language:AR-SA'>[12]</span></span><![endif]></span></span></a> URLs
created dynamically with user-identifying information in the local resource
component.</p>

</div>

</div>

</body>

</html>