mozdev.org

Nareau   

LCCOM | Messaging | Space Station | Server
Home

What is it?

The basic idea ia a web wide, *extensible*, lightweight component system with a browser-server and an open mechanism to integrate other applications, documents, and services. The server will spawn a browser as a co-procee where appropriate, and the browser need not be always up, and may not even be there on "server" sides.

The key ideas of the system, which IMHO are either somewhat new, not developed fully developed elsewhere, or transplanted from their regular sphere of operation are:

  1. Peer2Peer system with "virtual" peers living in the cloud which handle presence management and caching and backup(ok, this is not new but key)
  2. Component system with objects and tasks as first class objects, ie all methods are objects, with interface extension by inheritance, and implementation replacement on users choice.
  3. an object model which eliminates files and encapsulates storage enabling easy caching and backup, seamless to the user. Objects publish metadata and it is the synergy between multidimensional metadata from different objects(what does the author of snows of Kilimanjaro do..i see he's also a hunter..whats his hunting advice) that adds value.
  4. A namespace and security model flowing from user-centric cryptography and capabilities with access control lists, programmed with the assumption of a hostile network. Digital signature decouples ownership from storage and is a key component to ensure the integrity of data.
  5. Two way links to urns scoped by namespacing rules. Links can be used for event management and reputation calculation, as well as, well, the standard web functions of linking.
  6. Routing system which allows for the creation of adhoc network subnets and thus shared spaces, or group p2p networks, increasing the scalability of the system and signal-to-noise ration of the data.
  7. Routing system which spreads queries on metadata in an almost-but-not-quite gnutella style in which peers check their rumour caches(see my previously mentioned post on decent list) to spread their queries, and the downloading of data in a freenet style with caching along the way saving bandwidth. So this system imposes a distributes querying model, and a separation of metadata of the object from the data itself.
  8. The routing system allows for explicit or serendipitious sharing of information such as annotations, links, and bookmarks which in conjunction with an explicit reputation system allows for people to become experts; other people to benefit from their expertise; and the serendipitios matching of people with publically declared similar interests..
  9. Object and Namespace resolution by querying used in an extremely simple shell scripting language which can be used by itself or embedded in HTML/XUL web pages to enable regular users to script megawidgets such as calendars. As much as possible, the idea is to enable authoring that makes programmers more obsolete :-) Querying, namespace resolution, urn resolution are all built in to the language and infact enable the simple working of the browser.

The basic application will be a component description and container layer with access from a web server, IM server(jabber), SMTP+POP+IMAP client and browser/IM client.

The key software leveraged will be mozilla, specifically mozilla's XPCOM component technology and XUL for user display, Apache 2.0 for web, jabber for IM. SOAP will be used as the component serialization/RPC protocol, RDF the component description language, with local integration provided by technologies like COM and bonobo, in conjunction with XPCOM.

I have already started developing using python, wxpython, and IE on windows. This will move to C++, wxwindows-C++, and mozilla on Linux, windows, and Mac. The first app on windows will allow people to share and browse web sites together..something useful in shopping together or distance learning..and very easy to program by just wrapping the IE control and communicating changes in a SOAP message.

Mozilla +wxwindows will make it instantly portable to unix/mac/windows/....? By replacing wxwindows with say fltk one can even make it portable to embedded posixish os's with microwindows, where mozilla has been ported and an entire useful system can be had in a 32MB(still big) footprint for web-pads, etc

The nareau project can be contacted through the mailing list or the member list.
Copyright © 2000-2009. All rights reserved. Terms of Use & Privacy Policy.