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).