[Opensim-dev] Global identifiers

diva at metaverseink.com diva at metaverseink.com
Mon Aug 30 23:17:24 UTC 2010


It's a UUID.
Display names are *never* used as identifiers in OpenSim. They're just 
human-friendly tags that usually take the value of the user account 
name, but that can change at any time if you happen to land in a 
simulator with a sense of humor :)

And in the HG, UUIDs themselves are also 'unique' in the sense that the 
Gatekeepers don't let agents come in, that happen to claim a UUID of a 
local user.

Karen Palen wrote:
> I would lobby for the "user id" being a UUID rather than a string simply 
> because of the uniqueness of the UUID.
> 
> For example I use "Karen Palen" as userid on more than a dozen grids and 
> several email addresses (Karen has even been issued a Credit Card!!!). 
> Need I add that "Karen Palen" is a pseudonym, :-)
> 
> I am very concerned about the potential for resolution problems, 
> especially where  the same id was previously used in several places 
> which are now part of some unified naming convention.
> 
> There seem to be four cases:
> 
> 1) lookup http://authority... - get a valid update
> 2) http://authority... does not exist (temporary or permanent) - cache 
> not updated, use the latest information available after checking the URL 
> mapping (below)
> 3) http://authority... changed to another URL - update the URL and save 
> the URL mapping for other references to "http://authority"
> 4) http://authority... resolves to more than one "authority". Possibly 
> due to malfeasance (spoofing), more likely due to several changes in 
> "http://authotity" over time and outdated information. - resolve this 
> ambiguity by reference to other users of "http://authority".
> 
> In the most pathological case of (4) several "authorities" will respond 
> as valid, requiring some sort of probabilistic resolution - "most 
> likely" the most recent "authority" provided that 90+% (or whatever) of 
> UUIDs referring to "authority" now resolve to this authority. This 
> implies several unresolvable possibilities and a high probability of 
> picking the wrong one!
> 
> Case 4 should be very rare if a UUID is used, but quite common if a 
> common name (like "Karen Palen") is used!
> 
> In real life me exact name "googles" to 25 people in the Phoenix area, 
> at one time I had a namesake working in the same building as me! A 
> literature search is even worse, my "tribe" seem to be prolific authors 
> with many papers in biotech, medicine, computer science, electrical 
> engineering, and several other fields. One of them is a member of the US 
> Congress!
> 
> Much as we like to think otherwise, our names are NOT unique!
> 
> Karen
> 
> On Mon, Aug 30, 2010 at 3:38 PM, <diva at metaverseink.com 
> <mailto:diva at metaverseink.com>> wrote:
> 
>     OK, so here's the form of the URI that will start showing up in the
>     [non-Simian] DBs soon, specifically in the GridUser table:
>     http://authority/user/user_id/First+Last
> 
>     Yes?
> 
>     I suspect that SimianGrid will take things like
>     LoggedIn(string userID) and
>     StoreGridUserInfo(GridUserInfo info)
> 
>     and create user accounts for these if they don't exist, because I
>     think SimanGrid collapses the 2 concepts. Just keep in mind that
>     you'll soon be receiving URLs of the form above as arguments.
> 
>     I agree with Melanie that not adding the display name is a missed
>     opportunity for caching, but I'm willing to write up code that
>     accounts for it being optional for all the grid operators who would
>     rather have the extra lookups coming their way.
> 
> 
>     Hurliman, John wrote:
> 
>         If we are still on the same page, there should never be a case
>         where something could be either a local identifier (UUID) or a
>         global identifier (URL). The context is always clear, where
>         cross-grid communication and exported content uses only global
>         identifiers and all intra-grid communication uses only local
>         identifiers. If a sim wants to resolve the creator of a prim it
>         uses a single path, the UUID->Profile (aka display name) API
>         call which takes advantage of all the caching and optimizations
>         we've built into OpenSim. There is no ambiguity there or
>         potential for the code to take a slower or less tested path. The
>         discussion is about communication outside of the local grid
>         context, when you are exporting content or moving people or
>         content between grids. In every use case there I think it makes
>         sense to always use global identifiers, or at least a clear path
>         to build a global identifier.
> 
>         John
> 
>             -----Original Message-----
>             From: opensim-dev-bounces at lists.berlios.de
>             <mailto:opensim-dev-bounces at lists.berlios.de>
>             [mailto:opensim-dev- <mailto:opensim-dev->
>             bounces at lists.berlios.de <mailto:bounces at lists.berlios.de>]
>             On Behalf Of Melanie
>             Sent: Monday, August 30, 2010 2:30 PM
>             To: opensim-dev at lists.berlios.de
>             <mailto:opensim-dev at lists.berlios.de>
>             Subject: Re: [Opensim-dev] Global identifiers
> 
>             I think we already have a perfectly good field, which is a
>             UUID for
>             local users and a URL for remote ones.
> 
>             Melanie
> 
>             Serendipity Seraph wrote:
> 
>                  On 8/30/10 2:09 PM, diva at metaverseink.com
>                 <mailto:diva at metaverseink.com> wrote:
> 
>                     Hurliman, John wrote:
> 
>                         My interpretation (please correct me if I'm
>                         wrong) is that there is
>                         rough consensus on the overall strategy, but an
>                         open question of
> 
>             how
> 
>                         to encode global identities when cross-grid
>                         communication (or
>                         out-of-grid archiving) happens.
> 
>                     That's what's going on.
>                     Up to now, all global identifiers (that already
>                     exist) have been
>                     volatile; nothing has persisted. As I found myself
>                     writing code that
>                     would inject global identifiers into a DB table, I
>                     thought we should
>                     all talk about the form of such identifiers.
> 
>                         There is probably also a hidden question of how
>                         to mark a local
>                         account as linked to a foreign identity, which
>                         may solve the
>                         friending issue. If I am friends with your
>                         avatar and we are both
> 
>             on
> 
>                         grid B but your avatar actually originated from
>                         grid A, that link
> 
>             in
> 
>                         the profile is what can tip off the presence
>                         service to try a
> 
>             remote
> 
>                         presence check (assuming the user is not online
>                         in the local grid).
>                         My only interest in these low level questions
>                         like how the global
>                         identifiers and profile links look is what the
>                         final decision is so
> 
>             I
> 
>                         can implement it in the OpenSim SimianGrid
>                         connectors.
> 
>                     Well, we distinguish "user accounts" from "grid
>                     users" -- these are
> 
>             2
> 
>                     different interfaces, although implementers may
>                     decide to collapse
>                     them. But they are different concepts. User accounts
>                     are the
>                     locally-registered users; in some cases, like for
>                     example, the UCI
>                     grid, there's only some people who can get accounts
>                     there, namely
>                     people associated with the university. Grid users
>                     are users that are
>                     referenced by things that happen in the grid. So we
>                     already have an
>                     interface for that, although now I'm thinking that
>                     perhaps we need
> 
>             to
> 
>                     separate its UserID field into 2 things: a local
>                     UUID and a
> 
>             reference
> 
>                     to the external name. And I guess that's my main
>                     issue at this
> 
>             point.
> 
>                 It seems more reasonable in a distributed system to say
>                 that an X is
> 
>             an
> 
>                 X - a User is a User, whether they originally were
>                 instantiated on a
>                 local or a remote system.   So I would go for collapsing
>                 the two as
> 
>             much
> 
>                 as possible as a matter of policy.  Otherwise freedom to
>                 move between
>                 nodes in the system is more limited and there is more
>                 special case
> 
>             logic
> 
>                 to deal with.    But that is speaking from a general
>                 distributed
>                 computing perspective.  There may be many Opensim
>                 details that make
> 
>             that
> 
>                 seemingly ideal position in practice rather naive.
> 
>                 - s
> 
>                 _______________________________________________
>                 Opensim-dev mailing list
>                 Opensim-dev at lists.berlios.de
>                 <mailto:Opensim-dev at lists.berlios.de>
>                 https://lists.berlios.de/mailman/listinfo/opensim-dev
> 
> 
>             _______________________________________________
>             Opensim-dev mailing list
>             Opensim-dev at lists.berlios.de
>             <mailto:Opensim-dev at lists.berlios.de>
>             https://lists.berlios.de/mailman/listinfo/opensim-dev
> 
>         _______________________________________________
>         Opensim-dev mailing list
>         Opensim-dev at lists.berlios.de <mailto:Opensim-dev at lists.berlios.de>
>         https://lists.berlios.de/mailman/listinfo/opensim-dev
> 
>     _______________________________________________
>     Opensim-dev mailing list
>     Opensim-dev at lists.berlios.de <mailto:Opensim-dev at lists.berlios.de>
>     https://lists.berlios.de/mailman/listinfo/opensim-dev
> 
> 



More information about the Opensim-dev mailing list