CSCI.6500 Distributed Computing over the Internet

Spring, 2006

Programming Assignment 3.

This assignment is to be done either individually or in pairs. Do not show your code to any other group and do not look at any other group's code. Do not put your code in a public directory or otherwise make it public. While you may get help directly from the instructor, you are encouraged to use the WebCT Discussions page to post problems so that other students can also answer and see the answers.


A Generic Framework for Distributed Computing

The goal of this assignment is to use SALSA/WWC to create a framework for distributed computing over the Internet. A framework for distributed computing can for example involve two interfaces: dci.Compute and dci.Task. The basic interfaces follow:


module dci;

public interface Compute {

    Object executeTask(Task t);

}

module dci; import java.io.Serializable; public interface Task extends Serializable { Object execute(); }

Create a peer-to-peer actor framework that enables clients to contact actors implementing the Compute interface, send them Tasks, and receive the Objects resulting from executing those Tasks.

Modify your framework in such a way that the tasks can be split, so that the sub-tasks can be sent out to other available peer Compute servers, and then the results can be re-composed for the clients.

Write two short example applications which use the framework, splitting and re-joining tasks. Possible algorithms you could use would be: tree-analysis algorithms, tic-tac-toe move planning algorithms, Fibonacci number generation algorithms, or many other things. The framework should be capable of having portions run transparently on different computers.

Extra Credit Options (10% bonus if working individually, at least one required for full credit if working in a pair):

If you have an idea for a different extension, ask the instructor for approval.

Grading will be split in the following way:

Submission:

The due date for this project is April 9th, 2006, 11:55pm EST. You should use the assignments drop-off box located at the course's WebCT page. Upload a ZIP file containing all the relevant documented SALSA files, along with a README file describing the project and its usage.  24-hour late submissions will receive a 10% grade penalty, 3-day late submissions will receive a 25% penalty.  Assignments will not be received after April 12th, 2006.