ShareMe file sharing application for the android and other platforms

Slides:



Advertisements
Similar presentations
MQ Series Cross Platform Dominant Messaging sw – 70% of market Messaging API same on all platforms Guaranteed one-time delivery Two-Phase Commit Wide EAI.
Advertisements

Android Application Development A Tutorial Driven Course.
Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.
CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 Resource Containers: A new Facility for Resource Management in Server Systems G. Banga, P. Druschel,
Android architecture overview
Developers: Alexey Rastvortsev, Ilya Kolchinsky Supervisors: Roy Friedman, Alex Kogan.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
Network Hosts Analyzer Hadas Shumovitch Elad Levi Tal Katz
Mobile Application Development
Hands-On Microsoft Windows Server 2003 Administration Chapter 5 Administering File Resources.
3D Object Retrieval Client-Server Project
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Christopher Bednarz Justin Jones Prof. Xiang ECE 4986 Fall Department of Electrical and Computer Engineering University.
WP6: Grid Authorization Service Review meeting in Berlin, March 8 th 2004 Marcin Adamski Michał Chmielewski Sergiusz Fonrobert Jarek Nabrzyski Tomasz Nowocień.
In association with Technion and Qualcomm. Project supervisor: Tatyana Finkel. Technion Israel Institute of Technology.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Rajab Davudov. Agenda Eclipse, ADT and Android SDK APK file Fundamentals – Activity – Service – Content Provider – Broadcast Receiver – Intent Hello World.
Mobile Application Development using Android Lecture 2.
DUE Hello World on the Android Platform.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
802.11n Sniffer Design Overview Vladislav Mordohovich Igor Shtarev Luba Brouk.
Experience Sharing in Mobile Peer Communities EPI Planete, INRIA International Consortium Meeting (Oulou) 10 June, 2009.
FCM Workflow using GCM.
FriendFinder Location-aware social networking on mobile phones.
FriendFinder Location-aware social networking on mobile phones.
Stream Spider Distributed Music Streaming Service with Sliced Music Files from Different Originating Hosts Justin Steffy and Michael D. Elder.
IPS Infrastructure Technological Overview of Work Done.
1 Android Workshop Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
R Some of these slides are from Prof Frank Lin SJSU. r Minor modifications are made. 1.
USING ANDROID WITH THE INTERNET. Slide 2 Lecture Summary Getting network permissions Working with the HTTP protocol Sending HTTP requests Getting results.
Renee R. Henderson Instructional Technology Specialist Technology Training Team, PGCPS
Introduction to Operating Systems Concepts
Introduction to threads
SharePoint 101 – An Overview of SharePoint 2010, 2013 and Office 365
Segments Introduction: slides 2–6, 8 10 minutes
Developing IoT endpoints with mbed Client
Android Application -Architecture.
Visit for more Learning Resources
Instructor: Mazhar Hussain
Mobile App Development
Principles of Network Applications
Chapter 2: System Structures
MAD.
Activities and Intents
Android Mobile Application Development
Introduction to Operating System (OS)
CHAPTER 3 Architectures for Distributed Systems
Preliminary Design Review 18 October 2017
CMPE419 Mobile Application Development
Linternals SysInternals for Linux
Internet Networking recitation #12
Client-Server Interaction
Meng Cao, Xiangqing Sun, Ziyue Chen May 28th, 2014
Replication Middleware for Cloud Based Storage Service
Android Programming Lecture 9
Windows Phone multitasking
Chapter 2: Operating-System Structures
What’s New and What’s Coming in the Microsoft Outlook Family of Apps
Chapter 2: System Structures
Application Development A Tutorial Driven Course
Google App Engine Ying Zou 01/24/2016.
Starting TCP Connection – A High Level View
DRC Central Office Services
Android Introduction Platform Mihail L. Sichitiu.
LO2 – Understand Computer Software
CMPE419 Mobile Application Development
Message Passing Systems Version 2
Message Passing Systems
L. Glimcher, R. Jin, G. Agrawal Presented by: Leo Glimcher
Presentation transcript:

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

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.

Design

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.

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

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.

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.

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.

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

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.

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.

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.

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

Android UI Soon

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) …

Live Demonstration Are you ready?

Questions and Discussion