Advanced Distributed Systems

Similar documents
Distributed Systems Principles and Paradigms. Chapter 04: Communication

Distributed Systems Principles and Paradigms. Chapter 04: Communication

Distributed Systems. Edited by. Ghada Ahmed, PhD. Fall (3rd Edition) Maarten van Steen and Tanenbaum

Distributed Systems Principles and Paradigms. Chapter 01: Introduction

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

CA464 Distributed Programming

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms

Distributed Systems. Chapter 02

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

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

Introduction. Distributed Systems IT332

Remote Invocation. Today. Next time. l Overlay networks and P2P. l Request-reply, RPC, RMI

Communication. Distributed Systems Santa Clara University 2016

Communication. Overview

Distributed Systems. Chapter 1: Introduction

Distributed Systems. Edited by. Ghada Ahmed, PhD. Fall (3rd Edition) Maarten van Steen and Tanenbaum

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

LECTURE 6: MESSAGE-ORIENTED COMMUNICATION II: MESSAGING IN DISTRIBUTED SYSTEMS

LECTURE 6: MESSAGE-ORIENTED COMMUNICATION II: MESSAGING IN DISTRIBUTED SYSTEMS. Lecture Contents

Chapter 4 Communication

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

Verteilte Systeme (Distributed Systems)

Today: Distributed Objects. Distributed Objects

Last Class: RPCs and RMI. Today: Communication Issues

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36

Remote Invocation. Today. Next time. l Indirect communication. l Request-reply, RPC, RMI

Chapter 4 Communication

Communication. Outline

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4

Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

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

Distributed Information Processing

02 - Distributed Systems

What is a distributed system?

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Systems COMP 212. Lecture 15 Othon Michail

MODELS OF DISTRIBUTED SYSTEMS

Parallelism. Master 1 International. Andrea G. B. Tettamanzi. Université de Nice Sophia Antipolis Département Informatique

DISTRIBUTED COMPUTER SYSTEMS

02 - Distributed Systems

DS 2009: middleware. David Evans

SAI/ST course Distributed Systems

Communication. Layered Protocols. Topics to be covered. Layered Protocols. Introduction

Introduction Distributed Systems

Distributed Systems Principles and Paradigms

Communication. Distributed Systems IT332

May Gerd Liefländer System Architecture Group Universität Karlsruhe (TH), System Architecture Group

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

DISTRIBUTED COMPUTER SYSTEMS

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

Chapter 4 Communication

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

Lecture 06: Distributed Object

Distributed Information Processing

Today CSCI Remote Method Invocation (RMI) Distributed Objects

CHAPTER - 4 REMOTE COMMUNICATION

Today CSCI Communication. Communication in Distributed Systems. Communication in Distributed Systems. Remote Procedure Calls (RPC)

Distributed Middleware. Distributed Objects

Distributed Systems

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

CS454/654 Midterm Exam Fall 2004

Networks and distributed computing

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Distributed Systems Exam 1 Review. Paul Krzyzanowski. Rutgers University. Fall 2016

Lecture 15: Network File Systems

TDP3471 Distributed and Parallel Computing

Today: Distributed Middleware. Middleware

Lecture 5: Object Interaction: RMI and RPC

Communication in Distributed Systems

Concepts of Distributed Systems 2006/2007

Introduction to Distributed Systems (DS)

Large Systems: Design + Implementation: Communication Coordination Replication. Image (c) Facebook

CS 403/534 Distributed Systems Midterm April 29, 2004

Electronic Payment Systems (1) E-cash

MODELS OF DISTRIBUTED SYSTEMS

Introduction to Distributed Systems

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

CSE 5306 Distributed Systems. Course Introduction

Distributed Systems Inter-Process Communication (IPC) in distributed systems

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

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

System Models for Distributed Systems

Distributed Systems LEEC (2006/07 2º Sem.)

Client Server & Distributed System. A Basic Introduction

Remote Procedure Call. Tom Anderson

Collaboration of Tasks

Chapter 17: Distributed Systems (DS)

CAS 703 Software Design

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

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

Remote Procedure Call

Dr Markus Hagenbuchner CSCI319 SIM. Distributed Systems Chapter 4 - Communication

CSE Traditional Operating Systems deal with typical system software designed to be:

CHAPTER 4: INTERPROCESS COMMUNICATION AND COORDINATION

Module 1 - Distributed System Architectures & Models


Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

Transcription:

Course Plan and Department of Computer Science Indian Institute of Technology New Delhi, India

Outline Plan 1 Plan 2 3 Message-Oriented

Lectures - I Plan Lecture Topic 1 and Structure 2 Client Server, RPC Message Queue, Stream 3 Multicast Epidemic, Gossip 4 Naming : DNS, Chord 5 Naming : Pastry, Tapestry, LDAP 6 Physical Clock, Logical Clock, Totally ordered multicast 7 Mutual Exclusion Algorithms 8 Leader Election Algorithms 9 Consistency - I 10 Consistency - II 11 Fault Tolerance, Log based recovery 12 Byzantine Fault Tolerance

Lectures - II Plan Lecture Topic 13 Paxos 14 Distributed Commit 15 Security Channels, Concepts 16 Security Applications Kerberos Diffie Helmann Key Exchange 17 Corba, EJB 18 AFS and NFS 19 Akamai and Corona 20 Dynamo and Voldemort 21 Coda, Fawn, and Google FS 22 Web Services 23 Dryad-LinQ

Grading Scheme Plan Component Weightage Attendance 15% Midterm 15% End term (take home) 20% Programming Assignment 1 15% Programming Assignment 2 15% Programming Assignment 3 20%

Outline Plan 1 Plan 2 3 Message-Oriented

Distributed System: Definition A distributed system is a piece of software that ensures that: a collection of independent computers appears to its users as a single coherent system Two aspects: 1 independent computers 2 single coherent system middleware.

Goals of Distributed Systems Goals Making resources available Distribution transparency Openness Scalability

Distribution Transparency Transp. Access Location Migration Relocation Replication Concurrency Failure Description Hides differences in data representation and invocation mechanisms Hides where an object resides Hides from an object the ability of a system to change that object s location Hides from a client the ability of a system to change the location of an object to which the client is bound Hides the fact that an object or its state may be replicated and that replicas reside at different locations Hides the coordination of activities between objects to achieve consistency at a higher level Hides failure and possible recovery of objects

Distribution Transparency Transp. Access Location Migration Relocation Replication Concurrency Failure Description Hides differences in data representation and invocation mechanisms Hides where an object resides Hides from an object the ability of a system to change that object s location Hides from a client the ability of a system to change the location of an object to which the client is bound Hides the fact that an object or its state may be replicated and that replicas reside at different locations Hides the coordination of activities between objects to achieve consistency at a higher level Hides failure and possible recovery of objects Note Distribution transparency is a nice a goal, but achieving it is a different story.

Degree of Transparency Aiming at full distribution transparency may be too much

Degree of Transparency Aiming at full distribution transparency may be too much Users may be located in different continents

Degree of Transparency Aiming at full distribution transparency may be too much Users may be located in different continents 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

Degree of Transparency Aiming at full distribution transparency may be too much Users may be located in different continents 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 Immediately flushing write operations to disk for fault tolerance

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

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

Scale in Distributed Systems Observation Many developers of modern distributed system easily use the adjective scalable without making clear why their system actually scales.

Scale in Distributed Systems Observation Many developers of modern distributed system 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)

Scale in Distributed Systems Observation Many developers of modern distributed system 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) Observation 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.

Techniques for Scaling Hide communication latencies Avoid waiting for responses; do something else: Make use of asynchronous communication Have separate handler for incoming response Problem: not every application fits this model

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)

Techniques for Scaling Replication/caching Make copies of data available at different machines: Replicated file servers and databases Mirrored Web sites Web caches (in browsers and proxies) File caching (at server and client)

Scaling The Problem Observation Applying scaling techniques is easy, except for one thing:

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.

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.

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 precludes large-scale solutions.

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 precludes large-scale solutions. Observation If we can tolerate inconsistencies, we may reduce the need for global synchronization, but tolerating inconsistencies is application dependent.

Outline Plan 1 Plan 2 3 Message-Oriented

Types of Distributed Systems : Structure Centralized Layered Unstructured Peer to Peer Structured Peer to Peer

Types of Distributed Systems : Synchronous vs Asynchronous Definition Synchronous System The requester waits for the response before placing other requests. Definition Asynchronous System The requester does not wait for the response before placing other requests. One example of such systems are publish/subscribe systems. A given set of nodes subscribe for a service. When a node is ready to publish some data, it looks up the list of subscribers and sends them messages.

Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions :

Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions : The network is reliable

Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions : The network is reliable The network is secure

Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions : The network is reliable The network is secure The network is homogeneous

Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions : The network is reliable The network is secure The network is homogeneous The topology does not change

Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions : The network is reliable The network is secure The network is homogeneous The topology does not change Latency is zero

Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions : The network is reliable The network is secure The network is homogeneous The topology does not change Latency is zero Bandwidth is infinite

Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions : 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

Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions : 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

and Message-Oriented Components of a distributed System Nodes that run the distributed software. ( ) network. ( )

Outline Plan Message-Oriented 1 Plan 2 3 Message-Oriented

Computing Nodes Plan Message-Oriented A compute node can either be a process or a thread Thread A thread is a light weight process that shares the address space with other threads. Process A process is the runtime image of a program. It does not share its address space. We can use regular memory reads and writes to communicate across threads. However, inter-process communication requires OS intervention. In practice, there are thousands of threads and processes distributed across hundreds of sites.

Computing Nodes - II Message-Oriented Generic solution: Message passing across threads/processes. Minimize shared data. Fetch shared data through messages from a database.

Outline Plan Message-Oriented 1 Plan 2 3 Message-Oriented

Message-Oriented How do Nodes Talk to Each Other? Distributed systems predominantly use application layer protocols. This protocol layer is known as middleware. They use standard sockets to send messages to other nodes. Paradigms for sending messages 1 Synchronous vs Asynchronous 2 Transient vs Persistent

Middleware Layer Plan Message-Oriented Observation Middleware is invented to provide common services and protocols that can be used by many different applications Note A rich set of communication protocols (Un)marshaling of data, necessary for integrated systems Naming protocols, to allow easy sharing of resources Security protocols for secure communication Scaling mechanisms, such as for replication and caching What remains are truly application-specific protocols... such as?

Outline Plan Message-Oriented 1 Plan 2 3 Message-Oriented

Basic RPC operation Message-Oriented Application developers are familiar with a simple procedure model Well-engineered procedures operate in isolation (black box) There is no fundamental reason not to execute procedures on separate machines Client Wait for result Call remote procedure Return from call Server Request Reply Call local procedure and return results Time Conclusion between caller & callee can be hidden by using procedure-call mechanism.

Basic RPC operation Client machine Message-Oriented Server machine Client process k = add(i,j) proc: "add" int: val(i) int: val(j) 1. Client call to procedure Server stub Client stub 2. Stub builds message Server process Implementation of add k = add(i,j) proc: "add" int: val(i) int: val(j) 6. Stub makes local call to "add" 5. Stub unpacks message Client OS proc: "add" int: val(i) int: val(j) Server OS 4. Server OS hands message to server stub 3. Message is sent across the network 1 Client procedure calls client stub. 2 Stub builds message; calls local OS. 3 OS sends message to remote OS. 4 Remote OS gives message to stub. 5 Stub unpacks parameters and calls server. 6 Server returns result to stub. 7 Stub builds message; calls OS. 8 OS sends message to client s OS. 9 Client s OS gives message to stub. 10 Client stub unpacks result and returns to the client.

RPC: Parameter passing Message-Oriented Parameter marshaling There s more than just wrapping parameters into a message: Client and server machines may have different data representations (think of byte ordering) Wrapping a parameter means transforming a value into a sequence of bytes Client and server have to agree on the same encoding : How are basic data values represented (integers, floats, characters) How are complex data values represented (arrays, unions) Client and server need to properly interpret messages, transforming them into machine-dependent representations.

RPC: Parameter passing Message-Oriented RPC parameter passing: some assumptions Copy in/copy out semantics: while procedure is executed, nothing can be assumed about parameter values. All data that is to be operated on is passed by parameters. Excludes passing references to (global) data. Conclusion Full access transparency cannot be realized. A remote reference mechanism enhances access transparency: Remote reference offers unified access to remote data Remote references can be passed as parameter in RPCs

Asynchronous RPCs Message-Oriented Essence Try to get rid of the strict request-reply behavior, but let the client continue without waiting for an answer from the server. Client Wait for result Client Wait for acceptance Call remote procedure Return from call Call remote procedure Return from call Request Reply Request Accept request Server Call local procedure and return results Time Server Call local procedure Time (a) (b)

Deferred synchronous RPCs Message-Oriented Client Wait for acceptance Interrupt client Server Call remote procedure Request Return from call Accept request Call local procedure Return results Acknowledge Time Call client with one-way RPC Variation Client can also do a (non)blocking poll at the server to see whether results are available.

RPC in practice Plan Message-Oriented Uuidgen Interface definition file IDL compiler Client code Client stub Header Server stub Server code #include #include C compiler C compiler C compiler C compiler Client object file Client stub object file Server stub object file Server object file Linker Runtime library Runtime library Linker Client binary Server binary

Client-to-server binding (DCE) Message-Oriented Issues (1) Client must locate server machine, and (2) locate the server. Directory machine Client machine 3. Look up server Directory server 2. Register service Server machine Client 5. Do RPC Server 1. Register endpoint 4. Ask for endpoint DCE daemon Endpoint table

Outline Plan Message-Oriented 1 Plan 2 3 Message-Oriented

Message-Oriented Message-Oriented Transient Messaging Message-Queuing System Message Brokers Example: IBM WebSphere

Transient messaging: sockets Message-Oriented Berkeley socket interface SOCKET Create a new communication endpoint BIND Attach a local address to a socket LISTEN Announce willingness to accept N connections ACCEPT Block until request to establish a connection CONNECT Attempt to establish a connection SEND Send data over a connection RECEIVE Receive data over a connection CLOSE Release the connection

Transient messaging: sockets Message-Oriented Server socket bind listen accept read write close Synchronization point socket connect write read close Client

Message-oriented middleware Message-Oriented Essence Asynchronous persistent communication through support of middleware-level queues. Queues correspond to buffers at communication servers. PUT GET POLL NOTIFY Append a message to a specified queue Block until the specified queue is nonempty, and remove the first message Check a specified queue for messages, and remove the first. Never block Install a handler to be called when a message is put into the specified queue

Message broker Plan Message-Oriented Observation Message queuing systems assume a common messaging protocol : all applications agree on message format (i.e., structure and data representation) Message broker: Centralized component that takes care of application heterogeneity in an MQ system Transforms incoming messages to target format Very often acts as an application gateway May provide subject-based routing capabilities Enterprise Application Integration

Message broker Plan Message-Oriented Source client Message broker Repository with conversion rules and programs Destination client Broker program OS Queuing layer OS OS Network

IBM s WebSphere MQ Message-Oriented Application-specific messages from queues are put into, and removed Queues reside under the regime of a queue manager Processes can put messages only in local queues, or through an RPC mechanism

IBM s WebSphere MQ Message-Oriented Message Transfer Messages are transferred between queues Message transfer between queues at different processes, requires a channel At each endpoint of channel is a message channel agent Message channel agents are responsible for: Setting up channels using lower-level network communication facilities (e.g., TCP/IP) (Un)wrapping messages from/in transport-level packets Sending/receiving packets

IBM s WebSphere MQ Message-Oriented Sending client Routing table Send queue Client's receive queue Receiving client Program Queue manager Queue manager Program MQ Interface Stub Server stub MCA MCA MCA MCA Server stub Stub RPC (synchronous) Local network Message passing (asynchronous) Enterprise network To other remote queue managers Channels are inherently unidirectional Automatically start MCAs when messages arrive Any network of queue managers can be created Routes are set up manually (system administration)

IBM s WebSphere MQ Message-Oriented Routing By using logical names, in combination with name resolution to local queues, it is possible to put a message in a remote queue Alias table LA1 QMC LA2 QMD SQ2 QMA Routing table QMB QMC QMD SQ1 SQ1 SQ2 SQ1 Alias table LA1 QMA LA2 QMD SQ1 Routing table QMA SQ1 QMC SQ1 QMD SQ1 QMB Routing table QMA SQ1 QMC SQ2 QMB SQ1 QMD SQ1 SQ2 Alias table LA1 QMA LA2 QMC QMC SQ1 Routing table QMA SQ1 QMB SQ1 QMD SQ1