Monografias.com > Computación > Redes
Descargar Imprimir Comentar Ver trabajos relacionados

Llamadas a procedimientos remotos




Enviado por Pablo Turmero



Partes: 1, 2

    Monografias.com

    Llamadas a Procedimientos Remotos

    send(msg)

    receive(rpy)

    receive(msg)

    send(rpy)
    Paso de mensajes (visión de bajo nivel)


    x=buscar(1556)

    int buscar(int cod)
    {


    return val;
    }
    Llamadas a procedimientos remotos (más alto nivel) Comodidad
    Cliente
    Cliente
    Servidor
    Servidor
    (Gp:) ¿?

    msg
    rpy
    (Gp:) ¿?

    Monografias.com

    Llamadas a Procedimientos Remotos
    Remote Procedure Call: RPC.

    Evolución:
    Propuesto por Birrel y Nelson en 1985.
    Sun RPC es la base para varios servicios actuales (NFS o NIS).
    Llegaron a su culminación en 1990 con DCE (Distributed Computing Environment) de OSF.
    Han evolucionado hacia orientación a objetos: invocación de métodos remotos (CORBA, RMI).

    Monografias.com

    Funcionamiento General de RPC
    Cliente:
    El proceso que realiza una la llamada a una función.
    Dicha llamada empaqueta los argumentos en un mensaje y se los envía a otro proceso.
    Queda la espera del resultado.
    Servidor:
    Se recibe un mensaje consistente en varios argumentos.
    Los argumentos son usados para llamar una función en el servidor.
    El resultado de la función se empaqueta en un mensaje que se retransmite al cliente.

    Objetivo: acercar la semántica de las llamadas a procedimiento convencional a un entorno distribuido (transparencia).

    Monografias.com

    Elementos Necesarios
    Código cliente.
    Código del servidor.
    Formato de representación.
    Definición del interfaz.
    Localización del servidor.
    Semánticas de fallo.


    x=buscar(1556)

    int buscar(int cod)
    {


    return val;
    }
    Cliente
    Servidor

    Monografias.com

    Código Cliente/Código Servidor
    Las funciones de abstracción de una llamada RPC a intercambio de mensajes se denominan resguardos (stubs).
    SISTEMA CLIENTE
    CÓDIGO DE LA APLICACIÓN
    PREPARA
    ENTRADA
    CONVIERTE
    SALIDA
    INICIO
    LLAMADA
    FIN
    LLAMADA
    BIBLIOT.
    EJECUCIÓN
    RPC
    ENVÍA
    ENTRADA
    RECIBE
    SALIDA
    RESGUARDO
    CLIENTE
    1
    2
    8
    9
    5
    3
    PROCEDIMIENTOS
    EJECUTA
    PROCEDIMIENTO
    REMOTO
    SISTEMA SERVIDOR
    RECIBE
    Y PASA
    RESGUARDO
    SERVIDOR
    PREPARA
    SALIDA
    TRANSMITE
    SALIDA
    CONVIERTE
    ENTRADA
    BIBLIOT.
    EJECUCIÓN
    RPC
    4
    6
    7

    Monografias.com

    Resguardos (stubs)
    Se generan automáticamente por el software de RPC en base a la interfaz del servicio.
    Son independientes de la implementación que se haga del cliente y del servidor. Sólo dependen de la interfaz.
    Tareas que realizan:
    Localizan al servidor.
    Empaquetan los parámetros y construyen los mensajes.
    Envían el mensaje al servidor.
    Espera la recepción del mensaje y devuelven los resultados.

    Se basan en una librería de funciones RPC para las tareas más habituales.

    Monografias.com

    Formato de Representación
    Una de las funciones de los resguardos es empaquetar los parámetros en un mensaje: aplanamiento (marshalling).

    Problemas en la representación de los datos
    Servidor y cliente pueden ejecutar en máquinas con arquitecturas distintas.
    XDR (external data representation) es un estándar que define la representación de tipos de datos.
    Pasos de parámetros (entrada/salida):
    Problemas con los punteros: Una dirección sólo tiene sentido en un espacio de direcciones.

    Monografias.com

    Definición de Interfaces: IDL
    IDL (Interface Definition Language) es un lenguaje de representación de interfaces:
    Hay muchas variantes de IDL:
    Integrado con un lenguaje de programación (Cedar, Argus).
    Específico para describir las interfaces (RPC de Sun y RPC de DCE).
    Define procedimientos y argumentos (No la implementación).
    Se usa habitualmente para generar de forma automática los resguardos (stubs).
    Server ServidorTickets
    {
    procedure void reset();
    procedure int getTicket(in string ident);
    procedure bool isValid(in int ticket);
    }

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter