Upload
joel-barton
View
220
Download
0
Tags:
Embed Size (px)
Citation preview
DistributedSoftware Engineering
Lecture 1Introduction
Sam MalekSWE 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
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 3
Three key characteristics:Multiple machines are autonomousSoftware lets users see a single systemSystem easy to expand without user noticing
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.
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 4
Key requirement:set of standards that specify how objects communicate with one another(e.g. CORBA and DCOM).
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.
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 5
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.
what is a distributed system?
[you] distributed (software) system: ?
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 6
other properties?scalability?transparency?human interaction?
assembly of (software) components that serve a
purpose
scope of distribution?
example: eCommerce
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 7
LAN
DB client
DB server
internet
is this a DS? how is it a DS?distributed components?kinds of interaction?
app server
app client (UI)
http
example: clusters
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 8
LAN
app server
app client (UI)
gateway
high-speed network
homogeneous machines
is this a DS? how is it a DS?distributed components?kinds of interaction?
example: timesharing
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 9
dumb terminals
mainframe
keystrokes over wire
is this a DS? how is it a DS?distributed components?kinds of interaction?
example: parallel computing
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 10
dumb terminals
mainframe
multiprocessor
keystrokes over wireapplications:
aerodynamics simulationsweather forecasting…number crunching
is this a DS? how is it a DS?distributed components?kinds of interaction?
example: local networks
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 11
LAN
application
ApplicationDistributed Application
access resources, such as files,
across the network
is this a DS? how is it a DS?distributed components?kinds of interaction?
hard to develop distributed apps!
factor common interaction capabilitiesinto middleware
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 12
LAN
raise level of abstraction(easier-to-use primitives)
example: middleware
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 13
…
is middleware a DS? how is it a DS?distributed components?kinds of interaction?
theme of this course:
styles of interactionoffered by middleware
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 14
…data (sharing)-orientedservice-orientedprocess oriented
…and
example: ubiquitous computing
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 15
distributed applications?
internetLAN
wireless
radiotelephony
more powerful middleware!
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 communicationcoordination
shared resources and mutual exclusion ordering, deadlock and live-locktiming
adaptation to changefailures, soft faults, and optimizationservice discovery and configurationheterogeneity and third-party softwarescalability and evolution
security and privacytrust on machines, software, communications & other users
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 17
advantages of DS
latency of communication processing capacitycoordination
shared resources and mutual exclusion ordering, deadlock and live-locktiming
adaptation to change fault tolerant, evolving, scalablefailures, soft faults, and optimizationservice discovery and configurationheterogeneity and third-party softwarescalability and evolution
security and privacy explicit control, preferencestrust on machines, software, communications & other users
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 18
example: replication helps with failures
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 19
advantages of DS
server appfailure 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?
challenges of DSexample: replication has downsides
buy more hardwareadministration costssoftware upgradesload balancing
performance overheadmore complex software
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 20
challenges of DSexample: hiding is a technique to reduce complexity
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 21
[Tanenbaum] “transparency” goals:
challenges of DSexample: hiding is a technique to reduce complexity
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 22
hiding consists of:
(1) push handling
complexity to a lower level
Application
Middleware
Network OS
OS Kernel
Network
(2) implementing a one-size-fits-all solution
challenges of DSexample: hiding has severe limitations
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 23
conversion of complex formats, e.g. medialatency vs. fidelity of access, e.g. DBs, Web…
trusted hosts (security and privacy)different performancedifferent capabilitiesdifferent network access (bandwidth & latency)
select server based on QoS (e.g., mirrors)
cannot hide sharing of resources:resources are consumed, data is modified by othersunexplained behavior
someone needs to decide whether an object is persistent, and someone needs to commit it to disk
new techniques to address DS complexityawareness and adaptation
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 24
key idea:separate decisions from (controllable) mechanisms
lower layer
upper layer
’80s: spaghettilower layer
upper layer
’90s: hidinglower layer
upper layer
’00s: adaptation
narrow accessfull exposurehidden
mechanismsmechanisms
info control
Challenges of DSexample: Scalability Problems
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 25
Examples of scalability limitations.
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)
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 27
The difference between letting (a) a server or (b) a client check forms as they are being filled.
Scaling Techniques (3)
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 28
An example of dividing the DNS name space into zones.
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