La diferencia clave entre RPC y RMI es que RPC solo admite programación de procedimientos, mientras que RMI admite programación orientada a objetos.
RPC admite paradigmas de programación de procedimientos, por lo tanto, está basado en C, mientras que RMI admite paradigmas de programación orientada a objetos y está basado en Java.
Los parámetros pasados a los procedimientos remotos en RPC son las estructuras de datos ordinarias. Por el contrario, RMI transita objetos como un parámetro para el método remoto.
RPC se puede considerar como la versión anterior de RMI, y se usa en los lenguajes de programación que admiten la programación de procedimientos, y solo puede usar el método de pasar por valor. Por el contrario, la instalación de RMI está diseñada en base a un enfoque de programación moderno. Otra ventaja de RMI es que los parámetros pasados por referencia se pueden cambiar.
El protocolo RPC genera más gastos generales que RMI.
Los parámetros pasados en RPC deben ser «entrantes», lo que significa que el valor pasado al procedimiento y el valor de salida deben tener los mismos tipos de datos. Por el contrario, no hay obligación de pasar parámetros de «entrada-salida» en RMI.
En conclusión, tanto RPC como RMI tienen el mismo propósito, pero se usan en lenguajes que admiten diferentes paradigmas de programación, por lo tanto, tienen características distintas.