distributed system chapter one introduction to distribued system
Your score increases as you pick a category, fill out a long description and add more tags distributed system chapter one introduction to distribued system distributed system chapter one introduction to distribued system distributed system chapter one introduction to distribued system
distributed system chapter one introduction to distribued system.pdf
1. Lecturer: Yetmwork Tesfaye
MSc. in Computer Science and Engineering
College of Computing and Informatics
Department of Computer Science
Chapter 1: Introduction to Distributed System
2. Objectives
At the end of this Chapter Students be able to know:-
✓ Introduction of Distributed system
✓ Examples of Distributed system
✓ Characteristics of Distributed system
✓ Advantage of Distributed system
✓ Dis Advantage of Distributed system
✓ Attribute of Distributed system
✓ Goals of Distributed system
✓ Types of Distributed system
3. What is Distributed System?
Distributed system - A collection of independent computers that
appears to its users as a single coherent system.
This definition has two aspects:
1. hardware: autonomous machines
2. software: a single system view for the users
4. What is Distributed System?
❑ It is a collection of autonomous independent computers, connected
through a network and distributed middleware which enables
computers to co-ordinate their activities (by passing messages) and
to share the resources of the system, so the users perceive the
system as a single coherent computing facility.
5. What is Distributed System?
❑ A distributed system is a system designed to support the
development of applications and services which can exploit a
physical architecture consisting of multiple, autonomous processing
elements that do not share primary memory but cooperate by
sending asynchronous messages over a communication network
(Blair & Stefani)
❑ A distributed system is one that stops you getting any work done
when a machine you’ve never even heard of crashes (Leslie)
6. Example of Distributed System
❑ Airline reservation system
❑ Electronic banking
❑ Automatic processing of orders
❑ Distributed real-time systems
❑ Distributed multimedia systems such as video-conferencing...
❑ WWW…
7. Why Distributed System?
❑ Resource and Data Sharing
▪ printers, databases, multimedia servers, ...
❑ Availability, Reliability
▪ the loss of some instances can be hidden
❑ Scalability, Extensibility
▪ the system grows with demand (e.g., extra servers)
❑ Performance
▪ huge power (CPU, memory, ...) available
❑ Inherent distribution, communication
▪ organizational distribution, e-mail, video
8. Characteristics of Distributed System
❑ Differences between the computers and the ways they
communicate are hidden from users
❑ Users and applications can interact with a distributed system in
a consistent and uniform way regardless of location
❑ Distributed systems should be easy to expand and scale
❑ A distributed system is normally continuously available, even
if there may be partial failures
9. Advantage of Distributed System
❑ Performance: Very often a collection of processors can
provide higher performance (and better price/performance
ratio) than a centralized computer.
❑ Distribution: many applications involve, by their nature,
spatially separated machines (banking, commercial,
automotive system).
❑ Reliability (fault tolerance): if some of the machines crash,
the system can survive.
10. Advantage of Distributed System
❑ Incremental growth: as requirements on processing power
grow, new machines can be added incrementally.
❑ Sharing of data/resources: shared data is essential to many
applications (banking, computer supported cooperative work,
reservation systems); other resources can be also shared (e.g.
expensive printers).
❑ Communication: facilitates human-to-human communication.
11. Dis-Advantage of Distributed System
◼ Difficulties of developing distributed software: how should
operating systems, programming languages and applications look
like?
◼ Networking problems: several problems are created by the
network infrastructure, which have to be dealt with: loss of
messages, overloading,
◼ Security problems: sharing generates the problem of data
security.
12. Attributes of Distributed Systems
Performance
Scalability
Connectivity
Security
Reliability
Fault tolerance
13. Performance and Scalability
• Centralized system
A single server handles all user requests
• Distributed system
User requests can be sent to different servers
working in parallel to increase performance
• Scalability
Allows a distributed system to grow (i.e., add
more machines to the system) without affecting
the existing applications and users
14. Connectivity and Security
• Distributed systems
Susceptible to attacks by malicious users if they
rely on insecure communications media
• To improve security:
Allow only authorized users to access resources
Ensure that information transmitted over the
network is readable only by the intended
recipients
Provide mechanisms to protect resources from
attack
15. Reliability and Fault Tolerance
• Fault tolerance
Implemented by providing replication of
resources across the system
• Replication
Offers users increased reliability and availability
over single-machine implementations
Designers must provide mechanisms to ensure
consistency among the state information at
different machines
16. Goals of a Distributed System
• Accessibility: A distributed system should easily
connect users to resources.
Groupware is software for collaborative editing,
teleconferencing, and so on.
• Transparency: It should hide the fact that resources
are distributed across a network.
• Openness: It should be open.
An open distributed system is a system that offers
services according to standard rules that describe
the syntax and semantics of those services.
• Scalability: It should be scalable.
17. Transparency in a Distributed System
❑ Distributed systems should be perceived by users and
application programmers as a whole rather than as a
collection of cooperating components.
❑ Transparency has different aspects that were identified by
ANSA (Advanced Network Systems Architecture).
❑ These represent properties that a well-designed distributed
systems should have
❑ They are dimensions against which we measure middleware
components.
18. Transparency in a Distributed System
Transparency Description
Access
Hide differences in data representation and
how a resource is accessed (file naming..)
Location
Hide where a resource is physically
located.
Migration
Hide that a resource may move to another
location
Different forms of transparency in a distributed system.
19. Relocation
Hide that a resource may be moved to
another location while in use.
Replication Hide that a resource is replicated
Concurrency
Hide that a resource may be shared by
several competitive users; a resource
must be left in a consistent state.
Failure
Hide the failure and recovery of a
resource
Persistence
Hide whether a (software) resource is in
memory or on disk
Transparency in a Distributed System
20. Access Transparency
• Enables local and remote information objects to be accessed
using identical operations, that is, the interface to a service
request is the same for communication between components
on the same host and components on different hosts.
• Example: File system operations in Unix Network File
System (NFS).
• A component whose access is not transparent cannot easily be
moved from one host to the other. All other components that
request services would first have to be changed to use a
different interface.
21. Location Transparency
• Enables information objects to be accessed without
knowledge of their physical location.
• Example1: Pages in the Web.
• Example2: When an NFS administrator moves a
partition, for instance because a disk is full, application
programs accessing files in that partition would have to
be changed if file location is not transparent for them.
22. Migration Transparency
❑ Allows the movement of information objects within
a system without affecting the operations of users or
application programs.
❑ It is useful, as it sometimes becomes necessary to
move a component from one host to another (e.g.,
due to an overload of the host or to a replacement of
the host hardware).
❑ Without migration transparency, a distributed system
becomes very inflexible as components are tied to
particular machines and moving them requires
changes in other components.
23. Replication Transparency
• Enables multiple instances of information objects to be used to
increase reliability and performance without knowledge of the
replicas by users or application programs.
• Example1: Distributed DBMS.
• Example2: Mirroring Web Pages.
24. Concurrency Transparency
• Enables several processes to operate concurrently using
shared information objects without interference between
them. Neither user nor application engineers have to see
how concurrency is controlled.
• Example1: Bank applications.
• Example2: Database management system.
25. Scalability Transparency
• Allows the system and applications to expand in scale
without change to the system structure or the application
algorithms.
• How system behaves with more components Similar to
performance Transparency, i.e QoS provided by
applications.
• Example1: World-Wide-Web.
• Example2: Distributed Database.
26. Performance Transparency
• Allows the system to be reconfigured to improve
performance as loads vary.
• Consider how efficiently the system uses resources.
• Relies on Migration and Replication transparency
• Load Balancing.
• Difficult to achieve because of dynamism
27. Failure Transparency
• Enables to hide errors!
• Components can be designed without taking into account
that services they rely on might fail.
• Server components can recover from failures without the
server designer taking measures for such recovery.
• Allows users and applications to complete their tasks
despite the failure of other components.
• Its achievement is supported by both concurrency and
replication transparency.
29. Openness Problems
• In distributed systems, services are generally specified
through interfaces, which are described in an Interface
Definition Language (IDL).
• Interoperability: characterizes the extent by which two
implementations of systems or components from
different manufactures can co-exist and work together
by merely relying on each other’s services as specified
by a common standard.
Example: Mobile phones
• Portability: characterizes to what extent an application
developed for a distributed system A can be executed,
without modification, on a different system B that
implements the same interface as A.
Example: Java
• Flexibility: means that it should be easy to configure
the system out of different components possibly from
different developers.
30. Scalability Problems
• Scalability of a system can be measured in three
dimensions:
Size: adding more users and resources to the
system
Geographically scalable: users and resources may
be far apart.
Administratively scalable: easy to manage even if
its spans many independent administrative
organizations.
31. Scalability Problems with respect to
Size
• Scalability of a system can be measured in three
dimensions: If more users or resources need to be
added , we often confronted with limitations of
centralized services, data and algorithm.
• Example: if a single server is installed on a
specific machine and if we add more No. of users
(Apps.) that access this server, the server become
bottleneck.
• Some times using a single server is an avoidable for
security reasons.
32. Scalability Problems
Examples of scalability limitations.
Concept Example
Centralized services A single server for all users
Centralized data A single on-line telephone book
Centralized
algorithms
Doing routing based on complete
information
33. Scalability Problems
• Decentralized algorithms have the following
characteristics:
No machine has complete information about the
system state.
Machines make decisions based only on local
information.
Failure of one machine does not ruin the algorithm.
There is no implicit assumption that a global clock
exists.
34. Scaling Techniques
• In most cases, scalability problems in DS appear as
Performance problems caused by limited capacity of
servers and network.
• There are basically three techniques for scaling:
1) Hiding communication latencies,
2) Distribution, and
3) Replication.
35. Scaling Techniques
1. Hide Communication Latencies
Try to avoid waiting for responses to remote service requests
Let the requester do other useful job
– i.e., construct requesting applications that use only
asynchronous communication instead of synchronous
communication; when a reply arrives the application is
interrupted
Good for batch processing and parallel applications but not for
interactive applications
For interactive applications, move part of the job to the client
to reduce communication; e.g. filling a form and checking the
entries
36. Scaling Techniques
1.4
The difference between letting (reduce the server workload):
a) a server or
b) a client check forms as they are being filled
• Example: Java applets
• Generally applying Asynchronous communication
37. Scaling Techniques
◼2. Distribution
E.g., DNS - Domain Name System (mlibsie@cs.aau.edu.et)
Divide the name space into non-overlapping zones
for details, see later in Chapter 5 - Naming
39. Scaling Techniques
◼3. Replication
Replicate components across a distributed system to increase
availability and for load balancing, leading to better
performance
Decided by the owner of a resource
Caching (a special form of replication) also reduces
communication latency; decided by the user
But, caching and replication may lead to consistency problems.
41. Pitfalls when Developing DSs
• False assumptions made by first time developers
• The network is reliable
• The network is secure
• The network is homogeneous
• The topology does not change
• Latency is zero
• Bandwidth is infinite
• Transport cost is zero
• There is one administrator
42. Types of DSs
• Three Types
1. Distributed Computing Systems
2. Distributed Information Systems
3. Pervasive Systems (Distributed Embedded Systems)
43. Distributed Computing Systems
• It refer to networks of interconnected computers or nodes that
collaborate to achieve a common computational task or goal.
• These systems distribute the workload across multiple machines,
often geographically dispersed, to improve performance, scalability,
and fault tolerance.
• Characteristics:
➢ Decentralization: No single point of control or failure.
➢ Resource Sharing: Sharing of computational resources such as
processing power, memory, and storage.
➢ Communication: Nodes communicate with each other to
coordinate tasks and exchange data.
➢ Scalability: Ability to scale horizontally by adding more nodes
to the network.
Examples: Google File System (GFS).
44. Distributed Computing Systems
• Types of Distributed Computing System
➢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. In addition, each
node runs the same operating system.
➢Grid Computing: often constructed as a federation of computer
systems, where each system may fall under a different
administrative domain, and may be very different when it
comes to hardware, software, and deployed network
technology.
45. Distributed Computing Systems
• From the perspective of grid computing, a next logical step is
to simply outsource the entire infrastructure that is needed for
compute-intensive applications.
• In essence, this is what cloud computing is all about: providing
the facilities to dynamically construct an infrastructure and
compose what is needed from available services.
46. Distributed Computing Systems
• High-performance computing more or less started with the
introduction of multiprocessor machines.
• In this case, multiple CPUs are organized in such a way
that they all have access to the same physical memory.
• In contrast, in a multicomputer system several computers are
connected through a network and there is no sharing of main
memory.
• Shared-memory model proved to be highly convenient for
improving the performance of programs and it was relatively
easy to program.
• But scalability problem
48. Distributed Computing Systems
• To overcome the limitations of shared-memory systems, high-
performance computing moved to distributed-memory
systems
• This shift also meant that many programs had to make use
of message passing instead of modifying shared data as a
means of communication and synchronization between
threads.
• Unfortunately, message passing models have proven to be
much more difficult and error-prone compared to the
shared-memory programming models.
49. Distributed Computing Systems
➢ Cluster Computing:
• Cluster-computing systems became popular when the
price/performance ratio of personal computers and workstations
improved.
• At a certain point, it became financially and technically
attractive to build a supercomputer using off-the-shelf
technology by simply hooking up a collection of relatively
simple computers in a high-speed network.
• In virtually all cases, cluster computing is used for parallel
programming in which a single (compute intensive) program is
run in parallel on multiple machines.
50. Distributed Computing Systems
➔ Cluster Computing:
• One widely applied example of a cluster computer
is formed by Linux-based Beowulf clusters, of
which the general configuration is shown below.
51. Distributed Computing Systems
➢ Grid Computing:
• No assumptions are made concerning similarity of hardware,
operating systems, networks, administrative domains,
security policies, etc.
• A key issue in a grid computing system is that resources
from different organizations are brought together to allow
the collaboration of a group of people from different
institutions, indeed forming a federation of systems.
• Such a collaboration is realized in the form of a virtual
organization.
52. Distributed Computing Systems
➢ Grid Computing:
• The processes belonging to the same virtual organization have
access rights to the resources that are provided to that organization.
• Typically, resources consist of compute servers (including
supercomputers, possibly implemented as cluster computers),
storage facilities, and databases.
53. Distributed Computing Systems
➢ Grid Computing:
• An architecture initially proposed by Foster et al. is shown in
the following figure, which still forms the basis for many grid
computing systems.
A layered architecture for grid computing systems
54. Distributed Computing Systems
➢ Grid Computing:
• The architecture consists of four layers.
• Fabric layer provides interfaces to local resources at a
specific site.
• Provide functions for querying the state and capabilities of
a resource, along with functions for actual resource
management.(e.g., locking resources).
55. Distributed Computing Systems
➢ Grid Computing:
• Resource layer is responsible for managing a single
resource.
• It uses the functions provided by the connectivity
layer and calls directly the interfaces made available
by the fabric layer.
• Connectivity layer consists of communication protocols
for supporting grid transactions that span the usage of
multiple resources.
• Contain security protocols to authenticate users and
resources.
56. Distributed Computing Systems
➢ Grid Computing:
• Collective layer: It deals with handling access to multiple
resources and typically consists of services for resource
discovery, allocation and scheduling of tasks onto multiple
resources, data replication, and so on.
• Unlike the connectivity and resource layer, each consisting
of a relatively small, standard collection of protocols, the
collective layer may consist of many different protocols
reflecting the broad spectrum of services it may offer to a
virtual organization.
57. Distributed Computing Systems
➢ Grid Computing:
• Application layer: consists of the applications that operate
within a virtual organization and which make use of the grid
computing environment.
• Typically the collective, connectivity, and resource layer form
the heart of what could be called a grid middleware layer.
• These layers jointly provide access to and management of
resources that are potentially dispersed across multiple
sites.
58. Distributed Computing Systems
➢ Cloud Computing:
Cloud computing delivers computing resources, including
infrastructure, platforms, and software, over the internet on a
pay-as-you-go basis. Cloud computing provides scalability,
flexibility, and on-demand access to computing resources,
allowing users to deploy and manage applications without the
need for extensive hardware infrastructure.
Example: Amazon Web Services (AWS)
59. Distributed Computing Systems
➢ Cloud Computing:
• In practice, clouds are organized into four layers, as shown
in the next figure.
60. Distributed Computing Systems
➢ Cloud Computing:
1. Hardware: processors, routers, power and cooling
systems.
2. Infrastructure: an important layer forming the backbone
for most cloud computing platforms.
• It deploys virtualization techniques to provide
customers an infrastructure consisting of virtual
storage and computing resources.
3. Platform: provides to a cloud-computing customer what
an operating system provides to application developers.
4. Application: Actual applications run in this layer and are
offered to users for further customization.
• text processors, spreadsheet applications, presentation
applications, and so on.
61. Distributed Computing Systems
➢ Cloud Computing:
• Cloud-computing providers offer these layers to their
customers through various interfaces (including command-
line tools, programming interfaces, and Web interfaces),
leading to three different types of services:
– Infrastructure-as-a-Service (IaaS) covering hardware and
infrastructure layer.
– Platform-as-a-Service (PaaS) covering the platform layer.
– Software-as-a-Service (SaaS) in which their applications
are covered.
62. Distributed Information Systems
• Distributed information systems manage and distribuet data
across multiple nodes or databases in a distributed network.
These systems focus on ensuring the availability, consistency,
and integrity of data across the distributed environment.
Characteristics:
• Data Distribution: Data is distributed across multiple nodes or
databases.
63. Distributed Information Systems
• Data Consistency: Techniques such as distributed
transactions and replication ensure data consistency.
• Query Processing: Queries may be distributed and
executed across multiple nodes.
Examples: Distributed databases.
64. Pervasive Systems(Distributed
Embedded System
• Pervasive systems, also known as distributed embedded
systems, consist of interconnected embedded devices or sensors
deployed in the physical environment to monitor, control, and
interact with the surrounding world. These systems aim to
seamlessly integrate computing and communication capabilities
into everyday objects and environments.
65. Pervasive Systems
• Characteristics:
Embedded Devices: Systems comprise embedded devices with
limited computational and communication capabilities.
Ubiquitous Connectivity: Devices communicate with each
other and with central servers or controllers.
Context Awareness: Systems may be aware of their physical
environment and adapt their behavior accordingly.
Examples: Internet of Things (IoT) applications, smart home
systems, industrial automation, wearable devices.
66. Pervasive Systems
• In Pervasive systems.
▪ There is often no single dedicated interface, such as a
screen/keyboard combination.
▪ Instead, a pervasive system is often equipped with many
sensors that pick up various aspects of a user’s behavior.
▪ Likewise, it may have a myriad of actuators to provide
information and feedback, often even purposefully aiming to
steer behavior.
67. Pervasive Systems
• Many devices in pervasive systems are characterized by being
small, battery powered, mobile, and having only a wireless
connection, although not all these characteristics apply to all
devices.
68. Pervasive Systems
• There are three different types of pervasive systems, although
there is considerable overlap between the three types:
1. Ubiquitous Computing Systems
2. Mobile Computing Systems
3. Sensor Networks
69. Pervasive Systems
1. Ubiquitous Computing Systems
• Ubiquitous computing aims to integrate computing technology
seamlessly into our environment, making it pervasive and
invisible. It involves embedding sensors and computing
capabilities into everyday objects and spaces, enabling them to
sense, communicate, and respond to user needs without explicit
instructions.
• The goal is to create intelligent environments that are aware of
users' needs and preferences, adapting to their behaviors and
providing personalized services.
70. Pervasive Systems
• The core requirements for a ubiquitous computing system are
roughly as follows:
1. (Distribution) Devices are networked, distributed, and accessible
in a transparent manner.
2. (Interaction) Interaction between users and devices is highly
unobtrusive.
3. (Autonomy) Devices operate autonomously without human
intervention, and are thus highly self-managed.
4. (Intelligence) The system as a whole can handle a wide range of
dynamic actions and interactions.
71. Pervasive Systems
2. Mobile Computing Systems
• Mobile computing refers to the use of portable computing devices
such as smartphones, tablets, and laptops. These devices are
equipped with wireless communication capabilities and can access
the internet, providing users with pervasive access to information
and services on the go.
72. Pervasive Systems
3. Sensor Networks
• Sensor networks are a specific type of network composed of
interconnected sensors that gather data from the physical
world.
• Sensor networks are often used in pervasive computing
environments to monitor and sense the physical environment,
enabling applications such as environmental monitoring,
surveillance, and healthcare monitoring.
73. Pervasive Systems
• A sensor network generally consists of tens to hundreds or
thousands of relatively small nodes, each equipped with one
or more sensing devices.
• Most sensor networks use wireless communication, and the
nodes are often battery powered.
• Their limited resources, restricted communication
capabilities, and constrained power consumption demand
that efficiency is high on the list of design criteria.