[Opensim-dev] Global identifiers
mysticaldemina at xrgrid.com
mysticaldemina at xrgrid.com
Mon Aug 30 21:47:08 UTC 2010
ETL systems have dealt with this stuff for years and usually there is one
main rule, external references are kept separate from internal references
and you never carry external references into your internal stuff.
As such internal objects often contain a reference or a flag that identifies
their external source.
So for OpenSim what that means to me is there are profiles, but some
profiles are proxies to profiles on external grids. Once these profiles are
created they should act and perform like any other locally made profile
except for the fact that some of its functions are proxies to the real
instance. So I think you have most of this from what I would follow. I
would say you need two pieces of information, the external source, and their
identifier. The two fields can take completely different forms depending on
the external system. If the source was Facebook, it could look completely
different than a iphone telephone application that may be external system of
ATT and an identifier of a telephone number. Mainly I think you need to
make a wall between this external information and the use of the profile
internally.
If this profile rezzes an object there are several pieces of information I
understand you would like to keep, the creator and the owner. To me I see
no difference in this, when the object is taken from inventory and an
instance is made of it, both of these profiles need to exist locally, but if
both are proxies then their profiles will contain the needed references to
the external system and identifier. I would say they need to point to the
original system and identifier since just like email, no matter how many
emails get passed around, the email still refers back to the system of
origin. The prim has no system of origin, it only has a creator and an
owner.
The textures, other prims and other items would all follow the same process.
The items would have to be copied locally, local instances made for them and
I would think would follow the same caching rules any other item in the
world follows.
Now if you would take that item back into inventory and travel to another
grid and rezz it. I think the question is what you give as the external
source and identifier for the creator and owner. I would suggest any
proxies would give the external system and identifier and not chain proxy to
proxy unless there is a reason to do it, and the assets should be copied
from the original source. I think that solves a lot of legal issues to,
because you may have rights to use a cached item, but you may not have
rights to transfer it.
I see IM, friends and everything else working the same.
So I probably didn't help you with your original question about global
identifiers. From my experience with ETL and large enterprise systems I
suggest you have one you like to use but I see there being many forms of
these fields because of all the varieties of systems. There may well be
authentication codes that go with them to, like OAuth keys giving
permissions to access these external items.
Regards,
M
-----Original Message-----
From: opensim-dev-bounces at lists.berlios.de
[mailto:opensim-dev-bounces at lists.berlios.de] On Behalf Of
diva at metaverseink.com
Sent: Monday, August 30, 2010 5:09 PM
To: opensim-dev at lists.berlios.de
Cc: vwrap at ietf.org
Subject: Re: [Opensim-dev] Global identifiers
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.
>
> John
>
>> -----Original Message-----
>> From: opensim-dev-bounces at lists.berlios.de [mailto:opensim-dev-
>> bounces at lists.berlios.de] On Behalf Of diva at metaverseink.com
>> Sent: Monday, August 30, 2010 1:36 PM
>> To: opensim-dev at lists.berlios.de
>> Cc: vwrap at ietf.org
>> Subject: Re: [Opensim-dev] Global identifiers
>>
>> I have different answers than Melanie.
>>
>>> An open question with this approach is whether you need to use global
>> identifiers when dealing with cross-grid scenarios, or whether there is
>> always enough context to derive a global identifier. Some examples:
>>> * A HyperGrid user is teleporting from grid A to grid B. Does grid B
>> have enough information to build the global identifier "gridA/user"?
>>
>> Yes. It already does that on the spot. We don't need persistent global
>> identifiers for agents.
>>
>> The issue we are now talking about is if someone in grid B makes
>> friends
>> with this user. In this case, we need to add an entry to grid B's
>> Friends service referring to an external user, and vice-versa. That's
>> when we need global identifier for this user (not its agent).
>>
>>> * A HyperGrid user rezzes an object into grid B that exists in their
>> inventory on grid A. The object has a creator that is unrecognized to
>> grid B. Should grid B pull the creator profile from grid A (which may
>> actually be storing a local copy of the real creator identity from grid
>> X)? Note that this isn't a question about trust because we're already
>> trusting grid A to provide creator information for the object, it's
>> just about where we pull profile info from.
>>
>> Yes, it should. And since the code that does that is exactly the same
>> code that prepares inventory items for archiving, this should be no
>> different than archiving itself.
>>
>>> * An OAR file is loaded and contains an unrecognized identity. Should
>> identities in OAR files be encoded as global identifiers, or a header
>> added to the OAR file to say "all of this content came from grid A", or
>> the full profiles of all the identities in the OAR embedded right into
>> the archive?
>>
>> I don't think it can be bulk in the general case, although that could
>> be
>> option in some cases. I'm looking at my inventory right now and it's a
>> rainbow of stuff I got from all sorts of places.
>> _______________________________________________
>> Opensim-dev mailing list
>> Opensim-dev at lists.berlios.de
>> https://lists.berlios.de/mailman/listinfo/opensim-dev
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>
_______________________________________________
Opensim-dev mailing list
Opensim-dev at lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev
More information about the Opensim-dev
mailing list