Remote Procedure Call
is a technique that allows a program to invoke a procedure or a function on another machine.
- Abstracts the details of the communication (protocols, sockets, serialization)
- The main components are the client stub, server stub, and communications module.
- Client Stub: This is a proxy for the remote function. (marshaling and unmarshalling data)
- Server Stub: This is a proxy on the server side for the actual function (unmarshalling and marshaling data).
- Communications Module: handles communication, errors, and timeouts.
- Pros: modularity, scalability, performance, and reusability; great for distributed solutions.
- Cons: Binary protocols can be an issue for some companies (firewalls).
- Examples: gRPC, XML-RPC, Java RMI, CORBA, DCOM, SOAP, JSON-RPC, and REST