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