Upload
abhishek-pachisia
View
936
Download
3
Embed Size (px)
DESCRIPTION
Remote Procedure Call
Citation preview
Procedure
Made By:Abhishek Pachisia
B.Tech-IT090102801
Call
Remote
Abhishek Pachisia 2
ForewordFlaw in Client Server Model.
Input/ OutputBirrell & Nelson – Simple Idea with subtle
implications.Call procedures located on other machines
ProblemsDifferent address – ComplicationsNon- identical MachinesCrashing of machines
Widely Used.
Abhishek Pachisia 3
IndexBasic RPC Operation
Parameter Passing
Dynamic Binding
Abhishek Pachisia 4
Basic RPC OperationSingle Machine Procedure Call
Count = read(fd, buf, nbytes);
cc
Abhishek Pachisia 5
StubsClient stub
Packs parameter into message.Calls : Send & Receive.
Server StubCalls : Receive & Send.Unpacks parameter from the message.
Details of message passing are hidden – two libraries.
Abhishek Pachisia 6
Abhishek Pachisia 7
Steps1. The client procedure calls the client stub in the normal way. 2. The client stub builds a message and traps to the kernel.3. The kernel sends the message to the remote kernel.4. The remote kernel gives the message to the server stub.5. The server stub unpacks the parameters and calls the server.6. The server does the work and returns the result to the stub.7. The server stub packs it in a message and traps to the kernel.8. The remote kernel sends the message to the clients kernel.9. The client’s kernel gives the message to the client stub.10. The stub unpacks the result and returns to the client.
Abhishek Pachisia 8
Client-side stubLooks like local server
functionSame interface as local
functionBundles arguments into
message, sends to server-side stub
Waits for reply, un-bundles results
Returns to kernel
Server-side stubLooks like local client
function to serverListens on a socket for
message from client stubUn-bundles arguments to
local variablesMakes a local function
call to serverBundles result into reply
message to client stub
Abhishek Pachisia 9
Parameter PassingParameter Marshaling.Ex: Remote procedure “sum( i, j)”.
Identical machines.0
Abhishek Pachisia 10
Different Machine TypesEx: IBM mainframes (EBCDIC) & IBM PCs(ASCII).
Different representation of Integers (1s compliment & 2s Compliment), Floating point numbers.
Numbering of bytesRight to Left (Ex: Intel 486) – Little Endian.Left to Right (Ex: Sun SPARC) – Big Endian.
Problems - Parameter Passing
Abhishek Pachisia 11
Example - 1
Abhishek Pachisia 12
Example - 2
Abhishek Pachisia 13
Representation of InformationCanonical Form
Convert internal representation while marshaling.Ex:
2’s compliment for integers.0 for ASCII.1 for Boolean.IEEE format for floating point no.
Abhishek Pachisia 14
Pointer PassingOne way is to forbid the pointers & reference parameters
in general. – Highly undesirableOne strategy is copying the whole array/structure
(simple) into message.Call by reference is replaced by copy/restore.Optimization – Buffer knows if stub is an input / output
parameter. (Twice as efficient).Pointer is followed (dereferenced) by putting it in the
register. – Highly Inefficient.
Abhishek Pachisia 15
Dynamic Binding
Hardwiring network add. of server into client – Extremely Inflexible
To avoid problems likeReplication of serverRelocationMigrationInterface Change
Abhishek Pachisia 16
Server’s Specification :For Stateless Server
Server Version number List of procedures provided by
server in: file sent from client to
server. out: sent from server to client in out: in + out (Copy/Restore) bytes: no. of bytes to be
transferred. position: where in file to begin buf: data requested by
client is placed here by file server.
Abhishek Pachisia 17
TermsExports InterfaceImports InterfaceBinderRegistering
Unique Id – Typically 32 bit longHandle
System DependentIP Add. , Ethernet Add. , etc.
Abhishek Pachisia 18
Disadvantages
Overhead Exporting & ImportingCosts TimeMany short lived client process may have to start over again.Binder may act as bottleneck in distributed system.Registering / Deregistering of interfaces creates more
overhead.
ThankYou