if you're relying on an external cache, why do you need to store the same information in the url?
On Tue, Aug 31, 2010 at 1:05 PM, Melanie <mela...@t-data.com> wrote: > See my prior messages. That format is inherently un-cacheable. I > believe the mandatory info needs to be part of a URL that can be > fetched with GET and cached, e.g. is RESTful. > > Melanie > > Dahlia Trimble wrote: > > I've tried to use extra information in URLs before by slash-delimiting > them > > and all seemed to work well until I ran into situations such as missing > data > > for one of the terms and some URL parsers did not accept the double slash > > which resulted from the missing field. Another problem exists when > extending > > the definition at a later date, then all parsers that have to deal with > the > > URL have to be modified. After banging my head over these kind if issues > I > > went back and redesigned it to use the &name=value format and I''ve never > > regretted it since. Parsing it is quite simple in C# with String.Split() > > > > Given the open source nature of OpenSimulator, I would think diverging > > definitions would be unavoidable and would likely hinder interoperability > > unless some means for allowing flexibility was designed in from the > start, > > and I think name-value pairs are a usable means of providing that > > flexibility. > > > > > > On Tue, Aug 31, 2010 at 7:53 AM, <d...@metaverseink.com> wrote: > > > >> Hurliman, John wrote: > >> > >>> It sounds like the decision has been made (or was already made before > this > >>> discussion started), so on to the next step. Can you (Melanie or Diva) > do > >>> these two things? > >>> > >> > >> As I said, the issue was *really* narrow :) Even though the interfaces > >> already account for this, I got scared when I faced the situation of > >> actually creating persistent references to external data. (or, in the > case > >> of Simian, creating persistent data structures representing external > data, > >> which is similar) > >> > >> > >> 1) Define exactly how the URL is supposed to be parsed. ABNF notation > >>> would be preferred, or something equivalent that makes it clear what > >>> identifiers are valid or invalid. Or perhaps define any URL as valid > like > >>> diva suggested, but only parse display names out of specifically > crafted > >>> URLs. With the suggested format of > >>> http://authority/user/user_id/First+Last it seems like you would > either > >>> assume any URL that includes a space in the last section of the path is > >>> parsed as a first+last name tuple. (I'm assuming you remove any > attached > >>> query string before parsing the name.) Or will it look for "user_id" as > the > >>> second to last segment of the path followed by a path segment > containing a > >>> space? Obviously it can't expect /user/user_id/First+Last to be > anchored at > >>> the root of the domain since it won't be possible to generate those > URLs on > >>> some setups. > >>> > >> > >> Yes, and that's the crux of the narrow issue in discussion. So let's > finish > >> those little details on the IRC, maybe. > >> > >> > >> 2) Standardize the handling of external identities in OpenSim. Go > through > >>> and clean out the approaches that are no longer being used, such as > >>> OpenSim.Framework.Communications.Osp. I can help with this part as I'm > >>> always a fan of removing dead code. > >>> > >> > >> That's the only broad consequence of this issue, and one that I also > feel > >> it's very important. I know these global names have been used before -- > or > >> maybe never used, but the code is there -- and, even though I didn't > >> remember the syntax, I remembered that it looked nothing like an URI. > >> Thanks, Justin, for explaining. If everyone is ok with the URI syntax, > then > >> let's make it consistent across the board. > >> > >> > >> > >>> John > >>> > >>> -----Original Message----- > >>>> From: opensim-dev-boun...@lists.berlios.de [mailto:opensim-dev- > >>>> boun...@lists.berlios.de] On Behalf Of d...@metaverseink.com > >>>> Sent: Monday, August 30, 2010 3:39 PM > >>>> To: opensim-dev@lists.berlios.de > >>>> Subject: Re: [Opensim-dev] Global identifiers > >>>> > >>>> 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-boun...@lists.berlios.de [mailto:opensim-dev- > >>>>>> boun...@lists.berlios.de] On Behalf Of Melanie > >>>>>> Sent: Monday, August 30, 2010 2:30 PM > >>>>>> To: opensim-dev@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, d...@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@lists.berlios.de > >>>>>>> https://lists.berlios.de/mailman/listinfo/opensim-dev > >>>>>>> > >>>>>>> > >>>>>>> _______________________________________________ > >>>>>> Opensim-dev mailing list > >>>>>> Opensim-dev@lists.berlios.de > >>>>>> https://lists.berlios.de/mailman/listinfo/opensim-dev > >>>>>> > >>>>> _______________________________________________ > >>>>> Opensim-dev mailing list > >>>>> Opensim-dev@lists.berlios.de > >>>>> https://lists.berlios.de/mailman/listinfo/opensim-dev > >>>>> > >>>>> _______________________________________________ > >>>> Opensim-dev mailing list > >>>> Opensim-dev@lists.berlios.de > >>>> https://lists.berlios.de/mailman/listinfo/opensim-dev > >>>> > >>> _______________________________________________ > >>> Opensim-dev mailing list > >>> Opensim-dev@lists.berlios.de > >>> https://lists.berlios.de/mailman/listinfo/opensim-dev > >>> > >>> _______________________________________________ > >> Opensim-dev mailing list > >> Opensim-dev@lists.berlios.de > >> https://lists.berlios.de/mailman/listinfo/opensim-dev > >> > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Opensim-dev mailing list > > Opensim-dev@lists.berlios.de > > https://lists.berlios.de/mailman/listinfo/opensim-dev > _______________________________________________ > Opensim-dev mailing list > Opensim-dev@lists.berlios.de > https://lists.berlios.de/mailman/listinfo/opensim-dev >
_______________________________________________ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev