Loading ...
Sorry, an error occurred while loading the content.

4544REST for P2P application?

Expand Messages
  • Ryan Fugger
    Oct 3, 2004
      Hi. 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:

      http://ripple.sourceforge.net/

      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
      nodes.

      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
      inelegant.
      * 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
      own node.

      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
      communications:

      http://ripple.sourceforge.net/resources.xml.txt

      And here is a link to a fairly complete XML messaging version:

      http://ripple.sourceforge.net/messages.xml.txt

      Much more background information is available at the project home page.

      Thanks,
      Ryan
    • Show all 19 messages in this topic