Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una manera de implementar software en un sistema distribuido es usar la compatibilidad con redes sin procesar. Este enfoque incluye sockets, canalizaciones con nombre o TPV HTTP, GET, etc. Todos estos modelos obligan al desarrollador a usar primitivos de programación de bajo nivel, de una manera u otra, que obligan al desarrollador a tratar con la representación de datos de red (NDR), empaquetar datos, administrar el tráfico de red y las condiciones de error, la protección de la integridad de los datos y el cifrado, etc.
RPC ofrece un modelo de programación en el que el desarrollador mantiene un control granular de la interacción de red entre el cliente y el servidor a través de una API enriquecida, al tiempo que ahorra a los desarrolladores los detalles y las cargas que suele introducir un sistema distribuido.
Por ejemplo, considere la carga asociada a varios enfoques para proteger la integridad y la privacidad de los intercambios de mensajes en un sistema distribuido. Al considerar la seguridad de red para los intercambios de paquetes, algunas protecciones son más débiles, algunas más fuertes. No hay verdadera seguridad de red, solo varios mecanismos de seguridad basados en paquetes; seguridad que identifica al autor de la llamada (que tiende a ser débil, ya que el contenido del paquete a menudo se puede cambiar en tránsito), la seguridad que protege la integridad del paquete sin proteger su privacidad (varias firmas y hashes) y la seguridad que protege la privacidad del intercambio de mensajes (varios mecanismos de cifrado).
Otra carga de implementar un sistema distribuido seguro es el algoritmo necesario para implementar primitivos de seguridad, como el cifrado, la firma, la autenticación, etc. Un desarrollador puede implementar esos algoritmos, pero hacerlo es difícil, propenso a errores e incluso arriesgado, ya que los algoritmos resultantes suelen tener errores de seguridad sutiles. Como alternativa, un desarrollador puede usar un proveedor de seguridad disponible para implementar la protección de las interacciones de red dentro de un sistema distribuido.
Con RPC, ambas cargas se resuelven muy fácilmente. Un desarrollador simplemente debe indicar a RPC qué paquete de seguridad usar y qué protección de seguridad se debe aplicar al intercambio de mensajes (en términos de autenticación, cifrado, autenticación mutua, seguimiento de identidades de llamada, etc.). RPC se encarga de todos los detalles en segundo plano de una manera eficaz, pero proporciona al desarrollador control total sobre cómo se protegerán los datos precisamente.