Tanto RPC como REST son estilos arquitectónicos y se diferencian principalmente en las siguientes líneas:
1) REST se trata de recursos y RPC se trata más de acciones.
2) En RPC, se puede adivinar que el contrato (que forma el lenguaje de cómo se entienden el cliente y el servidor) es el servicio y todos sus procedimientos. En REST, el contrato es la interfaz uniforme. Esta restricción de interfaz uniforme define la identificación y representación de recursos, mensajes de autodescripción (información para describir cómo procesar el mensaje) e hipermedia. Para obtener más información sobre los elementos REST, le sugiero que lea la disertación de Roy Fielding http://www.ics.uci.edu/~fielding…
- ¿Cuáles son las tres diferencias importantes entre la red definida por software (SDN), la virtualización de red (NV) y la virtualización de funciones de red (NFV)?
- Si el firewall está destinado a bloquear el acceso, ¿por qué las aplicaciones de cliente en mi oficina son accesibles solo si el departamento de TI habilita el firewall?
- ¿Cuánto cuesta un enlace de 10 Gbps a un centro de datos?
- ¿Cómo sabe mi operador de red de telefonía móvil que estoy usando mi plan de datos para la vinculación?
- Si DNS usa UDP, ¿cómo se garantiza que la dirección del host será correcta?
3) En RPC, la semántica de acción y la semántica de error se especifican fuera de banda. En REST, las acciones están estandarizadas por la interfaz uniforme y también los errores.
4) En RPC, el soporte de almacenamiento en caché es limitado. Sí, puede crear aplicaciones RPC que se beneficien del almacenamiento en caché, pero no es algo que esté garantizado por el estilo RPC. En el caso de REST, el almacenamiento en caché es compatible con todos los intermediarios que entienden la interfaz uniforme.
5) En RPC, el cliente y el servidor comparten la propiedad del espacio de nombres de la URL, ya que los procedimientos pueden llamarse a través de que el cliente conozca la URL de un servicio u operación en particular. Esto significa que una vez que el cliente se ha implementado, es difícil para el servidor cambiar la estructura de URL para sus servicios. En REST, el servidor posee un espacio de nombres de URL, excepto un URL de punto de entrada único y los clientes pueden acceder a servicios individuales siguiendo los enlaces.
6) Un sistema RESTful está vinculado a la interfaz uniforme del protocolo de soporte HTTP y no puede hacer un túnel a través de múltiples protocolos, a diferencia de RPC.