distributed software engineering lecture 1 introduction sam malek swe 622, fall 2012 george mason...
TRANSCRIPT
![Page 1: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/1.jpg)
DistributedSoftware Engineering
Lecture 1Introduction
Sam MalekSWE 622, Fall 2012
George Mason University
![Page 2: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/2.jpg)
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
![Page 3: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/3.jpg)
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
![Page 4: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/4.jpg)
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).
![Page 5: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/5.jpg)
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.
![Page 6: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/6.jpg)
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?
![Page 7: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/7.jpg)
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
![Page 8: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/8.jpg)
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?
![Page 9: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/9.jpg)
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?
![Page 10: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/10.jpg)
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?
![Page 11: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/11.jpg)
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!
![Page 12: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/12.jpg)
factor common interaction capabilitiesinto middleware
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 12
LAN
raise level of abstraction(easier-to-use primitives)
![Page 13: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/13.jpg)
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?
![Page 14: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/14.jpg)
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
![Page 15: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/15.jpg)
example: ubiquitous computing
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 15
distributed applications?
internetLAN
wireless
radiotelephony
more powerful middleware!
![Page 16: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/16.jpg)
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
![Page 17: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/17.jpg)
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
![Page 18: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/18.jpg)
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
![Page 19: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/19.jpg)
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?
![Page 20: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/20.jpg)
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
![Page 21: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/21.jpg)
challenges of DSexample: hiding is a technique to reduce complexity
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 21
[Tanenbaum] “transparency” goals:
![Page 22: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/22.jpg)
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
![Page 23: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/23.jpg)
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
![Page 24: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/24.jpg)
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
![Page 25: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/25.jpg)
Challenges of DSexample: Scalability Problems
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 25
Examples of scalability limitations.
![Page 26: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/26.jpg)
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
![Page 27: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/27.jpg)
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.
![Page 28: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/28.jpg)
Scaling Techniques (3)
SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 28
An example of dividing the DNS name space into zones.
![Page 29: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University](https://reader035.vdocuments.site/reader035/viewer/2022062422/56649ecf5503460f94bdbfd3/html5/thumbnails/29.jpg)
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