From OrganicDesign Wiki
|
| Organic Design is developing a P2P distributed application to help the project. The software and all the code libraries which compose the source are all open source freeware released under the GNU GPL licence. It comes as a single program called peerd which runs in the background as a daemon on Linux/Mac or a service on Windows, all the running instances together form a peer-to-peer network called a nodal network.
From the application and user perspective the P2P aspect is hidden and instead a persistent object space is shared by all peers. The space is a semantic network composed of RDF triples, in other words, the objects in the shared space are connected by relationships, and those relationships are also objects in the space.
Each peer can serve interface sessions over HTTP to browsers (and later directly to the video output with SDL and OpenGL). A session is an instance of the interface class (and both the interface and the sessions are objects in the global object-space).
At runtime all peers in the network are equal, which ones are doing what is totally determined by the networks resource allocation. This allocation is done within the constraints set up in the resource instances, for example the local hard-drive of a peer is a resource which can be assigned with a constraint which only allows company content to be stored on it.
At any time there is always a great deal of work needing to be done by the network in terms of data processing and content distribution. A resource allocation mechanism is used to balance and reduce the overall workload by connecting the work nodes with the optimal service node. In grid computing, grid middleware services are used to schedule these connections in an RDF-based semantic network.
|
Software Architecture
The peerd program can be broken down into the following component parts:
Schedular
This is an task scheduling and execution environment which uses a multiplexing system called nodal reduction to coordinate jobs and allocate resource amongst them.
Network Layer
This uses the logical nodal network as an overlay for instances of physical resource such as database or file-system content.
Interface Layer
Current Development (Aug 2007)
The current peerd development as of Aug 2007 are focussed on picking up where we left of a year or so back, but tying in with existing code and formats more closely. The main difference is that we're using an existing DHT (Chimera) and representing nodes as RDF Triples (which means using URI's as our external GUID system). Development on the interface will continue only as research while we focus on getting the network layer functional.
See also
- See the download page for binaries of peerd and peerix for various platforms