Sistemas Distribuidos: Ejercicio del tema arquitectura de los sistemas distribuidos

Abril del 2015.

Una nueva empresa, denominada Everybody's Talkin', proporciona un servicio de chat organizado en canales (o salas), cada uno generalmente dedicado a un cierto asunto de conversación. Este servicio sigue un esquema editor-subscriptor basado en temas, donde cada tema corresponde a una sala, y con un único proceso intermediario. El servicio consta de tres módulos software: E, instalado en las máquinas de la empresa, U, la aplicación que utilizan los usuarios para tener acceso al servicio, y O, la aplicación destinada a otras empresas que les permite espiar las conversaciones. La aplicación gráfica U presenta inicialmente la lista de salas disponibles (operación no contemplada en el ejercicio), tal que si el usuario selecciona una de ellas (OP1), se abre una ventana de texto (tendrá tantas ventanas abiertas como salas haya elegido), de manera que cada línea que escribe el usuario en esa ventana (OP2) aparecerá en las ventanas de texto del resto de los usuarios conectados a ese canal (OP3) y viceversa, hasta que el usuario cierre esa ventana (OP4). El objetivo real de la empresa es proporcionar un marco donde la gente se sienta relajada para intercambiar libremente opiniones para, de esta manera, ofrecer a otras empresas la posibilidad de espiar estas conversaciones, ya sea para vender a los usuarios más propicios sus productos o por otras razones más oscuras. A estas otras empresas, previo pago, se les ofrece la aplicación O que proporciona la posibilidad de hacer un seguimiento sofisticado de múltiples aspectos como, por ejemplo, detectar cuando algún usuario escribe una determinada palabra.
  1. ¿Qué módulos realizan el papel de subscriptores?
    1. U y O
    2. Sólo U
    3. Sólo O
    4. E
Explicación
El módulo U realiza el rol de subscriptor puesto que está interesado en ser notificado de lo que escriben otros usuarios en los canales a los que se ha subscrito. El módulo O también hace ese mismo papel de subscriptor ya que necesita espiar las conversaciones que se producen en el sistema lo que requiere ser notificado del contenido de las mismas.
  1. ¿Qué módulos realizan el papel de editores?
    1. Sólo U
    2. U y O
    3. Sólo O
    4. E
Explicación
El módulo U realiza el rol de editor puesto que todo lo que escribe un usuario conectado a un canal debe llegar a todos los otros usuarios asociados al mismo.
  1. ¿Qué módulos realizan el papel de proceso intermediario?
    1. E
    2. Sólo U
    3. Sólo O
    4. U y O
Explicación
El proceso E debe incluir la funcionalidad de la distribución de la información que escribe un usuario en un canal al resto de los usuarios conectados al mismo. Por tanto, realiza el papel de intermediario.
  1. ¿Qué acción implica OP1?
    1. subscripción
    2. baja
    3. publicación
    4. notificación
Explicación
La operación OP1 permite que un usuario entre en un canal. Por tanto, corresponde a una operación de subscripción.
  1. ¿Qué acción implica OP2?
    1. publicación
    2. baja
    3. subscripción
    4. notificación
Explicación
La operación OP2 permite a un usuario de un canal introducir una línea de texto que deberá ser comunicada a todos los usuarios actuales de ese canal. Se trata, por tanto, de una operación de publicación.
  1. ¿Qué acción implica OP3?
    1. notificación
    2. baja
    3. publicación
    4. subscripción
Explicación
En la operación OP3, la ventana asociada a un canal de un determinado usuario se actualiza para mostrar una línea de texto escrita por otro usuario de ese canal, correspondiéndose, por tanto, con una operación de notificación.
  1. ¿Qué acción implica OP4?
    1. baja
    2. subscripción
    3. publicación
    4. notificación
Explicación
El cierre de la ventana asociada a un canal conlleva la baja en el tema asociado a ese canal.
  1. Suponiendo que se usa un esquema de binding, ¿qué módulos deben darse de alta en el mismo?
    1. E
    2. U y O
    3. Sólo U
    4. Sólo O
Explicación
El único proceso que debe de darse de alta en el binder es el proceso intermediario (E) puesto que el resto de los procesos deben llegar a conocer su dirección.
  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. U y O
    2. E
    3. Sólo U
    4. Sólo O
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 de los procesos U y O.
  1. Para la aplicación O, 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 por O?
    1. Interés en cuando un determinado usuario escribe en cualquier sala una determinada palabra.
    2. Interés en cuando cualquier usuario escribe en una determinada sala una determinada palabra.
    3. Interés en cuando un determinado usuario escribe en una determinada sala una determinada palabra.
    4. Interés en cuando cualquier usuario escribe en alguna sala incluida en un determinado conjunto de salas una determinada palabra.
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. Suponiendo un esquema push y que no se usa un mecanismo de leasing, ¿cuántos tipos de mensajes diferentes enviaría U a E?
    1. 3
    2. 1
    3. 2
    4. 4
Explicación
Teniendo en cuenta que este módulo actúa como editor y subscriptor, enviará los siguientes mensajes:
  1. Alta en una subscipción.
  2. Baja de una subscipción.
  3. Generar un evento.
  1. Suponiendo un esquema pull y que no se usa un mecanismo de leasing, ¿cuántos tipos de mensajes diferentes enviaría O a E?
    1. 3
    2. 1
    3. 2
    4. 4
Explicación
Teniendo en cuenta que este módulo sólo actúa como subscriptor y usa un esquema pull, enviará los siguientes mensajes:
  1. Alta en una subscipción.
  2. Baja de una subscipción.
  3. Obtener el próximo evento.