Lecture 1 - Distributed Systems Manju Rana
Lecture 1 - Distributed Systems Manju Rana
▪ 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):
resource allocation.
Distributed Systems
▪ Also known as distributed computing and distributed databases, a distributed system is
▪ 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
for any distributed system, there are situations in which attempting to completely hide all
▪ 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
▪ 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:
▪ Load Balancing: Distributing the workload evenly among nodes to avoid bottlenecks and
▪ Consistency: Ensuring that all nodes in the distributed system have access to the same and
▪ Flexibility: The ability to accommodate changes in the system, such as adding or removing
distributed environment.
▪ Access Control: Managing and controlling access to resources based on user roles and
permissions.