On Thu, Dec 06, 2007 at 11:11:31AM +0100, Karsten Otto wrote:

> Ok, I see. But this implies there could be more servers than just  
> one, each hosting a replica. Which one do I contact for updates? With  
> VOP/VIP URLs this was straightforward, but please remind me again,  
> how do I contact a vos:0011223344... key-based site? Is there a name  
> server somewhere?

There's one additional complication, which is that there are "sites" and 
there are "hosts".  A "host" is a special kind of site which is never 
replicated and represents a single process/single instance of a server.  
The goal being that a site can be clustered across multiple hosts.  So a 
site is bound to one or more hosts, and connections are made between 
hosts rather than between sites.  This provides a layer of abstraction 
between the concrete concept of a site (an actual OS process on a 
physical computer) and the virtual concept of a site which is replicated 
many places.

Ownership of a site simply means knowing the private key.  If you know 
the private key, you are able to issue properly signed documents that 
describe the state of (and state changes to) the site.

To answer your question, yes, this requires some way of mapping 
identifiers to network addresses.  My original idea was that the site 
issues a signed document listing one or more hosts ids that are 
authorized for that site, and the host issues a signed document listing 
one or more network addresses it can be contacted at.  That contact 
information is propagated through friend-of-a-friend introductions, so 
that if some site tells you to contact another site, it can also provide 
the contact information.  Other name resolution methods (DNS/MDNS, 
distributed hash tables, central metaserver on interreality.org, or ???) 
would also be a good idea.  Unlike DNS, spoofing replies is much more 
difficult, since the replies have to be signed to coorrespond with the 
same public id you are trying to resolve.

For the separate matter of mapping human-readable names to site ids, I 
don't have an answer to that.  That's sort of a sticky problem because 
such a system should be hardened against all sorts of abuse (spamming, 
domain squatters, etc) many of which are social and not technical.  I'm 
imagine there's been some interesting research into this area, though, 
which would be worth looking in to.

> Uh, okay... so... The "site" in this document is just a namespace,  
> which makes sense given the new idea of a site being some abstract  
> thing manifested only by lots of replicas. I.e. when I use the type  
> vos:00112233/OTD/vos/FooClass I am using a replica of the abstract  
> type definition.
> I was confused since I still though of a "site" as something you  
> could connect to with Ter'angreal or mesh, while the new kind does  
> not necessarily have any actual servers hosting the replicas.
> ... Right?

You've got it.  The idea is to move towards content-oriented addressing 
rather than location-based addressing, at least at the granularity of a 
site.  Of course, for interactive sessions, you maintain a session to an 
actual server which is the actual site, so that you can exchange updates 
in real time (for walking around in a 3D world or whatever).

> Ok, so the average user will never be concerned with MyTypeImpl, but  
> only ever interacts with MyTypeWrapper? In this case I agree with  
> reed to drop the Wrapper part and just call the thing MyType.

The average user is concerned with MyTypeImpl if they are implementing 
new components, which I would hope to be a common operation (as common 
as adding new classes to any object oriented application).  The user 
also needs to supply the correct implementation when instantiating a new 
vobject, since if there are (for example) two implementations of 
IOutputStream, you need to select which one you actually want.  In terms 
of actually calling methods on it, it is isolated from the user via the 
wrapper class, for implementation reasons I discussed previously.

I'm still mulling it over.  It does make the client code easier to read, 
but at the expense of potentially introducing confusion between the 
wrapper classes and "real" classes, which have very very different 

[   Peter Amstutz  ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED] ]
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]
[ VOS: Next Generation Internet Communication][ http://interreality.org ]
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]

Attachment: signature.asc
Description: Digital signature

vos-d mailing list

Reply via email to