Presentation is loading. Please wait.

Presentation is loading. Please wait.

ShareMe file sharing application for the android and other platforms

Similar presentations


Presentation on theme: "ShareMe file sharing application for the android and other platforms"— Presentation transcript:

1 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 Friday, May 03, 2019Friday, May 03, 2019

2 Overview Main Features:
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 Reliability Concurrency 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 neighbours to 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 ShareMeFileInDownload
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


Download ppt "ShareMe file sharing application for the android and other platforms"

Similar presentations


Ads by Google