Peer to Peer Group Communities
P2PGC

Friend | Search | Chat | Ontology | CDplayer | About

Introduction

In some P2P models, the search is complicated and the results sometimes are not what the user expected. One possible solution to this issue could be to create user groups of peers with similar interests in this case, music. For instance, people could create a group with a specific genre in common. Thus, if a peer is searching for some specific song, it could communicate with peers in its group to search for the song first. In the case this should fail, the peer would search the peers provided by the main server and find a new possible member of its community using the results of its search. With this approach, the results could be improve and the users have the option to be part of a community which shares the same interests.

How P2PGC (Peer to Peer Group Community) works?

P2PGC is going to have a centralized server where peers can register, unregister, find other peers. Nothing new so far. However, when peer A starts looking for some specific song, it first searches for the artist in the peers in its list, which was assigned by the main server. If peer B sends back 5 songs, peer C sends 2 songs and peer D sends me 10 songs from that specific artist. Peer A analyzes the information and suspects that peer D has some similar interests. Peer A sends an invitation to peer D to be part of its community. Peer D is able to decide whether be part of that community or not. If Peer D accepts it sends an acknowledgment to peer A. The last step would be that both peers would exchange friends' addresses of other peers so that the community can grow based on something specific like artists or genres. Now both peer A and D are part of a community thus, the next time peer A searches for a song or artist it first checks for peer D and its new friends for results.

Let's see with a graph, Phase 1

First the user sets up its own profile, in the case that the user does not set up its profile the P2PGC automaticlly creates its profile using statistics
Second the user connects to the server to get the list of all peers

Phase 2

The users now knows the other peers but they dont have a group yet. Each user starts to send its profile to all of the other peers. The request message use REST and the other user responses with XML
Now each P2PGC (Peer to Peer Group Community) knows about the profile of the other peers so it starts to select its friends based on its profile.

Phase 3

After P2PGC creates their group of friends, the user can ask for songs, see statistics of the other peer in that specific genre, chat with the peer, and suggest new songs

What do i used to create P2PGC?

I personally believe that PYTHON is the best laguage that i've used.
So here is what I used:

- PYTHON ---> I love it
- QT designer
- XML --> I like it
- REST
- XSLT

What did I learn about?

I Learned how to use threads in python, manage multiple events in QT, unicode in XML, etc

Contact me

Thank you for your interest in this project. I feel that it represents a good example of what I can accomplish in twenty days. As a graduate student transitioning into Summer I am currently seeking an employment or intership opportunity. Please feel free to contact me with any questions or comments
jquintun-at-cs.usfca.edu