X hits on this document

63 views

0 shares

0 downloads

0 comments

9 / 21

Implementing Remote Procedure Calls

  • 47

Caller machine

Grapevine

Callee machine

User

User-stub

RPCRuntime

RPCRuntime Server-stub

Server

Record in

-.-Export

/

Export

table;

A,B,

A,BI

1

Do update I__

  • --

    SetConnect

Do update I__

  • --

    Addmember

" /

~ return

Import

Import

A,B

--~ A,B

return

/ ~ - - r e s u l t Record

  • - -

    GetConnect - - Lookup

    • #

      I

BindA,B

Table lookup I

x~-Fy

~

F =>3

  • -

    ~

transmit

Check UID in table

  • -

    ~!3=)F

  • -

    ~ x4-Fy

importer I exporter interface

importer I exporter interface

Fig. 2. remote

The sequence of events in binding and a subsequent call. The interface with type A and instance B. The caller machine then

callee machine exports imports that interface.

the We

then show the caller initiating The return is not shown.

a

call

to

procedure

F,

which

is

the

third

procedure

of

that

interface.

and the binding succeeds. The exporter network address, identifier, and table index are remembered by the user-stub for use in remote calls.

Subsequently, when that user-stub is making a call on the imported remote interface, the call packet it manufactures contains the unique identifier and table index of the desired interface, and the entry point number of the desired procedure relative to the interface. When the RPCRuntime on the callee machine receives a new call packet it uses the index to look up its table of current exports (efficiently), verifies that the unique identifier in the packet matches that in the table, and passes the call packet to the dispatcher procedure specified in the table.

There are several variants of this binding scheme available to our clients. If the importer calling Importlnterface specifies only the interface type but no instance, the RPCRuntime obtains from Grapevine the members of the Grape- vine group named by the type. The RPCRuntime then obtains the network address for each of those Grapevine individuals, and tries the addresses in turn to find some instance that will accept the binding request: this is done efficiently,

ACM Transactions on Computer Systems, Vol.2, No. 1, February 1984

Document info
Document views63
Page views63
Page last viewedThu Dec 08 06:45:31 UTC 2016
Pages21
Paragraphs669
Words10995

Comments