¿Qué es RPC (llamada a procedimiento remoto)?

Publicado por

Llamada a procedimiento remoto o RPC por sus siglas en inglés (Remote Procedure Call) es una técnica que utiliza el modelo cliente-servidor para ejecutar tareas en un proceso diferente como podría ser en una computadora remota. A veces solamente se le llama como llamada a una función o subrutina remota.

¿Cómo funciona la llamada a procedimiento remoto?

  1. El cliente hace la llamada al procedimiento remoto mediante un mensaje a través de la red. Este se detiene ya que es un proceso síncrono, es decir, necesita una respuesta del servidor para poder continuar su ejecución. En esta llamada se incluye un stub (o resguardo en español) el cual se encarga de ajustar parámetros y direcciones de memoria de un ambiente (el cliente) a otro (el servidor).
  2. El servidor recibe la petición y desempaqueta el mensaje para extraer la información necesaria para realizar la tarea. El stub ayuda a que el servidor sea capaz de convertir parámetros de una representación a otra (de ser necesario), para traducir direcciones de memoria de cliente a servidor, etc.
  3. El servidor ejecuta la tarea.
  4. El servidor crea un mensaje de respuesta para el cliente en el que incluye el resultado de la tarea que este le pidió realizar.
  5. El cliente recibe y desempaqueta el mensaje de respuesta del servidor. Continua con su ejecución normal.

El stub

El stub es la pieza de código que le permite al servidor ejecutar la tarea que se le asignó. Se encarga de proveer la información necesaria para que el servidor convierta las direcciones de los parámetros que el cliente envió en direcciones de memoria válidos dentro del ambiente del servidor. La representación de datos en cliente y servidor (big-endian o little-endian) podría discrepar, el stub también provee la información necesaria para solucionar esta situación. De forma general es la pieza de código que se encarga de enmascarar toda discrepancia entre el cliente y servidor. Es necesario que las bibliotecas de stubs estén instaladas tanto en el cliente como en el servidor.

El siguiente diagrama muestra de forma resumida cómo funciona una llamada a procedimiento remoto:

Problemas con RPC

A pesar de que RPC nos ofrece muchas ventajas para brindar servicios basados en un modelo cliente-servidor, también tiene una desventaja bastante importante:

  • RPC es dependiente del lenguaje de programación que se utilice. Si quisiéramos utilizarlo para ofrecer algún servicio web, por ejemplo, es probable que necesitemos utilizar más de un lenguaje de programación del lado del cliente y del servidor, en ese momento RPC deja de ser una alternativa. Sin embargo, si todos los módulos del servicio que vamos a ofrecer a los clientes están basados en el mismo lenguaje de programación, RPC es una muy buena opción.

10 comments

  1. Buenos dias. Tenemos un ascensor y solicitamos a la empresa distribuidora, bajar la potencia contratada, y nos
    contestan que se ha rechazado la solicitud ya que no se puede instalar el RPC.
    Que es el R P C y donde se instala.

    1. Hola, gracias por leernos. Creo que deberías de preguntarle directamente al distribuidor qué es un RPC en ese contexto, probablemente sea algo distinto a lo explicado aquí. Ellos debería de ser capaces de brindarte más información.

    1. Hola, depende del lenguaje o herramienta que estes utilizando para hacer RPC. Te recomiendo que busques en la documentacion oficial.

      Gracias por leernos.

    1. Hola, si sospechas que alguien usa tu computadora de forma remota sin tu permiso, te recomiendo que utilices uno de los tantos programas anti-malware y firewalls disponibles en internet o de forma nativa en tu computadora para identificar o parar ese tipo de conexiones. Algunos son de pago, otros son gratuitos, depende de tus necesidades. De mi parte no puedo recomendarte uno en particular, pero he usado los productos de McAfee y suelen ser muy buenos.

    1. Intenta consultar el material de apoyo del software que utilizas para abrir tus fotos. Probablemente es un error ya documentado por el fabricante. Gracias por leernos.

  2. Hola mi problema va mucho mas alla y no solo me salen muchisimos rpc de esos en la memoria interna del sistema si no que me saltan yamadas en procedimiento remoto unidas a otras erramientas de espionaje que a su vez estan aderidas e incrustadas en mi pc y que ni me deja desactivar porque ademas estan con una contraseña que yo no tengo,mis sospechas de que mi movil esta pinchado son mas que obvias y ahora que leo aqui que para eso se necesita depositar en la memoria archivos infectados de mi acosador…bingo,si que los tengo,que por cierto tampoco puedo eliminar,faltaria mas…alguien sabe…que hacer con este desastre?

    1. Hola, te recomiendo utilizar herramientas de ayuda que puedes encontrar en linea para facilitarte encontrar esas vulnerabilidades; algunas de ellas son gratis. De el mismo modo, trata de buscar en Internet (blogs, tutoriales, etc.) personas que experimentaran el mismo problema, de ese modo puedes leer lo que ellos hicieron para solucionar su problema. Personalmente no he experimentado ese tipo de problemas, por tanto no creo ser capaz de recomendarte alguna herramienta o tutorial en particular. Espero que todo se solucione, y muchas gracias por leernos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *