Está en la página 1de 7

Llamadas a Procedimientos Remotos (RCP) Protocolos Comunicacin - Es una convencin o estndar que controla o permite la conexin y/o transferencia

a de datos entre dos puntos finales, controlando la sintaxis, semntica y sincronizacin de la comunicacin. - Los protocolos pueden ser implementados por hardware, software, o una combinacin de ambos. A su ms bajo nivel, un protocolo define el comportamiento de una conexin de hardware. - Ejemplo: dos computadores conectados en la misma red pero con protocolos diferentes no podran comunicarse jams, para ello, es necesario que ambas "hablen" el mismo idioma - Los protocolos pueden variar mucho en propsito y sofisticacin, la mayora especifica una o ms de las siguientes propiedades: * Deteccin de la conexin fsica subyacente, o la existencia de otro punto final o nodo. * Handshaking. * Negociacin de varias caractersticas de la conexin. * Cmo iniciar y finalizar un mensaje. * Procedimientos en el formateo de un mensaje. * Qu hacer con mensajes corruptos o formateados incorrectamente (correccin de errores). * Cmo detectar una prdida inesperada de la conexin, y qu hacer entonces. * Terminacin de la sesin y/o conexin. - Los protocolos se pueden dividir en niveles de abstraccin, una de las clasificaciones ms estudiadas es la OSI: Nivel Nombre Categora de aplicacin Aplicacin de presentacin de sesin de transporte de red Transporte de de enlace de datos datos. Nivel fsico

Capa Capa Capa Capa Capa Capa Capa

7 6 5 4 3 2 1

Nivel Nivel Nivel Nivel Nivel Nivel

A su vez se subdividir en dos categoras, las capas superiores que trabajan con problemas particulares a las aplicaciones, y las capas inferiores que se encargan de los problemas pertinentes al transporte de los datos.

- Otra clasificacin, ms prctica y que es la apropiada para el protocolo TCP/IP, podra ser esta: Nivel Capa Capa Capa Capa Capa de aplicacin de transporte de red de enlace de datos fsica

- Los protocolos de cada capa tienen una interfaz bien definida. - Una capa generalmente se comunica con la capa inmediata inferior, la inmediata superior, y la capa del mismo nivel en otros computadores de la red. - Esta divisin de los protocolos ofrece abstraccin en la comunicacin. - Ejemplos: Una aplicacin (capa nivel 7) por ejemplo, solo necesita conocer cmo comunicarse con la capa 6 que le sigue, y con otra aplicacin en otro computador (capa 7). No necesita conocer nada entre las capas de la 1 y la 5. As, un navegador web (HTTP, capa 7) puede utilizar una conexin Ethernet o PPP (capa 2) para acceder a la Internet, sin que sea necesario cualquier tratamiento para los protocolos de este nivel ms bajo. De la misma forma, un router slo necesita de las informaciones del nivel de red para enrutar paquetes, sin que importe si los datos en trnsito pertenecen a una imagen para un navegador web, un archivo transferido va FTP o un mensaje de correo electrnico. - Protocolos comunes: IP (Internet Protocol) UDP (User Datagram Protocol) TCP (Transmission Control Protocol) DHCP (Dynamic Host Configuration Protocol) HTTP (Hypertext Transfer Protocol) FTP (File Transfer Protocol) Telnet (Telnet Remote Protocol) SSH (Secure Shell Remote Protocol) POP3 (Post Office Protocol 3) SMTP (Simple Mail Transfer Protocol)

IMAP (Internet Message Access Protocol) SOAP (Simple Object Access Protocol) PPP (Point-to-Point Protocol) STP (Spanning Tree Protocol) SUPER (Supreme Perpetued Resudict) DNS (Domain Name System) ICMP (Internet Control Message Protocol) Protocolo TCP/IP - Este protocolo fue desarrollado originalmente por el ARPA (Advanced Research Projects Agency) del Departamento de Defensa de los Estados Unidos. - TCP/IP (Transmition Control Protocol/Internet Protocol) hace posible enlazar cualquier tipo de computadoras, sin importar el sistema operativo que usen o el fabricante. - Actualmente, la red mundial llamada Internet usa este protocolo. - Este sistema de IP permite a las redes: enviar correo electrnico (e-mail), transferencia de archivos (FTP), tener una interaccin con otras computadoras (TELNET) no importando donde estn localizadas, es necesario tener accesibilidad a Internet. - Arquitectura de Interconexin de Redes en TCP/IP, Caractersticas: Protocolos de no conexin en el nivel de red. Conmutacin de paquetes entre nodos. Protocolos de transporte con funciones de seguridad. Conjunto comn de programas de aplicacin. - Hay que tener en cuenta la arquitectura que se propone para comunicar redes. - Tal arquitectura ve como iguales a todas las redes a conectarse, sin tomar en cuenta el tamao de ellas, ya sean locales o de cobertura amplia. - Define que todas las redes que intercambiarn informacin deben estar conectadas a una misma computadora o equipo de procesamiento. - A tales computadoras se les denominan compuertas, pudiendo recibir otros nombres como enrutadores o puentes. - Direcciones IP: Longitud de 32 bits. Identifica a las redes y a los nodos conectados a ellas. Especifica la conexin entre redes. Se representan mediante cuatro octetos, escritos en formato decimal, separados por puntos. - Para comunicarse las computadoras deben estar identificadas con precisin

- Este identificador puede estar definido: en niveles bajos (identificador fsico) o en niveles altos (identificador lgico) dependiendo del protocolo utilizado. - TCP/IP utiliza un identificador denominado direccin IP, cuya longitud es de 32 bytes. - La direccin IP identifica tanto a la red a la que pertenece una computadora como a ella misma dentro de dicha red. Funcionamiento general de los RPC - Proceso llamador (cliente): Proceso realiza la llamada a una funcin. Llamada empaqueta id. de funcin y argumentos en mensaje Enva mensaje a otro proceso. Queda a la espera del resultado. Al recibirlo, lo desempaqueta y retorna el valor - Proceso llamado (servidor): Recibe mensaje con id. de funcin y argumentos. Se invoca funcin en el servidor. Resultado de la funcin se empaqueta en mensaje Se transmite mensaje de respuesta al cliente. Ejemplos de entornos RPC - Sun-RPC (ONC-RPC: Open Network Computing-RPC): RPC muy extendido en entornos Unix, infraestructrua sobre la que se ejecuta NFS (servicio de sistema de ficheros en red), NIS (servicio de directorio). - DCE/RPC (Distributed Computing Environmen RPC): RPC definido por la Open Software Foundation - Acceso a variables globales y efectos laterales en el cliente no son posible Procedim. remoto (servidor) no tiene acceso al espacio de direcciones del cliente imposibilidad de usar punteros RPC impone un mayor nivel de encapsulamiento -Los parmetros para la llamada remota no pueden pasarse por referencia (slo por valor) Generalmente se usan mecanismos de copia y restauracin para simular el paso por valor. - Rendimiento de llamadas RPC mucho menor que en llamadas locales Mayor sobrecarga en llamadas RPC (transferencia por red, aplanamiento de datos, etc) - En alguno entornos se limita el intercambio de estructuras complejas, en otros se usan mtodos de aplanado/desaplanado

Diferencias con llamadas locales (LPC)- En el manejo de errores se diferencia bastante en un ambiente de RPC y una LPC Con RPC pueden existir fallos en servidor remoto o en la red Deben detectarse y notificarse al llamador (cliente) - Acceso a variables globales y efectos laterales en el cliente no son posible Procedimiento remoto (servidor) no tiene acceso al espacio de direcciones del cliente imposibilidad de usar punteros RPC impone un mayor nivel de encapsulamiento - Los parmetros para la llamada remota no pueden pasarse por referencia (slo por valor) Generalmente se usan mecanismos de copia y restauracin parasimular el paso por valor - Rendimiento de llamadas RPC mucho menor que en llamadas locales Mayor sobrecarga en llamadas RPC (transferencia por red, aplanamiento de datos, etc) En algunos entornos se limita el intercambio de estructuras complejas, en otros se usan mtodos de aplanado/desaplanado. Comportamiento ante fallos - Aspecto clave que determina la equivalencia semntica entre llamadas remotas y llamadas locales. - Llamadas locales ofrecen una semnticaexactamente una vez (ejecucin fiable) El entorno de ejecucin de las llamadas locales garantiza que el procedimiento llamado se ejecuta exactamente una vez Llamada termina devolviendo un valor de retorno si tuvo xito o una indicacin del error (excepcin, cdigo de error) en caso de fallo Llamador se queda en espera indefinidamente hasta que finalice llamada ~ En RPC no es posible espera indefinida (posibilidad de fallos) - En llamadas remotas las posibles fuentes de fallos son mltiples: - Fallos en los procedimientos llamados La ejecucin del proceso llamado se detiene por errores del hardware o del sistema operativo que lo ejecuta (ej.: cada del sistema) *Tambin por errores internos del propio procedimiento (divisiones por 0, ndices de arrays fuera de rango, etc) - Fallos en la comunicacin Perdida de la conexin: la red deja de enviar paquetes (cada de la red, perdida de un enlace) Corrupcin del contenido de alguno de los mensajes enviados Perdida de paquetes: algn mensaje/s no llega a su destino

Recepcin fuera de orden: paquetes retrasados recibidos de forma desordenada

- Otros fallos: bugs en el proceso llamado, ataques, etc

- En general el proceso cliente no tiene capacidad para distinguir los diferentes tipos de errores Cliente solo percibe que una o ms de sus peticiones no reciben respuesta, pero no llega a saber por qu: ~ la peticin(llamada) no lleg al proceso remoto ~ el servidor est cado o no ha llegado a procesar la peticin ~ la peticin lleg y el servidor la proces, pero la respuesta no lleg al cliente ~ otros,... Dependiendo de los mecanismos definidos y de la semntica se puede volver a pedir la ejecucin del procedimiento remoto o no

- La forma de gestionar los fallos por parte del entorno RPC determina la semntica efectiva de las llamadas remotas. Herramientas para controlar los fallos ~ Uso de mensajes de asentimiento (ACKs) con o sin temporizadores (time-out): - permiten confirmar la recepcin de cada mensaje y detectar la prdida de mensajes ~ Uso de nmeros. de secuencia y control de duplicados: - cliente y servidor asocian un identificador a sus mensajes - el otro extremo mantiene lista con los IDs de los mensajes recibidos - se mantiene una copia de los mensajes enviados ms recientemente junto con sus IDs Semntica de las llamadas RPC - Dependiendo del modelo de gestin de fallos por parte del entorno RPC se pueden soportar distintas aproximaciones a la semntica exactamente una vez de las llamadas locales (LPC) * No es posible garantizar la semntica exactamente una vez debido a la posibilidad de fallos de comunicacin * 3 tipos de semntica en llamadas RPC (de menor a mayor complejidad): ~ semntica tal-vez ~ semntica al-menos-una-vez ~ semntica como-mximo-una-vez - Semntica tal-vez: Procedimiento remoto puede ejecutarse una vez o ninguna Cliente puede recibir una respuesta o ninguna Funcionamiento: Cliente enva peticin y queda a la espera un tiempo Si no llega respuesta dentro del tiempo de espera, contina su ejecucin

Cliente no tiene realimentacin en caso de fallo (no sabe que pas) Solo admisible en aplicaciones donde se tolere la prdida de peticiones y la recepcin de respuestas con retaso (fuera de orden) Semntica al-menos-una-vez Procedimiento remoto se ejecuta una o mas veces Cliente puede recibir una o mas respuestas Funcionamiento: Cliente enva peticin y queda a la espera un tiempo Si no llega respuesta o ACK dentro del tiempo de espera, repite la peticin Servidor no filtra peticiones duplicadas ) procedim. remoto puede ejecutarse repetidas veces Cliente puede recibir varias respuestas Solo es aplicable cuando se usan exclusivamente operaciones idempotentes (repetibles) Una operacion es idempotente si se puede ejecutar varias veces resultando el mismo efecto que si se hubiera ejecutado solo una Nota: en ocasiones una operacion 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 FJRP, FMBR 2008/09 ccia SCS 7 Semantica como-maximo-una-vez El procedimiento remoto se ejecuta exactamente una vez o no llega a ejecutarse ninguna Cliente recibe una respuesta o una indicacion de que no se ha ejecutado el procedim. remoto Funcionamiento: Cliente enva peticion y queda a la espera un tiempo Si no llega respuesta o ACK dentro del tiempo de espera, repite la peticion Servidor filtra las peticiones duplicadas y guarda historial con las respuestas enviadas (servidor con memoria) ) procedim. remoto solo se ejecuta una vez Cliente solo recibe una respuesta si la peticion llego y se ejecuto el procedim., si no recibe informe del error Semantica mas proxima a la de llamadas a procedim. locales (semantica solo una vez) en presencia de fallos

También podría gustarte