Remote Procedure Call Made By: Abhishek Pachisia B.Tech-IT 090102801
ForewordFlaw in Client Server Model. Input/ OutputBirrell & Nelson – Simple Idea with subtle implications. Call procedures located on other machinesProblems Different address – Complications Non- identical Machines Crashing of machinesWidely Used.
StubsClient stub Packs parameter into message. Calls : Send & Receive.Server Stub Calls : Receive & Send. Unpacks parameter from the message.Details of message passing are hidden – two libraries.
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.
Client-side stub Server-side stubLooks like local server Looks like local client function function to serverSame interface as local Listens on a socket for function message from client stubBundles arguments into Un-bundles arguments to message, sends to server- local variables side stub Makes a local functionWaits for reply, un- call to server bundles results Bundles result into replyReturns to kernel message to client stub
Parameter PassingParameter Marshaling.Ex: Remote procedure “sum( i, j)”. 0Identical machines.
Problems - Parameter PassingDifferent Machine Types Ex: IBM mainframes (EBCDIC) & IBM PCs(ASCII).Different representation of Integers (1s compliment & 2s Compliment), Floating point numbers.Numbering of bytes Right to Left (Ex: Intel 486) – Little Endian. Left to Right (Ex: Sun SPARC) – Big Endian.
Example - 1
Example - 2
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.
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.
Dynamic BindingHardwiring network add. of server into client – Extremely InflexibleTo avoid problems like Replication of server Relocation Migration Interface Change
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.
TermsExports InterfaceImports InterfaceBinderRegistering Unique Id – Typically 32 bit longHandle System Dependent IP Add. , Ethernet Add. , etc.
DisadvantagesOverhead 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.