The following reasons motivated us to work on this project :
Common interests : People who wish to download similar content can collaborate and do so via Unity.
Limited dataplans : Now one can download a file with a file size more than what that individual's dataplan allows since using Unity each person is effectively downloading only a part of the file but actually gets the whole file.
High rate of download failures : Unity includes a recovery procedure to resume downloads if they are interrupted momentarily due to weak mobile network coverage in a particular area.
What is Unity ?
Unity is a mobile app (currently only for Android) for effectively downloading files in a collaborative fashion with the help of colocated peers.
Currently, we are still in our beta phase.
The idea behind Unity is to divide the workload amongst the participating devices so that each device downloads a part of the file requested by
the user and ultimately the file is reconstructed back from all these parts locally and presented back to the user. The app uses either WiFi or Bluetooth
for local communication amongst the devices participating in the download and while downloading each part, every device uses its own mobile network.
At the end of the activity, the requested file can be found in a folder named as Unity on all the participating devices.
The app is available in 2 different versions, via WiFi or via Bluetooth.
The WiFi version of the app is faster overall since local communication is via WiFi but the Bluetooth version was developed keeping in mind that many smartphones still may lack the hotspot feature.
Choose a particular device as master and turn on the mobile network data and Wi-Fi hotspot on this device.
Connect all other devices (peers) via WiFi to this hotspot device which we are calling the master after turning on the mobile data on all of them.
Launch the app on all the devices and enter a unique session name for each device. This is just a name that will be used to identify the devices and see each device's contribution in the whole process.
Choose the mode as "Master" on the hotspot device and "Peer" on other devices. Please note that there has to be a single master device and this must be the device which has its hotspot turned on with all other devices connected to it.
Choose the scheme as either default or adaptive (if you want to have the best performance).
On the next screen with title "Devices", make sure all the devices connected to the hotspot are visible in the list by their session names and on all the other devices only the master's session name should appear.
Press next on all the devices. Now all you have to do is enter the URL for the file to be downloaded on the master device and a name by which the file would be stored on the file system. Press start download and it should begin.
You would now receive a notification when the download completes. In case you wish to stop the app in between, press the options menu button and press exit.
Each collaborating device's contribution in terms of parts can be seen by pressing the "Console" button.
The downloaded file's path can be seen by pressing the "File path" button.
Step by step usage - Unity BT
Launch the app on all the devices.
Choose the mode as "Master" on one of the devices and "Peer" on other devices. Please note that there has to be a single master device.
Choose the scheme as either default or adaptive (if you want to have the best performance).
On the next screen the Master Device will display list of available Bluetooth devices, Choose those devices on which App is running in "Peer" mode. Peer devices would wait for master to connect to them.
Choose the scheme as either default or adaptive (if you want to have the best performance).
Press next. Now all you have to do is enter the URL for the file to be downloaded on the master device and a name by which the file would be stored on the file system. Press start download and it should begin.
Press next on all the devices. Now all you have to do is enter the URL for the file to be downloaded on the master device and a name by which the file would be stored on the file system. Press start download and it should begin.
You would now receive a notification when the download completes. In case you wish to stop the app in between, press the options menu button and press exit.
Each collaborating device's contribution in terms of parts can be seen by pressing the "Console" button.
The downloaded file's path can be seen by pressing the "File path" button.
Demo
The following video shows the concept of the app and also shows it in action when deployed on some of our devices:
About the Team
This project is a part of research efforts at the Mobile and Ubiquitous Computing Group (MUC) at IIIT Delhi. Team members includes :
This project is partially funded by Microsoft Research India. Also thanks to Rushil Khurana (Undergraduate Student, IIIT-Delhi) for doing a splendid job with the logo.
Publications
P. Jassal, K. Yadav, A. Kumar, V. Narwal, V. Naik, and A. Singh. Unity: Collaborative Downloading Content using co-located Socially Connected Peers. Accepted at The 9th International Workshop on Mobile Peer-to-Peer Computing (MP2P'13), March 18-22, 2013, San Diego, USA pdf
Feedback
For any queries/suggestions, please mail us at any of the following email ids: