Sistemas Distribuidos: Ejercicio del tema arquitectura de los sistemas distribuidos

Febrero del 2019.

Grupo de mañana.

Considere un sistema distribuido que usa un esquema de binding global (proceso B, que ejecuta en una máquina con dirección Db usando el puerto Pb) que permite dar a conocer a los clientes (procesos C) qué servidores (procesos S) ofrecen cada servicio en el sistema, pudiendo haber en un momento dado múltiples servidores proporcionando un determinado servicio. Este componente va a mantener su modo de operación habitual, pero se va a complementar con otro proceso (R, independiente de B, no habiendo ninguna interacción directa entre ambos procesos) que, mediante un esquema editor/subscriptor (E/S) basado en temas donde R actúa únicamente como proceso intermediario, permite a los clientes interesados hacer un seguimiento de cómo evoluciona la oferta de un servicio en el sentido de ir conociendo dinámicamente cuándo se incorpora un nuevo servidor para proveer ese servicio y en qué momento algún servidor deja de prestarlo, identificando en ambos casos qué máquina está involucrada. En el sistema se ofrecen las siguientes operaciones (las 3 primeras operaciones son las típicas de un esquema de binding, pero algunas de esas 3, además de contactar con B para realizar su labor habitual, también tendrán que contactar con R para poder llevar a cabo esta funcionalidad extendida; las dos últimas son ajenas al proceso B y solo contactarán con R): OP1, que permite a un servidor indicar que va a proporcionar un cierto servicio; OP2, con la que un servidor informa de que va a dejar de proveer un servicio; OP3, que permite a un cliente preguntar por la lista de servidores que ofrecen actualmente un cierto servicio (la lista puede estar vacía si ningún servidor proporciona ese servicio en este momento); OP4, que permite a un cliente iniciar el seguimiento de cómo evoluciona la oferta de un servicio; OP5, para el momento en el que el cliente deja de estar interesado en ese seguimiento. Como un ejemplo de uso de OP4, un cliente que ha consultado mediante OP3 qué servidores prestan un cierto servicio y ha recibido una lista vacía puede, a continuación, usar OP4 para saber en qué momento algún servidor comienza a proporcionar dicho servicio. Otro ejemplo adicional de uso de OP4 sería un cliente que necesita saber cuándo hay N servidores dispuestos a proveer un servicio, puesto que requiere asegurar una ejecución del servicio con alta disponibilidad, y usa OP4 para conocer cuándo se cumple este requisito en vez de invocar periódicamente la operación OP3 hasta que se satisfaga. Suponga que existe un número fijo de servicios Nv conocido a priori y que en un cierto momento existen Nc clientes, tal que cada cliente puede requerir usar varios servicios para llevar a cabo su labor, y Ns servidores Centrándose en la interacción cliente/servidor, para algunos servicios se usa una solución de alta disponibilidad basada en la replicación del servicio en la que el resultado final de cada servicio se obtiene mediante una votación entre los resultados obtenidos por todos los servidores involucrados en ese servicio. Para otros servicios, se usa un esquema de reparto de carga en el que el cliente envía cada petición a un servidor seleccionado aleatoriamente entre los que ofertan ese servicio. Si esos servicios requieren que haya información replicada, la gestión de las réplicas se realizará maximizando el rendimiento y el tiempo durante el cual el servicio está operativo. Por último, nos vamos a fijar en un hipotético servicio de gestión de ficheros F, sobre el que se está debatiendo si usar un esquema con estado o sin estado.
  1. ¿Cuántos temas existen en el esquema E/S?
    1. Nv
    2. Nc
    3. Ns
    4. Ns*Nv
Explicación
Debe existir un tema por cada servicio para que un cliente pueda realizar el seguimiento del mismo.
  1. ¿Cuál es el número máximo de subscripciones que puede haber en el sistema en un momento dado?
    1. Nc*Nv
    2. Nv
    3. Nc
    4. Ns
Explicación
El número máximo se alcanzaría si todos los clientes (Nc) están interesados en hacer un seguimiento de todos los servicios (Nv), lo que implicaría Nc*Nv subscripciones.
  1. ¿Cuántas acciones de publicación simultáneas puede haber como máximo en el sistema en un instante dado asumiendo que en cada máquina solo se puede realizar una operación en cada momento?
    1. Ns
    2. Nv
    3. Nc
    4. Ns*Nv
Explicación
Las publicaciones corresponden a situaciones en las que un servidor comienza a proporcionar un determinado servicio o cuando deja de hacerlo. Por tanto, en un momento dado, podría haber tantas subscripciones como servidores existen en el sistema.
  1. ¿Qué módulos realizan el papel de subscriptores en el esquema E/S?
    1. Solo C
    2. Solo S
    3. C y S
    4. R
Explicación
Los clientes, que son los interesados en hacer el seguimiento de los servicios.
  1. ¿Qué módulos realizan el papel de editores en el esquema E/S?
    1. Solo S
    2. Solo C
    3. C y S
    4. R
Explicación
Los servidores, que son los que generan publicaciones cada vez que se dan de alta o de baja en un servicio.
  1. ¿A qué acción E/S corresponde OP1?
    1. publicación
    2. baja en la subscripción
    3. subscripción
    4. ninguna
Explicación
Se trata de una publicación puesto que hay que informar a los clientes interesados en ese servicio de que este servidor también lo va a proporcionar.
  1. ¿A qué acción E/S corresponde OP2?
    1. publicación
    2. baja en la subscripción
    3. subscripción
    4. ninguna
Explicación
Se trata de una publicación puesto que hay que informar a los clientes interesados en ese servicio de que este servidor deja de prestarlo.
  1. ¿A qué acción E/S corresponde OP3?
    1. ninguna
    2. baja en la subscripción
    3. publicación
    4. subscripción
Explicación
La operación de consulta al binder solo devuelve la lista de servidores que proporcionan actualmente el servicio, no cambiando, por tanto, las condiciones del servicio.
  1. ¿A qué acción E/S corresponde OP4?
    1. subscripción
    2. baja en la subscripción
    3. publicación
    4. ninguna
Explicación
El cliente inicia el seguimiento de un servicio, lo que corresponde a una subscripción.
  1. ¿A qué acción E/S corresponde OP5?
    1. baja en la subscripción
    2. subscripción
    3. publicación
    4. ninguna
Explicación
El cliente termina el seguimiento de un servicio, lo que corresponde a la baja de una subscripción.
  1. Se plantea usar un esquema con un filtro de eventos por contenido en vez de un filtro por temas. ¿Para cuál de estos casos ese cambio sería más ventajoso en el sentido de reducir el número de mensajes recibidos pero no deseados?
    1. Interés en conocer en qué momento una determinada máquina empieza a ofrecer cualquier servicio.
    2. Interés en conocer en qué momento una determinada máquina empieza a ofrecer un cierto servicio.
    3. Interés en conocer cuándo aumenta el número de servidores que proporcionan un determinado servicio.
    4. Interés en conocer cuándo disminuye el número de servidores que proporcionan un determinado servicio.
Explicación
Veamos cada caso planteado analizando en cuál el uso de un filtro por contenido sería más efectivo (es decir, descartaría más eventos no deseados).
  1. ¿Qué módulo debería enviar los mensajes de renovación del lease si se aplica un mecanismo de leasing al esquema editor/subscriptor?
    1. Solo C
    2. Solo S
    3. C y S
    4. R
Explicación
Si se aplica un esquema de leasing a una solución editor/subscriptor, los procesos que siguen el rol de subscriptores deben renovar el lease, de manera que si en un momento dado un subscriptor se cae, se puede dar de baja de todos los temas que estuviera subscrito. En el caso planteado, los clientes realizarán esta labor.
  1. ¿Qué módulo debería enviar los mensajes de renovación del lease si se aplica un mecanismo de leasing al esquema de binding?
    1. Solo S
    2. Solo C
    3. C y S
    4. B
Explicación
Si se aplica un esquema de leasing a un esquema de binding, los servidores deben renovar el lease, de manera que si en un momento dado un servidor se cae, se puede dar de baja de todos los servicios que estuviera proporcionando.
  1. ¿De qué tipo de sistema se trata según el teorema CAP con respecto a la gestión de réplicas?
    1. AP
    2. CA
    3. CP
    4. CAP
Explicación
Dado que hay que maximizar el tiempo en el que está operativo un servicio que requiere la gestión de réplicas, en caso de problemas de conectividad (P) habrá que priorizar la disponibilidad (A) sobre la consistencia.
  1. ¿De qué tipo de sistema se trata según el teorema PACELC en cuanto a la gestión de réplicas?
    1. PAEL
    2. PCEC
    3. PAEC
    4. PCEL
Explicación
Por un lado, cuando hay problemas de conectividad, se prefiere tener disponibilidad frente a consistencia (PA). Por otro lado, cuando el sistema tiene un funcionamiento normal, se opta por el rendimiento (L) frente a la consistencia (C).
  1. ¿Qué esquema de replicación de servicio se usa en el sistema?
    1. Activa
    2. hot standby
    3. warm standby
    4. cold standby
Explicación
Se requiere un esquema activo puesto que se plantea que todos los servidores procesen cada petición y se devuelva como resultado final la votación de los resultados obtenidos por cada servidor.
  1. Suponiendo que un cliente C ejecuta en una máquina con dirección Dc usando el puerto Pc y un servidor S en una máquina con dirección Ds usando el puerto Ps, ¿qué información deben conocer a priori para poder comunicarse?
    1. Ambos Db y Pb
    2. C Ds y Ps; S Dc y Pc
    3. C Db y Pb; S Dc y Pc
    4. C Ds y Ps; S Db y Pb
Explicación
Al usar un servicio de binding global, ni los clientes ni los servidores necesitan conocerse entre sí, pero ambos requieren conocer la dirección y puerto del binder para poder interaccionar con él.
  1. Suponiendo que F ofrece 3 operaciones para escribir en un fichero: E1, que permite escribir en la posición actual del puntero del fichero, E2, que posibilita escribir en la posición especificada en la operación, y E3, que permite escribir datos al final del fichero, ¿cuáles de esas operaciones son idempotentes?
    1. E2
    2. E1
    3. E3
    4. E2 y E3
Explicación
La escritura en una posición del fichero especificada en la propia operación es idempotente puesto que el resultado final es el mismo aunque se repita inadvertidamente la operación. La escritura en la posición actual no lo es puesto que implica el avance de dicha posición y, por tanto, las repeticiones no deseadas van escribiendo una a continuación de la otra los datos especificados. De manera similar, una escritura al final del fichero tampoco lo es porque al repetirse iría concatenando repetidamente los datos que se pretenden escribir.
  1. En UNIX para que un fichero se pueda borrar no debe tener enlaces (NE) ni estar abierto (NA). ¿Bajo qué modelo, con estado o sin estado, puede ser difícil verificar una de esas dos condiciones para el servicio F?
    1. NA en sin estado
    2. NA en con estado
    3. NE en sin estado
    4. NE en con estado
Explicación
El número de enlaces de un fichero se almacena en su inodo y, por tanto, está disponible tanto en un servicio con estado como sin estado. Sin embargo, la información sobre si está abierto un fichero (el contador de cuántas veces está abierto) se guarda en memoria del servidor y, en consecuencia, solo estará disponible si se trata de un servicio con estado. Téngase en cuenta que en un servicio sin estado el servidor ni siquiera recibe las operaciones de cierre del fichero.
  1. ¿Cuál de las siguientes técnicas presentaría más dificultades a la hora de la implementar F dependiendo de que se use un modelo con estado (CE) o sin estado (SE): (1) el uso de un esquema de reparto de carga que selecciona aleatoriamente el servidor para cada petición; (2) el uso de una conexión por petición?
    1. (1) para CE
    2. (1) para SE
    3. (2) para CE
    4. (2) para SE
Explicación
Cuando se usa un esquema de reparto de carga, cada petición de un cliente puede ser procesada por un servidor diferente, lo que presenta dificultades en una solución con estado puesto que dicho estado estará almacenado en el servidor que procesó la última petición.