Spring 2022 Course Descriptions
CS 117-01 Internet-Scale Distributed Systems: Lessons from the World Wide Web
Please note that this course was formerly numbered COMP 150-IDS.
The World Wide Web, one of the most important developments of our time, is a unique and in many ways innovative distributed system. This course will explore the design decisions that enabled the Web's success, and from those will derive important and sometimes surprising principles for the design of other modern distributed systems.
We will introduce and draw comparisons with more traditional distributed system designs, including distributed objects, client/server, pub/sub, reliable queuing, etc. We will also study a few (easily understood) research papers and some of the core specifications of the Web. Specific topics to be covered include: global uniform naming; location-independence; layering and leaky abstractions; end-to-end arguments and decentralized innovation; Metcalfe's law and network effects; extensibility and evolution of distributed systems; declarative vs. procedural languages; Postel's law; caching; and HTML/XML/JSON document-based computing vs. RPC.
The purpose of this course is not to teach Web site development, but rather to explore lessons in system design that can be applied to any complex software system.
More detailed course information can be found at https://www.cs.tufts.edu/comp/117/shouldItakeit
Prerequisite: CS 40 or permission of the instructor.