[Opensim-dev] The HyperGrid

Ursula MATOVA ursula.matova at klintcentral.net
Sun Oct 26 16:35:47 UTC 2008


Sounds VERY interresting ... and exciting :))
Let me make some tests ...
But sure I'll need some help soon ;)


Le 26 oct. 08 à 17:16, Cristina Videira Lopes a écrit :

> 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