Syllabus
Here are the lecture topics to be covered in class. This is not a strict schedule, however. We may dynamically change our focus depending on the discussion in class.
Introduction (1 week)
-
Introduction to distributed systems and models
-
Networking and internetworking essentials
-
Design goals
-
Classification of distributed systems
-
Examples of modern distributed systems
-
Current and future trends
Architectures and Middlewares (1 week)
-
Architectural styles
-
System models and architectures
-
Middlewares
-
MiddlewaresLayered-system architectures
-
Symmetrically distributed system architectures
-
Hybrid system architectures
-
Self-management
Distributed Processes (2 weeks)
-
Processes and Threads (Python threads)
-
Clients and servers
-
Operating system support
-
Code mobility and agents
-
Virtualization
-
Microservices
Communication (2 weeks)
-
Interprocess communication models
-
Remote invocation (RPC, RMI)
-
Message-oriented communication
-
Multicast and group communication
Addressing and Name Services (1 week)
-
Fundamentals
-
Flat vs. structured naming
-
Attribute-based naming
-
Directory services
Time, Synchronization and Coordination (2 weeks)
-
Time and clock synchronization
-
Logical clocks
-
Global state and snapshot
-
Mutual exclusion
-
Location systems
-
Gossip-based coordination
Distributed Algorithms and Computation (2 weeks)
-
Election
-
Consensus
-
Distributed event processing
-
Distributed graph algorithms
-
Map-Reduce
-
BSP(Bulk Synchronous Parallel)
Distributed Programming (1 week)
-
Python distributed computing with Ray
-
Python for Spark programming with PySpark
-
IoT programming with Python
Distributed Storage and File Systems* (1 week)
-
Distributed storage
-
File service architecture
-
Network File Systems
-
Mobile File System
-
Distributed database systems
-
Cloud storage
Consistency and Replication* (1 week)
-
Consistency Models
-
Replica Management
-
Consistency Protocols
Fault Tolerance* (1 week)
-
Failure models and process resilience
-
Reliable communication
Security* (1 week)
-
Security models
-
Access control
-
Security management
Distributed Transactions* (1 week)
-
Transactions and concurrency control
-
Distributed commit
-
Distributed transaction management
Advanced Topics* (1 week)
-
Web services
-
Mobile and pervasive computing
-
Grid, cloud, fog and edge computing
-
P2P(Peer-to-peer) systems
-
Wireless sensor networks(WSN)
-
Internet of Things(IoT)
-
Crowd computing
-
Mobile sensing
-
Social networks and computing
Semester Theme: Artificial Intelligence of Things (1 week)
-
Combination of AI and IoT
-
Definitions, challenges and opportunities
-
Benefits of AI and IoT integration
-
AIoT for Edge AI or Edge Intelligence
-
On-device machine learning with AIoT devices
-
Edge-to-Cloud AI architecture
-
AIoT platforms and tools
-
AIoT applications
*: Topics to be covered when time permits.