Updated Course Pack -Distributed computing-R1UC507T
Updated Course Pack -Distributed computing-R1UC507T
1. THE SCHEME
Self-study
Tutorial 0 0
Practical
Tutorial
Theory
Instruction delivery
SEE
CIE
Practical 0 0
Self-study 0 0
Total 3 3
45 0 0 0 50% 50%
Theory Practical
Dr. Sandeep Kumar .M
Names Course Ms.R. SathiyaPriya
Instructor Mr. K. Suresh
Ms.R. Radhika
Dr. Kanika Thakur
2. COURSE OVERVIEW
This course provides a comprehensive understanding and deals with designing systems that operate over multiple computers
working together to achieve a common goal. This course will cover topics such as distributed systems architecture,
distributed algorithms, parallel computing, and networking protocols. Students will gain hands-on experience with building
and managing distributed systems, as well as understanding the challenges and complexities of scaling applications across
multiple machines. By the end of this course, students will be able to design and implement efficient and reliable distributed
computing solutions.
3. COURSE OBJECTIVES
• To provide a conceptual overview of the characteristics of distributed systems and the
• challenges associated in their design.
• To highlight the very demanding requirements of distributed applications.
• To illustrate, how all the architectural concepts, algorithms and technologies can be used
in the design of an application.
1
4. PREREQUISITE COURSE
PREREQUISITE COURSE REQUIRED No
PO1 Computing Science knowledge: Apply the knowledge of mathematics, statistics, computing science and information
science fundamentals to the solution of complex computer application problems.
PO2 Problem analysis: Identify, formulate, review research literature, and analyze complex computing science problems
reaching substantiated conclusions using first principles of mathematics, natural sciences, and computer sciences.
PO3 Design/development of solutions: Design solutions for complex computing problems and design system
components or processes that meet the specified needs with appropriate consideration for the public health and
safety, and the cultural, societal, and environmental considerations.
PO4 Conduct investigations of complex problems: Use research-based knowledge and research methods including
design of experiments, analysis and interpretation of data, and synthesis of the information to provide valid
conclusions.
PO5 Modern tool usage: Create, select, and apply appropriate techniques, resources, and modern computing science
and IT tools including prediction and modeling to complex computing activities with an understanding of the
limitations.
PO6 IT specialist and society: Apply reasoning informed by the contextual knowledge to assess societal, health, safety,
legal and cultural issues and the consequent responsibilities relevant to the professional computing science and
information science practice.
2
PO7 Environment and sustainability: Understand the impact of the professional computing science solutions in societal
and environmental contexts, and demonstrate the knowledge of, and need for sustainable development.
PO8 Ethics: Apply ethical principles and commit to professional ethics and responsibilities and norms of the computing
science practice.
PO9 Individual and team work: Function effectively as an individual, and as a member or leader in diverse teams, and in
multidisciplinary settings.
PO10 Communication: Communicate effectively on complex engineering activities with the IT analyst community and with
society at large, such as, being able to comprehend and write effective reports and design documentation, make
effective presentations, and give and receive clear instructions.
PO11 Project management and finance: Demonstrate knowledge and understanding of the computing science and
management principles and apply these to one’s own work, as a member and leader in a team, to manage projects
and in multidisciplinary environments.
PO12 Life-long learning: Recognize the need for, and have the preparation and ability to engage in independent and life-
long learning in the broadest context of technological change.
PSO1 Have the ability to work with emerging technologies in computing requisite to Industry 4.0.
PSO2 Demonstrate Engineering Practice learned through industry internship and research project to solve live
problems in various domains.
Trends in Distributed Systems - Resource Sharing – Challenges - Introduction to Physical Models - Architectural Models -
Fundamental models - Types of Networks – Network Principles - Internet Protocols.
Introduction to Inter-Process Communication - API for Internet Protocols - External Data Representation and Marshalling -
3
Multicast communication - Request-Reply protocols - Remote Procedure Call - Remote Method Invocation.
Distributed Objects - From Objects to Components - Web Services - Service Descriptions and IDL for Web Services -
Coordination of Web Services - Applications of Web Services.
Clocks - Events and Process States - Synchronizing Physical Clocks - Logical Time and Logical Clocks - Global States -
Distributed Mutual Exclusion - Elections, Coordination and Agreement in Group Communication.
Transactions - Nested Transactions – Locks - Optimistic Concurrency Control - Flat and Nested Distributed Transactions -
Atomic Commit Protocols - Concurrency Control in Distributed Transactions - Distributed Deadlocks.
R1UC507T.2 Analyze the core architectural concepts to meet the challenges in implementing distributed systems.
R1UC507T.3 Examine important approaches in distributed systems to support synchronization and fault tolerance.
R1UC507T.4 Derive Solution that ensures reliability, Security, Scalability and robustness in Internet.
Built distributed application that demonstrated file system concepts, services, concurrency control and
R1UC507T.5
transactions.
9. TAXONOMY LEVEL OF THE COURSE OUTCOMES
Bloom’s taxonomy is a set of hierarchical models used for the classification of educational learning objectives into levels of
complexity and specificity. The learning domains are cognitive, affective, and psychomotor.
Mapping of COs with Bloom’s Level
Remember Understand Apply Analyse Evaluate Create
CO No. KL1 KL 2 KL 3 KL 4 KL 2 KL 6
R1UC507T.1 √
R1UC507T.2 √
R1UC507T.3 √
R1UC507T.4 √
4
R1UC507T.5 √
Note: 1-Low, 2-Medium, 3-High \ *first semester first course and first Course Outcome
The Tut Pra Self Tot The Tut Pra Self Tot
Type of Course ory ori ctic - al ory ori ctic - al Remarks
al al stu al al stu Total no. of
dy dy classes
5
Theory/Tutorial/
L-No Topic for Delivery Skill Competency
Practical Plan
Trends in Distributed Systems and System Model
1 Theory
Trends in Distributed Systems
2 Theory
3 Resource Sharing Theory
4 Challenges of Distributed Theory Identify the concepts of CO1
5 Introduction to Physical Models Theory distributed systems
6 Architectural Models Theory with several machines
to correctly solve
7 Fundamental models Theory
problems in an
8 Types of Networks Theory efficient, reliable and
9 Network Principles Theory scalable way.
Internet Protocols.
10 Theory
6
35 Distributed Mutual Exclusion Theory
Elections, Coordination and Agreement in Group
36
Theory
Communication
Transactions, Concurrency Control and Distributed
37 Transactions Theory
44 Revision 1
Theory
45 Revision 2 Theory
12. BIBLIOGRAPHY
Text Books
1. Coulouris, J. Dollimore, and T. Kindberg, “Distributed Systems: Concepts and Designs”, 5th Edition, 2017, Addison
Wesley.
Reference Books
1. Andrew.S.Tanenbaum, Maarten Van Steen, “Distributed Systems –Principles and Paradigms”, 3rd Edition, 2016,
Prentice Hall.
2. Mukesh Singhal and N. G. Shivaratri, “Advanced Concepts in Operating Systems, Distributed, Database, and
Multiprocessor Operating Systems”, 2017, 1st Edition, McGraw Hill.
3. Vijay K. Garg, “Elements of Distributed Computing”, 2014, 1st Edition, Wiley & Sons.
Webliography
1. "Distributed Computing: Principles, Algorithms, and Systems" by Ajay D. Kshemkalyani and Mukesh
Singhal: http://www.distributedsystemszx.com/
2. "Introduction to Distributed Systems" by The University of Texas at Austin:
https://www.cs.utexas.edu/users/dahlin/Classes/439 /
3. "Distributed Computing" by Stanford University: https://web.stanford.edu/class/cs347/
4. "Cloud Computing and Distributed Systems" by University of Washington:
https://courses.cs.washington.edu/courses/csep590d/19wi/
7
5. "Distributed Systems" by EPFL: https://dl.acm.org/doi/book/10.5555/2527469
6. "Principles of Distributed Database Systems" by Stefano Ceri and Giuseppe Pelagatti:
https://www.amazon.com/Principles-Distributed-Database-Systems-Stefano/dp/0133175722
MOOCsCourses
8
14. DIFFERENCE BETWEEN FORMATIVE AND SUMMATIVE ASSESSMENT
Internal Assessments 10 15
$
AAT is Literature survey, Seminar, Assignment, Term Paper, Slip Test (or) MOOC Certificate relevant to the course
1. Theory Course (T) A student shall secure a minimum of 30% of the maximum marks in the
semester-end examination (SEE/ETE) and 40% of aggregate marks in the
course including Continuous internal examination (CIE) and SEE/ETE marks.
i.e., the minimum Passing Grade is “P”.
Note: Students unable to meet the overall passing criteria as mentioned shall be eligible for the following options to clear the
course:
Appear in the Back Paper Examinations and have to meet the criteria to score 40% in marks overall
Appear in summer examinations (Internal +External) to meet the criteria as mentioned.
9
7 Evaluate the role of containerization and orchestration technologies, such as Docker and Kubernetes, in
managing and scaling distributed systems.
8 Investigate the impact of microservices architecture on the design and development of distributed systems,
and compare it to monolithic architectures.
9 Explore the challenges of data management in distributed systems, including data replication, consistency
models, and transaction management.
10 Design a simple client-server application using inter-process communication (IPC) techniques such as pipes
or message queues. Consider how the client and server processes will communicate with each other and
exchange data.
11 Implement a remote procedure call (RPC) mechanism in a distributed system. Define a set of remote
procedures that can be executed on a remote server, and design a protocol for invoking these procedures
from a client application.
12 Develop a multi-threaded application that uses shared memory for inter-process communication. Create
multiple threads that coordinate their activities through a shared memory region, and ensure proper
synchronization to avoid race conditions.
13 Build a distributed system using a message passing interface (MPI) for communication between multiple
processes running on different nodes. Develop a set of processes that exchange messages and collaborate
on a common task, such as calculating a complex mathematical function.
14 Implement a publish-subscribe messaging system that allows processes to subscribe to specific topics and
receive notifications when new messages are published. Design a communication protocol for publishing
and subscribing to topics, and demonstrate how processes can communicate asynchronously through this
messaging system.
15 Design a distributed system that implements a real-time messaging application using object-oriented design
principles and web services. Consider how to handle concurrency control and distributed transactions in
this system.
16 Implement a distributed file storage system using a client-server architecture. Experiment with different
strategies for concurrency control and distributed transactions to ensure data consistency across multiple
servers.
17 Develop a distributed voting system for a group of users to cast their votes securely over the internet.
Explore how to handle conflicts and ensure the integrity of the voting process through concurrency control
mechanisms and distributed transactions.
18 Create a distributed inventory management system for a retail company with multiple stores. Consider how
to handle concurrent access to inventory data and distributed transactions to update inventory levels
across different locations in real-time.
19 Design a distributed social networking platform that allows users to connect with each other through
various services and APIs. Investigate how to maintain data consistency and handle distributed transactions
when users interact with the system simultaneously.
20 Implement a distributed online banking system that supports transactions between multiple accounts
across different branches. Explore the challenges of ensuring transaction atomicity and data consistency
through distributed transactions in a distributed environment.
21 Develop a distributed sensor network for monitoring environmental data in a smart city. Consider how to
handle concurrent data collection from multiple sensors and ensure the integrity of data storage and
processing through concurrency control mechanisms and distributed transactions
22 Design a distributed healthcare information system that enables doctors and patients to access medical
records securely over the internet. Investigate how to maintain data confidentiality and integrity through
concurrency control and distributed transactions in a healthcare setting.
10
23 Create a distributed e-commerce platform that connects buyers and sellers through an online marketplace.
Explore how to handle concurrent orders and transactions efficiently and securely using distributed objects
and web services.
24 Implement a distributed online auction system where users can bid on items in real-time. Investigate how
to handle conflicting bids and ensure fair transaction processing through concurrency control mechanisms
and distributed transactions.
Students will review the Research Papers and will write a Survey Paper on topic: Most effective in
1 measuring the success of student-centered learning approaches in distributed computing education KL6
Course Lead:
Program Chair:
Dean / SCSE:
11