Chapter 2 System Models

Similar documents
Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

02 - Distributed Systems

02 - Distributed Systems

2. System Models Page 1. University of Freiburg, Germany Department of Computer Science. Distributed Systems. Chapter 2 System Models

System Models for Distributed Systems

System Models. 2.1 Introduction 2.2 Architectural Models 2.3 Fundamental Models. Nicola Dragoni Embedded Systems Engineering DTU Informatics

Middleware and Distributed Systems. System Models. Dr. Martin v. Löwis

Architecture of distributed systems

Architecture of distributed systems

Architectural Models

Distributed Systems: Models and Design

Chapter 1: Distributed Systems: What is a distributed system? Fall 2013

Introduction to Distributed Systems

System models for distributed systems

MODELS OF DISTRIBUTED SYSTEMS

Distributed Systems (5DV147)

Distributed Systems Question Bank UNIT 1 Chapter 1 1. Define distributed systems. What are the significant issues of the distributed systems?

Overview. System architectures Software layers Architectural models. Design requirements. client-server, peer processes, mobile code, agents,...

DISTRIBUTED SYSTEMS UNIT I

Ch.9 Internet Protocol: Error And Control Messages (ICMP)

Fundamental Issues. System Models and Networking Chapter 2,3. System Models. Architectural Model. Middleware. Bina Ramamurthy

Chapter 5 Distributed Objects and Remote Invocation

DISTRIBUTED SYSTEMS. Second Edition. Andrew S. Tanenbaum Maarten Van Steen. Vrije Universiteit Amsterdam, 7'he Netherlands PEARSON.

Software Architecture Patterns

MODELS OF DISTRIBUTED SYSTEMS

C 1. Recap. CSE 486/586 Distributed Systems Failure Detectors. Today s Question. Two Different System Models. Why, What, and How.

C 1. Today s Question. CSE 486/586 Distributed Systems Failure Detectors. Two Different System Models. Failure Model. Why, What, and How

Ch.6 Mapping Internet Addresses to Physical Addresses (ARP)

Distributed Systems Principles and Paradigms. Chapter 01: Introduction. Contents. Distributed System: Definition.

Distributed Systems Principles and Paradigms. Chapter 01: Introduction

Remote Invocation. 1. Introduction 2. Remote Method Invocation (RMI) 3. RMI Invocation Semantics

CSE 486/586 Distributed Systems

CA464 Distributed Programming

Distributed Systems Principles and Paradigms

Communication. Distributed Systems Santa Clara University 2016

Communication Paradigms

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Chapter 10 User Datagram Protocol (UDP)

Modulo II Introdução Sistemas Distribuídos

Chapter 9 Web Services

Distributed Systems

Distributed Systems (ICE 601) Fault Tolerance

Distributed Algorithms Models

Introduction. Distributed Systems IT332

Module 1 - Distributed System Architectures & Models

Ch.7 Internet Protocol: Connectionless Datagram Delivery (IPv4, IPv6)

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Outline. Definition of a Distributed System Goals of a Distributed System Types of Distributed Systems

Ch. 22 Bootstrap And Autoconfiguration (DHCP, NDP or IPv6-ND)

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

Introduction to Distributed Systems. INF5040/9040 Autumn 2018 Lecturer: Eli Gjørven (ifi/uio)

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

Chapter 3 GSM and Similar Architectures

Introduction to Distributed Systems (DS)

Distribution and Integration Technologies

Fundamental Interaction Model

TDP3471 Distributed and Parallel Computing

Distributed Systems. To do. q Distributed systems q This class q Models and architectures q Next: A brief introduction to Go

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Layers of an information system. Design strategies.

PART B UNIT II COMMUNICATION IN DISTRIBUTED SYSTEM PART A

DS 2009: middleware. David Evans

Client Server & Distributed System. A Basic Introduction


Chapter 1: Distributed Information Systems

CHAPTER - 4 REMOTE COMMUNICATION

Chapter 2 Distributed Information Systems Architecture

Slides for Chapter 2: System Models

Android Studio for Windows

05 Indirect Communication

Distributed Systems. Overview. Distributed Systems September A distributed system is a piece of software that ensures that:

Introduction to Distributed Systems (DS)

3C05 - Advanced Software Engineering Thursday, April 29, 2004

Distributed Systems. Definitions. Why Build Distributed Systems? Operating Systems - Overview. Operating Systems - Overview

Verteilte Systeme (Distributed Systems)

Last Class: RPCs and RMI. Today: Communication Issues

Distributed Systems. The main method of distributed object communication is with remote method invocation

Assignment 5. Georgia Koloniari

Distributed Systems COMP 212. Lecture 15 Othon Michail

Part I: INTRODUCTION 吳俊興 國立高雄大學資訊工程學系. Fall 2006

System Models 2. Lecture - System Models 2 1. Areas for Discussion. Introduction. Introduction. System Models. The Modelling Process - General

Cluster-Based Scalable Network Services

Crossbar switch. Chapter 2: Concepts and Architectures. Traditional Computer Architecture. Computer System Architectures. Flynn Architectures (2)

Unit 7: RPC and Indirect Communication

CSE 5306 Distributed Systems. Fault Tolerance

DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES

CAS 703 Software Design

Failure Tolerance. Distributed Systems Santa Clara University

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

Chapter 4 Communication

Advanced Distributed Systems

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

03 Remote invoaction. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI

Distributed Systems Conclusions & Exam. Brian Nielsen

Distributed Operating Systems

Chapter 39: Concepts of Time-Triggered Communication. Wenbo Qiao

Today: Distributed Objects. Distributed Objects

Distributed Systems. Characteristics of Distributed Systems. Lecture Notes 1 Basic Concepts. Operating Systems. Anand Tripathi

Distributed Systems. Characteristics of Distributed Systems. Characteristics of Distributed Systems. Goals in Distributed System Designs

CSE 5306 Distributed Systems

DISTRIBUTED COMPUTER SYSTEMS

Transcription:

CSF661 Distributed Systems 分散式系統 Chapter 2 System Models 吳俊興國立高雄大學資訊工程學系

Chapter 2 System Models 2.1 Introduction 2.2 Physical models 2.3 Architectural models 2.4 Fundamental models 2.5 Summary 2

A physical model considers the types of computers and devices that constitute a system their interconnectivity An architectural model defines the way in which the components of systems interact with one another and the way in which they are mapped onto an underlying network of computers Fundamental models take an abstract perspective in order to describe solutions to individual issues faced by most distributed systems Why model? Each model is intended to provide an abstract, simplified but consistent description of a relevant aspect of distributed system design 2.1 Introduction 3

2.2 Physical Models Baseline physical model: one in which hardware or software components located at networked computers communicate and coordinate their actions only by passing messages Three generations Early distributed systems: late 1970s and early 1980s typical 10 and 100 nodes of LAN Internet-scale distributed systems: 1990s network of networks Contemporary distributed systems: 2000s (cloud) mobile devices and wireless networking Next-generation: distributed systems of systems? a complex system consisting of a series of subsystems that are systems in their own right, and that come together to perform a particular task or tasks 4

Figure 2.1 Generations of distributed systems 5

2.3 Architectural Models The architecture of a system is its structure in terms of separately specified components. Its goal is to meet present and likely future demands. Major concerns are make the system reliable, manageable, adaptable, and cost-effective. Architectural Model Goal: simplifies and abstracts the functions of individual components A three-stage approach Architectural elements: looking at the core underlying architectural elements Architectural patterns: examining composite architectural patterns that can be used in isolation or in combination in developing more sophisticated distributed systems solutions Associated middleware solutions: considering middleware platforms that are available to support the various styles of programming 6

Four key questions 2.3.1 Architectural Elements 1. What are the entities that are communicating in the distributed system? 2. How do they communicate or what communication paradigm is used? 3. What roles and responsibilities do they have in the overall architecture? 4. How are they mapped on to the physical distributed infrastructure? (What is their placement?) 7

Communication Entities and Paradigms Communicating entities System-oriented perspective: processes Problem-oriented perspective: objects, components, Web services Communication paradigms Interprocess communication: RPC, request-reply protocols Remote invocation: RMI Indirect communication: group communication, publishsubscribe systems, message queues, tuple spaces, distributed shared memory 8

Figure 2.2 Communicating entities and communication paradigms 9

Figure 2.3 Clients invoke individual servers Client invocation invocation Server result Server result Client Key: Process: Computer: Servers provide services Clients access services

Figure 2.4 A service provided by multiple servers Service Client Server Server Client Server Objects are partitioned/replicated Web: each server manages its objects NIS: replicated login/password info Cluster: closely coupled, scalable (search engines) 11

Figure 2.5 Web proxy server Cache: local copies of remote objects for faster access Browser cache Proxy server Additional roles: filtering, firewall Client Proxy server Web server Client Web server 12

Multiple Web proxy servers Client Proxy server Web server Client Proxy server Web server Client Proxy server Web server Client Web server

Figure 2.6 Web applets Running code locally vs. remotely Network bandwidth What examples have you seen? Security issues? a) client request results in the downloading of applet code Client Applet code Web server b) client interacts with the applet Client Applet Web server 14

Mobile agents Running program that travels from one computer to another Perform tasks on users behalf Security issues How does it compare to one client interacting with multiple servers? What if the program needs to access a lot of remote data? How does it compare with applets? Agents can provide functionality a remote web site does not provide, but allows access to data. 15

Peer to Peer Peers play similar roles No distinction of responsibilities Peer 2 Peer 1 Application Application Sharable objects Peer 3 Application Peer 4 Application Peers 5... N 16

Variations Variations on the client-server and P2P models the user of multiple servers the use of caches to increase performance and resilience the use of mobile code and mobile agents users need for low-cost computers with limited hardware resources that are simple to manage the requirement to add and remove mobile devices in a convenient manner 17

Mapping and Placement Key issues of mapping to physical infrastructure mapping of services to multiple servers caching mobile code mobile agents Considerations The placement of the components across a network of computers define patterns for the distribution of data and workloads The interrelationships between the components that is, their functional roles and the patterns of communication between them An initial simplification is achieved by classifying processes as: Server processes Client processes Peer processes Cooperate and communicate in a symmetric manner to perform a task 18

2.3.2 Architectural patterns Layering Platform: hardware, OS Middleware Definition: a software layer that provides a programming abstraction to mask the heterogeneity of the underlying networks, hardware, operating systems and programming languages Examples: Sun RPC, Java RMI CORBA,Microsoft.NET,Java J2EE reliable services in the middle layer, still need application-specific reliability Applications, services Figure 2.7 Software and hardware service layers in distributed systems Applications, services Middleware Operating system Computer and network hardware Platform 19

Figure 2.8 Two-tier and three-tier architectures Tiered architecture Organize functionality of a given layer and place them into appropriate servers or physical nodes Complementary to layering which deals with the vertical organization of services 20

Figure 2.10 Thin clients and compute servers (network computers) Thin client Basically a display with keyboard ( dumb terminal ) Remote computation, storage How does it compare with the PC model or distributed workstation model? Network computer or PC Compute server Thin Client network Application Process 21

Figure 2.11 The web service architectural pattern Examples: Registry in Java RMI and naming service in CORBA 22

2.3.3 Associated middle solutions Figure 2.12 Categories of middleware 23

Interfaces and objects The set of functions available for invocation in a process (whether it is a server or a peer process) is specified by one or more interface definitions At the programming level Need standard interfaces Access/provide services/objects RPC/RMI 24

Design requirements for distributed architectures Performance Responsiveness, throughput, load balancing Quality of service (QoS) time-critical applications (real-time apps) guarantee certain level of quality delivered by the deadline allocation of computation and communication resources Caching and replication web caching: server provides expiration time Dependability fault tolerance: redundancy, recovery security 25

2.4 Fundamental Models Fundamental properties in processes and communication, shared among different architectures discussed previously The aspects of DS that we wish to capture: Interaction: communication (i.e. information flow) and coordination (synchronization and ordering of activities) between processes Failure: analysis of potential effects whenever a fault occurs Security: analysis of threats to a system 26

2.4.1 Interaction model Two significant factors affecting process interaction performance of communication channels latency: transmission, access, os bandwidth jitter: variation in time taken to deliver a series of messages computer clocks and timing events clock drift: two processes running on different computers read their clocks at the same time, their local clocks may supply different time values clock drift rate: the relative amount that a computer clock differs from a perfect reference clock 27

Two Variants of the Interaction Model Synchronous distributed systems lower and upper bounds for execution of a step message transmission in bounded time clock drift rate is bounded failures can be detected when bounds are exceeded accomplished by allocating sufficient resources Asynchronous distributed systems no bounds on process speed, message delay, clock drift rate failures are harder to detect performance can't be guaranteed 28

Event Ordering Event ordering Relative ordering might be more important than exact time logical clocks--ordering events without physical clocks Example: Consider a mailing list with users X, Y, Z, and A X sends a message with the subject Meeting Y and Z reply by sending a message with the subject Re: Meeting X Y Z A send 1 2 receive receive m 1 4 User A: m send 2 3 receive Physical time receive receive send receive m 3 m 1 m 2 receive receive receive t 1 t 2 t 3 Figure 2.13 Real-time ordering of events 1. From Z: Re: Meeting 2. From X: Meeting 3. From Y: Re: Meeting A receives Z s response before X s message! 29

2.4.2 Failure Model In a DS, both processes and communication channels may fail i.e., they may depart from what is considered to be correct or desirable behavior Types of failures: Omission Failure: when a process or communication channel fails Arbitrary Failure: any type of error may occur (i.e. set wrong values) Timing Failure process p send m process q receive Outgoing message buffer Communication channel Figure 2.14 Processes and channels Incoming message buffer 30

Figure 2.15 Omission and arbitrary failures Class of failure Affects Description Fail-stop Process Process halts and remains halted. Other processes may detect this state. Crash Process Process halts and remains halted. Other processes may not be able to detect this state. Omission Channel A message inserted in an outgoing message buffer never arrives at the other end s incoming message buffer. Send-omission Process A process completes a send,but the message is not put in its outgoing message buffer. Receive- Process A message is put in a process s incoming message omission Arbitrary (Byzantine) Process or channel buffer, but that process does not receive it. Process/channel exhibits arbitrary behaviour: it may send/transmit arbitrary messages at arbitrary times, commit omissions; a process may stop or take an incorrect step. 31

Figure 2.16 Timing failures Class of Failure Affects Description Clock Process Process s local clock exceeds the bounds on its rate of drift from real time. Performance Process Process exceeds the bounds on the interval between two steps. Performance Channel A message s transmission takes longer than the stated bound. 32

2.4.3 Security Model The security of a distributed system can be achieved by securing the processes and the channels used in their interactions and by protecting the objects that they encapsulate against unauthorized access 33

Security Model Protecting Objects Protecting objects: authorization (access rights to principals) authentication (identity of parties/principals) Figure 2.17 Objects and principals invocation Access rights Object Client result Server Principal (user) Network Principal (server) Use access rights that define who is allowed to perform operation on a object The sever should verify the identity of the principal (user) behind each operation and checking that they have sufficient access rights to perform the requested operation on the particular object, rejecting those who do not 34

Figure 2.18 The enemy Copy of m Process p m The enemy Communication channel m Process q Threats form a potential enemy: threats to processes Server: an enemy might generate an invocation with a false identity Client: the client could receive a result that was from an enemy threats to communication channels: an enemy can copy, alter or inject messages denial of service: the enemy overloads physical resources mobile code: may play a Trojan horse 35

Security Model Securing processes and their interactions Principal A Figure 2.19 Secure channels Principal B Process p Secure channel Process q Encryption and authentication are use to build secure channels Each of the processes knows the identity of the principal on whose behalf the other process is executing and can check their access rights before performing an operation 36

Summary 2.1 Introduction 2.2 Physical models 2.3 Architectural models 2.4 Fundamental models 2.5 Summary 37