Tufts CS 117 (Fall 2024):
Internet-scale Distributed Systems

Tufts CS 117 Reading Assignment:
Distribution Models and HTTP

Overview

This assignment is to explore some of the most interesting writings on distributed systems architecture, including:

This assignment is different from most earlier reading assignments: with the exception of core features of RFC 2616 it's not expected that you will understand in complete detail even the assigned sections of these papers. Do NOT drive yourself crazy trying. Learning to get something out of readings that you only partly understand is one of the most impotant things we do in computer science! Do your best, and our in class discussions will fill in much of what you miss.

Like the end-to-end paper, the Birrell and Nelson paper is one of the most famous systems papers of the late 20th century. It defined the concept of Remote Procedure Call (RPC). It's also a more traditional example of a well written research paper, documenting implementation experience as well as theory. Similarly, Roy Fielding's thesis is considered one of the most important writings on Web architecture. It was this thesis that defined the concept of REST, giving a post-facto theory to support HTTP, much as End-to-End did for the Internet.

So, your goal for now is to get some of the highlights of each of these readings. From the Birrell and Nelson paper you should get at least a pretty good idea of what RPC is and why it might be useful. The REST paper tends to be more abstract. Try to get some sense of what issues Roy is exploring as he sets off to define REST.

There are some short questions that you must answer for this assignment, but most of your time will be spent on the reading. The questions themselves are very short (and this written submission counts significantly less than the larger ones like end-to-end).

Assignment

Required reading

Please read the following:

Getting the References

All references are available online:

Getting the Questions

As usual, questions are provided in an HTML files, copies of which you can download. You must supply your answers by inserting them in the spaces provided in the downloaded HTML file, and when you are done, you must submit your answers using the usual Tufts CS department "provide" command. See instructions below.

For full credit, your file should validate as HTML5 using the official validator for uploaded files. It may not be possible in all cases for the graders to check the validity of every submission, but we reserve the right to do so when we suspect trouble, and to deduct credit for validation failures. You can ignore the warning about "Using experimental feature: HTML5 Conformance Checker"; that's just because the HTML5 validator is still experimental at W3C (because the specification for HTML5 isn't final).

Review questions for this assignment - Download questions for this assignment

Submitting your answers

Download the HTML file with the questions using the link above. Fill in your answers, use your local browser to check formatting, and the HTML validator to make sure your HTML is correct. You may ignore warnings about character encodings. Then use provide to submit:

provide comp117 dist_models distributionquestions.html

Note that comp117 is lowercase; provide will choke if you get that wrong. As always, detailed grading will be done only on your final submission.