4544REST for P2P application?
- Oct 3, 2004Hi. I've been struggling with trying to apply REST to a project of mine,
a decentralized P2P payment system using only IOUs passed between friends
in a social network:
The payment network is made up of nodes living on http servers. I can see
how REST would be appropriate for a client API to a node on the network --
to allow users to perform actions through their node, to allow ecommerce
sites to access the network, etc. But I'm having trouble seeing how a
RESTful approach might improve the protocol for communications between
Some issues I've come across:
* Identifying distributed objects with resolvable URIs is problematic
since it seems to want to locate them on a single node, when in reality
they live on several nodes. Giving them several identifiers seems
* Nodes must be able to move to different servers, and if there are URI
identifiers for resources on a node that must be resolvable, then there
must a mechanism for changing those identifiers when a node moves. This
could cause problems with historical audit information backed up on
offline machines, unless two identifiers are stored. A node could move
many times, so many identifiers may be needed for each resource.
* Only fully-functional nodes may communicate with other nodes as nodes.
Scalability in terms of third-party access to partial node functionality
(the main benefit of giving all resources a URI?) is not an issue. For
simplicity and security, all access to the network must be through one's
I'm a big fan of the REST philosophy, and I'd like to take advantage of it
wherever appropriate. In this case however, REST seems to me like
complicated overkill compared to simple XML messaging. I don't have a lot
of experience with RESTful applications, so I'd like to know if others
agree with me, or if there's something I'm really not getting here.
Here is a link to the beginnings of a RESTful version of inter-node
And here is a link to a fairly complete XML messaging version:
Much more background information is available at the project home page.
- Next post in topic >>