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

Post on 01-Jan-2016

217 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related