[vos-d] s5 progress and design
Peter Amstutz
tetron at interreality.org
Thu Dec 6 10:02:25 EST 2007
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
semantics.
--
[ Peter Amstutz ][ tetron at interreality.org ][ peter.amstutz at gdit.com ]
[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 ]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://www.interreality.org/pipermail/vos-d/attachments/20071206/ea9a172c/attachment-0001.pgp
More information about the vos-d
mailing list