Distributed Systems Principles and Paradigms

Slides:



Advertisements
Similar presentations
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.
Advertisements

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.
Based on last years lecture notes, used by Juha Takkinen.
Overview Distributed vs. decentralized Why distributed databases
Introducing … Distributed Systems.
Computer Science Lecture 2, page 1 CS677: Distributed OS Last Class: Introduction Distributed Systems – A collection of independent computers that appears.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
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,
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
Dr. Kalpakis CMSC621 Advanced Operating Systems Introduction.
Introduction to distributed computing
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Distributed (Operating) Systems -Introduction- 1 Computer Engineering Department Distributed Systems Course Asst. Prof. Dr. Ahmet Sayar Kocaeli University.
1 Distributed Systems Introduction Chapter 1. 2 Course/Slides Credits Note: all course presentations are based on those developed by Andrew S. Tanenbaum.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Distributed Systems (15-440) Mohammad Hammoud December 4 th, 2013.
ICS362 – Distributed Systems Dr. Ken Cosh Week 1.
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.
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
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Lecture 3: Sun: 16/4/1435 Distributed Computing Technologies and Middleware Lecturer/ Kawther Abas CS- 492 : Distributed system.
Dr. Naglaa Soliman Princess Nora Bint Abdulrahman University College.
Introduction to DISTRIBUTED COMPUTING Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
Distributed Software Engineering Lecture 1 Introduction Sam Malek SWE 622, Fall 2012 George Mason University.
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.
L-1 Introduction 1. Today's Lecture Administrivia Example topics 2.
Distributed Computing Systems CSCI 4780/6780. Geographical Scalability Challenges Synchronous communication –Waiting for a reply does not scale well!!
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Chapter 1 Introduction.
Kjell Orsborn UU - DIS - UDBL DATABASE SYSTEMS - 10p Course No. 2AD235 Spring 2002 A second course on development of database systems Kjell.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
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.
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 讲 分布式系统概述 §1.1 分布式系统的定义 §1.2 分布式系统分类 §1.3 分布式系统体系结构.
Distributed Systems Tanenbaum Chapter 1.
TEXT: Distributed Operating systems A. S. Tanenbaum Papers oriented on: 1.OS Structures 2.Shared Memory Systems 3.Advanced Topics in Communications 4.Distributed.
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.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Introduction Chapter 1. Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users.
1 Prof. Leonardo Mostarda University of Camerino Distributed Systems – intro Prof. Leonardo Mostarda-- Camerino,
Chapter 1 Characterization of Distributed Systems
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Prof. Leonardo Mostarda University of Camerino
Last Class: Introduction
Definition of Distributed System
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Distributed Systems IT332
Advanced Operating Systems
Introduction To Distributed Systems
Distributed Systems (15-440)
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Presentation transcript:

Distributed Systems Principles and Paradigms Reza Rafeh Arak University

1 INTRODUCTION 1.1 DEFINITION AND CHARACTERISTICS OF A DISTRIBUTED SYSTEM 1.2 TYPES OF DISTRIBUTED SYSTEMS   2 ARCHITECTURES 2.1 ARCHITECTURAL STYLES 2.2 SYSTEM ARCHITECTURES 3 PROCESSES , THREADS, MIGRATION 4 COMMUNICATION 4.1 FUNDAMENTALS 4.2 Types of Communication 4.2.1 REMOTE PROCEDURE CALL 4.2.2 MESSAGE-ORIENTED COMMUNICATION 4.2.3 STREAM-ORIENTED COMMUNICATION 4.2.4 MULTICAST COMMUNICATION 5 NAMING 5.1 NAMES, IDENTIFIERS, AND ADDRESSES 5.2 Structured Naming 5.3 Attribute-Based Naming

6 Synchronization 6.1 Clock Synchronization 6.2 Logical Clocks 6.3 Mutual Exclusion 6.4 Global Positioning of Nodes 6.5 Election Algorithms 7 Consistency and Replication 7.1 INTRODUCTION 7.2 DATA-CENTRIC CONSISTENCY MODELS 7.3 CLIENT-CENTRIC CONSISTENCY MODELS 7.4 REPLICA MANAGEMENT 7.5 CONSISTENCY PROTOCOLS 8 Fault Tolerance 8.1 Introduction 8.2 Process Resilience 8.3 Reliable Client-Server Communication 8.4 Reliable Group Communication 8.5 Disturbed Commit 8.6 Recovery 9 Security 9.1 Introduction 9.2 Secure Channels 9.3 Access Control 9.4 Security Management

10 Disturbed Object-Based Systems 10.1 Architecture 10.2 Processes 10.3 Communication 10.4 Naming 10.5 Synchronization 10.6 Consistency and Replication 10.7 Fault Tolerance 10.8 Security 11 Disturbed File Systems 11.1 Architecture 11.2 Processes 11.3 Communication 11.4 Naming 11.5 Synchronization 11.6 Consistency and Replication 11.7 Fault Tolerance 11.8 Security

12 Disturbed Web-Based Systems 12.1 Architecture 12.2 Processes 12.3 Communication 12.4 Naming 12.5 Synchronization 12.6 Consistency and Replication 12.7 Fault Tolerance 12.8 Security 13 Disturbed Coordination-Based Systems 13.1 Architecture 13.2 Processes 13.3 Communication 13.4 Naming 13.5 Synchronization 13.6 Consistency and Replication 13.7 Fault Tolerance 13.8 Security

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.

Definition of a Distributed System (2) A distributed system organized as middleware. The middleware layer extends over multiple machines, and offers each application the same interface.

Motivation and Goals • Making resources available – Systems should allow for efficient and controlled access to and sharing of distributed resources • Hiding distribution – Systems should look as if only a single computer system is running • Openness – Systems should offer services according to standard rules that describe the syntax and semantics of those Services • Scalability – Systems should scale with respect to size, geography, and administrative boundaries

Features Transparency

Degree of Transparency A trade-off between a high degree of transparency and the performance of a system Full distribution transparency is simply impossible

Openness A system Offer services according to standard rules Such rules are formalized in protocols Interoperability Different manufacturers can co-exist and work together Portability System A can be executed, without modification, on a different distributed system B

Scalability: Size scalable: easily add more users & recourses to the system Geographically scalable: users & resources may lie far apart Administratively scalable: it can still be easy to manage even if it spans independent administrative organizations

Scalability

Scalability Characteristics of 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.

Scaling Techniques Three techniques for scaling Hiding communication latencies Distribution Replication

Scaling Techniques (1) 1.4 The difference between letting: a server or a client check forms as they are being filled

An example of dividing the DNS name space into zones. Scaling Techniques (2) 1.5 An example of dividing the DNS name space into zones.

Pitfalls when Developing Distributed Systems The network is reliable. The network is secure. The network is homogeneous. The topology does not change. Latency is zero. Bandwidth is infinite. Transport cost is zero. There is one administrator.

Types of Distributed Systems:  1- Distributed Computing Systems : Focus on computation Cluster Computing Systems Grid Computing Systems 2- Distributed Information Systems:Focus on interoperability Transaction Processing Systems Enterprise Application Integration (Exchange info via RPC or RMI) 3- Distributed Pervasive Systems (usually small, battery-powered systems, Mobile & wireless): Focus on mobile, embedded, communicating Home Systems (e.g. Smart phones, PDAs) Electronic Health care systems (Heart monitors, BAN: Body Area Networks) Sensor Networks (distributed Databases connected wirelessly)

Cluster Computing Systems - Hooking up a collection of simple computers via high-speed networks to build a supercomputing environment - Mostly homogenous - Example: server clusters at Banks

Grid Computing Systems - have a high degree of heterogeneity Users and recourses from different organizations are brought together to allow collaboration (i.e. a V.O. = Virtual Organization) - Members belonging to the same V.O. have access rights to a common set of recourses (e.g. Police, FBI, and some local agencies may form a computing grid)

Transaction Processing Systems (1) BEGIN_TRANSACTION salary1 = doctor1.getSalary() doctor1.setSalary(salary1 + bonus) salary2 = doctor2.getSalary() doctor2.setSalary(salary2 - bonus) END_TRANSACTION

Transaction Processing Systems (2) Characteristic: Atomic: The transaction happens indivisibly. Consistent: The transaction does not violate system invariants. Isolated: Concurrent transactions do not interfere with each other. Durable: Once a transaction commits, the changes are permanent.

Transaction Processing Systems (3)

Transaction Processing Systems (4)

Enterprise Application Integration -RPC (Remote Procedure Call) -RMI (Remote Method Invocation)

Distributed Pervasive Systems Embrace contextual changes (a phone now is a web access device. A device must continuously be aware of the fact that its environment may change) Encourage ad hoc composition (used differently by different users, e.g. PDA) Recognize sharing as the default (easily read, store, manage, and share info)

Electronic Health Care Systems (1) Where and how should monitored data be stored? How can we prevent loss of crucial data? What infrastructure is needed to generate and propagate alerts? How can physicians provide online feedback? How can extreme robustness of the monitoring system be realized? What are the security issues and how can the proper policies be enforced?

Electronic Health Care Systems (2) Monitoring a person in a pervasive electronic health care system, using (a) a local hub or - (b) a continuous wireless connection.

Sensor Networks (1) How do we (dynamically) set up an efficient tree in a sensor network? How does aggregation of results take place? Can it be controlled? What happens when network links fail?

Sensor Networks (2) Organizing a sensor network database, while storing and processing data (a) only at the operator’s site or …

Sensor Networks (3) Organizing a sensor network database, while storing and processing data … or (b) only at the sensors.