P2P LinuxWifi Architecture Review
May 4, 2003
Reviewers:
Vivek Thakkar
Michael Walsh
Srinivas (Srini) Kattragadda
Ryan Gordon
Issues Raised:
1)
We are currently opening pipes to all peers, regardless of whether they are
servicing that pipe.
a) Excessive pipe
spawning
2) We do not spawn new threads to
service incoming socket requests
3)
All inter-layer communication is not consistent and is done differently for search,
download, and peer discovery
4) Cyclic package dependancies between GUI and services
5) Overloaded services API class
6)
Overloaded services package (communication level protocal
code that should be moved downward)
7) The package name app is a
confusing name
- Should be named core
8) Exception handling should not be
used as a mechanism for normal processing
9) Remove unused classes and other
code constructs
10) Move generic classes (such as: FileInfo) to the util package
11) Package naming convention should
not be specific to a class (ie. cs327)
12) Test classes should be moved out
of main packages
13) Classes should be renamed to
reflect their actual functionality
14)
Application name should be changed as part of the package path to reflect new functionality
(wapster)
15) Should remove references to
deprecated classes
Proposed recommendations to resolve
issues:
1)
Significant rewrite of mechanism by which we do service discovery using pipe advertisements
2) Rewrite to accomdate
servicing multiple requests simultanously
3) Follow the model set forth by
search
4) Resolved by #3
5) Abstract out the functionality
and divide it up
6) Move certain classes to lower or
upper layers as necessary
7) Rename to Core
8) Application components should be
rewritten so they are not dependant on exception handling for main logic
9) Do as stated
10) Do as stated
11) Change to to
edu.uiuc.cs.wapster.* convention
12) Do as stated and place into a
test harness
13) Do as stated
14) Do as stated
15) Do as stated