Showing posts with label Architecture Style. Show all posts
Showing posts with label Architecture Style. Show all posts

Saturday, May 12, 2007

Software Architecture Series - Peer-to-peer Architecture

I thought of writing a series of posts on Software Architectures. In this first post, I will discuss Peer-to-peer (P2P) Architecture.

In a P2P architecture there's no notion of clients and servers; equal peer nodes show the behavior of both clients and servers.

In a P2P architecture clients provide resources (bandwidth, storage space, computing power) and results in a more robust systm with data replicated over multiple peers with no single point of failure.

Applications of P2P Architecture can be categorized into the following areas:
  1. Communication and Collaboration - Chat/Irc, IM (Aol, Icq, Yahoo, Msn), Jabber
  2. Distributed Computation - use peer computer processing power
    • Seti@home - Search for Extra Terrestrial Intelligence (SETI)
    • genome@home - understand gentic information
  3. Database Systems
    • Local Relational Model (LRM) - relational queries to run across 1000s of computers
  4. Content Distribution Infrastructure for sharing digital media and other data
    • Most P2P are under this category. e.g. Napster, Publius, Gnutella, KaZaa, Freenet, MojoNation, Oceanstore, PAST, Chord, Scan, FreeHaven, Groove, Mnemosyne
I personally found the concept of contributing to searching for extra terrestrial intelligence and understanding genetic information by sharing ones PC resources interesting.

A good example of a P2P application of today is BitTorrent [2].

References:
[1] A Survey of Peer-to-Peer Content Distribution Technologies
[2] Wikipedia (BitTorrent)