PowerPoint Presentation - George Mason University Department of

Download Report

Transcript PowerPoint Presentation - George Mason University Department of

Distributed
Software Engineering
Lecture 1
Introduction
Sam Malek
SWE 622, Fall 2012
George Mason University
outline
course mechanics
what is a distributed system?
challenges & advantages of distribution
the rest of the course
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 2
what is a distributed system?
[Tanenbaum] distributed system:
A collection of independent computers that
appears to its users as a single coherent system
Three key characteristics:
Multiple machines are autonomous
Software lets users see a single system
System easy to expand without user noticing
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 3
what is a distributed system?
[Webopedia] distributed computing:
A type of computing in which different
components and objects comprising an application
can be located on different computers
connected to a network.
Key requirement:
set of standards that specify how objects
communicate with one another
(e.g. CORBA and DCOM).
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 4
what is a distributed system?
[Wikipedia] distributed computing:
decentralized and parallel computing, using two or
more computers communicating over a network to
accomplish a common objective or task.
Note:
The types of hardware, programming languages,
operating systems and other resources may vary
drastically. It is similar to computer clustering with
the main difference being a wide geographic
dispersion of the resources.
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 5
what is a distributed system?
assembly of (software) components
that serve a purpose
[you] distributed (software) system:
scope of distribution?
SWE 622 – Distributed Software Engineering
?
other properties?
scalability?
transparency?
human interaction?
© Malek
Lecture 1 – Intro – 6
example: eCommerce
is this a DS? how is it a DS?
distributed components?
kinds of interaction?
app server
http
DB server
DB client
internet
LAN
app client (UI)
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 7
example: clusters
is this a DS? how is it a DS?
distributed components?
kinds of interaction?
app server
high-speed
network
LAN
homogeneous machines
gateway
app client (UI)
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 8
example: timesharing
is this a DS? how is it a DS?
distributed components?
kinds of interaction?
mainframe
keystrokes
over wire
dumb terminals
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 9
example: parallel computing
is this a DS? how is it a DS?
distributed components?
kinds of interaction?
mainframe
multiprocessor
keystrokes
over wire
applications:
aerodynamics simulations
weather forecasting
…number crunching
SWE 622 – Distributed Software Engineering
dumb terminals
© Malek
Lecture 1 – Intro – 10
example: local networks
is this a DS? how is it a DS?
distributed components?
kinds of interaction?
Distributed Application
Application
application
access resources, such as files,
across the network
LAN
hard to develop distributed apps!
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 11
factor common interaction capabilities
into middleware
raise level of abstraction
(easier-to-use primitives)
LAN
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 12
example: middleware
is middleware a DS? how is it a DS?
distributed components?
kinds of interaction?
…
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 13
theme of this course:
styles of interaction
offered by middleware
data (sharing)-oriented
service-oriented
process oriented
…and
…
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 14
example: ubiquitous computing
distributed applications?
radiotelephony
LAN
internet
wireless
more powerful middleware!
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 15
outline
course mechanics
what is a distributed system?
challenges & advantages of distribution
replication
hiding, aka “transparency”
scalability
the rest of the course
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 16
challenges of DS
latency of communication
coordination
shared resources and mutual exclusion
ordering, deadlock and live-lock
timing
adaptation to change
failures, soft faults, and optimization
service discovery and configuration
heterogeneity and third-party software
scalability and evolution
security and privacy
trust on machines, software, communications & other users
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 17
advantages of DS
latency of communication
coordination
processing capacity
shared resources and mutual exclusion
ordering, deadlock and live-lock
timing
adaptation to change
fault tolerant, evolving, scalable
failures, soft faults, and optimization
service discovery and configuration
heterogeneity and third-party software
scalability and evolution
security and privacy
explicit control, preferences
trust on machines, software, communications & other users
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 18
advantages of DS
example: replication helps with failures
server app
failure rate: F
F = probability server fails
what is the probability that all servers fail?
how many replicas needed to assure failure rate less than goal G?
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 19
challenges of DS
example: replication has downsides
buy more hardware
administration costs
software upgrades
load balancing
performance overhead
more complex software
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 20
challenges of DS
example: hiding is a technique to reduce complexity
[Tanenbaum] “transparency” goals:
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 21
challenges of DS
example: hiding is a technique to reduce complexity
hiding consists of:
(1) push handling
complexity to a
lower level
Application
(2) implementing a
one-size-fits-all
solution
Middleware
Network OS
OS Kernel
Network
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 22
challenges of DS
example: hiding has severe limitations
conversion of complex formats, e.g. media
latency vs. fidelity of access, e.g. DBs, Web…
trusted hosts (security and privacy)
different performance
different capabilities
different network access (bandwidth & latency)
select server based on QoS (e.g., mirrors)
cannot hide sharing of resources:
resources are consumed, data is modified by others
unexplained behavior
someone needs to decide whether an object is
persistent, and someone needs to commit it to disk
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 23
new techniques to address DS complexity
awareness and adaptation
key idea:
separate decisions from (controllable) mechanisms
upper layer
full exposure
upper layer
narrow access
hidden mechanisms
lower layer
’80s: spaghetti
SWE 622 – Distributed Software Engineering
lower layer
’90s: hiding
© Malek
upper layer
info
control
mechanisms
lower layer
’00s: adaptation
Lecture 1 – Intro – 24
Challenges of DS
example: Scalability Problems
Examples of scalability limitations.
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 25
Scalability Technique (1)
Leverage decentralized algorithms:
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.
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 26
Scaling Techniques (2)
The difference between letting (a) a server or (b) a client
check forms as they are being filled.
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 27
Scaling Techniques (3)
An example of dividing the DNS name space into zones.
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 28
outline
course mechanics
what is a distributed system?
challenges & advantages of distribution
the rest of the course
SWE 622 – Distributed Software Engineering
© Malek
Lecture 1 – Intro – 29