Due - December 17, 2009
For this project, you will propose and implement an extension to
your FileSync application. The lecture period on November 25 will be
devoted to
discussion of your proposal. By November 25, you will need to submit a 1-2
paragraph description of your extension. I will respond promptly with
any
comments about your proposal. You are strongly encouraged to meet with
the professor early and often to discuss your ideas.
For this project, you may choose to work in teams of 2. I will expect
teams to complete roughly 2 times more work than individuals, and each team
member will receive a grade based on my assessment of the individual
contributions.
Your final grade will be based upon your proposal, the functionality
of
your final submission, the design of your final submission, the
degree of
difficulty of your proposed project, and your final demonstration. Submissions that demonstrate a low
level of difficulty and/or few new features will be graded
accordingly. Upon reading your proposal I will give
you feedback on the level of difficulty of the project.
Following are several ideas for Project 3. This is not meant to be
an
exhaustive list, and is meant to inspire your creativity. Keep in mind
that I will expect the amount of work required for Project 3 to
exceed
that of Project 2.
Load Distribution
Implement and compare several load-aware strategies for selecting
nodes where replicas will be placed. For example, you might consider a
round-robin approach, a random approach, an approach that keeps track
of the amount of space available for backup on each node, and an
approach that considers the uptime of each node. Experimentally
compare the approaches using metrics such as how often restoration is
successful and submit a writeup.
DHT
Replace the current strategy you use to maintain a list of peers
with a DHT such as CAN. Use the DHT to help you determine where data
should be backed up.
Bit Torrent-style Backup
Back up your files in chunks a la BitTorrent. To restore, download chunks in parallel from several nodes.
Integration of other Web Services
Integrate one or more web services in addition to the Google Docs service.
You will need to come up with (good!) justification as to why the chosen
service enhances the service provided by your application.
SOAP Interface
Provide a SOAP interface to your service. Compare the SOAP-based implementation to the REST-based implementation.
Use Another Platform
Reimplement your application using another platform, such as Django or Ruby on
Rails. Compare the features of the RESTlet architecture to the platform you
choose.
Android/Mobile Devices
Develop
and integrate a strategy for integrating other types of devices into
your system. You might consider using the Android platform.
Security and Authentication
Implement a security mechanism to enable devices to authenticate
themselves. Encrypt content before
sending over the network.
Due 3:30PM - Wednesday November 25, 2009
-
Email me a 1-2 paragraph description of your proposed extension. I will
respond promptly with any comments about your proposal.
Due - December 17, 2009
-
You must demonstrate your completed program by December 17, 2009 at 12 noon. Demo slots will be filled on a first-come first-served basis. Please plan accordingly.
Note: No portion of your code may be copied from any other source
including another text book, a web page, or another student (current or
former). You must provide citations for any sources you have used in
designing and implementing your program.