Sistemas Distribuidos: Ejercicio de los temas arquitectura y comunicación en los sistemas distribuidos

Marzo del 2016.

Grupo de mañana.

La empresa SoftStore proporciona un servicio de distribución de aplicaciones destinado a dos tipos de personas: usuarios de las aplicaciones y desarrolladores de las mismas, organizados en equipos de desarrollo. Los usuarios instalan un programa U que proporciona las siguientes operaciones: (OP1) Búsqueda de aplicaciones basada en los criterios especificados por el usuario (nombre de la aplicación, equipo de desarrollo, temática, precio,...) mostrándose los resultados de la consulta paginados con botones para acceder a la página siguiente y anterior de los mismos; (OP2) Descarga e instalación de la aplicación seleccionada, tal que una vez instalada se muestra una ventana popup cada vez que hay una nueva versión de dicha aplicación por si el usuario quiere actualizarla; (OP3) Desinstalación de una aplicación; (OP4) Activación de un servicio de alertas que permite al usuario que lo activa conocer cuándo el equipo de desarrollo seleccionado publica una nueva aplicación (nueva, es decir, la primera versión de la aplicación) mostrándose una ventana popup para indicarlo y permitir descargarla e instalarla si lo considera oportuno. Los desarrolladores instalan un programa D que proporciona las siguientes operaciones: (OP5) Crear una nueva aplicación; (OP6) Actualizar una aplicación (es decir, crear una nueva versión de la misma). En la empresa está instalado el módulo software S. El servicio está implementado mediante un esquema cliente/servidor para las búsquedas, cargas y descargas, y dos esquemas editor/subscriptor independientes para el control de actualizaciones y las alertas de nuevas aplicaciones.
  1. ¿Qué módulos realizan el papel de subscriptores en el control de actualizaciones?
    1. U
    2. D
    3. U y D
    4. S
Explicación
El módulo U realiza el rol de subscriptor del servicio de control de actualizaciones puesto que está interesado en ser notificado cada vez que la aplicación instalada es actualizada.
  1. ¿Qué módulos realizan el papel de editores en el control de actualizaciones?
    1. D
    2. U
    3. U y D
    4. S
Explicación
El módulo D desempeña el papel de editor del servicio de control de actualizaciones ya que cada vez que un desarrollador crea una nueva versión de una aplicación deben ser informados todos los usuarios que la tienen instalada.
  1. ¿Qué módulos realizan el papel de subscriptores en el servicio de alertas?
    1. U
    2. D
    3. U y D
    4. S
Explicación
El módulo U realiza el rol de subscriptor del servicio de alertas puesto que está interesado en ser notificado cada vez que un determinado equipo de desarrollo crea una nueva aplicación.
  1. ¿Qué módulos realizan el papel de editores en el servicio de alertas?
    1. D
    2. U
    3. U y D
    4. S
Explicación
El módulo D desempeña el papel de editor del servicio de alertas ya que cada vez que un desarrollador de un determinado equipo crea una nueva aplicación deben ser informados todos los usuarios que están interesados en las aplicaciones de ese equipo de desarrollo.
  1. ¿Qué acción implica OP2?
    1. subscripción
    2. baja
    3. publicación
    4. notificación
Explicación
La instalación de una aplicación conlleva la subscripción al tema asociado a dicha aplicación para poder recibir avisos cuando se actualiza.
  1. ¿Qué acción implica OP3?
    1. baja
    2. subscripción
    3. publicación
    4. notificación
Explicación
La desinstalación de una aplicación implica la baja de la subscripción al tema asociado a dicha aplicación puesto que ya no se está interesado en las actualizaciones de la misma.
  1. ¿Qué acción implica OP4?
    1. subscripción
    2. baja
    3. publicación
    4. notificación
Explicación
La activación del servicio de alertas conlleva la subscripción al tema asociado al equipo desarrollador correspondiente para poder recibir alertas cuando éste crea una nueva aplicación.
  1. ¿Qué acción implica OP5?
    1. publicación
    2. baja
    3. subscripción
    4. notificación
Explicación La operación de crear una nueva aplicación por parte de un desarrollador de un determinando equipo deberá ser comunicada a todos los usuarios que han activado una alerta asociada a dicho equipo. Se trata, por tanto, de una operación de publicación.
  1. ¿Qué acción implica OP6?
    1. publicación
    2. baja
    3. subscripción
    4. notificación
Explicación
La operación de crear una nueva versión de una aplicación deberá ser comunicada a todos los usuarios que la tienen instalada. Se trata, por tanto, de una operación de publicación.
  1. ¿Qué acción implica el popup de actualizaciones?
    1. notificación
    2. baja
    3. subscripción
    4. publicación
Explicación
El popup de actualizaciones se muestra cuando llega al módulo U la notificación de la actualización.
  1. ¿Qué acción implica el popup de alertas?
    1. notificación
    2. baja
    3. subscripción
    4. publicación
Explicación
El popup de alerta se muestra cuando llega al módulo U la notificación de la nueva aplicación.
  1. ¿Cuántos temas existen en el esquema editor/subscriptor que gestiona las actualizaciones?
    1. Uno por cada aplicación
    2. Uno por cada usuario
    3. Uno por cada equipo de desarrollo
    4. Uno por cada actualización
Explicación
El servicio de control de actualizaciones permite ser informado cada vez que una aplicación se actualiza. Por tanto, hay un tema por cada aplicación existente.
  1. ¿Cuántos temas existen en el esquema editor/subscriptor que gestiona las alertas?
    1. Uno por cada equipo de desarrollo
    2. Uno por cada usuario
    3. Uno por cada aplicación
    4. Uno por cada actualización
Explicación
El servicio de alertas permite ser informado cada vez que un equipo de desarrollo crea una nueva aplicación. Por tanto, hay un tema por cada equipo de desarrollo existente.
  1. Se están valorando dos implementaciones del mecanismo de paginación de las respuestas: cuando se pulsa el botón siguiente o anterior, se envía en el mensaje (1) un parámetro que indica si se pide la siguiente o la anterior, respectivamente, o bien (2) el número absoluto de la página requerida. ¿Qué solución (i) proporciona mayor tolerancia a los reinicios del servidor y cuál (ii) facilita el reparto de carga entre servidores si se usa un esquema de múltiples servidores en S?
    1. (2)(2)
    2. (1)(1)
    3. (1)(2)
    4. (2)(1)
Explicación
La solución (1) requiere estado en el servidor puesto que éste tiene que almacenar el último número de página de resultados que ha presentado cada usuario para poder intepretar adecuadamente la petición de la página siguiente o previa. La solución (2) no requiere estado en el servidor al especificarse en la petición el número de página requerido. Por tanto, la solución (2), al no requerir estado en el servidor, proporciona mayor tolerancia a los reinicios del servidor y facilita el reparto de carga entre servidores si se usa un esquema de múltiples servidores.
  1. La descarga de una aplicación toma un tiempo considerable y durante la misma puede perderse la conectividad con la empresa, sobretodo si el usuario utiliza un dispositivo móvil. Ante este problema, cuando se recupera la conectividad, se usa una petición GET de HTTP con rangos que permite solicitar un determinado intervalo de bytes de un recurso web. ¿Se trata de una operación (i) idempotente, (ii) que requiere estado en el servidor?
    1. sí; no
    2. no; sí
    3. no; no
    4. sí; sí
Explicación
La operación GET con rangos es idempotente puesto que, aunque se repita varias veces, el resultado final es el mismo. Además, esta operación no requiere estado en el servidor al contener toda la información necesaria para su procesamiento (la identificación del recurso y el rango de bytes solicitado).
  1. Suponiendo que se usa un esquema de leasing para mejorar la tolerancia a fallos del esquema editor/subscriptor de alertas, ¿qué módulos deben renovar el lease?
    1. U
    2. D
    3. U y D
    4. S
Explicación
Cuando se aplica un mecanismo de leasing en un esquema editor-subscriptor, son los subscriptores los encargados de enviar el mensaje de renovación. Por tanto, se trata del módulo U.
  1. Se plantea usar un esquema con un filtro de eventos por contenido en vez de un filtro por temas para el sistema de alertas. ¿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 cuando se publica una aplicación de una determinada temática.
    2. Interés en cualquier nueva aplicación.
    3. Interés en cuando un determinado equipo de desarrollo crea aplicaciones de un conjunto de temáticas.
    4. Interés en cuando cualquiera de un conjunto de equipos de desarrollo crea aplicaciones de una determinada temática.
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).

Las siguientes preguntas corresponden al tema de comunicación y, por tanto, no entran en este curso

  1. Suponga un sistema de comunicación en grupo causal con 4 procesos (de P1 a P4) donde P2 tiene un vector (2,2,2,2) y recibe un mensaje M de P3 con un vector (4,0,4,1). ¿Cuántos mensajes adicionales tiene que recibir antes de entregar M?
    1. 3
    2. 2
    3. 4
    4. 5
Explicación
Dado que el mensaje proviene de P3, la tercera componente del vector recibido está indicando que es el cuarto mensaje de P3 pero, sin embargo, la tercera componente del vector de P2 indica que hasta el momento sólo se ha recibido dos, por lo que falta el tercer mensaje para satisfacer la política FIFO que debe cumplirse también en un sistema causal. En cuanto a la primera componente del mensaje recibido, indica que el proceso P3 ya ha recibido cuatro mensajes de P1 pero, sin embargo, la primera componente del vector de P2 indica que éste hasta el momento sólo ha recibido dos de P1, por lo que faltan dos mensajes de dicho proceso. Por lo que se refiere a la cuarta componente, indica que P3 ha recibido un único mensaje de P4 mientras que esa misma componente del vector de P2 refleja que éste ya ha recibido dos mensajes de P4, por lo que no tiene que esperar ninguno adicional. Recapitulando, faltan 3 mensajes.
  1. ¿Qué es cierto con respecto a un sistema de serialización que proporciona un esquema de unmarshalling genérico: (i) consume menos ancho de banda; (ii) es más eficiente?
    1. Ninguna.
    2. (i)
    3. (ii)
    4. Ambas.
Explicación
Un esquema de unmarshalling genérico requiere que, junto con los datos que se pretenden transmitir o almacenar, se incluya información de cuál es el tipo de los mismos, lo que implica un mayor consumo de ancho de banda y un procesado menos eficiente frente a un esquema no genérico donde sólo se envían los datos y el receptor conoce implícitamente cuál es el tipo de los mismos.
  1. ¿Cuántas de las siguientes afirmaciones sobre qué situación se produce cuando se completa una llamada send sobre un socket son ciertas: (i) el programa puede reutilizar el buffer del mensaje inmediatamente; (ii) el mensaje ha llegado al nodo receptor pero todavía no ha sido entregado al proceso destinatario; (iii) el mensaje ha sido entregado al proceso destinatario?
    1. 1
    2. 2
    3. 3
    4. 0
Explicación
Cuando devuelve el control una llamada send sobre un socket, el mensaje se ha copiado a un buffer local, por lo que el programa puede reutilizar inmediatamente el buffer del mensaje, pero el mensaje con ha llegado al nodo remoto.