A Historical Overview of Remote Procedure Call (RPC) Technologies and Middleware
This article traces the evolution of Remote Procedure Call (RPC) from its early definitions in the 1970s through various middleware implementations like CORBA, Java RMI, Thrift, and gRPC, highlighting key concepts, criticisms, and modern developments in distributed systems.
In the winter of 1974, Jon Postel published RFC 674, introducing the Procedure Call Protocol Documents, which marked the beginning of RPC concepts that would shape networked resource sharing.
1. From IPC to RPC Inter-Process Communication (IPC) includes sockets, which enable communication across machines. The Berkeley Socket, created by Bill Joy, became the foundation for TCP/IP networking and modern remote communication.
Remote Procedure Call (RPC) abstracts remote method invocation, making the network communication transparent to programmers, though critics warn that this transparency can create a false sense of zero-cost communication.
2. The Middleware Era The 1990s saw the rise of CORBA, which introduced distributed objects and the Object Request Broker (ORB) to handle communication, using GIOP/IIOP as wire protocols and IDL for language‑agnostic interfaces. Java introduced RMI and later EJB, offering simpler, language‑specific RPC solutions.
3. RPC’s Decade Cycle Scholars like Tanenbaum and Jim Waldo critiqued RPC’s assumptions, identifying issues such as latency, address space isolation, partial failures, and concurrency. Despite these challenges, RPC continued to evolve, with XML‑RPC and SOAP emerging in the late 1990s.
4. Modern RPC In the 2000s, open‑source frameworks like Google’s Protocol Buffers, Apache Thrift, and later gRPC revitalized RPC by providing efficient binary serialization and HTTP/2 transport, supporting bidirectional streaming and microservice architectures.
Today, RPC remains a core building block for backend services, with frameworks such as Dubbo, HSF, and fbthrift continuing the tradition of enabling scalable, high‑performance distributed systems.
Architecture Digest
Focusing on Java backend development, covering application architecture from top-tier internet companies (high availability, high performance, high stability), big data, machine learning, Java architecture, and other popular fields.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.