liveBook · Manning

Remote procedure call

As explained in Advanced Algorithms and Data Structures

A remote call is an invocation of an operation provided by a component running outside the caller's local process or machine.

A remote procedure call invokes an operation provided by a component outside the caller’s local process or machine. In a distributed application, services communicate through a network rather than sharing one addressing space. section 11.3

Treating a remote call like a local method call introduces additional constraints:

  • The call can fail because of timeouts, application crashes, unreachable services, or network problems, independently of the requested operation’s validity. section 11.1.2
  • Latency becomes part of the operation, and an absent response may leave success uncertain: an order might have been placed even though the caller received nothing. section 11.1.2
  • Order-processing logic becomes non-linear because the application must account for remote-service availability and communication failures. section 11.3

Ordering from a retailer

An e-commerce application calls shop.order on a retailer’s separate server. The retailer’s inventory may be stale, the HTTP call may time out, or the server may crash; checking the response still may not reveal whether the order succeeded. section 11.1.2

Figure 11.5 A more realistic design for the e-commerce application, taking into account the complexity of a distributed architecture and introducing a separate application server to deal with failures of HTTP calls to the shops’ servers

Shows a distributed e-commerce design with separate retailer servers and an application server responsible for dealing with failed HTTP calls. section 11.3

How Advanced Algorithms and Data Structures covers it

How deep it goes
Explains addressing spaces, latency, and failure modes, but stops short of detailing recovery strategies.
Examples
Uses retailer inventory, shop.order, HTTP timeouts, crashed servers, and order-processing workflows.
What it assumes
Contrasts remote calls with synchronous local methods and assumes a basic understanding of applications and services.
What you can do after
Evaluate distributed workflows by accounting for latency, unreachable services, timeouts, and uncertain operation outcomes.
How it connects
Connects remote procedure calls with distributed applications, HTTP, network latency, service availability, and failure handling.

Also explained in

Compare how 5 books explain remote procedure call →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Advanced Algorithms and Data Structures. The section links point to the parts of the book it draws on.