[Opensim-dev] The HyperGrid

Rich White rich.lynn.white at gmail.com
Sun Oct 26 16:46:07 UTC 2008


interesting indeed ... The Cobalt project is a peer to peer based
virtual world architecture - http://www.opencobalt.org .... but I am
not familer with any Opensim peer to peer derivitives other than your
... Ill take a peek at it.




====

On Sun, Oct 26, 2008 at 11:16 AM, Cristina Videira Lopes
<lopes at ics.uci.edu> wrote:
> Hi,
>
> I started working on an extension to OpenSim that makes it work in
> peer-to-peer mode, i.e. no need for grid servers to help the process of
> teleporting and more, which I explain below.  I'm really excited to say
> that this is working! -- I hope some of you are interested in trying it
> out, and helping out too!
>
> The project is called the HyperGrid. Hypergrid is an existing
> theoretical concept in p2p networks which maps reasonably well to what
> I'm doing here, so I borrowed the name.
>
> Comments, suggestions, contributions, ... welcome!
> Crista / Diva
>
> --------
>
> ** OpenSim HyperGrid**
>
> The basic idea of p2p is that nodes define networks by linking to other
> nodes. Unfortunately, this concept doesn't map too well to the concept
> of a 2-dimensional map of "the world" (i.e. "the grid"). What does
> position (Xloc, YLoc) mean in p2p where there is no central authority?
> The 2-dimensional map is quite interesting in VWs, so we should continue
> to use it. Should someone coordinate the allocation of sims  to grid
> positions world-wide?
>
> Enters hypergrid. In an hypergrid of p2p nodes there is no central
> authority for allocating nodes to grid positions. The position of peers
> in the map is determined locally by the node itself, and not by any
> global entity. As we move from peer to peer, we are presented completely
> different grids. For example, my node can connect to CNN's world placing
> it in position 10, 10 of my grid; but when I TP to CNN, I am presented
> with a totally different grid: the node that I TP-ed to is probably not
> at position 10, 10 of its local grid; my own node is probably not in
> CNN's grid at all.
>
> These links are the VW-equivalent of web hyperlinks. Some comparisons to
> the Web:
> - Just like hypertext links, hyperworld links are uni-directional.
> - The establishment of hyperworld links by region administrators is
> [sort of] equivalent to writing a web page with hypertext links to other
> web sites.
> - A web page with external links can be thought of as a 1D Map. The VW
> Map happens to be 2D.
>
> I've implemented a console command that looks like this:
> link-region 10 10 ucigrid02.nacs.uci.edu 9000
>
> 10, 10 is the position on the local grid
> ucigrid02.nacs.uci.edu and 9000 are the host and port respectively of
> the remote opensim
>
> Once this link is established, we can interact with this peer in the
> normal way. It will show up in the local map at position 10, 10. We can
> TP to it via the map. (I'm still debating whether adjacencies should be
> allowed or not; they bring along child agents that can overload the
> remote regions; but that's a detail)
>
> I have this working already, and that leads to a whole other topic: the
> topic of maintaining identity and accessing inventory. This second part
> is not done yet, so once you TP out you loose access to your inventory.
> If the viewer would cooperate, this would be infinitely easier, but
> since we're assuming the LL viewer for the foreseeable future, this
> needs a bit of server-side trickery.
>
> *** Trying it out ***
>
> Please get the sources from svn and follow the instructions in README.txt:
> http://forge.opensimulator.org/gf/project/hypergrid/
>
> If things are not clear, don't hesitate in emailing me.
>
> *** Implementation ***
>
> The implementation of HyperGrid is a thin layer on top of the existing
> protocols, Local and OGS1. The classes reuse the OpenSim framework
> massively by inheritance, delegation and, when those fail, copy&paste.
> The major crux of the idea is the management of region handles, which
> need to be mapped between the local grid and the remote node's grid.
>
> There are two sets of classes so that HyperGrid works both for
> standalones and grid-ed opensims.
>
> ** Of interest to OpenSim architects: in order to instantiate these
> classes, I had to subclass Region.Application.OpenSim and override a
> bunch of things, especially the Startup methods which hard-code the
> communication protocol class names. So if there's a way of modularizing
> that better, it would be good.
>
> ** Of interest to Open Grid Protocol people: I didn't use any of your
> code/concepts, for the following reasons:
> a) It wasn't clear that what you are doing is an hypergrid model vs
> simply supporting TPs between LL and opensim servers on the same grid.
> b) OGP seems to be designed for talking to LL's servers. I wanted to do
> something for opensim, because it's the only server code I have for
> experimentation.
> But I think that once the p2p protocols are clearly defined, we can
> implement a different layer of messaging for LL servers using LLSD
> instead of remoting. That is, assuming LL is vaguely interested in the
> non-centralized, hypergrid model of VWs.
>
> _______________________________________________
> 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