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

Marzo del 2016.

Grupo de tarde.

La empresa GameOver proporciona la infraestructura para el despliegue de juegos online multijugador de gran escala (Massively Multiplayer Online Game) basados en un universo de habitaciones conectadas por puertas. Esta infraestructura está implementada en la empresa (módulo G) mediante una solución que combina un esquema cliente/servidor, para la descarga de información, con un editor/subscriptor, para la actualización automática de la posición de los jugadores. En este sistema hay dos tipos de usuarios: los jugadores, que deambulan por el universo virtual, y los árbitros, que contemplan las acciones de los diversos jugadores, sin intervenir en el universo virtual. La empresa proporciona una aplicación (C) que permite a un usuario crear un nuevo juego definiendo cada una de las habitaciones del universo y su conectividad. Una vez completada la fase de definición, toda esa información, de gran volumen, se carga en la infraestructura de la empresa. Finalizada esa etapa, el proceso creador se convierte en el árbitro inicial del sistema, pudiéndose incorporar progresiva y dinámicamente más árbitros a lo largo de una partida. Un árbitro contemplará en su pantalla todo el universo y conocerá en todo momento qué jugadores están ubicados en todas y cada una de las habitaciones. La aplicación que corresponde a un árbitro (A) dispone de dos operaciones: (OP1) inicio de la supervisión, que, entre otras acciones, descarga del servidor G todas las imágenes del universo virtual y descarga desde cualquier otro árbitro la información sobre qué jugadores están ubicados en todas y cada una de las habitaciones (el árbitro inicial no necesita descargar esa información de ubicación) mostrando en la pantalla toda esta información, momento a partir del cual esta aplicación irá recibiendo automáticamente todas las actualizaciones de la ubicación de los jugadores, que reflejará en la pantalla; (OP2) fin de la supervisión. Un jugador ve en su pantalla sólo la habitación que ocupa en ese instante y, por tanto, sólo debe conocer en cada momento qué otros jugadores están en esa misma habitación. La aplicación que corresponde a un jugador (J) dispone, entre otras, de las siguientes operaciones: (OP3) login y (OP4) logout, que contactan con el servidor de la empresa para proporcionar información del jugador y para finalizar el juego, respectivamente; (OP5) entrar en una determinada habitación, que, entre otras acciones, descarga desde el servidor G la imagen de la habitación y desde cualquier árbitro la información sobre qué jugadores están ubicados en esa habitación en ese momento mostrando en la pantalla esa información (esta entrada se reflejará automáticamente en las pantallas de todos los árbitros y de los otros jugadores que están en esa nueva habitación), momento a partir del cual esta aplicación irá recibiendo automáticamente todas las actualizaciones que corresponden a otros jugadores que entran y salen de la habitación, que reflejará en su pantalla; (OP6) salir de la habitación que ocupa el jugador, que elimina de la pantalla la representación de la habitación, y que se reflejará automáticamente en las pantallas de todos los árbitros y de los otros jugadores que estaban en esa habitación. Nótese que la acción de atravesar la puerta entre dos habitaciones se interpreta como una operación de salir seguida por una de entrar.
  1. ¿Qué módulos realizan el papel de subscriptores?
    1. J y A
    2. J
    3. A
    4. G
  1. ¿Qué módulos realizan el papel de editores?
    1. J
    2. J y A
    3. A
    4. G
  1. ¿Qué acción implica OP1?
    1. subscripción
    2. baja
    3. publicación
    4. notificación
  1. ¿Qué acción implica OP2?
    1. baja
    2. subscripción
    3. publicación
    4. notificación
  1. ¿Las acciones OP5 y OP6 provocan una subscripción?
    1. OP5 sí
    2. OP6 sí
    3. Ambas
    4. Ninguna
  1. ¿Las acciones OP5 y OP6 causan baja de una subscripción?
    1. OP6 sí
    2. OP5 sí
    3. Ambas
    4. Ninguna
  1. ¿Las acciones OP5 y OP6 provocan publicar un evento?
    1. Ambas
    2. OP5 sí
    3. OP6 sí
    4. Ninguna
  1. ¿Qué mensaje recibido por un jugador provoca que se elimine a otro jugador de su pantalla?
    1. notificación
    2. baja
    3. subscripción
    4. publicación
  1. ¿Qué mensaje recibido por un jugador provoca que se añada otro jugador en su pantalla?
    1. notificación
    2. baja
    3. subscripción
    4. publicación
  1. Teniendo en cuenta la funcionalidad de J, ¿Cuántos temas existen en el esquema editor/subscriptor?
    1. Uno por habitación
    2. Sólo uno
    3. Uno por árbitro
    4. Uno por jugador
  1. Se requiere saber cuánto tiempo participa en el juego cada jugador. Para ello, se calcula la diferencia del tiempo tomado en el servidor en OP3 y OP4. Se están valorando dos implementaciones: (1) en OP3 G envía el valor de tiempo a J y éste presenta ese valor original a G en OP4 para calcular la diferencia con el tiempo actual; (2) en OP3 G almacena el tiempo en ese momento y le devuelve a J un identificador de sesión que éste presenta a G en OP4 lo que le permite recuperar el valor original y restarlo del tiempo actual. ?`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 G?
    1. (1)(1)
    2. (2)(2)
    3. (1)(2)
    4. (2)(1)
  1. La carga al servidor de las imágenes del universo desde C toma un tiempo considerable y durante la misma puede perderse la conectividad con la empresa, sobretodo si el usuario creador utiliza un dispositivo móvil. Ante este problema, cuando se recupera la conectividad, se usa una petición PUT de HTTP con rangos que permite enviar 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í
  1. Suponiendo que se usa un esquema de leasing para mejorar la tolerancia a fallos del esquema editor/subscriptor, ¿qué módulos deben renovar el lease?
    1. J y A
    2. J
    3. A
    4. G
  1. ¿Qué módulo se beneficiaría más de una operación de subscripción múltiple con comodines?
    1. A
    2. J
    3. G
    4. C
  1. Suponga que se usa un sistema de comunicación de grupo para implementar un esquema editor/subscriptor basado en temas, ¿cuántas direcciones de grupo deben existir en el sistema?
    1. Una por cada tema
    2. Una por subscriptor
    3. Una por editor
    4. Una por evento
  1. Si se usa un esquema de binding, ¿qué módulos deben darse de alta en el mismo?
    1. G y A
    2. J y A
    3. G y J
    4. J
  1. ¿Para el seguimiento de cuál de las siguientes informaciones de estado sería más ventajoso usar un esquema con un filtro de eventos por contenido en vez de un filtro por temas en el sentido de reducir el número de notificaciones no deseadas?
    1. Ubicación en cada momento de un jugador dado.
    2. Qué jugadores hay en cada instante en un determinado conjunto de habitaciones.
    3. Conocer todo el estado del sistema.
    4. Interés en cuando cualquiera de un conjunto de jugadores entra en una determinada habitación.

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 P4 tiene un vector (2,2,2,2) y recibe un mensaje M de P1 con un vector (5,3,3,0). ¿Cuántos mensajes adicionales tiene que recibir antes de entregar M?
    1. 4
    2. 2
    3. 3
    4. 5
  1. ¿Cuántos de estos sistemas de serialización incluyen información sobre la identificación de cada campo y sobre el tipo del mismo: XDR, Protocol Buffers y Java Serialization?
    1. 1
    2. 2
    3. 3
    4. 0
  1. ¿Qué es cierto con respecto a un send sobre un socket: (1) cuando retorna, el programa no puede reutilizar el buffer inmediatamente; (2) no es zero-copy; (3) nunca se bloquea; (4) se bloquea hasta que el destinatario recibe el mensaje?
    1. 1
    2. 2
    3. 3
    4. 4