Remote Procedure Call


Remote Procedure Call (RPC) is when a computer program causes a subroutine to execute in another address space (commonly on another computer on a shared network), which is coded as if it were a normal (local) procedure call, without the programmer explicitly coding the details for the remote interaction.

Why Remote Procedure Call now? (2017) [1]#

With all of this said, what makes Remote Procedure Call and gRPC such a promising concept to bring back from the depths of proto-internet protocols?

While much has been made of REST and other such frameworks, this work has been primarily in a space where computation power both in the client and the server has been rising dramatically. Since the advent of RPC, both sides of the equation have only gotten more and more powerful, and so more power-hungry, large-scale solutions have been acceptable tradeoffs for what power they delivered.

There’s a huge monkey wrench in the mechanism, however — the IoT, or Internet of Things. With so many small sensors and microdevices utilizing microservices to compute massive amounts of data, a need for small, power-efficient, yet still powerful protocols has given rise to the concept of Remote Procedure Call once again.

The rise of the IoT actually mimics a lot of the what created RPC in the first place. Remote Procedure Call was initially conceived of at a time where a mainframe provided more computing power than all the computers that would tie into it combined. The same can be said of the IoT, where a device has just enough processing power to do a small, microscopic local call.

This is where Remote Procedure Call shines — truly microscopic services work well with RPC, and is what makes the concept poised for a strong comeback. Add this to the strong ability to internally connect cloud resources hosted by Google itself, and you’ve got a system of distributed computing that is greater than the sum of its parts, delivering effective, powerful computational weight to even the smallest of devices.

More Information#

There might be more information for this subject on one of the following: