Instructor
Lecture:
|
Main /
ApplicationsNotes
IntroductionCloud computing introduces new programming models for scalability and reliability. While Amazon provides a complete virtual machine for execution, it also provides storage and communication abstractions different than traditional operating systems. In contrast, Google AppEngine provides a restricted execution environment only for Python and Java, while Microsoft Azure provides an language-level virtual machine and programming interface. Your job will be to implement an application using one of these cloud-programming models:
Application of your choiceIf you have a particular application you would like to implement, that is great. It should be of complexity similar to the suggested application (which is low!). Please let me know in advance if you make this choice. Suggested ApplicationYour goal is to build a checksum cracker: a user can upload two documents, your service will try to append data to the second document to produce another document with an identical, or at least similar, Unix checksum. For speed, your service should partition the problem and simultaneously search using multiple machines. This can be CPU intensive, and may run up against CPU limits. So, you may want to store a pre-computed dictionary of password hashes to limit the search space. Sum functionThe original checksum below should not be used.
You should implement checksum using the CRC-32 checksum. Source code in C is available here, and implementations exist for most languages. If you have this working, some possible extensions are:
InterfaceA user should be able to go to a web, paste in an original document (or upload a file), and then a second document to be modified. The output should be the second document with data appended to make it match the original checksum. What to turn inPlease turn in a paper describing the implementation and performance of your system. Google App Engine help
Windows Azure HelpThe Azure development kit requires a machine running Windows Vista or Windows 7. If you want to do this from a Linux workstation, you can use VMware and the lab-provided Vista virtual machine. |