Un modelo de interacción entre los procesos de un sistema distribuido que es el modelo cliente-servidor. Para implementarlo, el sistema dispone de dos llamadas al sistema, send y receive, que las aplicaciones utilizan de forma conveniente. Estas primitivas, a pesar de constituir la base de la construcción de los sistemas distribuidos, pertenecen a un nivel demasiado bajo como para programar de forma eficiente aplicaciones distribuidas.
La llamada a procedimiento remoto constituye un mecanismo que integra el concepto cliente-servidor con la programación convencional basada en llamadas a procedimientos. La idea surgió en 1984 y consiste en que el cliente se comunica con el servidor mediante una llamada ordinaria a un procedimiento.
- include <header.h>
void main(void) {
struct mensaje m1, m2; /* Mensajes entrante y saliente */
int r;
while(1)
{
receive(FILE_SERVER, &m1); /* El servidor se bloquea esperando un mensaje */
switch(m1.opcode)
{
case CREATE: r = do_create(&m1, &m2); break;
case READ: r = do_read(&m1, &m2); break;
case WRITE: r = do_write(&m1, &m2); break;
case DELETE: r = do_delete(&m1, &m2); break;
case DELETE: r = E_BAD_OP; break;
}
m2.result = r;
send(m1.source, &m2);
}
}
No hay comentarios:
Publicar un comentario