Deadline: 5th of July 2022 6:00pm US time
Reference Code attached
You will use Java to implement a simplified
cloud-based storage application.
– Similar to Dropbox/Google Drive, but the focus will
be on the core functionalities and concurrent
– The user interface can be command line,
standalone GUI, or web interface.
– No user management, i.e., you only need to
support one user, but the user could use multiple
devices (clients) to connect to the server
File Sync: Files must be synced continuously as changes are
– Text and binary files, small and large files (> 200MB)
– Multiple files are synced for multiple clients simultaneously
• Delta Sync: Minimize the amount of data that needs to be
synced, instead of syncing the entire file, every time
• Sync Status: Monitor and report sync status
– Sync status of each file, e.g., in or out of sync, sync progress for
each file that is currently being synced
• Error Handling: Data consistency must be preserved in all
situations, e.g., network failure, user errors, and others.
Data transmission must be implemented using UDP,
i.e., not TCP
– Commands can be sent/received using TCP.
• Files must be managed and transmitted using blocks
– Recommended block size: 4MB
– Block retransmission should be minimized.
• Maximum Concurrency: Create as many threads as
needed to maximize computation efficiency
– As a basic requirement, separate threads must be used for
syncing different files, command vs data transmission, file
read/write vs network send/receive, and status monitoring.
4 freelancers are bidding on average $118 for this job
Hi there, I have came across ur project i can help u with it as i have great working experience in Java and Software Development. Please have a look at my portfolio: https://www.freelancer.com/u/ayesha0124 Regards,