
| LCCOM | Messaging | Space Station | Server | ||
|
Home
|
Features
From a users perspective, this will be a new browser, which integrates the locally available applications with those at his or hers friends or at the users favourite web site. Here are the features I am thinking of. These are mostly aligned along the points made above..
- Component model with publishable metadata and first class methods. Thus the ability to swap methods from one provider with another: eg the print method on a document object or the buy method on a palm-pilot object. Using inheritance, third parties will be able to add methods to interfaces and distinguish themselves.
- Decoupling data from storage through RDF backend drivers. Thus,
no explicit notion of files in the system. Cloud caching onto storage
servers and backup of objects will be automatically done. This will enable
AnywhereAccess for a user to his or her data, whilst preserving the P2P nature
of the system. The caching protocol will take into account the users presence
and permanence of connections.Eg: a visitor will be able to get published
objects from a cache when a users home machine is not online, or resolve to
the users office when the user is there, the storage may be a filesystem, or a
database, or an upto the minute cgi call..
So you could be at a office, or home, or on the road, or at an airport kiosk and info could be picked up from your virtual presence in the cloud, or depending upon your on-the-road hardware, even locally..
- Data Object Model has two roots, object and objecttype only. One type of container called a bundle; a bundle representing an object, its properties, and its methods is called a model. This is a very simple model based on RDF and the Everything system(www.everydevel.com), but incredibly powerful. The RDF enables later layering of semantic web operations and the considerable work going on into extensibility and querying options.
- Adressing in a P2P system must deal with three aspects: presence, a GUID, and a naming using this GUID. Initial global namespace model will give way to a local namespace model using SPKI cryptography. The namespacing will provide the urm adressing scheme, query prefixing, and method calling schemes. That is, a GUID will be generated by the users SPKI public key, and mapping to strings will be in the local namespace.
- SPKI and capabilities based access and execution control model with an explicit notion of safe and unsafe methods. The security and namespacing model flow from the same mechanism. In some cases, web sites may want to use the app just to safely control first access before providing cookies. The notion of safe methods means that a web site could execute some of its functionalitu localy on the users web server. In addtion the SPKI based authorization certificate system will determine who can do exactly what on a local system, and this will enable safe routing. Safer operations will be faster.
- Mozilla and CLI based interface with focus on objects and tasks, where tasks are a set of pipelined methods on objects, much like a unix shell. Simple shell language whose design must be such that ordinary users can access it. Deeper access through local component models and XPCOM, and methods ought to be available from any language. Users dont care about files or other representations, they want their data, and to do something on it, or they want to do tasks, no matter what the object interaction there is.
- Authoring using HTML and XUL megawidgets such as calendars written with CSS and Mozilla's XBL. The authoring is meant to remain as simple as possible without requiring users to know javascript, but rather to use the object model itself as exposed by the simple shell. Since each client is also a server, authoring publishes locally, which is picked up by the cloud. The simple shell scripting will resolve automatically, removing presence complexity out from the user.
- Since the browser and server are co-processes, their internals are exposed to each other via XPCOM interfaces. Thus the server can acess and store the DOM tree in a browser, with all annotations. So instead of parsing xml twice once at server and client, it can be done at user where appropriate, and further the users manipulations there may be useful information which the user might see fit to publish. Historical link trails, bookmarks, annotations may be useful for sharing, as well as for simple scripting using links, events, etc..sorta like C-x-e emacs macro recording but somewhat higher level..
- The notion of groups and subnets based on group membership. The subnet could be as large as a shopping network or as small as a family. ACL's will determine who accesses what, and a particular machine could be on multiple subnets simultaneously, without information leak from one subnet into another.
- Initially a F2F(friend2friend) network with broadcast rather than a generalized P2P one with routing will be implementing. However this does not scale. For larger subnets gnutella+yenta like metadata spreading and freenet style data download caching will be needed.
- The publishing of objects to groups is a process analogous in somw ways to syndication, and can be used for email where metadata is sent in email, and the data is looked at only when email is read, even without the nareau browser. Essentially syndication can be thought of as the process of applying a query filter. Arbitrary collections of objects can be made and users can choose their display formats. When objects are published the metadata are spread to withing many peers horizons, whilst data itself is cached on download.
- Linking. Direct linking will be possible to urms as described using the namespace prefixes. The system will automatically expand the links at runtime to a friends computer or the nearest cache, depending on context. The existence of a server allows now for 2 way links, ie back links to the origin. The forward as well as backward link structure can be used for implicit reputation management, and for link change broadcast. Thus such links can be used as event management tools and for caching and synchronization.
- Explicit reputation management using a centralized service is useful for ranking products and services along multiple metadata axes. Implicit reputation managemt could be done based on link structure.
- Knowledge sharing can be used to implement a yenta system where the knowledge of experts as encapsulated in their public objects is shared and consumed, and people can become experts through explicit reputation management. Web page annotations and marking, bookmarks, links and published syndications can be used for this purpose. It may even be possible to achieve some of this in a distributed fashion, though I am not sure how.