Peer-to-Peer Information Systems Week 6: Assignment #4 Old Dominion University Department of Computer Science CS 495/595 Fall 2003 Michael L. Nelson <mln@cs.odu.edu> 10/16/03
Assignment #4 Full P2P mode: Peer discovery: Clients become servers Server becomes a client Peer discovery: new peers learn of an existing peer through out of band communication the new peer sends a new “register” verb to the peer the receiving peer responds with a register of its own peer must process duplicates
Searching all peers must support searching as described in assignment # 3 “submit” verb is no longer used… peer sends “query” verb to all known peers peer collects & displays “queryResult” responses a peer doing the searching must anticipate & “do the right thing” when peer(s) fail to respond!!!
Searching Details Performs a search over all the DC metadata no fielded searching server can quietly drop malformed queries server must support booleans: +word = AND word = OR -word = NOT use any system to implement the boolean searching this is doable using just “grep” return <queryResults id=…></queryResults> for a query with no hits
More Details Peer must allow for users to specify the query Peer must show the query results separate from the locally held files Peer must cache query results make them browsable so queries don’t have to be repeated
Demo A group will begin Regression testing at each stage give a brief walk through / discussion of their implementation connect to the other peers (unless first group) do 2-3 queries & show results also show cached results from queries request mp3s from each client Regression testing at each stage e.g., when group 4 gives its demo, groups 1-3 will be tested to be sure they are still online and functioning
Grading 1/6 of your total project grade You will be graded on: 10 % of your course grade You will be graded on: in class presentation appearance of the interface nice & creative display of the metadata is encouraged!!! whether or not it works practice before you show up for class! robustness of handling exceptional conditions these are end-user applications… they should behave like them