Proximity

[600.647 - Advanced Topics in Wireless Networks]
Personal Networking Tool

Overview | Design | Implementation | Final implementation | Change log | Download

Final Implementation

New features

The most important features in this version are:
new and improved GUI
Two improvements falls into this category: look-and-feel and a complete rewritten graphical interface.

For the fist one we tested several skins and in the end we settled for the JGoodies Looks. They look great on Linux and Mac (with only some minor quirks in MacOS 10.4 "Tiger") and they contain a full implementation for all the components.

Rewriting the graphical interface improved dramatically the code consistency and clarity an also made easier adding the new features of the engine (picture and status message support mainly).

status message
In each periodic HelloMsg is not embedded a status message.
picture support
This is a special category which hold the MIME64 encoding of a picture. Right now there's no checking on file size of type. The picture is shown in the profile editor and viewer.
profile migration
As in the initial design, based on policies, a profile fields can now migrate from an active user to another. The implemented policies are:
  1. public: the field can be freely send to anyone
  2. private: the field is not sent to anyone. This allows disabling a field broadcast.
  3. myFriends: the field should only be send to the friends of the profile to which the field belongs to.
  4. yourFriends: the field can be send to any friend. This allows to a field to propagate based on connectivity.
Because each field has a separate signature (and policy) it can be distributed independently.
adaptive broadcasting frequency
In order to limit the broadcast, a linear back-off is used. The received broadcast messages are monitored, and when a certain threshold is reached, the client starts to lower his sending frequency. If the received messages are below the threshold and the sending frequency is below the normal level, the client will try to increase it.
automatic profile requesting
The program can try automatically to find profile information about the fingerprints found in the friends field of the known profiles. This is done in a round robin fashion and can be disabled.

Screenshots

Testing

3 systems: 2 laptops running MacOS X and one desktop running Linux.

Incompatibilities

Because of some differences in the JCE we where not able to run the program using IBM's JVM. We were able to run the program in Sun's JVM (1.4 and 1.5) and in JRockit (1.5).