I'm not relying on one. I'm imagining a world where VW traffic is the main part of internet traffic, having displaced the flatweb. For ISP caching, it's important that most protocols are designed to be RESTful. I don't plan on caching, but i don't want to create a protocol that is inherently uncacheable. Be nice to the net.
Melanie Dahlia Trimble wrote: > 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 _______________________________________________ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev