CSR204:DISTRIBUTED AND CLOUD COMPUTING
L:3 T:0 P:2 Credits:4
Course Outcomes: Through this course students should be able to
CO1 :: understand the fundamentals of distributed and cloud computing, including the underlying
concepts and principles, the advantages and challenges of these technologies, and the different
types of distributed and cloud systems
CO2 :: develop a distributed system using different architectures and models, including message
passing, shared memory, and remote procedure call (RPC).
CO3 :: analyze fault-tolerant and scalable distributed systems including handling node failures,
network partitions, and load balancing
CO4 :: develop cloud-based applications using different cloud services, such as storage, compute,
database, and messaging services
CO5 :: recognize and monitor cloud-based applications using different tools and techniques,
including automated scaling, load balancing, and security management
CO6 :: analyze and evaluate the performance, scalability, and cost-effectiveness of distributed
and cloud systems, using different metrics and tools, such as response time, throughput, and
cost per transaction
Unit I
Introduction to Distributed and Cloud Computing : Overview of distributed and cloud computing,
Evolution and history of distributed and cloud computing, Comparison of distributed and cloud
computing with traditional computing models, Benefits and drawbacks of distributed and cloud
computing, Basic concepts and terminology used in distributed and cloud computing, Peer-to-peer
architecture
Unit II
Distributed Computing Architectures : Client-server architecture, Peer-to-peer architecture,
Distributed systems architectures, Message-passing architectures, Publish-subscribe architectures,
Comparison of different distributed computing architectures.
Unit III
Cloud Computing Models and Services : Cloud computing deployment models, Cloud computing
service models, Cloud computing storage models, Cloud computing networking models, Cloud
computing security and compliance considerations
Unit IV
Distributed Computing Algorithms and Techniques : Distributed algorithms for consensus,
coordination and synchronization, Distributed data structures and algorithms, Replication and
consistency techniques in distributed systems, Fault-tolerance and reliability techniques in distributed
systems, Performance tuning and optimization techniques in distributed systems.
Unit V
Cloud Computing Platforms and Technologies : Overview of major cloud computing platforms,
Containerization and container orchestration technologies, Serverless computing technologies, Big
data processing and analytics platforms, Internet of Things (IoT) platforms and technologies
Unit VI
Distributed and Cloud Computing Applications : Case studies of distributed and cloud computing
applications in various industries, Emerging trends and innovations in distributed and cloud
computing, Ethical and social implications of distributed and cloud computing, Future directions and
challenges in distributed and cloud computing
List of Practicals / Experiments:
Distributed and Cloud Computing Applications
• Explain the concept of distributed computing and discuss its advantages and challenges. Provide real-
world examples to illustrate your points.
• Design a simple client-server application in Python, where the client sends a message to the server,
and the server responds with an acknowledgment. Implement the application and test it locally.
• Compare and contrast centralized, decentralized, and distributed systems. Discuss their respective
use cases and benefits.
Session 2023-24 Page:1/2
• Implement a distributed key-value store in any programming language of your choice. The key-value
store should support basic operations like PUT, GET, and DELETE.
• Explain the CAP theorem and its implications in distributed systems design. Provide scenarios where
each of the CAP theorem properties (Consistency, Availability, Partition tolerance) is prioritized over
the others.
• Design a load balancing strategy for distributing incoming HTTP requests across multiple servers.
Explain how your strategy maintains system performance and handles server failures.
• Discuss the concept of MapReduce in the context of distributed computing. Provide an example of a
problem that can be solved using MapReduce and write the mapper and reducer functions for it.
• Explain the role of Virtualization in Cloud Computing. Compare the benefits of full virtualization and
paravirtualization and discuss their use cases.
• Design a fault-tolerant mechanism for a distributed file system. Explain how your approach handles
node failures without losing data or data integrity.
• Discuss the security concerns in cloud computing and strategies to mitigate them. Explain the shared
responsibility model and how it impacts security measures.
• Explain the concept of containers in the context of cloud computing. Compare containers with virtual
machines and elaborate on their advantages and use cases.
• Design a cloud-based architecture for a scalable web application. Describe the components and
services you would use to ensure high availability, fault tolerance, and elasticity.
References:
1. CLOUD COMPUTING: FUNDAMENTALS, INDUSTRY APPROACH AND TRENDS by RISHABH
SHARMA, Wiley India
2. MASTERING CLOUD COMPUTING by RAJ KUMAR BUYYA, CHRISTIAN VECCHIOLA, S.
THAMARAI SELVI, MC GRAW HILL
Session 2023-24 Page:2/2