You are now in the main content area
COE892 Distributed and Cloud Computing (cross listed as EE8229 Distributed and Cloud Computing)
Swipe to see more
Calendar Description
|
This course covers topics related to distributed computing and cloud systems. It presents distributed system architectures; client-server and peer to peer system design; Threading and multi-process computing models; concurrency, synchronization, and inter-process communication; replication, consistency, fault tolerance and recovery. Client-server application design for web application and its full stack implementation are discussed. Web application development using Python framework on a public cloud is covered. Cloud service models; virtualization using VM and containers; their orchestration and performance issues are discussed. Case studies on public and private clouds are presented. Recent developments of multi-cloud and edge clouds are introduced. It includes a major project on the development of distributed software using Python framework and its deployment on a public cloud.
|
Topics
|
- Introduction to distributed computing and system, distribution of computing anddata, virtualization, and cloud systems; Architecture: Client-server system (webapplication); Peer to peer system, structured (DHT) and unstructured (Gnutella)
- Process: Multi-threading (Python Thread library) and multi-processing (PythonSocket API); Hypervisor and Virtualization -- VM and containers (Dockers)
- Concurrency and Synchronization; Communication -- Remote Procedure Call(gRPC)
- Communication: message passing (AMQP), publisher-subscriber model(MQTT), multicast
- Coordination: Logical clocks, mutual exclusion, election algorithms
- Replication and Consistency models
- Reliability and Fault-tolerance, consensus algorithms, checkpointing
- Client-Server application framework (e.g., FastAPI)
- Cloud Systems, Cloud application design on a public cloud (e.g., Azure),Container Orchestration
|
Labs
|
- Lab 1: Multi-threading using shared memory and lock
- Lab 2: gRPC
- Lab 3: RabbitMQ
- Lab 4: FastAPI
- Lab5: Container
- Project: A web application on public cloud
|
Recommended Text Book
|
- Distributed System 3/e by Maarten van Steen and Andrew Tanenbaum
- Lecture Notes (mostly rely on lecture notes)
|
Reference Text Books
|
- Modern Operating Systems 5/e, Andrew Tannenbaum and Herbert Bas, Pearson.
- Distributed Computing 2/e, Hagit Attiya and Jennifer Welch, Wiley.
- Computing 3/e,Dan Marinescu, Morgan Kaufman Publishers
|
Course Evaluation
|
- Quizzes 10%
- Midterm exam 20%
- Final exam 30%
- Lab reports and demo 20%
- Project 20%
|