Peer-to-peer Google Wave – cloudless style

If you read my Google Wave review, you may also have noticed my comment about a non-cloud way of doing Google Wave. There are quite a number of people who are getting concerned about more and more personal information being uploaded to the Internet and the privacy nightmare it is turning into. Google wave itself seems to be an interesting concept for next generation collaboration on the Internet. It would be unwise not to look at it from a privacy centric view point.

Communication over the Internet is, at a very low level, done via message passing. The network essentially is a collection of computers (clients and servers) and messages are passed between them for any kind of communication. However, with the rise of forums, wikis and web 2.0 sites (and cloud computing in general) the communication pattern at a higher level is no more simple message passing but collaborative editing of documents which live on some server. Suddenly, the actual nodes in the network and the messages between them is no more the conduit of information. The living evolving document is the new, higher level conduit of information. For all practical purposes the collaboratively edited document is the “network channel” for communication between the participating clients.

Google Wave takes this essential idea much further. A wave document is the central focal point for communication between users, robots, external websites and even applications. It would not be a stretch of imagination to give an application a pointer to a wave document and make it automatically collaborate with other participants and applications without knowing about their IP addresses or connectivity status.

The unfortunate part of the story is that wave documents still reside in the cloud and hence will suffer from the same privacy concerns we have been dealing with when using wikis and forums. Peer-to-peer communication would be better for privacy but p2p architectures are still very much message passing oriented. Can we marry Google Wave and peer-to-peer?

P2P waves

It is not very hard to imagine an application which can keep peer-to-peer connections with friends (a friend-to-friend network) and collaborate over wave like documents. The documents would be replicated, similar to the way they are replicated between federated domains in Google Wave. In fact, the easiest way to do this may be to use some VPN software to create a private network between friends and run the open-source Google Wave servers on each node. Some of such VPN software is also not very hard to configure [eg. Remobo, Leaf, Wippien]. However, each user basically maintains his or her own wave domain and the Google Wave servers are probably not designed with such a use case in mind.

Even if we leave behind the re-usability of Google’s reference implementation, some practical architectural problems will remain. The Google wave servers are probably not designed for frequent disconnection in mind. The wave document should be accessible from some authoritative server at all points in time. Also, given the federated authentication, parts of the wave document may live entirely within the user domains first given access to. Adding more users to such parts of the document would require those domains to be online. This always available assumption might hold for cloud storage but doesn’t hold for peer-to-peer architectures… at least the kind discussed above.

P2P waves with redundant but encrypted content

I was thinking about this problem when I hit upon an idea. The basic problem is that if I wanted to attach a private message to a friend of mine on a peer-to-peer wave document then I cannot send the message if my friend is offline. However, if I encrypt my message using a shared key then even though the wave document is shared across the p2p network, only my trusted friend(s) can read the private message. Thus, comes the key insight:

Redundantly propagating encrypted content among peers can help with the “always available” problem with peer-to-peer networks.

However, if we are willing to do this for private messages, we can also extend the same for the whole wave document! Thus, instead of maintaining connectivity with at least a few of the participants in the wave document and sending the wave document in plain text to them, we can now maintain connectivity with unknown peers in a peer-to-peer network and encrypt the wave document with keys shared with just the users the document is intended for. Such an architecture would ensure good connectivity, fast downloads and very importantly uninterrupted availability which is one of the main strengths of storing wave documents in the cloud.

Curiously, a peer-to-peer network of the above nature already exists. Its called Wuala and it is a peer-to-peer file backup and sharing service with attention to privacy, selective sharing of files and file availability. A very interesting tech talk about the internals of the technology behind Wuala is here. Though the Wuala guys have currently focused on just getting the peer-to-peer storage right (which is a tough computer science problem in itself), it is not very hard to imagine having a wave document hosting over it. The essential idea is to take read-only file sharing and make it read-write with some level of revision history and conflict management.

However, we definitely lose on realtime communication with a Wuala like approach. Peer-to-peer storage and lookup will definitely be more latency than a direct connection to a wave server. On the other hand, that may not be a small price to pay for privacy.

Advertisements
This entry was posted in Computing, Internet, Social. Bookmark the permalink.

16 Responses to Peer-to-peer Google Wave – cloudless style

  1. There is an open source project called Tahoe (http://allmydata.org/source/tahoe/trunk/docs/about.html) which is very similar to the Wuala approach to distributed storage.

  2. We also provide a p2p wave (operational transform) solution. We apply it to existing desktop apps such as MS Office. We’re in private beta right now, but you can register here.

    We use the operational transform to encompass both the file version and realtime changes, with a collaborative layer of communication over the top.

  3. inecreque says:

    Lots of of folks blog about this subject but you wrote down really true words.

  4. i like your blog but dont know all about google wave

  5. When we were growing up we saw how our parents handled their dating
    someone with hiv and now we carry the behaviours and patterns that
    we learned into our dating someone with hiv. A son wants to know –>why men leave Dating Someone With Hiv –>,
    here is the article for you. It’s often said, it’s not what the
    students want, nor what they need, either.

  6. Sweet blog! I found it while browsing on Yahoo
    News. Do you have any tips on how to get listed in Yahoo News?

    I’ve been trying for a while but I never seem to get there!
    Thank you

  7. Thank you for sharing your thoughts. I truly appreciate your efforts and I am waiting for your next post
    thank you once again.

  8. I don’t even know how I stopped up here, however I thought this submit was
    once great. Ido not recognize who youu are however definitely you’re going to a well-known blogger for those whoo aren’t already.
    Cheers!

  9. Wade says:

    Pretty nice post. I just stumbled upon your weblog and wished to mention that I’ve really loved surfing around your blog posts.
    After all I will be subscribing to your rss feed and I hope you
    write once more very soon!

  10. Fantastic goods from you, man. I’ve take into accout your stuff prior to and you’re simply too great.
    I really like what you’ve acquired here, really like what you are stating and
    the way during which you assert it. You’re making it entertaining and you still
    care for to stay it smart. I cant wait to read far more from
    you. This is actually a terrific site.

  11. Fantastic post but I was wanting to know if you could write a litte more on this topic?
    I’d be very grateful if you could elaborate a little bit more.
    Many thanks!

  12. Wow that was strange. I just wrote an incredibly long comment but
    after I clicked submit my comment didn’t show up.
    Grrrr… well I’m not writing all that over again. Anyhow, just wanted to say fantastic
    blog!

  13. Instead we suffer from it, by storing too much fat and rarely, if ever, burning it.
    Power outlets make sure that you are getting problem free experience even with your old laptops because they may
    turn dark without power outlets. Hair color refers to the coloring
    of all the hair while highlighting refers to coloring only some strands of hair in a
    lighter color than the rest of the hair.

  14. No introduzcas objetos en el lavavajillas no indicados para lavar en este electrodoméstico el calor puede deformarlos y deteriorarlos hasta dejarlos inutilizables inservibles. La carga de la secadora se mide en kilogramos al igual que en la lavadora, pero a diferencia de esta, para la misma capacidad de carga necesita un tambor de mayor tamaño. El microondas es de los electrodomésticos más versátiles ya que nos permite realizar distintas tareas como calentar, descongelar y preparar alimentos muy rápidamente, lo que supone un ahorro de un 65 aproximadamente en comparación con un horno convencional. Nuestras reparaciones en Vallecas están garantizadas por escrito en los materiales empleados como en la mano de obra.

  15. I got this site from my friend who informed me concerning this web site and now this time
    I am browsing this website and reading very informative posts
    at this time.

  16. download says:

    Hello very nice site!! Man .. Excellent ..
    Wonderful .. I will bookmark your web site and take the feeds
    additionally? I am glad to find a lot of useful info right here in the submit,
    we want develop extra strategies in this regard,
    thank you for sharing. . . . . .

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s