[Opensim-dev] Shaping the user services
Melanie
melanie at t-data.com
Mon Jun 22 11:38:12 UTC 2009
After breaking my head over this for a few weeks, I believe I have
figured out how to do this in a sane way.
The fallacy was to assume that the login server and the user server
would be one entity. That makes things overcomplicated and breaks
the architecture all over the place.
Now, here is what I have come up with:
User Server:
- Resolve name to key queries
- Resolve key to name queries
- Provide avatar picker lists
- Manage home region data
Authentication server
- Create and manage authentication handles (string) and session keys
(UUID)
- Check passwords or other forms of authentication
Login server
- Provide the interface for the Linden viewer to log into a grid.
Uses the services above, but doesn't contain them.
Presence server
- Manages last position data
- Keeps list of logged in avatars and their locations
Alongside with this, a new database is needed. This will not be an
upgrade path, but a parallel development with a migration tool.
Profile information has no place in this architecture and will be
handled exclusively by the profiles module.
The user table will specifically be designed to accommodate
additional fields and allow getting/setting of such fields.
With all user data, a scope identifier will be passed. This will be
UUID.Zero in the most common case (Standalone or single grid) but
will allow sharing of server processes between multiple logical grids.
Comments are welcome.
Melanie
More information about the Opensim-dev
mailing list