Distributed Systems: Principles and Paradigms Chapter 01 Introduction.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Advertisements

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 Processing, Client/Server, and Clusters
Distributed components
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 Systems Architectures
City University London
REK’s adaptation of Prof. Claypool’s adaptation of
Based on last years lecture notes, used by Juha Takkinen.
Fall 2007cs4251 Distributed Computing Umar Kalim Dept. of Communication Systems Engineering 31/10/2007.
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
1 Introduction Chapter 1. 2 Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its.
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.
20101 Overview Distributed systems Layers Communication is logically on the application layer Only that has to be considered except for speed,
Hardware/Software Concepts Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
DISTRIBUTED COMPUTING
Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction.
Massively Distributed Database Systems Spring 2014 Ki-Joune Li Pusan National University.
Introduction Chapter 1. Definition of a Distributed System A distributed system [Tannenbaum & Steen] can be defined as a collection of independent computers.
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.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
Advanced Operating Systems Welcome to this course, in Fall Semester Main TextBooks 1- Tanenbaum’s book 2- Chow’s Book 3- Singhal’s Book Other extra.
Distributed Systems: Concepts and Design Chapter 1 Pages
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Introduction. Outline Definitions Examples Hardware concepts Software concepts Readings: Chapter 1.
Introduction. Outline r Definitions r Challenges r Examples to Illustrate Challenges r Goals in Application Development r Summary.
1 CS 6823 ASU Chapter 2 Architecture.
Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University.
A.Obaid - Wilfried Probst - Rufin Soh INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES1 Chapter 1. Distributed systems: Definitions, design.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
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.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
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.
Distributed Systems Definition.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization of Distributed & Mobile Systems Dr. Michael R.
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.
1 Distributed Processing Chapter 1 : Introduction.
第 1 讲 分布式系统概述 §1.1 分布式系统的定义 §1.2 分布式系统分类 §1.3 分布式系统体系结构.
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.
Distributed Systems Architecure. Architectures Architectural Styles Software Architectures Architectures versus Middleware Self-management in distributed.
Distributed Operating Systems Spring 2004
Distributed Operating Systems
Definition of Distributed System
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Advanced Operating Systems
Introduction To Distributed Systems
Basic organizations and memories in distributed computer systems
Introduction Chapter 1.
Presentation transcript:

Distributed Systems: Principles and Paradigms Chapter 01 Introduction

Prologue  Distributed Processing ( 분산 처리 ) vs. Distributed System ( 분산 시스템 )  DS research in the 80’s vs. 90’s  Centralized vs. Distributed System  What are the examples of Distributed Systems?

Distributed System: Definition A distributed system is a collection of independent computers that appears to its users as a single coherent system Two aspects: (1) hardware - autonomous computers (2) software – users think they are dealing with a single system 01 – 1 Introduction/1.1 Definition

Goals of Distributed Systems 01 – 2 Introduction/1.2 Goals Allow users to access and share resources Transparency - To hide the fact that its processes and resources are physically distributed across multiple computers Openness -To offer services according to standard rules that describe the syntax and semantics of those services -E.g., specify interfaces using an interface definition language (IDL) Scalability

Transparency 01 – 3 Introduction/1.2 Goals

Degree of Transparency Observation: Aiming at full transparency may be too much: Users may be located in different continents; distribution is apparent and not something you want to hide Completely hiding failures of networks and nodes is (theoretically and practically) impossible – You cannot distinguish a slow computer from a failing one – You can never be sure that a server actually performed an operation before a crash Full transparency will cost performance, exposing distribution of the system – Keeping Web caches exactly up-to-date with the master copy – Immediately flushing write operations to disk for fault tolerance 01 – 4 Introduction/1.2 Goals

Openness of Distributed Systems Open distributed system: Be able to interact with services from other open systems, irrespective of the underlying environment: Systems should conform to well-defined interfaces Systems should support portability of applications Systems should easily interoperate Achieving openness: At least make the distributed system independent from heterogeneity of the underlying environment: Hardware Platforms Languages 01 – 5 Introduction/1.2 Goals

Policies versus Mechanisms Implementing openness: Requires support for different policies specified by applications and users: What level of consistency do we require for client cached data? Which operations do we allow downloaded code to perform? Which QoS requirements do we adjust in the face of varying bandwidth? What level of secrecy do we require for communication? Implementing openness: Ideally, a distributed system provides only mechanisms: Allow (dynamic) setting of caching policies, preferably per cachable item Support different levels of trust for mobile code Provide adjustable QoS parameters per data stream Offer different encryption algorithms 01 – 6 Introduction/1.2 Goals

Scalability in Distributed Systems Observation: Many developers of modern distributed systems easily use the adjective “scalable” without making clear why their system actually scales. Scalability: At least three components: Number of users and/or processes (size scalability) Maximum distance between nodes (geographical scalability) Number of administrative domains (administrative scalability) Most systems account only, to a certain extent, for size scalability. The (non)solution: powerful servers. Today, the challenge lies in geographical and administrative scalability. 01 – 7 Introduction/1.2 Goals

Techniques for Scaling Distribution: Partition data and computations across multiple machines: Move computations to clients (Java applets) Decentralized naming services (DNS) Decentralized information systems (WWW) Replication: Make copies of data available at different machines: Replicated file servers (mainly for fault tolerance) Replicated databases Mirrored Web sites Large-scale distributed shared memory systems Caching: Allow client processes to access local copies: Web caches (browser/Web proxy) File caching (at server and client) 01 – 8 Introduction/1.2 Goals

Scaling – The Problem Observation: Applying scaling techniques is easy, except for one thing: Having multiple copies (cached or replicated), leads to inconsistencies: modifying one copy makes that copy different from the rest. Always keeping copies consistent and in a general way requires global synchronization on each modification. Global synchronization makes large-scale solutions practically impossible. Observation: If we can tolerate inconsistencies, we may reduce the need for global synchronization. Observation: Tolerating inconsistencies is application dependent. 01 – 9 Introduction/1.2 Goals

Distributed Systems: Hardware Concepts Multiprocessors Multicomputers Networks of Computers 01 – 10 Introduction/1.3 Hardware Concepts

Multiprocessors and Multicomputers Distinguishing features: Private versus shared memory Bus versus switched interconnection 01 – 11 Introduction/1.3 Hardware Concepts

Networks of Computers High degree of node heterogeneity: High-performance parallel systems (multiprocessors as well as multicomputers) High-end PCs and workstations (servers) Simple network computers (offer users only network access) Mobile computers (palmtops, laptops) High degree of network heterogeneity: Local-area gigabit networks Wireless connections Long-haul, high-latency POTS connections Wide-area switched megabit connections Observation: Ideally, a distributed system hides these differences 01 – 12 Introduction/1.3 Hardware Concepts

Distributed Systems:Software Concepts Distributed operating system Network operating system Middleware 01 – 13 Introduction/1.4 Software Concepts

Distributed Operating System Some characteristics: OS on each computer knows about the other computers OS on different computers generally the same Services are generally (transparently) distributed across computers 01 – 14 Introduction/1.4 Software Concepts

Harder than traditional (multiprocessor) OS: Because memory is not shared, emphasis shifts to processor communication by message passing: Multicomputer Operating System Practice: Only very few truly multicomputer operating systems exist (example: Amoeba) 01 – 15 Introduction/1.4 Software Concepts Often no simple global communication: –Only bus-based multicomputers provide hardware broadcasting –Efficient broadcasting may require network interface programming techniques No simple system-wide synchronization mechanisms Virtual (distributed) shared memory requires OS to maintain global memory map in software Inherent distributed resource management: no central point where allocation decisions can be made

Some characteristics: Each computer has its own operating system with networking facilities Computers work independently (i.e., they may even have different operating systems) Services are tied to individual nodes (ftp, telnet,WWW) Highly file oriented (basically, processors share only files) Network Operating System 01 – 16 Introduction/1.4 Software Concepts

Middleware Some characteristics: OS on each computer need not know about the other computers OS on different computers need not generally be the same Services are generally (transparently) distributed across computers 01 – 17 Introduction/1.4 Software Concepts

Need for Middleware Motivation: Too many networked applications were difficult to integrate: Departments are running different NOSs Integration and interoperability only at level of primitive NOS Services Need for federated information systems: – Combining different databases, but providing a single view to applications – Setting up enterprise-wide Internet services, making use of existing information systems – Allow transactions across different databases – Allow extensibility for future services (e.g., mobility, teleworking, collaborative applications) Constraint: use the existing operating systems, and treat them as the underlying environment 01 – 18 Introduction/1.4 Software Concepts

Middleware Services (1/2) Communication services: Abandon primitive socket-based message passing in favor of: Procedure calls across networks Remote-object method invocation Message-queuing systems Advanced communication streams Event notification service Information system services: Services that help manage data in a distributed system: Large-scale, system-wide naming services Advanced directory services (search engines) Location services for tracking mobile objects Persistent storage facilities Data caching and replication 01 – 19 Introduction/1.4 Software Concepts

Middleware Services (2/2) Control services: Services giving applications control over when, where, and how they access data: Distributed transaction processing Code migration Security services: Services for secure processing and communication: Authentication and authorization services Simple encryption services Auditing service 01 – 20 Introduction/1.4 Software Concepts

Comparison of DOS, NOS, and Middleware 1: Degree of transparency 2: Same operating system on each node? 3: Number of copies of the operating system 4: Basis for communication 5: How are resources managed? 6: Is the system easy to scale? 7: How open is the system? 01 – 21 Introduction/1.4 Software Concepts

Client–Server Model Basic model Application layering Client–Server architectures 01 – 22 Introduction/1.5 Client–Server Model

Basic Client–Server Model (1/2) Characteristics: There are processes offering services (servers) There are processes that use services (clients) Clients and servers can be distributed across different machines Clients follow request/reply model with respect to using services 01 – 23 Introduction/1.5 Client–Server Model

Basic Client–Server Model (2/2) Servers: Generally provide services related to a shared resource: Servers for file systems, databases, implementation repositories, etc. Servers for shared, linked documents (Web, VoD) Servers for shared applications Servers for shared distributed objects Clients: Allow remote service access: Programming interface transforming client’s local service calls to request/reply messages Devices with (relatively simple) digital components (barcode readers, teller machines, hand-held phones) Computers providing independent user interfaces for specific services Computers providing an integrated user interface for related services (compound documents) 01 – 24 Introduction/1.5 Client–Server Model

Application Layering (1/2) Traditional three-layered view: User-interface layer contains units for an application’s user interface Processing layer contains the functions of an application, i.e. without specific data Data layer contains the data that a client wants to manipulate through the application components Observation: This layering is found in many distributed information systems, using traditional database technology and accompanying applications. 01 – 25 Introduction/1.5 Client–Server Model

Application Layering (2/2) 01 – 26 Introduction/1.5 Client–Server Model

Client-Server Architectures Single-tiered: dumb terminal/mainframe configuration Two-tiered: client/single server configuration Three-tiered: each layer on separate machine Traditional two-tiered configurations: 01 – 27 Introduction/1.5 Client–Server Model

Alternative C/S Architectures Observation: Multi-tiered architectures seem to constitute buzzwords that fail to capture many modern client–server systems. Cooperating servers: Service is physically distributed across a collection of servers: Traditional multi-tiered architectures Replicated file systems Network news services Large-scale naming systems (DNS, X.500) Workflow systems Financial brokerage systems Cooperating clients: Distributed application exists by virtue of client collaboration: Teleconferencing where each client owns a (multimedia) workstation Publish/subscribe architectures in which role of client and server is blurred Peer-to-Peer (P2P) applications 01 – 28 Introduction/1.5 Client–Server Model

Reading Read Chapter 1 of Distributed Systems: Principles and Paradigms book 01 – 28 Introduction/1.5 Client–Server Model