distributed systems

20
Distributed Systems Lecture #1: Remote Communication

Upload: india-guzman

Post on 01-Jan-2016

12 views

Category:

Documents


1 download

DESCRIPTION

Distributed Systems. Lecture #1: Remote Communication. Communication. Communication across address spaces Local Remote Same Rules apply Transparency Fault-isolation Consistency. Overview. Mechanism Message Passing Abstractions Message Passing Synchronous: Procedure Calls - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Distributed Systems

Distributed Systems

Lecture #1: Remote Communication

Page 2: Distributed Systems

Communication• Communication across address spaces

– Local– Remote

• Same Rules apply

– Transparency– Fault-isolation– Consistency

Page 3: Distributed Systems

Overview• Mechanism

– Message Passing

• Abstractions– Message Passing– Synchronous: Procedure Calls– Asynchronous: Events– Coupled: Shared Memory– De-coupled: Tuple-spaces

Page 4: Distributed Systems

Layered Communication

Application

Distributed System (RPC)

Socket

OSTCP/IPUDP/IP

Page 5: Distributed Systems

Local CommunicationHow would 2 processes communicate?

• Message Passing: Sockets• Shared Memory: Files

• Procedural call (across address space)?• Ever used local RPC?

•Heard of OLE? COM?

Page 6: Distributed Systems

RPC Enables Modularization• Clients and Servers

– Better software engineering• Well-defined interfaces between• Client• Service provider

– Fault-isolation• Client failure does not affect the server• Centralized consistency management

– Security– Scalable Performance: Server not constrained by

client

Page 7: Distributed Systems

Local RPC• Transparency!

– Makes sense?

• Issues:– What transpires in a subroutine call?

Page 8: Distributed Systems

RPC Components

Client Server

Stub Skeleton

Client Framework Server Framework

Network

Page 9: Distributed Systems

(Local) RPC Issues• Transfer of control and data across

address spaces– Binding– Data Marshalling– Thread Migration– Synchronization

Page 10: Distributed Systems

Remote RPC• Same Issues

– BUT transparency makes sense?• To what degree?

– Modularization– Fault-isolation

• But masking?• Failure may be partial

– Time? • Consistency

– Scalable Performance?

Page 11: Distributed Systems

Case Study: Sun RPC• Used in NFS• What does an RPC system consist of? 1. Standards for wire format of RPC msgs and data types. XDR, XML

2. Library of routines to marshal / unmarshal data. 3. Stub generator, Client: marshal, invoke, wait, unmarshal reply. For server: unmarshal arguments, invoke server function, marshal reply. 4. Server framework: Dispatch each call message to correct server stub. 5. Client framework: Give each reply to correct waiting thread / callback.

6. Binding: how does client find the right server?

Page 12: Distributed Systems

Sun RPC• What does a Sun RPC request contain?• Wire format

– Xid

– Call orreply

– RPC version

– program #

– program version

– procedure #

– auth bits

– Marshalled arguments

Page 13: Distributed Systems

Marshalling: Sun RPC• Marshaling arguments• "Linearize" data • "Externalize" data: Formats defined by XDR standard

Easy for e.g. int -- same representation, though portable byte order...Collections? include a length.

Pointers? Pass by value or reference?

• Return Values– How to return?

• IDL: In, Out, INOut

• RMI: Objects– Recursive packing

Page 14: Distributed Systems

RPC: Summary• Synchronous, Blocking• Mimics a procedural call• Involves:

– Data transfer: Marshaling– Thread Migration

Page 15: Distributed Systems

NFS Transparency• Tension between performance and

consistency– Syntax preserved– Not Semantics– File read/write semantics

• Only check on open()• Consistency?

– Events!

• Expose Distribution: Java RMI

Page 16: Distributed Systems

Events• Subscribe/notify

• Asynchronous

• Non-blocking

Subscribe

Notify

Page 17: Distributed Systems

Events• Better performance than polling for larger tasks

– Do it, let me know when you are done

• Preferred mode of communication for interactive applications: none-blocking

• But Harder to program– Synchronization– Spaghetti code

Page 18: Distributed Systems

Programming Events

Main thread

Events Handler

Subscribe

Notify

Page 19: Distributed Systems

Distributed Shared Memory

Int x;x = 10;

Int x;..print x;

X = 10• Consistency?• Deadlock?• DSM abstraction?

• Make it explicit

Page 20: Distributed Systems

Tuple-spaces

Tuple-space

• Explicit DSM• Tuple as the atomic data object • Clearly defined semantics for insert/read/peak