Sistemas Distribuidos: Ejercicio del tema arquitectura de los sistemas distribuidos

Febrero del 2019.

Grupo de tarde.

La empresa Ipso Facto ofrece un servicio distribuido de mensajería instantánea para grupos que permite enviar en tiempo real un mensaje con datos de texto a un grupo de usuarios, pero de forma que solo reciban el mensaje aquellos usuarios del grupo que estén conectados en el momento del envío. Para implementar esta funcionalidad, existe un nodo gestor G que combina el uso de un esquema cliente/servidor (C/S) con uno editor/subscriptor (E/S) basado en temas que utiliza un modelo push. El esquema C/S gestiona la creación y destrucción de grupos y de usuarios (cada usuario pertenecerá a uno o más grupos), así como la consulta de la información sobre los mismos. Por su parte, el esquema E/S se ocupa del resto de la funcionalidad, actuando en este caso G meramente como un proceso intermediario. Para asegurar que no existe ningún mensaje con un contenido inapropiado, algunos empleados de la empresa (los censores) se dedican a supervisar los mensajes enviados. Por otra parte, como modelo de negocio, se vende a otras empresas la posibilidad de enviar mensajes con anuncios a los grupos de usuarios que consideren pertinentes. Dada toda esta funcionalidad, en el sistema existen las siguientes aplicaciones (o roles): usuario (U), censor (C) y anunciante (A). La aplicación U ofrece las siguientes operaciones: login (OP1), que inicia una sesión del usuario, que pertenecerá a uno o más grupos, apareciendo inmediatamente una ventana emergente en la pantalla de todos los usuarios de esos grupos anunciando la presencia de este usuario, que, a partir de este momento, en su pantalla podrá ver todos los mensajes que se vayan enviando a alguno de sus grupos; envío (OP2) por parte del usuario de un mensaje a un grupo, al que puede pertenecer o no; logout (OP3), que termina la sesión mostrándose una ventana emergente indicando ese hecho en la pantalla de todos los usuarios de los grupos a los que pertenece este usuario. La aplicación C presenta a un censor todos los grupos existentes, que ha obtenido descargándolos de G mediante una acción C/S, permitiéndole seleccionar uno, mediante la operación OP4, para hacer un seguimiento de todo lo que ocurre en ese grupo, deteniendo el seguimiento mediante la operación OP5 (un censor solo podrá supervisar un único grupo en cada momento y solo tomará nota de las infracciones que detecte). La aplicación A que permite que un anunciante, al que, como en el caso anterior se le presentan todos los grupos, pueda seleccionar uno para, mediante la operación OP6, enviarle un mensaje con un anuncio. Suponga que en un cierto momento existen Ng grupos, Nu usuarios, Nc censores y Na anunciantes. Por motivos de trazabilidad, todos los procesos que emiten mensajes deben también guardarlos en un sistema de almacenamiento (SA) replicado, manteniéndose 5 copias de cada mensaje, ya sea un mensaje convencional o un anuncio. La gestión de las réplicas se lleva a cabo mediante un mecanismo de quórum con un valor de 2 tanto para las operaciones de lectura como de escritura, que darán un error si no se puede lograr el quorúm por un problema de conectividad. Para sincronizar el acceso al sistema de almacenamiento, los procesos que almacenan los mensajes (sus emisores) usan un servicio de cerrojos, que, debido a su carácter crítico, se ejecuta como un servicio replicado, implementado de tal manera que se reduzca el gasto de energía de los procesadores involucrados, aunque eso conlleve un mayor tiempo de recuperación.
  1. ¿Cuántos temas existen en el esquema E/S?
    1. Ng
    2. Nc
    3. Nu
    4. Ng*Nu
Explicación
Debe existir un tema por cada grupo de usuarios, que representa la entidad a la que van dirigidas las publicaciones en este esquema.
  1. ¿Cuál es el número máximo de subscripciones que puede haber en el sistema en un momento dado?
    1. Ng*Nu+Nc
    2. Nu+Nc
    3. Ng
    4. Ng*Nu
Explicación
Para calcular el máximo, hay que tener en cuenta, por un lado, que cada usuario podría formar parte de todos los grupos (Nu*Ng). Por otro lado, cada censor (Nc) estaría subscrito al grupo que está supervisando.
  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. Nu+Na
    2. Na
    3. Nu
    4. Nu*Na
Explicación
Cada publicación corresponde a un mensaje, ya sea convencional o un anuncio, dirigido a un grupo. Por tanto, podría haber tantos como usuarios y anunciantes.
  1. ¿Qué módulos realizan el papel de subscriptores en el esquema E/S?
    1. U y C
    2. U y A
    3. C y A
    4. Solo U
Explicación
Tanto los usuarios como los censores están interesados en recibir los eventos que van dirigidos a un grupo.
  1. ¿Qué módulos realizan el papel de editores en el esquema E/S?
    1. U y A
    2. U y C
    3. C y A
    4. Solo U
Explicación
Los editores corresponden a los procesos que generan mensajes, es decir, los usuarios y los anunciantes.
  1. ¿A qué acciones E/S corresponde OP1?
    1. subscrip. y publicación
    2. solo subscripción
    3. solo publicación
    4. solo baja
Explicación
En el login, el usuario, por un lado, debe quedar subscrito a todos los grupos a los que pertenece para poder así recibir los mensajes que vayan dirigidos a estos grupos. Por otro lado, el hecho de que el usuario haya abierto una sesión debe ser notificado a todos los miembros de los grupos a los que está asociado dicho usuario, requiriéndose, por tanto, una publicación.
  1. ¿A qué acciones E/S corresponde OP2?
    1. solo publicación
    2. solo subscripción
    3. subscrip. y publicación
    4. baja y publicación
Explicación
El envío del mensaje a un grupo corresponde a una publicación asociada a dicho grupo.
  1. ¿A qué acciones E/S corresponde OP3?
    1. baja y publicación
    2. solo baja
    3. subscrip. y publicación
    4. solo publicación
Explicación
En el logout, el usuario, por un lado, debe eliminar la subscripción de todos los grupos a los que pertenece para dejar así de recibir los mensajes que vayan dirigidos a estos grupos. Por otro lado, el hecho de que el usuario haya cerrado la sesión debe ser notificado a todos los miembros de los grupos a los que está asociado dicho usuario, requiriéndose, por tanto, una publicación.
  1. ¿A qué acciones E/S corresponde OP4?
    1. solo subscripción
    2. baja y publicación
    3. solo publicación
    4. subscrip. y publicación
Explicación
Un censor inicia el seguimiento de un grupo, lo que corresponde a una subscripción.
  1. ¿A qué acciones E/S corresponde OP5?
    1. solo baja
    2. solo subscripción
    3. solo publicación
    4. baja y publicación
Explicación
Un censor finalizar el seguimiento de un grupo, lo que corresponde a una baja de una subscripción.
  1. ¿A qué acciones E/S corresponde OP6?
    1. solo publicación
    2. solo subscripción
    3. subscrip. y publicación
    4. baja y publicación
Explicación
El envío de un mensaje a un grupo por parte de un anunciante corresponde a una publicació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 todos los mensajes que envía un determinado usuario
    2. Interés en conocer todos los anuncios que se reciben en un determinado grupo
    3. Interés en conocer todos los mensajes que se reciben en un conjunto de grupos
    4. Interés en conocer todos los mensajes que se generan en el sistema
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ódulos deberían enviar los mensajes de renovación del lease si se aplica un mecanismo de leasing al esquema E/S?
    1. U y C
    2. U y A
    3. C y A
    4. Solo U
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 usuarios y censores realizarán esta labor.
  1. ¿Qué módulos deben enviar los mensajes de renovación del lease si se aplica un mecanismo de leasing al servicio de cerrojos?
    1. U y A
    2. U y C
    3. C y A
    4. Solo U
Explicación
Cuando se aplica esta técnica a un servicio de cerrojos, los clientes de dicho servicio (U y A, que son los que escriben en SA) deben realizar la renovación.
  1. ¿De qué tipo de sistema se trata según el teorema CAP con respecto a la gestión de réplicas?
    1. CP
    2. CA
    3. AP
    4. CAP
Explicación
Se plantea que la operación dé un error si por problemas de conectividad (P) no se puede alcanzar el quórum. Por tanto, se está primando la consistencia (C) sobre la disponibilidad.
  1. ¿De qué tipo de sistema se trata según el teorema PACELC en cuanto a la gestión de réplicas?
    1. PCEL
    2. PCEC
    3. PAEC
    4. PAEL
Explicación
Por un lado, cuando hay problemas de conectividad, se prefiere tener consistencia (PC) frente a disponibilidad. Por otro lado, cuando el sistema tiene un funcionamiento normal, se opta por el rendimiento (L) frente a la consistencia (C) puesto que la suma del quórum requerido por la escritura (W=2) y por la lectura (R=2) no es mayo que el número de réplicas (2 + 2 < 5).
  1. ¿Qué esquema de replicación de servicio se usa en el sistema?
    1. cold standby
    2. hot standby
    3. warm standby
    4. Activa
Explicación
Puesto que se pretende minimizar el gasto energético por el consumo asociado a los procesadores, sin importar el tiempo de recuperación.
  1. ¿Qué tipo de desacoplamiento proporciona este sistema?
    1. solo espacial
    2. solo temporal
    3. espacial y temporal
    4. ni espacial ni temporal
Explicación
Hay desacoplamiento espacial gracias al uso de un esquema E/S, pero no temporal, ya que los mensajes solo los reciben los subscriptores que están activos cuando se genera el mesnaje.
  1. Suponga que la descarga de la lista de grupos se realiza mediante una operación GET de HTTP. Esa operación de HTTP: ¿tiene estado?; ¿es idempotente?
    1. no; sí
    2. no; no
    3. sí; sí
    4. sí; no
Explicación
HTTP es un protocolo sin estado. En cuanto a la operación GET, es \textit{idempotente}: aunque inadvertidamente se repita la misma operación no se ve afectado el resultado.
  1. Suponiendo que se usa un servicio de binding, ¿qué proceso debería darse de alta en ese servicio?
    1. G
    2. U
    3. C
    4. A
Explicación
De los procesos planteados, todos menos G toman la iniciativa en la interacción. G, sin embargo, queda a la espera de que le lleguen peticiones, por lo que debe darse de alta en el binder para que el resto de los procesos puedan contactar con él sin necesidad de conocer en qué máquina y por qué puerto da servicio.