distributed software engineering lecture 1 introduction sam malek swe 622, fall 2012 george mason...

29
Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University

Upload: joel-barton

Post on 01-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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