<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-AU link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I’ve been evaluating replacing BaseHttpServer completely with a
new class based on the C# Webserver (HttpServer.dll) I committed a few
revisions back. <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>The reasoning being that BaseHttpServer requires Administrative
rights under Windows, and is the only component of OpenSim that does so – this severely
restricts our ability to secure windows systems running OpenSim. The secondary
reason is that we cannot programmatically use SSL certificates via
BaseHttpServer – something the revised one supports. It also gives us a good
deal more control over the output than we currently have.<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Regards,<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Adam<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>
<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;
font-family:"Tahoma","sans-serif"'> opensim-dev-bounces@lists.berlios.de
[mailto:opensim-dev-bounces@lists.berlios.de] <b>On Behalf Of </b>Alan M Webb<br>
<b>Sent:</b> Friday, 16 May 2008 11:44 AM<br>
<b>To:</b> opensim-dev@lists.berlios.de<br>
<b>Subject:</b> [Opensim-dev] REST and OpenSim<o:p></o:p></span></p>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><br>
<span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>This is not intended
to imply anything about the long-term strategy for BaseHttpServer, rather it
offers a tactical solution that addresses a specific need that those of us
trying to implement REST interfaces have today.</span> <br>
<br>
<span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>As REST becomes
more prevalent, there is a growing need to accommodate it, and its special
requirements, in BaseHttpServer. I'd like to suggest that we do so by
incorporating the notion of a User-Agent sensitive handler. The handler is
registered using the name of the User-Agent it intends to support. This handler
receives both request and response objects and returns nothing (to
BaseHttpServer), i.e. it is wholly responsible for header management and
everything else, as is the nature of REST. Along the way we might want to
implement some generic REST support to make implementing handlers easier, but
it is not required. A generic handler might take care of "hiding" the
request and response packets in the way that Stefan has suggested.</span> <br>
<br>
<span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>I have a
version of BaseHttpServer which incorporates these ideas without affecting any
traffic not associated with the specific user agents being targeted. Note that
the idea here is not to provide agent handlers for common agents such as
Firefox, but rather to insulate traffic from a functionally specific agent from
conflicts with other generic flows; REST is just one beneficiary.</span> <br>
<br>
<span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>I have attached
a patch that illustrates the changes I'm talking about.</span> <br>
<br>
<br>
<br>
<span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Thoughts? You
can incorporate the change without affecting the way that OpenSim works today,
and only if you add and agent for a specific client, does anything change. The
client dictionary uses its keys to detect duplicate entries, but the actual
matching can be arbitrarily complex. In fact, what if we allowed an agent to
match based upon an arbitrary examination of the request headers?</span> <br>
<span style='font-size:10.0pt;font-family:"Arial","sans-serif"'><br>
Best regards<br>
Alan<br>
-------------------<br>
T.J. Watson Research Center, Hawthorne, NY<br>
1-914-784-7286<br>
alan_webb@us.ibm.com</span><o:p></o:p></p>
</div>
</body>
</html>