Distributed Software Engineering Lecture 1 Introduction Sam Malek

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
![what is a distributed system? [Tanenbaum] distributed system: A collection of independent computers that what is a distributed system? [Tanenbaum] distributed system: A collection of independent computers that](http://slidetodoc.com/presentation_image_h2/b7498be252be96d808de45bc22dca2fa/image-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 Three key characteristics: Multiple machines are autonomous Software lets users see a single system System easy to expand without user noticing SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 3
![what is a distributed system? [Webopedia] distributed computing: A type of computing in which what is a distributed system? [Webopedia] distributed computing: A type of computing in which](http://slidetodoc.com/presentation_image_h2/b7498be252be96d808de45bc22dca2fa/image-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. Key requirement: set of standards that specify how objects communicate with one another (e. g. CORBA and DCOM). SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 4
![what is a distributed system? [Wikipedia] distributed computing: decentralized and parallel computing, using two what is a distributed system? [Wikipedia] distributed computing: decentralized and parallel computing, using two](http://slidetodoc.com/presentation_image_h2/b7498be252be96d808de45bc22dca2fa/image-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. 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. SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 5
![what is a distributed system? assembly of (software) components that serve a purpose [you] what is a distributed system? assembly of (software) components that serve a purpose [you]](http://slidetodoc.com/presentation_image_h2/b7498be252be96d808de45bc22dca2fa/image-6.jpg)
what is a distributed system? assembly of (software) components that serve a purpose [you] distributed (software) system: scope of distribution? SWE 622 – Distributed Software Engineering ? other properties? scalability? transparency? human interaction? © Malek Lecture 1 – Intro – 6

example: e. Commerce is this a DS? how is it a DS? distributed components? kinds of interaction? app server http DB server DB client internet LAN app client (UI) SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 7

example: clusters is this a DS? how is it a DS? distributed components? kinds of interaction? app server high-speed network LAN homogeneous machines gateway app client (UI) SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 8

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

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

example: local networks is this a DS? how is it a DS? distributed components? kinds of interaction? Distributed Application application access resources, such as files, across the network LAN hard to develop distributed apps! SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 11

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

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

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

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

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

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

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

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 © Malek Lecture 1 – Intro – 20
![challenges of DS example: hiding is a technique to reduce complexity [Tanenbaum] “transparency” goals: challenges of DS example: hiding is a technique to reduce complexity [Tanenbaum] “transparency” goals:](http://slidetodoc.com/presentation_image_h2/b7498be252be96d808de45bc22dca2fa/image-21.jpg)
challenges of DS example: hiding is a technique to reduce complexity [Tanenbaum] “transparency” goals: SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 21

challenges of DS example: hiding is a technique to reduce complexity hiding consists of: (1) push handling complexity to a lower level Application (2) implementing a one-size-fits-all solution Middleware Network OS OS Kernel Network SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 22

challenges of DS example: hiding has severe limitations 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 Qo. S (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 SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 23

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

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

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) The difference between letting (a) a server or (b) a client check forms as they are being filled. SWE 622 – Distributed Software Engineering © Malek Lecture 1 – Intro – 27

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

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
- Slides: 29