Diferencia entre revisiones de «Llamada a procedimiento remoto»

Contenido eliminado Contenido añadido
Marcecoro (discusión · contribs.)
m Marcecoro trasladó la página Remote Procedure Call a Llamada a Procedimiento Remoto: Españolizar "Remote Procedure Call".
Marcecoro (discusión · contribs.)
Sin resumen de edición
Línea 1:
La '''Llamada a Procedimiento Remoto''' ('''RPC''') (del [[idioma inglés|inglés]], '''Remote Procedure Call'', '''RPC''') es un [[protocolo de red|protocolo]] que permite a un programa de ordenadorcomputadora ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambosambas. El protocolo es un gran avance sobre los [[socket de Internet|''sockets'' de Internet]] usados hasta el momento. De esta manera el programador no tenía que estar pendiente de las comunicaciones, estando éstasestas encapsuladas dentro de las RPC.
 
Las RPC son muy utilizadas dentro de la [[comunicación]] [[cliente-servidor]]. Siendo el cliente el que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o función y enviando ésteeste de vuelta el resultado de dicha operación al cliente.
 
Hay distintos tipos de RPC, muchos de ellos estandarizados como pueden ser el RPC de Sun denominado [[ONC RPC]] (RFC 1057), el RPC de ''[[Open Software Foundation|OSF]]'' (OSF) denominado [[DCE/RPC]] y el "Modelo de Objetos de Componentes Distribuidos de Microsoft" (''[[Distributed Component Object Model|DCOM]]'', '''DCOM'''), aunque ninguno de estos es compatible entre sí. La mayoría de ellos utilizan un '''[[lenguaje de descripción de interfaz]]''' (''[[Interface description language|IDL]]'' o IDL) que define los métodos exportados por el servidor.
 
Hoy en día se está utilizando el [[XML]] como lenguaje para definir el IDL y el [[HTTP]] como protocolo de red, dando lugar a lo que se conoce como servicios web. Ejemplos de éstosestos pueden ser [[SOAP]] o [[XML-RPC]].
 
== Tipos de semántica ==
 
=== Semántica "tal-vez" ===
* Procedimiento remoto puede ejecutarse una vez o ninguna vez.
* El cliente puede recibir una respuesta o ninguna.
 
====; Funcionamiento ====
# El cliente envía una petición y se queda a la espera un tiempo determinado.
# Si no llega la respuesta dentro del tiempo de espera, continúa su ejecución.
Línea 18 ⟶ 20:
Sólo admisible en aplicaciones donde se tolere la pérdida de peticiones y la recepción de respuestas con retraso (fuera de orden).
 
=== Semántica "al-menos-una-vez" ===
* Procedimiento remoto se ejecuta una o más veces.
* El cliente puede recibir una o más respuestas.
 
====; Funcionamiento ====
# El cliente envía una petición y queda a la espera un tiempo.
# Si no llega respuesta o ACK dentro del tiempo de espera, repite la petición.
Línea 27 ⟶ 30:
# El cliente puede recibir varias respuestas.
 
Sólo es aplicable cuando se usan exclusivamente operaciones idempotentes (repetibles). Nota: Unauna operación es idempotente si se puede ejecutar varias veces resultando el mismo efecto que si se hubiera ejecutado sólo una. En ocasiones una operación no idempotente puede implementarse como una secuencia de operaciones idempotentes. Admisible en aplicaciones donde se tolere que se puedan repetir invocaciones sin afectar a su funcionamiento.
Sólo es aplicable cuando se usan exclusivamente operaciones idempotentes (repetibles).
Nota: Una operación es idempotente si se puede ejecutar varias veces resultando el mismo efecto que si se hubiera ejecutado sólo una. En ocasiones una operación no idempotente puede implementarse como una secuencia de operaciones idempotentes.
Admisible en aplicaciones donde se tolere que se puedan repetir invocaciones sin afectar a su funcionamiento.
 
=== Semántica "como-máximo-una-vez" ===
* El procedimiento remoto se ejecuta exactamente una vez o no llega a ejecutarse ninguna.
* El cliente recibe una respuesta o una indicación de que no se ha ejecutado el procedimentoprocedimiento remoto.
 
====; Funcionamiento ====
# El cliente envía la petición y queda a la espera un tiempo.
# Si no llega respuesta o ACK dentro del tiempo de espera, repite la petición.
Línea 41 ⟶ 43:
 
=== Resumen ===
[[Archivo:Tabla semantica rpc.png|centre|Resumen de semánticas RPC.]]
 
== Véase también ==
 
* [[ONC RPC]] Llamadallamada a procedimiento remoto de sunSun.
* [[DCE/RPC]] Llamadallamada a procedimiento remoto de Open Software Foundation.
* ''[[Distributed Component Object Model|DCOM]]'' (DCOM), Modelo de Objetos de Componentes Distribuidos de Microsoft.
* ''[[Java Remote Method Invocation|RMI]]'' (RMI), Invocación de Métodos Remotos para Java.
* [[CORBA]].
* [[XML-RPC]].
* [[SOAP]].
* [[Computación distribuida]].
* [https://www.jmasters.info:8443/jres/ JRES - Java Remote Execution Service] is a RPC protocol that uses SSL style encode mechanism to encode its calls and pure HTTP as a transport mechanism.
 
== Enlaces externos ==
 
* [http://www.sun.com Sun Microsystems] (en inglés)
* [http://www.w3sun.org/TR/soapcom/ Soapwww.sun.com] Sun Microsystems (en inglés).
* [http://www.faqsw3.org/rfcsTR/soap/rfc1057.html RFC 1057www.w3.org/TR/soap/] Soap (en inglés).
* [http://www.faqs.org/rfcs/rfc1057.html www.faqs.org/rfcs/rfc1057.html] RFC 1057 (en inglés).
* [https://www.jmasters.info:8443/jres/ www.jmasters.info:8443/jres/] '''''JRES - Java Remote Execution Service]''' is a RPC protocol that uses SSL style encode mechanism to encode its calls and pure HTTP as a transport mechanism'' (en inglés).
 
[[Categoría:Protocolos]]