ImplementationFAQ:Programming language used: Java.Supported platforms: Any ad-hoc network (wired or wireless). Client Server or Peer to Peer or Both: Peer to Peer. Are we using open source components? Yes, we will probably use OpenJGraph tool for the visualisation of the network of friends. Are we using GPS? No. There is no need for GPS. Are we planning on having Wave Relay installed on end user devices? No. There is no need for that. No other details available yet. XML supportThe format used for storing data and exchanging messages is XML. For converting from XML to objects and vice-versa we used an open source framework Castor. Classes involved in XML operations are:
<?xml version="1.0" encoding="UTF-8"?> <profile> <publicKey>...</publicKey> <fingerprint>...</fingerprint> <category policy="superPublic"> <name>UserName</name> <value>user</value> <version>user</version> <signature>user</signature> </category> <category policy="superPublic"> <name>ProfileVersion</name> <value>1</value> <version>1</version> <signature>user</signature> </category> <category policy="public"> <name>email</name> <value>email</value> <version>1</version> <signature>...</signature> </category> <category policy="private"> <name>category1</name> <value>value1</value> <version>1</version> <signature>...</signature> </category> </profile>For our own profiles the publicKey ,
fingeprint and all the signature 's are
automatically computed.
There are two special categories in a Profile:
superPublic policy denote a category which will be
published in the HelloMsg . A public policy
denote a category which will be published and relayed to/by everyone.
SecurityThe cryptographic support is based on Bouncy Castle Crypto API, a lightweight cryptography API which provides two features we were looking for: AES and RSA. Classes involved in crypto operations are:
GUIWe use the Swing interface from Java toolkit to build the user interface.CommunicationOur application make use of both multicast UDP communication and point to point TCP connections. Multicast is used for sending periodic Hello messages and exchanging information about profiles while TCP connections are used for the chating facility.Event SystemWe implemented an event system which allows us an easy way to schedule the events and to implement a back-off algoritm to adapt to the trafic changes.Future workAdd the functionality to search in profiles.Encrypt the chat between users. Currently only the UDP communication is encrypted. Last update: Thursday, 11-Aug-2005 03:12:05 EDT |