Exam 1 will cover all material introduced so far in the class. This includes any readings or resources posted on the website (slides, notes, web links, code samples) as well as any topics we have covered in class.
The list of topics may include but is not limited to the following:
- Why are distributed systems useful or necessary?
- What are some of the challenges associated with building distributed systems?
- Client/Server Architecture
- Monolithic Architecture
- Service Oriented Architecture
- Web-based vs other systems
- Layered model
- HTTP
- TCP functionality
- TCP versus UDP
- Socket programming - TCP and UDP
- Reliable data transfer
- Sliding window protocols
- Go-Back-N Implementation
- Concurrency
- Thread safety
wait
andnotify
methods
- Service discovery - general challenges and possible methods
- ZooKeeper - what, why, how?
- Data serialization - general challenges and possible methods
- Protocol Buffers - what, why, how?
- Web service versus web site
- RESTful model
- API design
- Consistency/Availability Tradeoff
- Cristian's algorithm
- NTP