Appendix A

Program Documentation

 

 

 


 

Authors

 

Ming Ge

Department of Electrical Engineering

Columbia University

mg2703@columbia.edu

 

Name

 

Drag-and-drop File Sharing System (DnD).

 

Introduction

 

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.

 

System requirement

 

1. Java Virtual Machine/JDK 1.6 or newer version.

2. Apple's Bonjour is installed.

 

Installation instructions

 

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.

 

Operation

 

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.

    

Program internal operation

 

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

 

Limitation

 

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.

 

Future work and enhancement

 

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.

 

Acknowledge

 

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.

 

Reference

 

[1]

http://izpack.org/

[2]

http://bonswing.cvs.sourceforge.net/viewvc/bonswing/7DS_J_filexchange/.