We used Java 2 SDK for development (j2skd1.4.1_02).
For peer discovery we use JXTA. JXTA technology is a set of open protocols that allow any connected device on the network ranging from cell phones and wireless PDAs to PCs and servers to communicate and collaborate in a P2P manner.
JXTA peers create a virtual network where any peer can interact with other peers and resources directly even when some of the peers and resources are behind firewalls and NATs or are on different network transports.
For graphical user interface, we utilize Java Swing library.
We save the user preferences as an XML file. To create and parse saved preferences, we utilized the Xerces XML parser.
We utilized JUnit framework for writing and testing our code.