Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University."— Presentation transcript:

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

2 outline course mechanicsmechanics what is a distributed system? challenges & advantages of distribution the rest of the course SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 2

3 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 autonomous Software lets users see a single system System easy to expand without user noticing

4 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).

5 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© MalekLecture 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.

6 what is a distributed system? [you] distributed (software) system: ? SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 6 other properties? scalability? transparency? human interaction? assembly of (software) components that serve a purpose scope of distribution?

7 example: eCommerce SWE 622 – Distributed Software Engineering© MalekLecture 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

8 example: clusters SWE 622 – Distributed Software Engineering© MalekLecture 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?

9 example: timesharing SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 9 dumb terminals mainframe keystrokes over wire is this a DS? how is it a DS? distributed components? kinds of interaction?

10 example: parallel computing SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 10 dumb terminals mainframe multiprocessor keystrokes over wire applications: aerodynamics simulations weather forecasting …number crunching is this a DS? how is it a DS? distributed components? kinds of interaction?

11 example: local networks SWE 622 – Distributed Software Engineering© MalekLecture 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!

12 factor common interaction capabilities into middleware SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 12 LAN raise level of abstraction (easier-to-use primitives)

13 example: middleware SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 13 … is middleware a DS? how is it a DS? distributed components? kinds of interaction?

14 theme of this course: styles of interaction offered by middleware SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 14 … data (sharing)-oriented service-oriented process oriented …and

15 example: ubiquitous computing SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 15 distributed applications? internet LAN wireless radiotelephony more powerful middleware!

16 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© MalekLecture 1 – Intro – 16

17 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© MalekLecture 1 – Intro – 17

18 advantages of DS latency of communication processing capacity coordination shared resources and mutual exclusion ordering, deadlock and live-lock timing adaptation to changefault 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© MalekLecture 1 – Intro – 18

19 example: replication helps with failures SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 19 advantages of DS 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?

20 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© MalekLecture 1 – Intro – 20

21 challenges of DS example: hiding is a technique to reduce complexity SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 21 [Tanenbaum] “transparency” goals:

22 challenges of DS example: hiding is a technique to reduce complexity SWE 622 – Distributed Software Engineering© MalekLecture 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

23 challenges of DS example: hiding has severe limitations SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 23 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

24 new techniques to address DS complexity awareness and adaptation SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 24 key idea: separate decisions from (controllable) mechanisms lower layer upper layer ’80s: spaghetti lower layer upper layer ’90s: hiding lower layer upper layer ’00s: adaptation narrow access full exposure hidden mechanismsmechanisms infocontrol

25 Challenges of DS example: Scalability Problems SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 25 Examples of scalability limitations.

26 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© MalekLecture 1 – Intro – 26

27 Scaling Techniques (2) SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 27 The difference between letting (a) a server or (b) a client check forms as they are being filled.

28 Scaling Techniques (3) SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 28 An example of dividing the DNS name space into zones.

29 outline course mechanics what is a distributed system? challenges & advantages of distribution the restthe rest of the course SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 29


Download ppt "Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University."

Similar presentations


Ads by Google