RPC Middleware

RPC Middleware

Remote Procedure Call (RPC) is a protocol that one program can use to request a service from a program located in another computer on a network without having to understand the network's details. A procedure call is also sometimes known as a function call or a subroutine call.

    What is Middleware?

  • Layer between OS and distributed applications
  • Hides complexity and heterogeneity of distributed system
  • Bridges gap between low-level OS communications and programming language abstractions
  • Provides common programming abstraction and infrastructure for distributed applications

    What is Remote Procedure Calls (RPC)?

  • Masks remote function calls as being local
  • Client/server model
  • Request/reply paradigm usually implemented with message passing in RPC service
  • Marshalling of function parameters and return value

RPC uses the client-server model. The program requesting is a client and a server provides the program. RPC works as a synchronous operation and the requesting program is suspended until the client receives an answer from the server with the remote procedure answer.

Using threads we can simultanously do multiple calls from client to server doing different requests.

There are different options about for legacy modernization - each of them with advantages and disadvatanges.

  • When program statements that use RPC framework are compiled into an executable program, a stub is included in the compiled code that acts as the representative of the remote procedure code. When the program is run and the procedure call is issued, the stub receives the request and forwards it to a client runtime program in the local computer.
  • Middleware is computer software that provides services to software applications beyond those available from the operating system.
  • It connects two or more software applications enabling communications and procedures among them. The term is most commonly used for software that enables communication and management of data in distributed applications


Several different technologies support remote procedure calls - Java RMI - DCOM - CORBA - Web Services - .NET Remoting