[Opensim-dev] Grid Architecture, Round 3 - FIGHT!
Sean Dague
sean at dague.net
Tue Nov 13 13:18:22 UTC 2007
On Tue, Nov 13, 2007 at 08:56:31PM +0800, Adam Frisby wrote:
> Alright,
>
> Sensible grid architecture time. After the first two rounds of
> discussion on this, I think we can probably claim a few core decisions
> have been made.
>
> 1. HTTP + XML/REST seems to be the defacto standard for non-realtime
> communications.
> 2. We use sensible standards for authentication / security - such as
> HTTP Authentication and TLS/SSL for security.
> 3. We avoid abusing standards (ie EventQueueGet again)
> 4. We dont break it up into groups or application servers, we simply
> enable/disable individual URIs.
>
>
> So, some concrete implementation ideas.
>
> Login:
> simulator has URI:
> /users/recieve/<uuid>
What about /agents/<uuid> instead? To make it clear that the user
server user isn't really the same kind of object as what the sim thinks
a user is.
> user server has URIs:
> /users/<uuid>
> /users/login (XMLRPC for the SL Client)
>
> 1. User engages XMLRPC login service on
> /users/login with their client credentials
> 2. Login service verifies user credentials
> 3. If successful, posts a message to their destination
> and a URI for the user. Next step happens in parallel.
This seems like it should be POST /agents (in the create model shown below)?
> 4a. Remote simulator accesses that URI to download
> information about that client (other URIs,
> eg inventory, etc). May POST to a URL
> styled like
> /users/<uuid>/current_sim/
> with information about the region they are in[?]
Is this Sim POSTing to User server? Doesn't that open up a very odd
ability for multiple Sims to say "the user is here now" badly?
> 4b. If the response from step #3 wasnt a rejection,
> reply back to the login request with the IP of
> the target region. (Maybe rely on it being sent
> back in step 3?)
>
> Grid Connection:
> grid server has URI:
> /regions/<uuid>/
> /regions/new/
>
> When a simulator connects to the grid, it issues a HTTP POST
> against /regions/<uuid>/ or /regions/new/ with XML information
> like the following:
>
> <request>
> <detail>
> <x>1000</x>
> <y>1000</y>
> <user>[URI]</user>
> </detail>
> ...etc...
> </request>
Typically you'd do this as a POST to /regions/ (the new is not needed,
as POST == create)
The RESTy mapping of operations tends to go more like the following.
GET /regions => LIST
POST /regions => CREATE
GET /regions/<uuid> => GET
PUT /regions/<uuid> => UPDATE
DELETE /regions/<uuid> => DELETE
> What should come back will be a identically formatted reply:
> <reply>
> <status>CONFIRMED</status>
Status should come back in the HTTP status codes
> <detail>
> <x>1005</x>
> <y>1004</y>
> <user>[URI]</user>
> </detail>
> <uris>
> <map>[URI]</map>
> <status>[URI]</status>
> <uris>
> ...etc...
> </reply>
>
> The URI's returned are addresses to services affiliated with
> this domain. Eg, the STATUS uri is a address for POSTing and
> GETting status information.
Can you be more specific on what that status is?
>
> Handling authentication:
>
> A combination of CAPS for temporary authentication (eg a list of
> temporary one-shot URI's that expire and reissue after use), and HTTP
> authentication for permenent things (like logging into a
> grid) seems like a fairly sane plan.
>
> Thoughts?
>
>
> Regards,
>
> Adam
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
--
__________________________________________________________________
Sean Dague Mid-Hudson Valley
sean at dague dot net Linux Users Group
http://dague.net http://mhvlug.org
There is no silver bullet. Plus, werewolves make better neighbors
than zombies, and they tend to keep the vampire population down.
__________________________________________________________________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20071113/f9c9a68e/attachment-0001.pgp>
More information about the Opensim-dev
mailing list