5.5. 5.5 Remote Procedure Call

Remote Procedure Call is an interprocess, synchronous bidirectional distributed communication and synchronization mechanism between two parallel or distributed software components. These components execute simultaneously, non-deterministically and at different relative speeds in different address spaces of different computers on a distributed memory parallel platform. A remote procedure call is carried out by a synchronous invocation, call or request by a software component (acting as a client) to execute a function or procedure that belongs to another software component (acting as a server) and which is normally executing on another computer. This is the only means of communication between parallel or distributed software components. No assumptions can be made about when calls are issued [Bri78] [And91] [Bac93] [Har98] [HX98] [And00].

5.5.1. Example

The Java programming language can be used to create and execute objects in different address spaces, executing on different processors of a distributed memory system. To allow communications between two distributed remote objects, Java makes use of the remote method invocations java.rmi and java.rmi.server [Har98] [And00] [Smi00].

This example uses the development of the remote procedure call component, based on the Remote Procedure Call idiom, for the example from Section 4.4. This supports communication between the root layer and the multithread server components for the Multiple Remote Call pattern. ...

Get Patterns for Parallel Software Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.