distributed computing class: bit5 instructor: aatif kamal chapter 05: distributed objects and remote...

52
Distributed Computi ng Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

Upload: arnold-woods

Post on 12-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

Distributed ComputingClass: BIT5Instructor: Aatif Kamal

Chapter 05: Distributed Objects and

Remote Invocation

Dated: Nov 2006

Page 2: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

2

Objectives of the lecture

Essence of distributed commuting To study communication between distributed

objects and the integration of remote method invocation into a programming language.

To be able to use Java RMI to program applications with distributed objects and how to use some aspects of reflection

To study the extension of the event-based programming model to apply to distributed event-based programs.

Page 3: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

3

Revision

Two alternative building blocks Datagram Socket: based on UDP, efficient but

suffer from failures Stream Socket: based on TCP, reliable but

expensive Marshalling

CORBA’s CDR and Java serialization Request-Reply protocol

Base on UDP or TCP Group communication

IP multicast is a simple multicast protocol

Page 4: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

4

Introduction Communication between distributed

objects Remote procedure call Events and notifications Java RMI case study Summary

Chapter 5: Distributed objects and remote invocation

Page 5: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

5

Layers of Middleware Provide a programming model Provide transparency

Location Communication protocols Computer hardware Operating systems Programming languages

Middleware

Page 6: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

6

Middleware layers

Applications

Middlewarelayers Request reply protocol

External data representation

Operating System

RMI, RPC and events

Page 7: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

7

Remote procedure call (RPC) Birrel and Nelson (1984) call procedure in separate process

Remote method invocation (RMI) extension of local method invocation in OO model invoke the methods of an object of another

process

Event-based model Register interested events of other objects Receive notification of the events at other objects

Distributed programming model

Page 8: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

8

Conventional Procedure Call

a) Parameter passing in a local procedure call: the stack before the call to read

b) The stack while the called procedure is active

Page 9: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

9

Client and Server Stubs Principle of RPC between a client and server program.

Page 10: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

10

Steps of a Remote Procedure Call1. Client procedure calls client stub in normal way2. Client stub builds message, calls local OS3. Client's OS sends message to remote OS4. Remote OS gives message to server stub5. Server stub unpacks parameters, calls server6. Server does work, returns result to the stub7. Server stub packs it in message, calls local OS8. Server's OS sends message to client's OS9. Client's OS gives message to client stub10. Stub unpacks result, returns to client

Page 11: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

11

Passing Value Parameters (1) Steps involved in doing remote computation through RPC

2-8

Page 12: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

12

Passing Value Parameters (2)

a) Original message on the Pentiumb) The message after receipt on the SPARCc) The message after being inverted. The little numbers in boxes

indicate the address of each byte

Page 13: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

13

Interface Specifies accessible procedures and variables Inner alteration won’t affect the user of the

interface

Interface in distributed system Can’t access variables directly Input argument and output argument Pointers can’t be passed as arguments or

returned results

Interfaces

Page 14: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

14

RPC’s Service interface specification of the procedures of the server input and output arguments of each procedure

RMI’s Remote interface Specification of the methods of an object that are available

for objects in other processes may pass objects or remote object references as arguments

or returned result

Interface definition languages program language, e.g. Java RMI Interface definition language (IDL), e.g. CORBA IDL, DCE

IDL and DCOM IDL

Interface cases

Page 15: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

15

CORBA IDL example

// In file Person.idlstruct Person {

string name; string place;long year;

} ;interface PersonList {

readonly attribute string listname;void addPerson(in Person p) ;void getPerson(in string name, out Person p);long number();

};

Page 16: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

16

Introduction Communication between distributed

objects Remote procedure call Events and notifications Java RMI case study Summary

Chapter 5: Distributed objects and remote invocation

Page 17: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

17

The object model Distributed objects The distributed object model Design issues

semantics of remote invocations Implementation

RMI above the request-reply protocol Distributed garbage collections

Discuss RMI under following headings

Page 18: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

18

The object model

Object references Objects can be accessed via object references First-class values

Interfaces A definition of the signatures of a set of methods No constructers A class can implement several interfaces, e.g. Java

Actions Initiated by an object invoking a method in another object Two affects

Change the state of the receiver Further invocations on methods in other objects

Page 19: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

19

Exceptions mechanism A clean way to deal with error conditions List exceptions at the method head throw user know exceptions Catch exceptions

Garbage collection Freeing the space occupied by cancelled objects C++: collected by programmers Java: collected by JVM

The object model

Page 20: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

20

Distributed objects

Natural extension physical distribution of objects into different processes or

computers in a distributed system

Benefits of distributed objects Enforce encapsulation

can’t access variables directly Support heterogeneous systems

Assume other architectural models then client/server Replicated objects Migrated objects

Page 21: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

21

Remote and local method invocations

invocation invocation

remote

invocationremote

local

local

local

invocation

invocation

AB

C

D

E

F

Page 22: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

22

The distributed objects model

Remote object reference A unique identifier in a distributed system May be passed as arguments and results of remote method

invocation

Remote interface remote object class implements the methods of its remote

interface

Actions in a distributed systems may incur a chain of invocations on different computers

Garbage collection Usually based on reference counting

Exception notify the client and the client handle exceptions

Page 23: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

23

A remote object and its remote interface

interface

remote

m1

m2

m3

m4m5

m6

Data

implementation

remoteobject

{of methods

Page 24: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

24

Design Issues – Invocation semantics

Choices for different delivery guarantees retry request message duplicate filtering retransmission of results

Three different semantics

Fault tolerance measures Invocation semantics

Retransmit request message

Duplicate filtering

Re-execute procedure or retransmit reply

No

Yes

Yes

Not applicable

No

Yes

Not applicable

Re-execute procedure

Retransmit reply At-most-once

At-least-once

Maybe

Page 25: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

25

Different invocation semantics

Maybe For invoker: executed once, or not at all ??? Suffer from: (1) message lost; (2) server crash Useful for app. in which occasional failed invocation are

acceptable

At least once For invoker: execute at least once, or an exception Suffer from: (1) server crash; (2) arbitrary failures for non-

idempotent method

At most once For invoker: receives result, or an exception Prevent: omission failures by retrying, arbitrary failures

Page 26: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

26

Design Issues - Transparency

What can be made transparent marshaling message passing object locating and contacting

What can’t be made transparent vulnerable to failure latency

Current consensus(Jim Waldo research paper) Syntax of remote invocation should be same as of local

invocation Difference in remote and local objects should be expressed

in their interfaces

Page 27: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

27

Implementation of RMI

The inner scene of RMI Communication module

Request/reply between client and server As discussed in chapter 4, figure 4.13 Communication module at Server side Select dispatcher at server

Remote reference module Translate between local and remote object reference Create remote object reference Remote object table

entries for remote objects held by the process entries for local proxies

Actions of RRM When a remote object is to be passed as argument or result for the first

time the remote reference module is asked to create a remote object reference, which it adds to its table

When a remote object reference arrives in a request or reply message, the remote reference module is asked for the corresponding local object reference, which may either refer to proxy or remote object

Page 28: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

28

Request-reply message structure (fig 4.13)

messageType

requestId

objectReference

methodId

arguments

int (0=Request, 1= Reply)

int

RemoteObjectRef

int or Method

array of bytes

Page 29: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

29

The role of proxy and skeleton in remote method invocation

object A object Bskeleton

Requestproxy for B

Reply

CommunicationRemote Remote referenceCommunication

module modulereference module module

for B’s class

& dispatcher

remoteclient server

Page 30: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

30

Implementation of RMI – RMI software

Proxy forward invocation to remote object one remote object one proxy implement the method in the remote interface

It marshals a reference to the target object , its own methodId and its arguments into request message and send it to the target, awaits the reply and message, unmarshals it and returns the results to invoker

Skeleton implement the method in the remote interface unmarshal the arguments in the request invoke the corresponding method in the remote object wait for the invocation complete marshal the result in the reply message

Dispatcher Receive the request from communication module and select

appropriate method in the skeleton one dispatcher and skeleton for one remote object

Page 31: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

31

Implementation of RMI - execution

The classes for proxies, dispatchers and skeletons generated automatically by an interface compiler, e.g. rmic

Server program create and initialize at least one of the remote objects register

Client program look up the remote object references Invoke Factory methods

Remote object interface cannot have constructors Remote objects are either created in initialization section or in

remote methods designed for that purpose, called factory methods

Page 32: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

32

Implementation of RMI - Object state

The binder A service that maintains mapping information of textual

names to remote object references Activation of remote objects

to avoid resource waste, the servers can be started whenever they are needed- FTP service

Activators: process that start server processes to host remote objects.

a remote object could be active or passive Passive object: consist of two parts

Implementation of its methods Its state in marshaled form

Activation: Making a new object from corresponding passive object by creating a new instance of its class and initializing its variables from the stored state

Java RMI uses one activator on each server computer , which is responsible for activating objects on that computer.

Page 33: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

33

Implementation of RMI - Object state (cont..)

Persistent object stores Persistent object

an object that is guaranteed to live between activations of processes

Persistent Object Store Manage and store the state of persistent objects

different passivate strategies at the end of a transaction when the program exit

E.g., Persistent Java, PerDiS

Page 34: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

34

Distributed garbage collection

The aim of a distributed garbage collector Retain the object (local&remote) when it is still be referenced Collect the object when none holds reference to it

Java distributed garbage collection algorithm based on reference counting

Whenever a remote object enters a process, a proxy is created and will stay there for as long as needed. The process where the actual object lives (server) should be informed, then later when there is no longer a proxy at the client, server should be informed

Distributed Garbage collection works in corporation with local garbage collectors

server maintain processes set that hold remote object references to it for each of its remote objects

client notify server to modify the process set when the process set becomes empty, server local garbage

collector reclaims the space

Page 35: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

35

Distributed garbage collection (cont..) Leases in Jini

lease: the granting of the use of a resource for a period of time

avoid to discover whether the resource users are still interested or their programs have not exited

Page 36: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

36

Introduction Communication between distributed

objects Remote procedure call Events and notifications Java RMI case study Summary

Chapter 5: Distributed objects and remote invocation

Page 37: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

37

RPC is very similar to RMI

Service interface: the procedures that are available for remote calling Invocation semantics choice: at-least-once or at-most-once Generally implemented over request-reply protocol Building blocks

Communication module Client stub procedure (as proxy in RMI): marshalling, sending, unmarshalling Dispatcher: select one of the server stub procedures Server stub procedure (as skeleton in RMI): unmarshalling, calling,

marshalling

client

Request

Reply

CommunicationCommunication module module dispatcher

service

client stub

server stubprocedure procedure

client process server process

procedureprogram

Page 38: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

38

Introduction Communication between distributed

objects Remote procedure call Events and notifications Java RMI case study Summary

Chapter 5: Distributed objects and remote invocation

Page 39: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

39

Event-notification model

Idea one object react to a change occurring in another object

Event examples modification of a document A new doc added in an electronically tagged book

Publish/subscribe paradigm event generator publish the type of events event receiver subscribe to the types of events that are interest

to them When event occur, notify the receiver

Distributed event-based system – two characteristics Heterogeneous asynchronous

Page 40: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

40

Example - dealing room system

• Requirements– allow dealers to see the latest market price information

• System components– Information provider

• receive new trading information• publish stocks prices event• stock price update notification

– Dealer process• subscribe stocks prices event

• System architecture

Page 41: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

41

Dealing room system

Dealer’s computer

Informationprovider

Dealer

Externalsource

Externalsource

Informationprovider

Dealer

Dealer

Dealer

Notification

Notification

Notification

Notification

NotificationNotification

Notification

Notification

Dealer’s computer

Dealer’s computerDealer’s computer

NotificationNotification

Page 42: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

42

Architecture for distributed event notification

Event service: maintain a database of published events and of subscribers’ interests

decouple the publishers from the subscribers

subscriberobserverobject of interest

Event service

object of interest

object of interest observer

subscriber

subscriber

3.

1.

2. notification

notification

notification

notification

Page 43: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

43

The roles of the participating objects

The object of interest its changes of state might be of interest to other objects

Event the completion of a method execution

Notification an object that contains information about an event

Subscriber an object that has subscribed to some type of events in another

object Observer objects

the main purpose is to decouple an object of interest from its subscribers

Publisher an object that declares that it will generate notifications of

particular types of event

Page 44: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

44

Notification delivery

Delivery semantics Unreliable Reliable real-time

Roles for observers Forwarding

send notifications to subscribers on behalf of one or more objects of interests

Filtering of notifications Patterns of events Notification mailboxes

notification be delayed until subscriber being ready to receive

Page 45: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

45

Jini distributed event specification

EventGenerator interface Provide register method Event generator implement it Subscriber invoke it to subscribe to the interested events

RemoteEventListener interface Provide notify method subscriber implement it receive notifications when the notify method is invoked

RemoteEvent a notification that is passed as argument to the notify method

Third-party agents interpose between an object of interest and a subscriber equivalent of observer

Page 46: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

46

Introduction Communication between distributed

objects Remote procedure call Events and notifications RPC Case Study Java RMI case study Summary

Chapter 5: Distributed objects and remote invocation

Page 47: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

49

Introduction Communication between distributed

objects Remote procedure call Events and notifications Java RMI case study Summary

Chapter 5: Distributed objects and remote invocation

Page 48: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

53

Introduction Communication between distributed objects Remote procedure call Events and notifications Java RMI case study Summary

Chapter 5: Distributed objects and remote invocation

Page 49: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

54

Summary

Two paradigms for distributed programming RMI(RPC)/Event notification: sync./async.

RMI Distributed object model

Remote interface, remote exception, naming service Remote invocation semantics

Once, at-least-once, at-most-once

Sun RPC Event-notification

Publish/subscribe Event service Example: dealing room

Page 50: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

62

Assignment 6

Q.1 From the book: Distributed Operating Systems, A. S. Tanenbaum,

Summarize section 2.4 in you own words

Q.2 Read the following paper: and summarizes in your own words. Finally give your own comments on the issues discussed in the paper.

A Note on Distributed Computing, Jim Waldo

Sun Microsystems site:

http://research.sun.com/techrep/1994/smli_tr-94-29.pdf

After carefully reading and understanding the article you have too write one page overview of this note.

Page 51: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

63

Assignment 7

Q.1 5.1

Q.2 5.3

Q.3 5.4

Q.4 5.5

Page 52: Distributed Computing Class: BIT5 Instructor: Aatif Kamal Chapter 05: Distributed Objects and Remote Invocation Dated: Nov 2006

64

Assignment 8

Q.1 5.12

Q.2 5.13

Q.3 5.17

Reading

5.3 RPC

5.5 Java RMI case study