Remote Procedure Call¶
A declared procedure invocation across an execution-context boundary, with target binding, argument transfer, remote dispatch, and an explicit result-or-failure contract.
Core Idea¶
A remote procedure call (RPC) invokes a declared operation across execution contexts. The caller supplies arguments, binding identifies an implementation, transfer carries the call, and remote code dispatches it. The system's contract determines what results, errors or silence mean.[ref-74e00d52a97a][ref-234a3bc60dda]
Scope of Application¶
Two unlike documented systems carry the five roles:
- Cedar runtime: Mesa interfaces declare operations, Grapevine binds implementations, and Lupine stubs/runtime packets transfer arguments to server code. Cedar use includes Alpine communication, without a full-scale-use claim.[^ref-74e00d52a97a]
- IBM DCE Greet: IDL declares
greet_rpc, a string binds client and server, and transferred arguments reach a manager routine; shown results are tutorial evidence, not observed production deployment. Both programs run on one machine.[^ref-234a3bc60dda]
Oracle's ONC tutorial shows a worked conversion from local to remote procedures, not a universal recipe.[^ref-348d99a03d55]
Clarity¶
A local procedure stays in the caller's context; messaging without procedure dispatch is insufficient. Physical machine separation is unnecessary, while Inter-process Communication specifically requires a process boundary that this RPC identity does not universally assume.[ref-74e00d52a97a][ref-234a3bc60dda]
Manages Complexity¶
Stubs and runtimes hide delivery details, including delay and independent failure. Cedar's successful return entails one server invocation; an exception can leave execution uncertain, so silence alone does not justify retrying.[^ref-74e00d52a97a]
Abstract Reasoning¶
Trace declaration → binding → transfer → dispatch → outcome. ONC permits batch calls with no reply and broadcast calls with multiple replies; its transaction identifier supplies no universal exactly-once guarantee.[^ref-56ffd05226e2]
Knowledge Transfer¶
Each RPC contains Interface, an identity-bearing callable contract inside the larger mechanism. Cedar and Greet transfer the roles across software designs, without requiring generated stubs, blocking calls or universal timing/failure rules; message-only asynchronous commitments are not inherent.[ref-74e00d52a97a][ref-234a3bc60dda][^ref-56ffd05226e2]
Relationships to Other Abstractions¶
Current abstraction Remote Procedure Call Domain-specific
Parents (1) — more general patterns this builds on
-
Remote Procedure Call is part of Interface Prime
Every RPC contains a declared caller-to-callee operation interface governing arguments, binding, dispatch, and outcome interpretation.
Neighborhood in Abstraction Space¶
Remote Procedure Call sits in a moderately populated region (52nd percentile for distinctiveness): it has near-neighbors but no dense thicket of look-alikes.
Family — Software & Systems Architecture (32 abstractions)
Nearest neighbors
- Command–query separation — 0.88
- One-Sided Communication — 0.86
- Variadic Function — 0.86
- Smart Contract — 0.86
- Basic Block — 0.85
Computed from structural-signature embeddings · 2026-10-17
References¶
[^ref-74e00d52a97a]: Andrew D. Birrell and Bruce Jay Nelson, “Implementing Remote Procedure Calls,” ACM Transactions on Computer Systems 2, no. 1 (February 1984), 39–59. Complete original paper at an institutional mirror; consulted §§1.3–1.5 (PDF zero-based pp. 2–5), §2 (pp. 6–8), §3.1–3.2 (pp. 10–12), and §5 (p. 19). Cedar package implementation/use is reported, but Alpine had not reached full-scale use. [^ref-234a3bc60dda]: IBM, OS/390 DCE Application Development Guide: Introduction and Style, fourth edition (September 1998), SC28-1587-03. Complete first-party manual; consulted “Creating a Sample Application: GREET,” printed pp. 58–74/PDF zero-based pp. 87–103, especially Figs. 41, 46 and 53–60. The supplied code and shown outputs are tutorial material, not independent observation of production deployment. [^ref-56ffd05226e2]: R. Thurlow, “RPC: Remote Procedure Call Protocol Specification Version 2,” RFC 5531 (May 2009), DOI 10.17487/RFC5531. Official protocol specification; consulted §4 RPC Model, §5 Transports and Semantics, and §§8.4.1–8.4.2 batch and broadcast. Its transaction-ID and failure statements are ONC-specific; it does not promise universal exactly-once execution. [^ref-348d99a03d55]: Oracle, ONC+ RPC Developer's Guide: rpcgen Tutorial (updated March 2019), “Converting Local Procedures to Remote Procedures,” Examples 1–3 and generated-file discussion. Complete first-party worked code, not a reviewer-executed deployment.