Appendix A
Program Documentation
Ming Ge
Department of Electrical Engineering
Columbia University
Drag-and-drop File Sharing System (DnD).
The System is built to provide files sharing service in traditional wired, wireless or Ad-Hoc network environment. Services on the local network can be automatically discovered without user's configuration.
1. Java Virtual Machine/JDK 1.6 or newer version.
2. Apple's Bonjour is installed.
An open source Java based software!IzPack [1] is used as the installation tool.
Installations for Windows Platform, Linux, Mac OS (DnD_install.jar) are available now.
For windows platform, double click DnD_install.jar to start the installation and following instructions to install DnD.
For Linux and Mac platform, use "$java -jar DnD_install.jar" to start the installation and following instructions to install DnD.
On windows platform, run Drag-and-Drop.jar by double clicking it in the installation directory, for Linux and Mac platform, go to the installation directory and use "$java -jar Drag-and-Drop.jar" to run the application.
Once running, the services of the same register type (here the register type for this program is "_7ds_filexchange._udp", the service name is the name of the <host, port> that provide the service) registered on the network will be listed as nodes under the "Peer Nodes" list. File can be dragged and dropped to the target node. (Notice: a node represents a <hostname, port> pairs on the network that is running DnD, the pair provides the information we need to start TCP connections to send files).
Upon receiving file, the receiver can chose accept or decline and choose the directory to save the file. Both receiver and sender can cancel the file transfer or leave the group, and the other side of the transfer will get the corresponding information.
During transfer, a progress bar will be shown at sender and receiver indicating the percentage and data size that have been sent or received.
If multiple files are dragged and dropped at one attempt, they will be transferred one by one, but transfer of directory is not supported yet. Multiple drag-and-drop actions at the same time or during transfer progress are not permitted.
Figures 1-3 are the screen dump for the system.
Figure 1 GUI--Group list
Figure 2 GUI--Transfer files
Figure 3 GUI--Sender canceled the transfer
Due to likely faulty implementation of the Java Transferhandler for drag-and-drop on Linux, sending files is not working. However files can still be received.
Security features can be added, like group password needed to register the service on the network, SSL and Digital Signature can be used to secure the file transfer.
Application is developed using the framework of
BonAHA.
BonAHA
is developed by Suman R. Srinivasan.
BonAHA
is a framework built on Apple's
Bonjour
library and used to develop P2P applications. Some codes from an
earlier version (by Suman R. Srinivasan) of drag-n-drop file sharing
application which can be found in [2] are reused.
[1]
[2]
http://bonswing.cvs.sourceforge.net/viewvc/bonswing/7DS_J_filexchange/.