INTRODUCTION TO
DISTRIBUTED SYSTEMS
WHAT IS DISTRIBUTED COMPUTING
• Distributed computing refers to a system where processing and data
storage is distributed across multiple devices or systems, rather than being
handled by single central device
• A distributed system consists of a collection of autonomous computers
,connected through a network and a distributed connected through a
middleware , which enables computers to coordinate their activities and
share the resources of the system, so that users perceive the system as a
single integrated computing facility
• A distributed system is a software system in which components located on
networked computers communicate and coordinate their actions by
passing messages. The components interact with each other in order to
achieve a common goal
• In a distributed system , each device or system has its own processing
capabilities and may also store and manage its own data
• These devices or systems work together to perform tasks and share
resources with no single device serving as the central hub
• The architecture of a distributed computing system is typically a peer
to peer architecture , where devices or systems can act both clients
and server and communicate directly with each other
DISTRIBUTED SYSTEM EXAMPLES
• Telecommunication networks
• Telephone networks and cellular networks
• Computer networks such as internet
• Wireless sensor networks
• World wide web and peer to peer networks
• Distributed databases and distributed database management systems
LOOSELY VS TIGHTLY COUPLED PROCESSORS
• Over the past two decades, advancements in microelectronic
technology have resulted in the availability of fast, inexpensive
processors, and advancements in communication technology have
resulted in the availability of cost effective and highly efficient
computer networks. The net result of the advancements in these two
technologies is that the price performance ratio has now changed to
favor the use of interconnected, multiple processors in place of a
single, high-speed processor.
TYPES OF PROCESSORS
• Tightly coupled systems: In these systems, there is a single system wide
primary memory (address space) that is shared by all the processors
[diagram(a)]. If any processor writes, for example, the value 100 to the
memory location x, any other processor subsequently reading from
location x will get the value 100. Therefore, in these systems, any
communication between the processors usually takes place through the
shared memory.
• Loosely coupled systems: In these systems, the processors do not share
memory, and each processor has its own local memory (diagram (b) on the
next slides. If a processor writes the value 100 to the memory location x,
this write operation will only change the contents of its local memory and
will not affect the contents of the memory. In these systems, all physical
communication between the processors is done by passing messages
across the network that interconnects the processors.
EVOLUTION OF DISTRIBUTED SYSTEMS
• It is important to track the history of anything in order to track how
far we progressed.
• The distributed computing system is all about evolution from
centralization to decentralization
• It depicts how the centralized systems evolved from time to time
towards decentralization.
• We had a centralized system like mainframe in early 1955 but now
we are now using a decentralized system like edge computing
containers
1. Mainframe :
In the early years of computing between 1960-1967, mainframe-based
computing machines were considered as the best solution for processing
large-scale data as they provided time-sharing to a local clients who interacts
with teletype terminals. This type of system conceptualized the client-server
architecture. The client connects and request the server and the server processes
these request, enabling a single time-sharing system to send multiple resources
over a single medium amongst clients. The major drawback it faced was that it
was quite expensive and that lead to the innovation of early disk-based storage
and transistor memory.
[Link] Networks:
• In the early 1970s, the development of packet-switching and cluster
computing happens which was considered an alternative for mainframe
systems although it was expensive. In cluster computing, the underlying
hardware consists of a collection of similar workstations or PCs, closely
connected by means of a high-speed local-area network where each node
runs the same operating system. Its purpose was to achieve parallelism.
During 1967-1974, we also saw the creation of ARPANET and an early
network that enabled global message exchange allowing for services
hostable on remote machines across geographic bounds independent from
a fixed programming model. TCP/IP protocol that facilitated datagram
and stream-orientated communication over a packet-switched
autonomous network of networks also came into existence.
Communication was mainly through datagram transport.
3. Internet & PC’s
• During this era, the evolution of the internet takes place. New technology
such as TCP/IP had begun to transform the Internet into several
connected networks, linking local networks to the wider Internet. Thus,
the number of hosts connected to the network began to grow rapidly,
therefore the centralized naming systems such as [Link] couldn’t
provide scalability. Hence Domain Name Systems (DNSs) came into
existence in 1985 and were able to transform hosts’ domain names into
IP addresses. Early GUI-based computers utilizing WIMP(windows, icons,
menus, pointers) were developed which provided feasibility of computing
within the home, providing applications such as video games and web
browsing to consumers.
•
4. World Wide Web - During the 1980 – the 1990s, the creation
of HyperText Transfer Protocol (HTTP) and HyperText Markup Language
(HTML) resulted in the first web browsers, websites,s, and web-server. It was
developed by Tim Berners Lee at CERN. Standardization of TCP/IP provided
infrastructure for interconnected networks of networks known as the World
Wide Web (WWW). This leads to the tremendous growth of the number of
hosts connected to the Internet. As the number of PC-based application
programs running on independent machines started growing, the
communications between such application programs became extremely
complex and added a growing challenge in the aspect of
application-to-application interaction. With the advent of Network
computing which enables remote procedure calls (RPCs) over TCP/IP, it
turned out to be a widely accepted way for application software
communication. In this era, Servers provide resources described by Uniform
Resource Locators. Software applications running on a variety of hardware
platforms, OS, and different networks faced challenges when required to
communicate with each other and share data. These demanding challenges
lead to the concept of distributed computing applications.
EDGE COMPUTING vs DISTRIBUTED COMPUTING
• Edge computing and distributed are two computing approaches that aim to
enhance performance ,efficiency and scalability.
• Edge computing places computational resources such as processing power
and storage , closer to the data source or end users
• This proximity enables real-time data processing, reduces latency and
minimizes the need for data transfer to remote server or cloud
• It is beneficial for applications that require low latency, high responsiveness
and efficient bandwidth usage
• Distributed computing involves utilizing multiple interconnected nodes
or machines to perform processing and storage tasks. The workload is
divide and distributed among these nodes allowing for parallel
execution and increased computational capacity
• Distributed computing enables efficient handling of large scale
workloads, improved fault tolerance and scalability
EDGE COMPUTING VS DISTRIBUTED COMPUTING
EDGE COMPUTING DISTRIBUTED COMPUTING
• Edge computing moves computation • Distributed computing involves
and data storage closer to the data processing and data storage across
source or end users multiple nodes or machines ,
• Costs of operation and maintenance usually in a network or cluster
are lower • Costs of operations and
• Computing resources near data maintenance are higher
source/end-users ,reducing latency and • Computing resources spread across
bandwidth needs nodes/machines, geographically
dispersed
• Edge computing minimizes data • Distributed computing scales
transfer to central servers/cloud horizontally by adding nodes,
,emphasizes localized data increasing capacity to handle
processing & analysis larger workloads
• Highly secure with data and • Multiple servers increase
edge devices in proximity security and vulnerability
• Computing capability is low • Computing capability is high
• Response time is low • Response time is high
PARALLEL COMPUTING VS DISTRIBUTED COMPUTING
• Parallel computing multiple processors performs multiple tasks assigned
to them simultaneously .Memory in parallel systems can either be
shared or distributed .Parallel computing provides concurrency and
saves time money
• In distributed computing we have multiple autonomous computers
which seems to the user as single systems.
• In distributed systems there is no shared memory and computers
communicate with each other through message passing
PARALLEL COMPUTING VS DISTRIBUTED COMPUTING
PARALLEL COMPUTING DISTRIBUTED COMPUTING
• Many operations are performed • System components are located
simultaneously at different locations
• Single computer is required • Uses multiple computers
• Multiple processors perform • Multiple computers perform
multiple operations multiple operations
• It may have shared or • It only has distributed memory
distributed memory • Computer communicate with
• Processors communicate with each other through message
each other through bus passing
COMPONENTS WHICH MAKE-UP A DISTRIBUTED
SYSTEM
• Devices or systems - The devices or systems in a distributed system have
their own processing capabilities and may also store and manage their
own data
• Network – The network connects the devices or systems in the
distributed system, allowing them to communicate and exchange data
• Resource Management – Distributed systems often have some type of
resource management system in place to allocate and manage shared
resources such as computing power, storage and networking
CHARACTERISTICS OF A DISTRIBUTED
SYSTEM
• There are several characteristics that define a distributed computing
system
• Multiple devices or systems : Processing and data storage is
distributes across multiple devices or systems.
• Peer to Peer Architecture: Devices or systems in a distributed system
can act as both clients and servers, as they can both request and
provide services to other devices or systems in the network
• Shared Resources-Resources such as computing power ,storage and
networking are shared among the devices or systems in the network
• Horizontal Scaling-Scaling a distributed computing system involves
adding more devices or systems to the network to increase
Resource Sharing
Ability to use any hardware ,software or data anywhere in the system
Resource manager controls access, provides naming scheme and
controls concurrency
Resources are provided
they are used and
Provider and user interact with each other
Openness
Openness is concerned with extensions and improvements of
distributed systems
Detailed interfaces of components need to be published
New components have to be integrated with existing components
Differences in data representation of interface types on different
processors (of different vendors) have to be resolved
Concurrency
Components in distributed systems are executed in concurrent
Components access and update shared resources ( e.g variables ,
databases, device drivers)
Integrity of the system may be violated if concurrent updates are not
coordinated
Lost updates
Inconsistent analysis
Scalability
Adoption of a distributed system to accommodate more users and
respond faster usually done by adding more and or faster processors
Components should not need to be changed when scale of a system
increases.
Design components to be scalable
Fault Tolerance
Hardware ,software and network fail!
Distributed systems must maintain availability even at low levels of
hardware/software/network reliability
Faulty tolerance is achieved by:
Recovery
Redundancy
Transparency
Distributed systems should be perceived by users and application
programmers as a whole rather than as a collection of cooperating
components
APPLICATIONS OF DISTRIBUTED COMPUTING
Distributed computing have a number of applications including:
Cloud computing : Cloud computing systems are a type of distributed
computing system that are used to deliver resources such as
computing power, storage and networking over the internet
Peer to peer networks: Peer to peer networks are a type of distributed
computing system that is used to share resources such as files and
computing power among users.
Distributed Architectures-Many modern computing systems such as
microservices architectures, use distributed architectures to distribute
processing and data storage across multiple devices or systems
DISTRIBUTED SYSTEMS –HARDWARE CONCEPTS
DISTRIBUTED SYSTEMS: SOFTWARE CONCEPTS
• Distributed operating system
• Network operating system
• Middleware
CHARACTERISTICS OF DISTRIBUTED OPERATING
SYSTEMS
• Operating systems on each computer knows about the other computers
• Operating systems on different computers generally the same
• Services are generally (transparently) distributed across computers
NETWORK OPERATING SYSTEM
• Each computer has its own operating system with networking
facilities
• Computers work independently (i.e they may have different
operating systems)
• Services are tied to individual node (ftp,telnet,WWW)
• High file oriented (basically, processors share only files)
Distributed System (Middleware )
• Operating system on each computer need not know about the other
computers
• Operating systems on different computers need to generally be the
same
• Services are generally (transparently) distributed across computers
NEED FOR MIDDLEWARE IN DISTRIBUTED SYSTEMS
• In distributed systems ,middleware is a software component that provides
services between two or more applications and can be used by them.
• Middleware can be thought of as an application that sits between two separate
applications and provides service to both.
• With all miscommunication going around these days ,it is vital for enterprises to
start using software solutions that streamline communications across
departments
• One such product that fits this description is known as the middleware, which
allows organizations to implement their processes seamlessly by integrating all
components of the enterprise e.g message-oriented middleware is designed for
the purpose of transporting messages between two or more applications and is
best suited for distributed applications that require transaction-oriented
[Link] could be used to monitor network control traffic flows or to monitor
the health of a distributed system
ADVANTAGES OF MIDDLEWARE IN DISTRIBUTED SYSTEMS
• Middleware is an intermediate layer of software that sits between the
application and the network .
• It is used in distributed systems to provide common services such as
authentication, authorization compilation for best performance on
particular architectures, input/output translation and error handling
• Middleware offers a number of advantages to distributed systems.
• Middleware offers a number of advantages to distributed systems .
• Middleware can be modularized from the application so it has better
potential for reuse with other applications running on different
platforms