12
 RPC (PROTOCOLO) Integrantes: Camilo Sánchez Gonzalo rodríguez José Bohórquez Jhonatan ladino

RPC (protocolo)

Embed Size (px)

DESCRIPTION

RPC (protocolo)

Citation preview

Page 1: RPC (protocolo)

5/16/2018 RPC (protocolo) - slidepdf.com

http://slidepdf.com/reader/full/rpc-protocolo 1/12

RPC (PROTOCOLO)Integrantes:Camilo SánchezGonzalo rodríguezJosé BohórquezJhonatan ladino

Page 2: RPC (protocolo)

5/16/2018 RPC (protocolo) - slidepdf.com

http://slidepdf.com/reader/full/rpc-protocolo 2/12

QUE ES¿?

es un protocolo que permite a un programa deordenador ejecutar código en otra máquina remotasin tener que preocuparse por las comunicacionesentre ambos.

El protocolo es un gran avance sobre los socketsusados hasta el momento. De esta manera elprogramador no tenía que estar pendiente de lascomunicaciones, estando éstas encapsuladas

dentro de las RPC.

Page 3: RPC (protocolo)

5/16/2018 RPC (protocolo) - slidepdf.com

http://slidepdf.com/reader/full/rpc-protocolo 3/12

Las RPC son muy utilizadas dentro del paradigmacliente-servidor. Siendo el cliente el que inicia elproceso solicitando al servidor que ejecute ciertoprocedimiento o función y enviando éste de vuelta

el resultado de dicha operación al cliente.

Page 4: RPC (protocolo)

5/16/2018 RPC (protocolo) - slidepdf.com

http://slidepdf.com/reader/full/rpc-protocolo 4/12

HISTORIA Y ORÍGENES

La idea de RPC (Remote Procedure Call) seremonta al menos hasta 1976, cuando fue descritoen RFC 707. Una de las empresas utiliza en primerlugar de RPC era de Xerox con el nombre de "El

Correo" en 1981 . La aplicación popular primero deRPC en Unix se RPC de Sun (que ahora se llamaONC RPC), usado como base para el NFS de Sun.ONC RPC está siendo ampliamente utilizada hoy

en varias plataformas.

Page 5: RPC (protocolo)

5/16/2018 RPC (protocolo) - slidepdf.com

http://slidepdf.com/reader/full/rpc-protocolo 5/12

PASO DE MENSAJES

RPC es un paradigma claro y popular para la aplicación delcliente modelo de servidor de la informática distribuida. UnRPC es iniciada por el cliente que envía un mensaje desolicitud a un servidor remoto conocido con el fin de ejecutarun procedimiento especificado utilizando parámetrossuministrados. Una respuesta se devuelve al cliente cuandola aplicación continúa a lo largo de su proceso. Hay muchasvariaciones y matices en la ejecución de diversas, resultandoen una variedad de diferentes (incompatibles) protocolosRPC. Mientras que el servidor está procesando la llamada, se

bloquea el cliente (se espera hasta que el servidor haterminado de procesar antes de reanudar la ejecución).

Page 6: RPC (protocolo)

5/16/2018 RPC (protocolo) - slidepdf.com

http://slidepdf.com/reader/full/rpc-protocolo 6/12

Una diferencia importante entre las llamadas aprocedimiento remoto y las llamadas locales es que

las llamadas remotas pueden fracasar a causa deproblemas de red impredecibles. Además, los quellaman generalmente deben hacer frente a estosfallos sin saber si el procedimiento remoto fue en

realidad invocada. Procedimientos idempotente(aquellos que no tienen efectos adicionales si sellama más de una vez) son fáciles de manejar, perolas dificultades siguen siendo suficiente que elcódigo que llama a procedimientos remotos es a

menudo limitarse a cuidadosamente escritosubsistemas de bajo nivel.

Page 7: RPC (protocolo)

5/16/2018 RPC (protocolo) - slidepdf.com

http://slidepdf.com/reader/full/rpc-protocolo 7/12

Hay distintos tipos de RPC, muchos de ellos

estandarizados como pueden ser el RPC de Sundenominado ONC RPC (RFC 1057), el RPC deOSF denominado DCE/RPC y el Modelo deObjetos de Componentes Distribuidos de Microsoft

DCOM, aunque ninguno de estos es compatibleentre sí. La mayoría de ellos utilizan un lenguaje dedescripción de interfaz (IDL) que define losmétodos exportados por el servidor.

Page 8: RPC (protocolo)

5/16/2018 RPC (protocolo) - slidepdf.com

http://slidepdf.com/reader/full/rpc-protocolo 8/12

TERMINOLOGÍA: ONC\RPC: Open Network Computing /Remote Procedure

Call: es un protocolo de llamada a procedimiento remoto(RPC) desarrollado por el grupo ONC de Sun Microsystemscomo parte del proyecto de su sistema de archivos de RedNFS, algunas veces se lo denomina Sun ONC o Sun RPC

DCE\RPC Distributed Computing Environment / RemoteProcedure Calls: es un sistema de llamada a procedimientoremoto que permite que el software para trabajar en variosequipos, como si se tratara de todos los que trabajan en elmismo equipo. Este sistema permite a los programadores aescribir software distribuido sin tener que preocuparse por elcódigo de red subyacente.

IDL: Interface definition language: es en computación, comosu propio nombre indica un lenguaje de especificación deinterfaces que se utiliza en software de computacióndistribuida. Ofrece la sintaxis necesaria para definir losprocedimientos o métodos que queremos invocarremotamente

Page 9: RPC (protocolo)

5/16/2018 RPC (protocolo) - slidepdf.com

http://slidepdf.com/reader/full/rpc-protocolo 9/12

XML-RPC es un protocolo de llamada a

procedimiento remoto que usa XML para codificarlos datos y HTTP como protocolo de transmisión demensajes.

Es un protocolo muy simple ya que sólo define

unos cuantos tipos de datos y comandos útiles,además de una descripción completa de cortaextensión. La simplicidad del XML-RPC está encontraste con la mayoría de protocolos RPC quetiene una documentación extensa y requiere

considerable soporte de software para su uso.

Page 10: RPC (protocolo)

5/16/2018 RPC (protocolo) - slidepdf.com

http://slidepdf.com/reader/full/rpc-protocolo 10/12

 S E  G Ú N 

L A 

E  S P E  C I  F I   C A 

 C I   Ó N 

D E 

X M

L - R P  C  ,

L  O S 

P R I  N 

 C I  P A L E  S 

T I  P  O

 S D E 

D A T  O S 

 S  ON : 

Nombre Tags de ejemplo Descripción

array

<array> <data><value><i4>1404</i4></

value><value><string>Algoacá</string></value><value><i4>1</i4></value> </data> </array>

Array de valores, sinalmacenar claves

base64<base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64

>

Datos binarios codificados enbase 64

boolean <boolean>1</boolean> Valor lógico (0 o 1)

date/time<dateTime.iso8601>19980717T14:08:55</dateTime.iso8601>

Día y hora

double<double>-12.53</double>

Número de coma flotante dedoble precisión

integer<i4>42</i4>

o<int>42</int>

Número entero

string<string>Holamundo</string>

String (cadena) decaracteres. Debe seguir lacodificación XML.

struct

<struct> <member><name>foo</name><value><i4>1</i4></value> </member> <member><name>bar</name><value><i4>2</i4></value> </member></struct>

Array de valores,almacenando claves

nil <nil/> Valor nulo; una extensiónXML-RPC

Page 11: RPC (protocolo)

5/16/2018 RPC (protocolo) - slidepdf.com

http://slidepdf.com/reader/full/rpc-protocolo 11/12

UNA INVOCACIÓN XML-RPC PODRÍASER:

<?xml version="1.0"?> <methodCall>

<methodName>org.wikipedia.intercambioDatos</methodName>

<params> <param> <value><i4>360</i4></value> </param> <param> <value><i4>221</i4></value> </param> </params> </methodCall>

Page 12: RPC (protocolo)

5/16/2018 RPC (protocolo) - slidepdf.com

http://slidepdf.com/reader/full/rpc-protocolo 12/12

UNA RESPUESTA A LA INVOCACIÓN:

<?xml version="1.0"?>

<methodResponse>

<params>

<param> <value><string>Intercambio datos nro. 360 por

221</string></value> </param>

</params> </methodResponse>