0% found this document useful (0 votes)
11 views42 pages

DS CH1 Introduction

The document provides an overview of distributed systems, defining them as systems where components at networked computers communicate via messages. It discusses the characteristics, types, examples, and design challenges of distributed systems, including issues related to heterogeneity, security, scalability, and concurrency. Additionally, it outlines basic design issues and trends in distributed systems, emphasizing the importance of resource sharing and middleware.

Uploaded by

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

DS CH1 Introduction

The document provides an overview of distributed systems, defining them as systems where components at networked computers communicate via messages. It discusses the characteristics, types, examples, and design challenges of distributed systems, including issues related to heterogeneity, security, scalability, and concurrency. Additionally, it outlines basic design issues and trends in distributed systems, emphasizing the importance of resource sharing and middleware.

Uploaded by

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

DISTRIBUTED SYSTEMS

Temesgen Mekonnen

[email protected]

Fall 2021
Chapter One

Distributed Systems
Characterization and Design

2
OUTLINE

1. What is a Distributed System


2. Examples of Distributed Systems
3. Challenges (General Design Issues)
4. Basic Design Issues
5. Trends in distributed system
6. Summary

3
1. WHAT IS A DISTRIBUTED SYSTEM?

Definition: A distributed system is a system in which


components located at networked computers
communicate and coordinate their actions only by
passing messages. (eg. ATM)
This definition leads to the following characterization
of distributed systems:

 Concurrency of components
 Lack of a global ‘clock’ leads synchronization (action

ordering)
 Independent failures of components

4
1.1 CENTRALIZED SYSTEM
CHARACTERISTICS
 One component with non-autonomous parts
 Component shared by users all the time
 All resources accessible
 Software runs in a single process
 Single point of control
 Single point of failure

5
1.2 DISTRIBUTED SYSTEM CHARACTERISTICS

 Multiple autonomous components


 Components are not shared by all users
 Resources may not be accessible
 Software runs in concurrent processes on different
processors
 Multiple points of control
 Multiple points of failure
6
DISTRIBUTED SYSTEM TYPES

Fully
Control Distributed

ta
Da
Autonomous
fully cooperative
Local data,
Autonomous local directory
transaction based Not fully replicated
master directory
Master-slave Fully replicated

Homog. Homog.
special general Processors
purpose purpose
Heterog. Heterog.
special general 8
purpose purpose
2. EXAMPLES OF DISTRIBUTED SYSTEMS

 Local Area Network and Intranet


 Database Management System
 Automatic Teller Machine Network
 Internet/World-Wide Web
 Mobile and Ubiquitous Computing

9
Applications of distributed systems
Distributed Systems application domains connected with networking:
Finance and commerce eCommerce e.g. Amazon and eBay, PayPal, online banking
and trading

The information society Web information and search engines, ebooks, Wikipedia;
social networking: Facebook and MySpace

Creative industries and online gaming, music and film in the home, user-generated
entertainment content, e.g. YouTube, Flickr

Healthcare health informatics, on online patient records,


monitoring patients

Education e-learning, virtual learning environments; distance learning


Transport and logistics GPS in route finding systems, map services: Google Maps,
Google Earth

Science The Grid as an enabling technology for collaboration be-


tween scientists
Environmental management sensor technology to monitor earthquakes, floods or
tsunamis
3. CHALLENGES (DESIGN ISSUES) IN DS
 What are we trying to achieve when we construct a
distributed system?

 Heterogeneity
 Openness
 Security
 Scalability
 Failure Handling
 Concurrency
 Transparency

11
3.1 HETEROGENEITY
 Variety and differences in
 Networks
 Computer hardware
 Operating systems
 Programming languages
 Implementations by different developers
 Middleware as software layers to provide a programming
abstraction as well as masking the heterogeneity of the
underlying networks, hardware, OS, and programming
languages (e.g., CORBA).
 Mobile Code to refer to code that can be sent from one
computer to another and run at the destination (e.g., Java
applets and Java virtual machine).
12
3.2 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.

13
3.3 SECURITY
 In a distributed system, clients send requests to
access data managed by servers, resources in
the networks:
 Doctors requesting records from hospitals
 Users purchase products through electronic commerce
 Security is required for:
 Concealing the contents of messages: security and
privacy
 Identifying a remote user or other agent correctly
(authentication)
 New challenges:
 Denial of service attack
 Security of mobile code
14
3.4 SCALABILITY
 Adaptation of distributed systems to
 accommodate more users
 respond faster (this is the hard one)

 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!

15
3.5 FAILURE HANDLING (FAULT
TOLERANCE)

 Hardware, software and networks fail!


 Distributed systems must maintain availability
even at low levels of hardware/software/network
reliability.
 Fault tolerance is achieved by
 recovery
 redundancy

16
3.6 CONCURRENCY
 Components in distributed systems are executed
in concurrent processes.
 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.


 Lostupdates
 Inconsistent analysis

17
3.7 TRANSPARENCY
 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.
 These represent various properties that
distributed systems should have.

18
Trends in distributed systems

 emergence of pervasive networking technology

 emergence of ubiquitous computing coupled with the desire to support user


mobility

 multimedia services

 distributed systems as utility

Pervasive networking and the modern Internet

Networking has become a pervasive resource and devices can be conected at any
time and any place
A typical portion of the Internet:
Internet scale and complexity
 Mobile and ubiquitous computing (IOT)

• laptop computers

• handheld devices (mobile phones, smart phones, tablets, GPS-enabled devices,


PDAs, video and digital cameras)

• wearable devices (smart watches, glasses, etc.)

• devices embedded in appliances (washing machines, refrigerators, cars, etc.)


 Distributed multimedia systems

• live or pre-ordered television broadcasts

• video-on-demand

• music libraries

• audio and video conferencing


 Distributed computing as a utility

• Cluster computing

• Grid computing

• Cloud computing
 Cluster: “A type of parallel or distributed processing system, which consists of
a collection of interconnected stand-alone computers cooperatively working
together as a single, integrated computing resource”

 Cloud: “A type of parallel and distributed system consisting of a collection of


interconnected and virtualised computers that are dynamically provisioned
and presented as one or more unified computing resources based on service-
level agreements established through negotiation between the service provider
and consumers”

Prime motivation for Distributed Systems: to share resources

What are the resources?


Sharing resources

What are the resources?

• Hardware

– Not every single resource is for sharing

• Data and softwares

– Databases
– Proprietary software
– Collaboration for Software production
Sharing Resources

•Different resources are handled in different ways, there are however some generic
requirements:

– Namespace for identification


– Name translation to network address
– Synchronization of multiple access
Middleware
Software layer providing:

– programming abstraction
– masking heteorogeneity of:
∗ underlying networks
∗ hardware
∗ operating systems
4. BASIC DESIGN ISSUES
 Specific issues for distributed systems:
 Naming
 Communication
 Software structure
 System architecture
 Workload allocation
 Consistency maintenance

32
4.1 NAMING
 A name is resolved when translated into an
interpretable form for resource/object reference.
 Communication identifier (IP address + port number)
 Name resolution involves several translation steps
 Design considerations
 Choiceof name space for each resource type
 Name service to resolve resource names to comm. id.
 Name services include naming context resolution,
hierarchical structure, resource protection

33
4.2 COMMUNICATION
 Separated components communicate with sending
processes and receiving processes for data transfer
and synchronization.
 Message passing: send and receive primitives
 synchronous or blocking
 asynchronous or non-blocking
 Abstractions defined: channels, sockets, ports.
 Communication patterns: client-server
communication (e.g., RPC, function shipping) and
group multicast

34
4.3 SOFTWARE STRUCTURE
 Layers in centralized computer systems:

Applications
Middleware

Operating system
Computer and Network Hardware

35
4.3 SOFTWARE STRUCTURE
 Layers and dependencies in distributed systems:

Applications

Open
Distributed programming services
support

Open system kernel services


Computer and network hardware
36
4.4 SYSTEM ARCHITECTURES
 Client-Server
 Peer-to-Peer

 Services provided by multiple servers

 Proxy servers and caches

 Mobile code and mobile agents

 Network computers

 Thin clients and mobile devices

37
4.4.1 CLIENTS INVOKE INDIVIDUAL
SERVERS

Client invocation invocation Server

result result
Server

Client
Key:
Process: Computer:

38
4.4.2 PEER-TO-PEER SYSTEMS
Peer 2

Peer 1
Application

Application

Sharable Peer 3
objects
Application

Peer 4

Application

Peers 5 .... N
39
4.4.3 A SERVICE BY MULTIPLE SERVERS
Service

Server
Client

Server

Client
Server

40
4.4.4 WEB PROXY SERVER

Client Web
server
Proxy
server

Client Web
server

41
4.4.5 WEB APPLETS
a) client request results in the downloading of applet code

Client Web
Applet code server

b) client interacts with the applet

Web
Client Applet server

42
4.4.6 THIN CLIENTS AND COMPUTE
SERVERS

Compute server
Network computer or PC

Thin network Application


Client Process

43
5. SUMMARY
 Definitions of distributed systems and comparisons to
centralized systems.
 The characteristics of distributed systems.

 The eight forms of transparency.

 Design issues in DS.

44

You might also like