Introduction Technical Details Protocol Overview Status Contribute - Need Coders!
Introduction: what this project is about
It is a content distribution system that uses P2P technology to reduce the bandwidth requirements for the server. This project is about avoiding the 'Slashdot effect' (Internet flash crowds) by using the cache of the users who are visiting the web page to serve others. Although there are many P2P applications like Bittorrent, none can be used for web pages and also it has no mechanism to choose the nearest computer to download the files from.. They are primarily used for transferring large files among several users. But using P2P Bridge, everyone who is currently visiting the web page and has special program running, will be a cache and they can serve the web page instead of the server. The main difference from other P2P applications is instead of receiving the file form number of users, each client receives the file only from one user and in turn serve only one or two users. This is similar to P2P radio in terms of how data is distributed. Also this is a generic Content Distribution System and can be used for reducing the bandwidth of servers on the interanet or even be used for reducing the load on a Web Server.
How P2P Bridge works
The server will serve Client 1 and Client 2. It will redirect the request from client 3 to client 1 and client 1 will serve client 3's request.
Applications
This project can be used in a variety of ways and here are some of the applications:
1) HTTP Bittorent - stop slashdot effect.
This is the primary intent of P2P Bridge. When used by the end
users while browsing the web, it will stop the Slashdot effect. Whenever users
are using Slashdot, they can just turn on P2P Bridge and surf normally using
their usual browser. Since P2P Bridge is a proxy server it works with all
browsers and being a java program works on all platforms.
2) Load Balancing (Corporate Web Server)
P2P Bridge can act as a huge distributed web server. A small corporation can
deploy P2P Bridge on many desktop computers instead of investing in high end web
server. The gird of proxy servers automatically balances the load and keeps the
load on the web server at acceptable levels.
3) Interanet Content Distribution System
P2P Bridge can be used to save costs on Interanet. It can be used with any web
based system or file distribution network to reduce the load on Interanet
servers. Right now it supports only web pages. But future versions will support
streaming and QoS using JXTA protocols.
P2P Bridge is basically a peering proxy server system. The proxy servers create a overlay network using JXTA and use the overlay network to find the nearest source and retrieve data.
When deployed, P2PBridge first connects to the JXTA network. Now when a request comes in from one of the clients, it searches the JXTA network first and if that fails or timeouts, it retrieves the webpage from the original server. The important idea here is to let all the participating machines in the network converge into clusters. We aim to achive this by having clients connect to the nearest rendezvous server. The rendezvous servers do not exchange advertisments between themselves. It is like we have a tracker for each network.
The Operation of publishing and retrieving a resource can be defined as follows.
Note: Web pages need not be published explicitly. P2P Bridge will start publishing resources once it receives request for a resources and serves it by download the webpage from the website.
Step 1: Inform rendezvous peer about the resource with very short advertisement TTL
Cache Time
The cache itself on the clients is valid only for a very short time determined by the server. (it is usually around 5 minutes) The idea behind this strategy is that people who are currently visiting the web page only will serve as a cache.
Dynamic Web Pages
P2P Bridge even works with dynamic web pages. In the case of dynamic web pages, P2P Bridge does not cache only the dynaimc content and caches the rest of the graphics and static content which takes up the bulk of the size.
I have completed the publishing part, the caching system and the proxy server. Thanks to smart cache project as I am using some code from it for the caching system. (smart cache is under the GNU License.)
I am currently working on searching using JXTA network and having a stable network even when the advertisement has low TTL.
This page also does not describe the protocol in detail and it is just an overview. If you have any questions, comments, abuses or suggestions do mail me !