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

Slides:



Advertisements
Similar presentations
ICS 434 Advanced Database Systems
Advertisements

Distributed Systems Major Design Issues Presented by: Christopher Hector CS8320 – Advanced Operating Systems Spring 2007 – Section 2.6 Presentation Dr.
Distributed Systems Topics What is a Distributed System?
Distributed Systems 1 Topics  What is a Distributed System?  Why Distributed Systems?  Examples of Distributed Systems  Distributed System Requirements.
Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users as a single coherent system.
Distributed components
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization and Design Goals Dr. Michael R. Lyu Computer.
City University London
REK’s adaptation of Prof. Claypool’s adaptation of
Based on last years lecture notes, used by Juha Takkinen.
Introduction Dr. Ying Lu CSCE455/855 Distributed Operating Systems.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
Introducing … Distributed Systems.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Tutorials 1 1.What is the definition of a distributed system? 1.A distributed system is a collection of independent computers that appears to its users.
EECE 411: Design of Distributed Software Applications What is a Distributed System? You know when you have one … … when the failure of a computer you’ve.
DISTRIBUTED COMPUTING
Massively Distributed Database Systems Spring 2014 Ki-Joune Li Pusan National University.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Introduction to DISTRIBUTED SYSTEMS Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
A brief overview about Distributed Systems Group A4 Chris Sun Bryan Maden Min Fang.
1 Lecture 20: Parallel and Distributed Systems n Classification of parallel/distributed architectures n SMPs n Distributed systems n Clusters.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Distributed Systems 1 CS- 492 Distributed system & Parallel Processing Sunday: 2/4/1435 (8 – 11 ) Lecture (1) Introduction to distributed system and models.
Distributed Systems Principles and Paradigms
Distributed Systems: Concepts and Design Chapter 1 Pages
Introduction to DISTRIBUTED COMPUTING Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
Database Systems: Design, Implementation, and Management Tenth Edition Chapter 12 Distributed Database Management Systems.
Week 5 Lecture Distributed Database Management Systems Samuel ConnSamuel Conn, Asst Professor Suggestions for using the Lecture Slides.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Types of Operating Systems
Distributed Systems and Algorithms Sukumar Ghosh University of Iowa Spring 2011.
OS2- Sem ; R. Jalili Introduction Chapter 1.
Kyung Hee University 1/41 Introduction Chapter 1.
DISTRIBUTED COMPUTING Introduction Dr. Yingwu Zhu.
Distributed Computing Systems CSCI 4780/6780. Distributed System A distributed system is: A collection of independent computers that appears to its users.
1- Distributed Systems Principles and Paradigms Operating Systems: Concurrent and Distributed Software Design Jean Bacon, Tim Harris 2003.
Distributed Computing Systems CSCI 4780/6780. Geographical Scalability Challenges Synchronous communication –Waiting for a reply does not scale well!!
DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Chapter 2 Introduction to Systems Architecture. Chapter goals Discuss the development of automated computing Describe the general capabilities of a computer.
Distributed database system
OS2- Sem1-83; R. Jalili Introduction Chapter 1. OS2- Sem1-83; R. Jalili Definition of a Distributed System (1) A distributed system is: A collection of.
Distributed Systems: Principles and Paradigms By Andrew S. Tanenbaum and Maarten van Steen.
Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users as a single coherent system.
Types of Operating Systems 1 Computer Engineering Department Distributed Systems Course Assoc. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2015.
Distributed Computing Systems CSCI 6900/4900. Review Distributed system –A collection of independent computers that appears to its users as a single coherent.
Introduction Chapter 1. Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users.
Distributed Computing Systems CSCI 4780/6780. Scalability ConceptExample Centralized servicesA single server for all users Centralized dataA single on-line.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Distributed Systems Unit – 1 Concepts of DS By :- Maulik V. Dhamecha Maulik V. Dhamecha (M.Tech.)
1 Distributed Processing Chapter 1 : Introduction.
Distributed Computing Systems CSCI 6900/4900. Review Definition & characteristics of distributed systems Distributed system organization Design goals.
TEXT: Distributed Operating systems A. S. Tanenbaum Papers oriented on: 1.OS Structures 2.Shared Memory Systems 3.Advanced Topics in Communications 4.Distributed.
Background Computer System Architectures Computer System Software.
Primitive Concepts of Distributed Systems Chapter 1.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Distributed Systems Architecure. Architectures Architectural Styles Software Architectures Architectures versus Middleware Self-management in distributed.
Chapter 1 Characterization of Distributed Systems
Distributed Operating Systems Spring 2004
Distributed Operating Systems
Definition of Distributed System
Advanced Operating Systems
Introduction To Distributed Systems
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Presentation transcript:

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

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

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

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

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?

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

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?

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?

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?

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!

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

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?

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

example: ubiquitous computing SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 15 distributed applications? internet LAN 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© MalekLecture 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© MalekLecture 1 – Intro – 17

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

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?

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

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

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

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

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

Challenges of DS example: Scalability Problems SWE 622 – Distributed Software Engineering© MalekLecture 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© MalekLecture 1 – Intro – 26

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.

Scaling Techniques (3) SWE 622 – Distributed Software Engineering© MalekLecture 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 restthe rest of the course SWE 622 – Distributed Software Engineering© MalekLecture 1 – Intro – 29