Sei sulla pagina 1di 4

Reporte RPC

Qu son?
El RPC (del ingls Remote Procedure Call, Llamada a Procedimiento
Remoto) es un protocolo que permite a un programa de ordenador ejecutar cdigo
en otra mquina remota sin tener que preocuparse por las comunicaciones entre
ambos. El protocolo es un gran avance sobre los sockets usados hasta el
momento. De esta manera el programador no tena que estar pendiente de las
comunicaciones, estando stas encapsuladas dentro de las RPC.
Cmo funcionan?

El stub del cliente: se encarga de empaquetar los parmetros y la solicitud,


enviarlos al intermediario en el servidor, y luego esperar la respuesta,
desempaquetarla y entregarla a la aplicacin.
El programa principal del servidor (que incluye el stub y el dispatcher). Se
encarga de recibir peticiones, desempaquetar los parmetros, invocar la funcin
solicitada, pasarle los parmetros, luego obtener el resultado, empaquetarlo y
enviarlo al cliente.
Las rutinas de serializacin de datos: Se debe tomar en cuenta que las
mquinas cliente y servidor puedan ser de arquitectura diferente (y no compatible).
Servicio de binding: Responsable de la transparencia de localizacin,
gestiona la asociacin entre el nombre del procedimiento remoto (y su versin)
con su localizacin en la maquina servidor (direccin, puertos, skeleton, etc).
Realiza la bsqueda del skeleton de la implementacin concreta del procedimiento
remoto llamado por un cliente. Ejemplos: portmapper en Sun-RPC, protocolo UDDI
en servicios web, rmiregistry en Java-RMI.

Ventajas y desventajas
Ventajas:
Comparticin De Recursos
Concurrencia
Alta escalabilidad

Tolerancia a fallos

Abstrae a la aplicacin de todo lo referente a las comunicaciones, el


programa ni siquiera sabe donde esta el objeto al que llama.

Se pueden reutilizar programas anteriores simplemente aadiendo algo


de cdigo

Tiene todas las ventajas de la programacin orientada a objetos.

Se puede programas en varios lenguajes. Puedes crear un programa


con varios lenguajes distintos ya que cada una de las partes solo ver el
interfaz CORBA de la otra.

Las simplificaciones en la programacin deberan llevar a una


programacin con menos errores.

Abstrae el Sistema Operativo.

Es un estndar para todas las plataformas y abierto.

Desventajas:
Mayor complejidad
Aspectos de seguridad
El cliente es incapaz de localizar al servidor.
El mensaje de peticin del cliente al servidor se perdi.
El mensaje de respuesta del servidor al cliente se perdi.
El servidor fall (crashes) despus de recibir una peticin.
El cliente fall (crashes) despus de enviar unapeticin.
Comparativa con los sockets
RPC y sockets son 2 cosas diferentes, los sockets pueden utilizarse en RPC.
En otras palabras los sockets pueden ser entendidas por una analoga con su
direccin de apartamento.
Suponga que su direccin de departamento es 8080 xyz, calle abc, 8080
es el nmero de su apartamento y xyz siendo su nombre en la calle abc,
Del mismo modo los sockets constan de 2 partes es decir, direccin IP y nmero
de puerto.
Teniendo en cuenta la analoga el nmero de su apartamento se convierte en el
nmero de puerto y el apartamento nombre y la calle, la direccin IP.
Con esta aplicacin se puede establecer ninguna conexin y enviar datos a otro
cliente o cualquier servidor dado su direccin IP y nmero de puerto, esta es
exactamente igual que la forma de entregar una tarjeta postal.

RPC se puede pensar en la situacin (por ejemplo), cuando cada vez que llama a
un agente de atencin al cliente. Dile a tus problemas, detalles, etc. l usa su
propio sistema para averiguar la respuesta para sus problemas (que ejecutan
determinado programa o ir a travs de manuales), A continuacin, da su respuesta
para su bsqueda. Esto puede ser visto como una RPC (llamada a procedimiento
remoto). Los sockets se podran utilizar para hacer la conexin con el servidor.
"Sockets" son una abstraccin de red muy bajo nivel. Usted est obligado a hacer
frente a cuestiones potencialmente difciles como el control de identificador de
socket vida, direccin de la unin a los zcalos, resolviendo legibles (?) Nombres
en la direccin, de conexin, etc. Tambin, los dos protocolos ms comunes
utilizados por las aplicaciones en Internet ( TCP y UDP) cada uno tiene algunas
"trampas" desagradables que pueden hacer que su uso desafiante.
"RPC" es un protocolo de nivel superior. Es tambin algo protocolo neutro Siempre que el cliente y el servidor se han instalado algunos / protocolo de red
comn compartido (y asumiendo sus implementaciones RPC juegan muy bien),
entonces los dos pueden comunicarse. En Windows, RPC funciona a travs de
sockets, canalizaciones con nombre, LRPC (un mecanismo IPC local de la
mquina), y algunos otros.
Es probable que tambin vale la pena mencionar que el modelo de programacin
para los dos son muy diferentes. Programas Sockets tienden a ver las cosas en
trminos de bytes que fluyen hacia atrs y adelante a travs de la red. Programas
RPC tienden a utilizar un modelo / respuesta de solicitud: emitir la solicitud
(llamada RPC), esperar una respuesta.
Luego est SOAP, que (basado en mi escaso entendimiento) es una especie de
RPC-ish objeto a travs de HTTP (a travs de sockets).
Evidencia de funcionamiento RPC (gestin de archivos) verificando los 6
procedimientos remotos

Conclusiones
RPC es una tecnologa, tradicionalmente empleada en ambiente UNIX, que
permite el desarrollo de aplicaciones cliente/servidor basadas en el paradigma
procedimental. Con el advenimiento de implementaciones para plataforma
Windows, as como para Java, se concibe a RPC como una tecnologa de
integracin entre plataformas heterogneas de hardware y software
Referencias
http://www.dia.eui.upm.es/asignatu/sis_dis/Paco/Comunicacion.pdf
http://es.slideshare.net/crack_708/rpc

http://www.tamps.cinvestav.mx/~vjsosa/clases/sd/RPC_ppt.pdf
http://discuss.fogcreek.com/joelonsoftware3/default.asp?
cmd=show&ixPost=106659

Potrebbero piacerti anche