The goal of this assignment is to create an open, dynamically
reconfigurable Web search engine using the SALSA programming language.
The search engine should be started with a UAN, an initial UAL, an initial URL, and a depth search level. Your engine should fetch the initial URL, indexing word occurrences in that document and producing a list of URLs to fetch in the next iteration. It must keep indexing documents until the depth search level is reached.
Your search engine can be queried at any point, even while building the index. A query contains a single word. The search engine should return the URLs for the documents that contain the word sorted by the number of occurrences of the word in each document. A search engine client may want to produce HTML to display those results.
To support fault-tolerance, your search engine can be requested to move to a different machine. This can happen at any point, for example, while building its index or responding to a query. Migration should be transparent to the clients, i.e., there should be no changes to the code of the search engine clients.
Possible Extensions:
To learn more about SALSA, see OOPSLA 2001 paper. To download and install SALSA, see http://wcl.cs.rpi.edu/salsa/
Submission:
The due date for this project is April 3rd, 2007, 11:55pm EST.
You should use the assignments drop-off box located at the course's WebCT
page. Upload a zip/jar file containing all the relevant documented
files, along with a README file containing instructions on running the
program and explaining any design decisions you made.