0% found this document useful (0 votes)
17 views

Lecture 1 - Distributed Systems Manju Rana

This document discusses distributed systems, defining them as a collection of independent computers that appear as a single system to users. It describes goals of distributed systems like making resources accessible, distribution transparency, and fault tolerance. Examples of distributed systems include the world wide web, cloud computing platforms, distributed databases, content delivery networks, and multiplayer online games.

Uploaded by

divyaa230204
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Lecture 1 - Distributed Systems Manju Rana

This document discusses distributed systems, defining them as a collection of independent computers that appear as a single system to users. It describes goals of distributed systems like making resources accessible, distribution transparency, and fault tolerance. Examples of distributed systems include the world wide web, cloud computing platforms, distributed databases, content delivery networks, and multiplayer online games.

Uploaded by

divyaa230204
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

Distributed Systems

Subject Code – CSE2722

Manju Rana, PhD, Department of ECE, National Institute of Technology Kurukshetra


Books
▪ Advanced Concepts in Operating Systems, Mukesh Singhal, Tata Mcgraw Hill Education Pvt.
Limited, 2011 - Computer operating
▪ Van Steen & Tanenbaum “Distributed Systems”, free e-book available
▪ Introduction to Distributed Algorithms, Gerard Tel, Cambridge University Press, 28 Sept 2000-
Computers
What is a distributed system?
▪ A distributed system is a collection of independent computers that appears to its users as a
single coherent system.
▪ Distributed computing system uses multiple computers to solve large-scale problems over the
internet.
▪ A distributed system refers to a collection of independent computers or nodes that work
together to achieve a common goal
▪ A collection of computers that do not share common memory or a common physical clock,
that communicate by a message passing over a communication network, and where each
computer has its own memory and runs its own operating system
▪ The primary objective of a distributed system is to provide a unified and efficient solution to
a computational problem, often by dividing the workload among multiple machines
What is a distributed system?
▪ A distributed system consists of components (i.e., computers) that are autonomous. A
second aspect is that users (be they people or programs) think they are dealing with a
single system.
▪ This means that one way or the other the autonomous components need to collaborate.
▪ How to establish this collaboration lies at the heart of developing distributed systems.
▪ Note that no assumptions are made concerning the type of computers. In principle,
even within a single system, they could range from high-performance mainframe
computers to small nodes in sensor networks.
▪ Likewise, no assumptions are made on the way that computers are interconnected.
What is a distributed system?
What is a distributed system?
▪ Middleware is a layer of software that acts as an intermediary between the
applications and the underlying infrastructure (operating systems and
communication facilities) in a distributed environment.
▪ It provides a set of services and functions that help abstract the complexity of
heterogeneous hardware and networks, allowing developers to create
applications that interact seamlessly across a distributed system.
What is a distributed system?
➢ Higher-level layer (Users and Applications):

▪ This is where users and applications interact with the distributed system.

▪ Applications may be designed without the need to be aware of the underlying complexities

of the distributed environment, such as the differences in hardware, operating systems, and

network protocols.
What is a distributed system?
➢ Middleware Layer:
▪ Positioned logically between the higher-level layer and the lower-level infrastructure.
▪ Provides a set of services, protocols, and tools that abstract the underlying heterogeneity
of the distributed system.
▪ Offers functionalities such as communication services, security, distributed transactions,
naming services, and more.
▪ Middleware allows applications to communicate, share resources, and collaborate without
requiring detailed knowledge of the underlying network and hardware variations.
What is a distributed system?
➢ Lower-level layer (Operating Systems and Communication Facilities):

▪ Encompasses the individual operating systems running on heterogeneous machines and

the basic communication facilities.

▪ Provides the foundational infrastructure for networking, process management, and

resource allocation.
Distributed Systems
▪ Also known as distributed computing and distributed databases, a distributed system is

a collection of independent components located on different machines that share

messages with each other to achieve common goals.

▪ The distributed system will appear as if it is one interface or computer to the end-user.

The hope is that together, the system can maximize resources and information while

preventing failures, if one system fails, it won't affect the availability of the service.

▪ Today, data is more distributed than ever, and modern applications no longer run in

isolation. The vast majority of products and applications rely on distributed systems.
Distributed Systems
▪ In the 1970s, the advent of Ethernet marked a significant milestone in the
development of distributed computing systems.
▪ This breakthrough led to the creation of Local Area Networks (LANs), allowing
computers within a limited geographical area to communicate with each other.
▪ These LANs enabled the earliest form of distributed systems, as computers
could now exchange messages with others possessing a local IP address.
Distributed Systems
▪ The Internet, which emerged in the late 20th century, is the most extensive and
continuously expanding example of a distributed computing system.
▪ As the Internet grew, it underwent a transition from IPv4 (Internet Protocol
version 4) to IPv6, accommodating the increasing number of connected devices.
▪ This shift represented a transformation from LAN-based distributed systems to
Internet-based distributed systems.
Distributed Systems
▪ In the contemporary era, distributed systems on the Internet encompass a vast
array of services and applications.
▪ Cloud computing platforms, content delivery networks (CDNs), and peer-to-
peer file sharing are all examples of distributed computing in action.
▪ These systems leverage the power of interconnected servers and devices
globally, providing users with seamless access to resources and information.
Some examples of Distributed Systems
▪ World Wide Web (WWW): The internet itself is a distributed system, with
servers located globally serving web pages to users around the world. The
WWW relies on a client-server architecture where web browsers (clients)
interact with web servers to retrieve and display content.
▪ Cloud Computing: Services like Amazon Web Services (AWS), Microsoft
Azure, and Google Cloud Platform (GCP) provide distributed computing
resources over the internet. Users can access and use these resources remotely
for tasks such as computation, storage, and data processing.
Some examples of Distributed Systems
▪ Distributed Databases: Systems like Apache Cassandra, MongoDB, and Amazon
DynamoDB are distributed databases that store and manage data across multiple
nodes. This improves scalability and fault tolerance.
▪ Content Delivery Network (CDN): Netflix uses a distributed CDN to cache and
deliver content to users. This involves placing copies of content on servers located
strategically around the world, reducing latency, and improving the streaming
experience for users.
▪ Multiplayer Online Games: Online games often use distributed systems to handle
real-time interactions among players. Game servers are distributed to reduce latency
and provide a better gaming experience.
Some examples of Distributed Systems
▪ Distributed Databases: Systems like Apache Cassandra, MongoDB, and Amazon
DynamoDB are distributed databases that store and manage data across multiple
nodes. This improves scalability and fault tolerance.
▪ Content Delivery Network (CDN): Netflix uses a distributed CDN to cache and
deliver content to users. This involves placing copies of content on servers located
strategically around the world, reducing latency, and improving the streaming
experience for users.
▪ Multiplayer Online Games: Online games often use distributed systems to handle
real-time interactions among players. Game servers are distributed to reduce latency
and provide a better gaming experience.
What make a system distributed?
▪ Some systems are inherently distributed: ex: sending a message from your
mobile phone to your friend’s phone
▪ For better reliability: even if one node fails, the system as a whole keeps
functioning
▪ For better performance: get data from a nearby node rather than one halfway
around the world
▪ To solve bigger problems: ex: huge amounts of data, that can’t fit on one
machine
Goals of a distributed system
▪ Making resources accessible: The main goal of a distributed system is to make it easy for the

users (and applications) to access remote resources, and to share them in a controlled and

efficient way. Resources can be just about anything, but typical examples include things like

printers, computers, storage facilities, data, files, Web pages, and networks

▪ Distribution transparency: An important goal of a distributed system is to hide the fact that its

processes and resources are physically distributed across multiple computers. A distributed

system that is able to present itself to users and applications as if it were only a single

computer system is said to be transparent.


Goals of a distributed system
▪ Distribution transparency
Goals of a distributed system
▪ Degree of transparency: Although distribution transparency is generally considered preferable

for any distributed system, there are situations in which attempting to completely hide all

distribution aspects from users is not a good idea.

▪ An example is requesting your electronic newspaper to appear in your mailbox before 7 A.M.

local time, as usual, while you are currently at the other end of the world living in a different

time zone. Your morning paper will not be the morning paper you are used to.
Goals of a distributed system
▪ Fault Tolerance: Distributed systems should be able to continue functioning even in the

presence of hardware failures, network issues, or other types of faults.

▪ Scalability: The ability to easily add new nodes or resources to the system to handle increased

load or demand. Distributed systems should be able to scale out by adding more machines to

the network.

▪ Performance:

▪ Parallelism: Distributing tasks across multiple nodes to perform computations

concurrently, improving overall system performance;

▪ Load Balancing: Distributing the workload evenly among nodes to avoid bottlenecks and

optimize resource utilization.


Goals of a distributed system
▪ Interoperability: Distributed systems should be able to operate across different hardware

architectures, operating systems, and network technologies.

▪ Consistency: Ensuring that all nodes in the distributed system have access to the same and

most up-to-date information.

▪ Flexibility: The ability to accommodate changes in the system, such as adding or removing

nodes, without disrupting the overall functionality.


Goals of a distributed system
▪ Security:

▪ Data Security: Ensuring the confidentiality, integrity, and availability of data in a

distributed environment.

▪ Access Control: Managing and controlling access to resources based on user roles and

permissions.

▪ Resource Sharing: Efficiently utilizing distributed resources, including processing power,

storage, and bandwidth, to meet the system's objectives.


Properties of Distributed Systems
▪ Heterogeneity
▪ Distributed systems often involve a variety of hardware and software
components that may differ in terms of architecture, operating systems,
programming languages, and communication protocols.
▪ Heterogeneity poses challenges in terms of interoperability and
communication among diverse components. Standards and middleware
are often used to address these challenges.
Properties of Distributed Systems
▪ Concurrency
➢ Multiple tasks or processes in a distributed system may execute
simultaneously, leading to concurrent execution.
➢ Managing concurrency is crucial for ensuring efficient resource
utilization and improving system performance. Synchronization
mechanisms are employed to control access to shared resources
and prevent conflicts.
Properties of Distributed Systems
▪ Shared data
➢Distributed systems often involve multiple nodes that share access
to data, either for collaboration or resource sharing.
➢Maintaining consistency and ensuring data integrity across
distributed nodes is a critical challenge. Techniques such as
distributed databases, consistency protocols, and replication are
used to address these issues.
Properties of Distributed Systems
▪ No global clock
➢ Unlike centralized systems, distributed systems lack a global clock that
provides a synchronized notion of time across all nodes.
➢ Asynchronous operation and lack of a global clock make it challenging to
order events accurately and coordinate activities across distributed nodes.
➢ Clock synchronization algorithms are employed to address these challenges.
Properties of Distributed Systems
▪ Interdependencies
➢ Components in a distributed system often rely on each other's functionality
and may be interdependent.
➢ Interdependencies can lead to complex interactions and dependencies between
components.
➢ Managing these dependencies and ensuring proper coordination is crucial for
the overall system's stability and reliability.
Types of Distributed Systems
1. Distributed Computing Systems
▪ Cluster computing systems
▪ Grid computing systems
2. Distributed Information Systems
▪ Transaction Processing Systems
▪ Enterprise Application Integration
3. Distributed Pervasive Systems
▪ Home systems
▪ Electronic Health Care Systems
▪ Sensor networks

You might also like