1 / 17

ShareMe file sharing application for the android and other platforms

ShareMe file sharing application for the android and other platforms. Development team : Aviad Moshe Dennis Filimonov Yeonatan Doron Supervised by: Alex Kogan Professor Roy Friedman. Overview. ShareMe is a file sharing application developed for two platforms. Android OS PC

pleong
Download Presentation

ShareMe file sharing application for the android and other platforms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ShareMefile sharing application for the android and other platforms Development team: Aviad Moshe Dennis Filimonov Yeonatan Doron Supervised by: Alex Kogan Professor Roy Friedman

  2. Overview • ShareMe is a file sharing application developed for two platforms. • Android OS • PC • It designed to enable users connected to the same network (currently it means the same IP sub-net) to share any type of information\files. • Main Features: • Cross platform sharing • Pause\resume downloads. • Supports multiple sources per download. • Search for files from all users currently connected.

  3. Design

  4. Design • Modularity • ShareMe core • Platform independent code which exposes notifications API (ShareMe API) for UI implementation, and network implementation for any platform. • Reliability • Middleware group communication reliability. • Added reliability is enforced by Threads (Will elaborate later). • Concurrency • Downloading from multiple sources. • Downloading different parts of the same file concurrently. • Fairness and load balance of downloads and network usage.

  5. Design • ShareMe Core • Uses 4 main manager classes to perform its tasks • Network Manager. • Neighbors Manager. • File Manager. • Downloads Manager.

  6. Network Manager • Expose different network operations, Uses an API to the different Network related operations. • Sending of messages(to specific targets or as a broadcast) • Receiving of messages, and responding to them. • Network modularity • We used the network middleware supplied by Alexander Divinsky • Network middleware implementation should implement the abstract class Network Connector, which is the API the manager uses. • Messages • Every message is a string array which has in its first cell a message type indicator and the rest is the content.

  7. Neighbors Manager • Is used as an API to the different neighbour related operations. • Handles the neighbours list. • Handles detection of neighbours by the network implementation • Neighbors Remover Thread • The manager uses a thread to detect suspected disconnecting neighbors which in turn set as gray (unavailable) this way they are given a chance to reconnect and not drop users immediately upon disconnection. • this thread also broadcasts Hello messages to everyone for added reliability. • The thread sleeps for specified amount of time to improve performance, not flood the Network and to give a chance for grayed out neighboursto reconnect.

  8. File Manager • Is used as an API to every File System related operation • Handles the shared file list. • ShareMe Files: • Files are identified using their Hash number (using MD5 algorithm) • File Hierarchy (next slide) • Configuration Manager • Upon application exit this manager is used by the File Manager and Downloads Manager to store the partial downloads and the current file list, locally in the file system. • When Started, the File and download managers retrieve their data from the configuration manager.

  9. File Hierarchy IShareMeFile ShareMeFile ShareMe LocalFile ShareMe GlobalFile ShareMeFileInDownload ShareMe SharedFile

  10. File Manager Cont. • Fragments • Each file is split into fragments. • In order to get/set fragments of a file we use the RandomAccessFile class, which enables us to access specific parts of a file quickly and efficiently.

  11. Download Manager • The Manager is used to manage the downloads. • Handles the downloads list. • Uses the Downloader Thread. • Runs indefinitely, it initiates fragment requests for resumed downloads from suitable sources (neighbors). • Maintains fairness between downloads. • Supports requesting of different fragments of the same download from different neighbours (without waiting for responses. • Not responsive neighbours are not flooded with requests. • Does best effort to keep the network as quiet as possible.

  12. Search Engine • Search for known files by their name • Keep all files known during the current session of ShareMe (shared files, files in download, neighbours files, neighbours files in download, and even files of neighbours that are not present anymore). • Lets the UI know of the availability of the file, and if it exists locally or not.

  13. PC Client • GUI is build using the swing toolkit • Pc Client implements ShareMe API • Has the same basic look (tabs) and functionality.

  14. Android UI • Soon

  15. Future Development • Turning ShareMe in to a service so it will keep downloading even when the user is using other apps • Implementing on more platforms (WP7 – mango) • Security handling • Support exchanging contacts list, and identifying neighbours by their phone number (on permission to expose this data) • …

  16. Live Demonstration • Are you ready?

  17. Questions and Discussion

More Related