<br>I am starting to see the 'problem' as two distinct issues, depending on one's focus. In the provider-centric view of LL, with many nods to DRM, what they do makes sense. They are, after all, trying to take a modicum of responsibility for preserving the ownership and related rights on the asset.<br>
<br>In the more user-centric world we seem to feel pulled toward, a more distributed scenario makes more sense, performance impacts notwithstanding.<br><br>The key to the most  reasonable architecture, as a result, will depend on how one optimizes for these orientations.<br>
<br>The short story is, the shortcomings of the existing protocol are being manifest in terms of the direction we are pushing it in with this application; and we aren't going to to be able to influence the direction taken except in the most limited ways, until we a) produce a client, so we have control of both ends of 'the pipe', or b) get more thoroughly involved in LL's open source client efforts.<br>
<br>The bottom line is, as long as they dictate the protocol, we have to play ball on their field, by their rules. And as long as we refuse to take up some leadership roles with respect to a/the client, they are in complete control of the protocol. That they agree to play along with us at all is just a courtesy.<br>
<br>Cheers,<br>James<br><br><div class="gmail_quote">On Mon, Nov 3, 2008 at 9:31 AM, Diva Canto <span dir="ltr"><<a href="mailto:diva@metaverseink.com">diva@metaverseink.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



  

<div bgcolor="#ffffff" text="#000000">
Sure, I'll do this so not to get stuck. But this is so wrong...<br>
Region servers should not *cache* assets. Period. It's an unnecessary
burden in two dimensions:<br>
1) Performance.<br>
2) Security of assets.<br>
<br>
Any dealings between assets and the viewer should be done directly
between the viewer and asset servers. Region servers should be out of
the loop. Except, of course, for serving the objects that are inworld.
But the act of dragging an object from inventory to the world should
result in a *copy* being created (posted either from the viewer or from
the user's asset server) in the region server's asset *storage* (not
cache), and not this horrendous optimization that the LL system
currently does, and that pretty much stops the idea of scalability on
its tracks.<br>
<br>
Is anyone here involved with LL Viewer development? I wonder how hard
it would be for them to interpret steganographic urls in uuids... or do
the right thing and use decent global resource identifiers, but I
suspect that's way off the radar.<br>
<br>
Stefan Andersson wrote:
<blockquote type="cite"><div><div></div><div class="Wj3C7c">
  Diva,<br>
 <br>
there's a blindingly simple remedy; start treating the asset guid
as something private between the region and the client, and publicly
refer to assets by url instead.<br>
 <br>
In effect, the fact that we are storing the assets untampered in the
database is just a legacy issue. If we were to start processing the
asset data more intelligently, things would look a lot differently.<br>
 <br>
Suppose we;<br>
 <br>
a) on asset upload, processed the asset and changed guids to
urls, firstly by lookup (is this already an asset guid known to the
region) then by url synthetization (create an asset storage url (maybe
using the users home asset server that we already said we would
store... ;D ) , post the binary to that and change all guid references
in the asset to that)<br>
 <br>
b) on asset download (from asset storage) processed the asset and
changed urls to guid, again firstly by lookup (is it already known to
the region) then, by fetching the asset by url and assigning it a guid.<br>
 <br>
This would mean that the client, when it refers to an asset, actually
requests it by the local guid that the region has assigned it - more as
a local cache key than a public asset id.<br>
  <br>
I believe this would solve the whole thing, more or less. I would love
to see a proof of concept - it should be fairly easily thrown together,
probably as a custom asset cache.<br>
 <br>
Best regards,<br>
Stefan Andersson<br>
Tribal Media AB<br>
 <br>
Join the 3d web revolution : <a href="http://tribalnet.se/" target="_blank">http://tribalnet.se/</a><br>
 <br>
  <br>
  <br>
  <br>
  <hr>
  <br>
Date: Sat, 1 Nov 2008 07:52:33 -0700<br>
From: <a href="mailto:diva@metaverseink.com" target="_blank">diva@metaverseink.com</a><br>
To: <a href="mailto:opensim-users@lists.berlios.de" target="_blank">opensim-users@lists.berlios.de</a><br>
Subject: Re: [Opensim-users] [Opensim-dev] Grid Numberging<br>
  <br>
  
The only reason why I'm suggesting the encoding hack as a horrible
option not to be immediately discarded  is that it is probably the
simplest thing to do for the LL Viewer to start pulling assets from
different places on the internet. From all I know, the LL Viewer is
deeply rooted on UUIDs for universal identification; refactoring this
will be a massive undertaking on the viewer. But simply giving
semantics to UUIDs would not be that big of a deal. I'm thinking a few
conditionals here and there:<br>
  <br>
url = RetrieveUrl(uuid)<br>
if ItsASyntacticallyValidUrl(url)<br>
   try to do the right thing, please<br>
else<br>
   do what you do now<br>
  <br>
or something to this effect.<br>
  <br>
Of course, we're hitting our heads again on the pre-condition of using
the LL Viewer...<br>
  <br>
Dickson, Mike (ISS Software) wrote: <br>
  <blockquote>
    
    
    <div>
    <p><span style="font-size: 11pt; color: rgb(31, 73, 125);">We
really don't want to start encoding info into a GUID. The RFC that
describes them pretty much details what kinds of entropy can be used.  </span></p>
    <p><span style="font-size: 11pt; color: rgb(31, 73, 125);"> </span></p>
    <p><span style="font-size: 11pt; color: rgb(31, 73, 125);">I've
been thinking for a while that the handle service (<a href="http://www.handle.net/" target="_blank">http://www.handle.net</a>)
might be a nice way to do a URL style mechanism to refer to assets and
such not on a local server.  It's been a while since I looked at it but
it's pretty much designed for the purpose and there's a proxy
architecture already defined for it.</span></p>
    <p><span style="font-size: 11pt; color: rgb(31, 73, 125);"> </span></p>
    <p><span style="font-size: 11pt; color: rgb(31, 73, 125);">Mike</span></p>
    <p><span style="font-size: 11pt; color: rgb(31, 73, 125);"> </span></p>
    <div>
    <div style="border-style: solid none none; border-color: rgb(181, 196, 223) -moz-use-text-color -moz-use-text-color; border-width: 1pt medium medium; padding: 3pt 0in 0in;">
    <p><b><span style="font-size: 10pt; color: windowtext;">From:</span></b><span style="font-size: 10pt; color: windowtext;">
    <a href="mailto:opensim-users-bounces@lists.berlios.de" target="_blank">opensim-users-bounces@lists.berlios.de</a>
[<a href="mailto:opensim-users-bounces@lists.berlios.de" target="_blank">mailto:opensim-users-bounces@lists.berlios.de</a>]
    <b>On Behalf Of </b>Diva Canto<br>
    <b>Sent:</b> Saturday, November 01, 2008 9:05 AM<br>
    <b>To:</b> <a href="mailto:opensim-users@lists.berlios.de" target="_blank">opensim-users@lists.berlios.de</a><br>
    <b>Subject:</b> Re: [Opensim-users] [Opensim-dev] Grid Numberging</span></p>
    </div>
    </div>
    <p> </p>
    <p>Actually, I just realized that the problem
is already much worse than I thought.<br>
The practices that we are all doing around opensim completely
invalidate the concept of uniqueness in UUIDs. This comes from the fact
that UUIDs are being externalized into DBs and XML representations,
which are then being imported elsewhere. As people reuse entire DBs and
XML files to recreate the same worlds in different grids, uniqueness
goes down the drain. So definitely, forget about "Universal" Unique
Identification with UUIDs; uris/urls are absolutely required for
universal naming. The only way to savage UUIDs would be use part of
their representation to deterministically code up the ip/port of where
they come from.<br>
    <br>
Stefan Andersson wrote: </p>
    <p style="margin-bottom: 12pt;">And the whole
thread started with suggesting we allocate information bits to encode
semantics. Which drastically heightens the risk of collisions,
intentional or malicious.<br>
    <br>
Just see guids as private to the trust domain, and we'll all fine.
Grids should be publicly referred to by something riches, as an uri/url
for example.<br>
    <br>
Best regards,<br>
Stefan Andersson<br>
Tribal Media AB<br>
 <br>
Join the 3d web revolution : <a href="http://tribalnet.se/" target="_blank">http://tribalnet.se/</a><br>
 <br>
    <br>
    <br>
    </p>
    <div style="text-align: center;" align="center">
    <hr size="2" width="100%" align="center"></div>
    <p><br>
Date: Fri, 31 Oct 2008 20:10:41 -0700<br>
From: <a href="mailto:diva@metaverseink.com" target="_blank">diva@metaverseink.com</a><br>
To: <a href="mailto:opensim-users@lists.berlios.de" target="_blank">opensim-users@lists.berlios.de</a><br>
Subject: Re: [Opensim-users] [Opensim-dev] Grid Numberging<br>
    <br>
Not to mention the dudes and dudettes who generate region UUIDs by
hand... (a-hem)<br>
Purely random UUIDs that don't encode higher-order information are too
fragile when there is a chance that people will get their hands on
them. I'm not even talking about malicious manipulation, just simple
human intervention.<br>
    <br>
Frisby, Adam wrote: <br>
    <br>
    </p>
    <pre>Yeah, the reason I said 'almost' wasn't because of a good UUID generator, - it's the bad ones.</pre>
    <pre> </pre>
    <pre>IE, people using bad random sources, etc which dramatically increase the chance of a collision - ie if you are only getting 30 bits of randomness, you could run into a collision fairly quickly.</pre>
    <pre> </pre>
    <pre>Adam</pre>
    <pre> </pre>
    <pre>  </pre>
    <blockquote style="margin-bottom: 5pt;">
      <pre>-----Original Message-----</pre>
      <pre>From: <a href="mailto:opensim-users-bounces@lists.berlios.de" target="_blank">opensim-users-bounces@lists.berlios.de</a> [<a href="mailto:opensim-users" target="_blank">mailto:opensim-users</a>-</pre>
      <pre><a href="mailto:bounces@lists.berlios.de" target="_blank">bounces@lists.berlios.de</a>] On Behalf Of Sean Dague</pre>
      <pre>Sent: Friday, 31 October 2008 4:48 PM</pre>
      <pre>To: <a href="mailto:opensim-users@lists.berlios.de" target="_blank">opensim-users@lists.berlios.de</a></pre>
      <pre>Subject: Re: [Opensim-users] [Opensim-dev] Grid Numberging</pre>
      <pre> </pre>
      <pre>Dr Scofield wrote:</pre>
      <pre>    </pre>
      <blockquote style="margin-bottom: 5pt;">
        <pre>Frisby, Adam wrote:</pre>
        <pre>      </pre>
        <blockquote style="margin-bottom: 5pt;">
          <pre>Shouldn't UUIDs by definition be unique?</pre>
          <pre> </pre>
          <pre> </pre>
          <pre> </pre>
          <pre>IE – if your generating them randomly a collision is almost</pre>
          <pre>guaranteed to never ever occur.</pre>
          <pre>        </pre>
        </blockquote>
        <pre>"almost" being a key word here...</pre>
        <pre>      </pre>
      </blockquote>
      <pre>"...after generating 1 billion UUIDs every second for the next 100</pre>
      <pre>years, the probability of creating just one duplicate would be about</pre>
      <pre>50%. The probability of one duplicate would be about 50% if every</pre>
      <pre>person on earth owns 600 million UUIDs.<a href="http://en.wikipedia.org/wiki/UuidJusttokeep" target="_blank">"</a></pre>
      <pre><span><a href="http://en.wikipedia.org/wiki/UuidJusttokeep" target="_blank"><span style="text-decoration: none;"> </span></a></span></pre>
      <pre><span><a href="http://en.wikipedia.org/wiki/UuidJusttokeep" target="_blank">http://en.wikipedia.org/wiki/Uuid</a></span></pre>
      <pre><span><a href="http://en.wikipedia.org/wiki/UuidJusttokeep" target="_blank"><span style="text-decoration: none;"> </span></a></span></pre>
      <pre><span><a href="http://en.wikipedia.org/wiki/UuidJusttokeep" target="_blank">Just to keep "</a></span>almost" in perspective,</pre>
      <pre> </pre>
      <pre>        -Sean</pre>
      <pre> </pre>
      <pre>--</pre>
      <pre>Sean Dague / Neas Bade</pre>
      <pre><a href="mailto:sdague@gmail.com" target="_blank">sdague@gmail.com</a></pre>
      <pre><a href="http://dague.net/" target="_blank">http://dague.net</a></pre>
      <pre> </pre>
      <pre>    </pre>
    </blockquote>
    <pre>_______________________________________________</pre>
    <pre>Opensim-users mailing list</pre>
    <pre><a href="mailto:Opensim-users@lists.berlios.de" target="_blank">Opensim-users@lists.berlios.de</a></pre>
    <pre><a href="https://lists.berlios.de/mailman/listinfo/opensim-users" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-users</a></pre>
    <pre> </pre>
    <pre>  </pre>
    <p><br>
    <br>
    </p>
    <pre> </pre>
    <pre style="text-align: center;"><hr size="4" width="90%" align="center">

  </pre>
    <pre> </pre>
    <pre>_______________________________________________</pre>
    <pre>Opensim-users mailing list</pre>
    <pre><a href="mailto:Opensim-users@lists.berlios.de" target="_blank">Opensim-users@lists.berlios.de</a></pre>
    <pre><a href="https://lists.berlios.de/mailman/listinfo/opensim-users" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-users</a></pre>
    <pre>  </pre>
    <p> </p>
    </div>
    <pre><hr size="4" width="90%">
_______________________________________________
Opensim-users mailing list
<a href="mailto:Opensim-users@lists.berlios.de" target="_blank">Opensim-users@lists.berlios.de</a>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-users" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-users</a>
  </pre>
  </blockquote>
  <br>
  </div></div><pre><hr size="4" width="90%"><div class="Ih2E3d">
_______________________________________________
Opensim-users mailing list
<a href="mailto:Opensim-users@lists.berlios.de" target="_blank">Opensim-users@lists.berlios.de</a>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-users" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-users</a>
  </div></pre>
</blockquote>
<br>
</div>

<br>_______________________________________________<br>
Opensim-users mailing list<br>
<a href="mailto:Opensim-users@lists.berlios.de">Opensim-users@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-users" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-users</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>===================================<br>The wind<br>scours the earth for prayers<br>The night obscures them<br><br><a href="http://osgrid.org">http://osgrid.org</a><br>
<a href="http://del.icio.us/SPQR">http://del.icio.us/SPQR</a><br><a href="http://twitter.com/jstallings2">http://twitter.com/jstallings2</a><br><a href="http://www.linkedin.com/pub/5/770/a49">http://www.linkedin.com/pub/5/770/a49</a><br>