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 ][ [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 ]
signature.asc
Description: Digital signature
_______________________________________________ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d