Welcome to the P2PWeb project. ¶
Introduction ¶
In the recent years, peer-to-peer has atracted a lot of attention as a promising technology for massive scalable applications. On the one hand, killer applications like file-sharing (Naspter, Kazaa, eDonkey), content distribution (BitTorrent) and VoIP (Skype) are already generating most of the Internet traffic (surpassing Web traffic). This is a proof of the viability and success of such technologies.
On the other hand, in the research setting it has emerged a new kind of purely decentralized peer-to-peer networks called Structured peer-to-peer overlays or Distributed Hash Tables (DHT). These kind of networks offer interesting features like massive scalability, efficient Content-based routing and resource discovery, fault-tolerance and self-adjusting behaviors. Furthermore, DHTs are considered as a key building block for a plethora of distributed services like file-sharing, content distribution and retrieval, publish/subscribe systems, or naming systems among others. Nevertheless, DHTs have not gained the popularity of killer applications like Skype or Kazaa. They are still restricted to academic spheres and specific distributed niche applications. We however believe that in a short term, applications will benefit from DHTs services in a natural way and thus leaving the research arena definetly. Examples of this trend are Emule/Kad (Overnet DHT) or Azureus use of a DHT layer for locating torrent sources.
An important misconception that is hindering the adoption of DHT services is the classical use of peer-to-peer in edge desktop computers. Although it is interesting to benefit from desktop resources and bandwidth, other kind of peer-to-peer applications can be devised for the server setting. In fact, DHT services are ideally aimed for creating a distributed glue for a network of web servers offering integrated internet-wide services. Let us study severals reasons that favour DHTs for creating such a glue service:
- Churn vs Stability: Web servers are stable peers that are not continuously entering and leaving the network. This dynamicity is a strong problem for DHTs deployed in networks of volatile edge nodes. Because of this, the DHT abstraction can offer almost optimal efficiency without the burden of heavy self-adjusting stabilisation protocols.
- NAT traversal and firewalls vs Web accessibility: edge peers are usually located behind firewalls or NATs that preclude their full participation as routers in the network. Although there exist proxying techniques to overcome this problem, they represent a burden for the overall overlay. The use of HTTP for the communication between Web servers in the DHT overlay permits to avoid such firewall and NAT problems so all nodes are full-fledged routers.
- Persistent connections Vs decoupling: most egde peer-to-peer networks use TCP or UDP as their communication protocol and HTTP only for downloads. Every machine has a limit of open connections and they are consuming the bandwith of peers even in the lightest protocols. The use of HTTP for inter-webpeer communication creates a decoupled infrastructure that saves traffic and open connections and thus creates a very lightweight infrastructure. A webnode routing table is not a collection of open connections but instead a list of URLs. This costless approach will permit the creation of URL-caches to improve the overall performance of the infrastructure.
- Peers Vs Super-peers: the decentralized network of web servers (glue DHT) is in fact an overlay of super-peers that can offer added services to the huge mass of edge peers. By stabilishing these two levels, we can devise innovative distributed services derived from the interaction of both layers. It is a transition from a Web of isolated Web server islands to a true interconnected (glued) web of peer web servers.
We foresee a lot of applications that can benefit from such infrastructure. From efficient distributed RSS syndication using publish/subscribe services on top of the network, to instant messaging protocols or even distributed geo-information indexes like GoogleMaps and Google Local. Our proposed proof of concept application is framed in a known open source project called Moodle. Moodle is a virtual campus web application used in thousands of Universities and Learning Institutions around the world. We have developed an extension of Moodle that aims to interconnect all the Moodle sites in the Internet. For the moment, this extension will offer worldwide statistics of the usage of Moodle around the world, but it will also permit to locate resources in the whole Moodle network of servers. It will be thus possible for a teacher to locate course contents related to his subject in other Moodles located elsewhere.
Architecture ¶
The key idea of our p2pWeb architecture is to interconnect Web servers using a hierarchical peer-to-peer overlay, where communications are performed with the HTTP protocol.
On the one hand, the use of HTTP is adequate thanks to server stability, NAT and firewall traversal and decoupling. Routing is thus performed with HTTP redirects and there is no need for a heavy stabilization protocol.
On the other hand, the hierarchical design offers two key advantages to the p2pWeb architecture: content locality and path locality. Content locality permits applications to store information in specific domains/ clusters and path locality ensures that a routing path stays entirely within an organization if needed.
P2PWeb components ¶
P2PWeb projects ¶
Download ¶
See Download section for more information or SVN access.
Mailing lists ¶
Mailing lists:
Developers:
Users:
Contribute ¶
This project is under development and we will appreciate your suggestions or p2pweb bugs. To add a request for new functionalities or to submit a bug you an use our ticket system.
Tutorial ¶
P2PWeb Introduction and Tutorial.
API Documentation ¶
See API Documentation with doxygen.
Authors ¶
Pedro García López,
full-time professor in the Department of Computer Science and
Mathematics at Universitat Rovira i Virgili in Tarragona, Catalonia,
Spain.
<pedro.garciaurv.cat>
Lluís Pàmies i Juárez,
PhD student in the Department of Computer Science and Mathematics at
Universitat Rovira i Virgili in Tarragona, Catalonia, Spain.
<lluis.pamiesurv.cat>
Marc Sanchez Artigas,
PhD student in the Department of Computer Science and Mathematics at
Universitat Rovira i Virgili in Tarragona, Catalonia, Spain.
<marc.sanchezurv.cat>
Jordi Pujol Ahulló,
PhD student in the Department of Computer Science and Mathematics at
Universitat Rovira i Virgili in Tarragona, Catalonia, Spain.
<jordi.pujolurv.cat>
Marc Espelt Palau, M. Sc. Computer Science Student in
the Department of Computer Science and Mathematics at Universitat Rovira
i Virgili in Tarragona, Catalonia, Spain.
<marc.espeltestudiants.urv.cat>