P2P Framework/Searching

Sanjay Ginde

Dave Goldberg

Chris Zeiders

Faculty Advisor: Robert Duvall

Faculty Committee: Owen Astrachan, Jun Yang, Robert Duvall

Overview

        The OogP2P framework is a framework for developing and running applications on a peer-to-peer system.  The OogP2P framework is designed in such a way that users can develop and run new applications while having to add a constant, O(1), amount of code to the existing framework, without any modification to pre-existing applications running on the system, and without any modification to the network model.  “Applications” are not limited to programs such as file sharing, chat, and networked games, but also include peer-to-peer components such as algorithms for searching, load balancing, and network-data gathering, to name a few.  Developers can create applications by following the Communication and Application Architectures as specified in our papers.

        The OogP2P framework provides the base networking protocols for a decentralized peer-to-peer network and any applications developed from our framework are geared to run on this network.

Final Presentation

            Honors Thesis and Framework Documentation

            Final Presentation Slides

Links

       Research Summaries

            Write-Up

            JavaDoc

            P2P Code

 

Current Progress

Fall 03 Semester

 

Dec 4, 2003
Nov 25, 2003
  • Continue writing of papers
  • Finishing touches on code
  • Honors Thesis Paper
  • Framework Documentation
Nov 18, 2003
  • Finished Pastry!
  • Implemented Pastry Search
  • Implemented Pastry functionality
  • Began writing of papers
Nov 11, 2003
  • Working through problems deploying topologies with ModelNet
  • Outline for Framework Documentation Paper
  • Outline for Framework Design Analysis Paper
  • Continued implementation of Pastry
Nov 4, 2003
  • Reserved 3 machines (1 FreeBSD and 2 Linux) for ModelNet
  • Adapting FreePastry from to run on our framework
Oct 28, 2003
  • Met with Prof. Jun Yang to discuss networking implementation and to garner feedback and suggestions on networking, statistical data gathering
  • Developed Records package for Chord
  • Developed statistical data gathering for chord searching
Oct 21, 2003
  • Completed Chord!
  • Implemented Chord Search
Oct 14, 2003
  • Fall Break
  • Solved some synchronization and concurrency issues associated with implementing Chord
  • Administrative Tasks
  • Continued development of bots---added a Records package to hold various bots to collect various information on the chord-ring structure

 

Oct 7, 2003
  • Continued implementation of Chord
  • Began development of Chord-Bots that can walk through the network and accumulate data about the chord-ring
Sep 30, 2003
  • Researched peer-to-peer searching algorithms.
  • Began implementation of Chord (a Distributed Hash Table-type searching algorithm)

 

Sep 23, 2003
  1. Solved Utilities problem
  2. Added Application component as higher level of indirection (to make different applications on the p2p network independent of each other)
  3. Improved automated log-in to time-out on unfriendly computers
  4. Implemented breadth first search
  5. Solidified 3-member faculty committee

 

Sep 16, 2003
  • Re-familiarization with code
  • Automated log-in/seeding

 

Sep 9, 2003 Determined focus of project for the semester:
  • Complete framework of p2p network
  • Implement 3 searching algorithms and plug them in-and-out of our framework
  • Run simulation to analytically compare the 3 searching algorithms
  • Possible emulation of ModelNet to gather analytical data

 

Sep 2, 2003 Research Summaries
Aug 26, 2003 First Meeting of the Semester

 

 


Spring 02 Semester

Jan 3, 2002 Initial Meeting
Feb 4, 2003 p2p Paper Summaries
Feb 12, 2003 Discussed the JXTA p2pframework.

Will implement a simple p2p application built on top of JXTA and demo in two weeks

Feb 19, 2003 Researched/experimented with JXTA and decided to develop our own p2p framework
Feb 26, 2003 Began development of p2p framework
Developed basic networking structure (Clients, Servers, Peers, etc)
March 5, 2003 File Sharing
Single p2p user chat (one-one chatting)
March 12, 2003 Spring Break
March 19, 2003 Major refactoring of code
March 26, 2003 More refactoring of code
April 2, 2003 Developed InfoReceived objects to better handle instructions sent across network.

Added Factories to better facilitate Nettables/Commands/InfoReceived objects sent across the network

April 9, 2003 More refactoring and development of InfoReceived objects.
April 16, 2003 ChatAdministrator added
ClientAdministrator added
April 23, 2003 Packaged code
Added Utilities object
Refactored code to better utilized this Utilites object.
April 30, 2003 Multi-User Chat (many-many chatting)
Final deliverable for the semester completed.
Begin write-up of project.
May 2, 2003 Demo final deliverable for the semester

Write-Up

JavaDoc

P2P Code