CSC 3209 - Lecture Introduction

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 33

CSC

CSC 3209
3209

DISTRIBUTED
DISTRIBUTED COMPUTING
COMPUTING
Instructor:
Instructor: Aggrey
Aggrey M.O
M.O
aobbo@must.ac.ug
aobbo@must.ac.ug
LECTURES

Wednesday 10:00-12:00pm

05/31/10 Aggrey M.O 2


REFERENCES
• Andrew S. Tanenbaum and Marten van Steen:
“Distributed Systems: Principles and Paradigms”
Prentice-Hall, 2002
• “Distributed Systems: Principles and Paradigms” -
Tannenbaum & van Steen, Second Edition

• George Coulouris, Jean Dollimore and Tim Kindberg:


– “Distributed Systems: Concepts and Design”
• 3rd Edition, Addison-Wesley, 2001
• Andrew S. Tanenbaum:
– “Distributed Operating Systems”
• Prentice-Hall, 1994
• Sape J. Mullender:
– “Distributed Systems”
• 2nd Edition, ACM Press, 1993
05/31/10 Aggrey M.O 3
Course Objectives
• Become familiar with intricacies of
– independent failure of components
– concurrency
– lack of a global clock
• Place distributed systems in a realistic context
through examples:
– Internet, intranet, mobile computing
• Motivate the benefits of resource sharing
– The Web

05/31/10 Aggrey M.O 4


Objectives contd
• Gain an understanding of challenges:
– heterogeneity
– openness
– security
– scalability
– failure handling
– concurrency
– transparency

05/31/10 Aggrey M.O 5


Course Outline:
• Introduction
• Communication
• Processes
• Naming
• Synchronization
• Consistency and Replication
• Fault Tolerance
• Distributed real time systems

05/31/10 Aggrey M.O 6


Introduction
Lecture 1

05/31/10 Aggrey M.O 7


Centralized vs.
Distributed Computing
t e r m in a l
m a i n f r a m e c o m p u t e r
w o r k s t a t i o n

n e t w o r k l in k

n e t w o r k h o s t
c e n t r a l i z e d c o m p u t i n g
d i s t r i b u t e d c o m p u t i n g

05/31/10 Aggrey M.O 8


Definition of a Distributed
System
• Early computing was performed on a single processor. Uni-processor
computing can be called centralized computing.

• While a distributed system is a collection of independent computers,


interconnected via a network, capable of collaborating on a task. It
appears to its users as a single coherent system.

• They communicate and coordinate their actions only by passing messages


• concurrent execution of programs
• no global clock
• components fail independently of one another. E.g.

• Distributed computing is computing performed in a distributed system.

• Distributed computing has become increasingly common due to advances


that have made in both machines and networks cheaper and faster

05/31/10 Aggrey M.O 9


• You know you have a distributed system when
the crash of a computer you’ve never heard of
stops you from getting any work done.”
-Lamport.

Driving force – Sharing resources

05/31/10 Aggrey M.O 10


• “Distributed computing or Distributed
system is the process of aggregating
the power of several computing entities
to collaboratively run a single
computational task in a transparent and
coherent way, so that they appear as a
single, centralized system.”

05/31/10 Aggrey M.O 11


Example Distributed
systems
• Internet
– Messaging
– Services and Service providers
– Backbone
• Intranet/Workgroups
– Intranet Services
– Why intranet. E.g.
– Firewall
• ATM (bank) machines

05/31/10 Aggrey M.O 12


Typical Internet

intranet ☎

☎ ISP

backbone

satellite link

desktop computer:
server:
network link:

05/31/10 Aggrey M.O 13


Computers on the
Internet
• Workstations: computers used by end-users to perform
computing

• Server machines: computers which provide resources and


services

• Personal Assistance Devices: handheld computers


connected to the system via a wireless communication link.

05/31/10 Aggrey M.O 14


Benefits of distributing
computing
• Resource sharing
– Hardware
– Software E.g. Databases, currency converters
– Computer-supported cooperative working (CSCW)
– Service , Server, remote invocation {Client or Server
(always on)}
• Scalability
• Fault tolerance and availability
• Performance
– Parallel computing can be considered a subset of
distributed computing

05/31/10 Aggrey M.O 15


Distributed software
systems
• Distributed Systems
• Middleware
• Distributed applications

05/31/10 Aggrey M.O 16


Distributed system
components

A distributed system is organized as middleware.


Note that the middleware layer extends over multiple
machines.

05/31/10 Aggrey M.O 17


Challenges in distributed
computing
• Heterogeneity
– Data representation
– Programs need common Standards
– Heterogeneity and mobile codes
• Latency
• Remote Memory Vs Local Memory
• Synchronization
– Concurrent interactions the norm
• Partial failure
– Applications need to adapt gracefully in the face of partial failure
– Lamport once defined a distributed system as “One on which I cannot
get any work done because some machine I have never heard of has
crashed”

05/31/10 Aggrey M.O 18


Reading Assignment
• Techniques to deal with failures

05/31/10 Aggrey M.O 19


Challenges in distributed
computing
• Need for “openness”
– Open standards: key interfaces in software and communication protocols need to
be standardized. Complexity of additions by many different people.
• Security
– Denial of service attacks
– Mobile code - Trojan
• Scalability
– Costs of physical resources
– Controlling performance loss
– Resources running out e.g. IP addresses
– Avoiding performance overhead (Cashing)
• Transparency
Defined as concealment from the user and application programmer of the
separation of components in a distributed system

05/31/10 Aggrey M.O 20


Transparency in Distributed
Systems
Access transparency: enables local and remote resources to be
accessed using identical operations.
Location transparency: enables resources to be accessed
without knowledge of their physical or network location (for
example, which building or IP address).
Concurrency transparency: enables several processes to
operate concurrently using shared resources without
interference between them.
Replication transparency: enables multiple instances of
resources to be used to increase reliability and performance
without knowledge of the replicas by users or application
programmers.

05/31/10 Aggrey M.O 21


Transparency in Distributed Systems

Failure transparency: enables the concealment of faults,


allowing users and application programs to complete their tasks
despite the failure of hardware or software components.
Mobility transparency: allows the movement of resources and
clients within a system without affecting the operation of users
or programs.
Performance transparency: allows the system to be
reconfigured to improve performance as loads vary.
Scaling transparency: allows the system and applications to
expand in scale without change to the system structure or the
application algorithms.

05/31/10 Aggrey M.O 22


Transparency in Distributed
Systems
• The most important transparencies
are location and access transparency.

05/31/10 Aggrey M.O 23


Transparency in a Distributed
System summarized
Transparency Description
Access Hide differences in data representation and how a resource is
accessed
Location Hide where a resource is located
Migration Hide that a resource may move to another location
Relocation Hide that a resource may be moved to another location while in
use
Replication Hide that a resource may be shared by several competitive
users
Concurrency Hide that a resource may be shared by several competitive
users
Failure Hide the failure and recovery of a resource
Persistence Hide whether a (software) resource is in memory or on disk

05/31/10 Aggrey M.O 24


Scalability Problems
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

Examples of scalability limitations

05/31/10 Aggrey M.O 25


Middleware: Goals
• Middleware handles heterogeneity
• Higher-level support
– Make distributed nature of application transparent to the
user/programmer
• Remote Procedure Calls
• RPC + Object orientation = CORBA
• Higher-level support BUT expose remote objects, partial
failure, etc. to the programmer
– JINI, Javaspaces
• Scalability

05/31/10 Aggrey M.O 26


Communication Patterns
• Client-server
• Group-oriented/Peer-to-Peer
– Applications that require reliability, scalability
• Function-shipping/Mobile Code/Agents
– Postscript, Java

05/31/10 Aggrey M.O 27


Distributed applications
• Applications that consist of a set of processes
that are distributed across a network of
machines and work together as an ensemble to
solve a common problem
• In the past, mostly “client-server”
– Resource management centralized at the server
• “Peer to Peer” computing represents a movement
towards more “truly” distributed applications

05/31/10 Aggrey M.O 28


Clients invoke individual
servers

Client invocation invocation Server

result result
Server

Client
Key:
Process: Computer:

05/31/10 Aggrey M.O 29


A service provided by multiple
servers Service

Server
Client

Server

Client
Server

05/31/10 Aggrey M.O 30


Web proxy server

Client Web
server
Proxy
server

Client Web
server

05/31/10 Aggrey M.O 31


A distributed application based
on peer processes Peer 2

Peer 1
Application

Application

Sharable Peer 3
objects
Application

Peer 4

Application

Peers 5 .... N

05/31/10 Aggrey M.O 32


End
???

05/31/10 Aggrey M.O 33

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy