[Opensim-dev] REST and OpenSim

Frisby, Adam adam at deepthink.com.au
Fri May 16 21:49:52 UTC 2008


I've been evaluating replacing BaseHttpServer completely with a new
class based on the C# Webserver (HttpServer.dll) I committed a few
revisions back. 

 

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.

 

Regards,

 

Adam

 

From: opensim-dev-bounces at lists.berlios.de
[mailto:opensim-dev-bounces at lists.berlios.de] On Behalf Of Alan M Webb
Sent: Friday, 16 May 2008 11:44 AM
To: opensim-dev at lists.berlios.de
Subject: [Opensim-dev] REST and OpenSim

 


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. 

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. 

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. 

I have attached a patch that illustrates the changes I'm talking about. 



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? 

Best regards
Alan
-------------------
T.J. Watson Research Center, Hawthorne, NY
1-914-784-7286
alan_webb at us.ibm.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20080516/3a24baea/attachment-0001.html>


More information about the Opensim-dev mailing list