Friend2Friend Coding
Friend2Friend
presents an XML-based interface to the data storage.
Individual data items on a personal server are referenced by using XPath, while a simple extention
allows for cross-references between friends' servers.
F2F is being implemented in PHP5 as a series of layers:
| Class
|
Description
|
| F2F Server |
Each webhost has one instance of this class.
Manages group level encryption and communication between the personal servers.
Contains one or more personal servers.
|
| Personal Server |
Manages all a user's data, as an XML file. If active, it contains one or more processes. |
| Process |
Manages all ongoing requests for data, whether from this personal server of from friends. Contains one or more comms. |
| Comm |
The smallest unit of communication between servers. Contains a script which may invoke multiple service calls |
| Service |
A unified interface on the system system primitive, user scripts & webservices. |
| Action |
The smallest unit of work done on a personal servers. Of 4 types: read, write, delete & rename. |
| File System |
A simple XPath-based interface to the XML file storage. |
The decentralised equivalent of a standard webpage is an XSL script which runs serverside to
create that page. Hence, to the end user it could even appear identical.
However, the backend has a different model - instead of accessing data from a central database
on the webserver, it populates the page with data accessed live from the network of F2F servers.
This will be slower than a traditional website, but will decentralise access and remove
any one person from a position of power. Moreover, it greatly expands possibilites and
resolves problems of trust by
placing everyone's data under their own control.
|