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.
- ¿Qué módulos realizan el papel de subscriptores?
- U y O
- Sólo U
- Sólo O
- 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.
- ¿Qué módulos realizan el papel de editores?
- Sólo U
- U y O
- Sólo O
- 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.
- ¿Qué módulos realizan el papel de proceso intermediario?
- E
- Sólo U
- Sólo O
- 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.
- ¿Qué acción implica OP1?
- subscripción
- baja
- publicación
- 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.
- ¿Qué acción implica OP2?
- publicación
- baja
- subscripción
- 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.
- ¿Qué acción implica OP3?
- notificación
- baja
- publicación
- 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.
- ¿Qué acción implica OP4?
- baja
- subscripción
- publicación
- notificación
- Explicación
-
El cierre de la ventana asociada a un canal conlleva la baja en el tema
asociado a ese canal.
- Suponiendo que se usa un esquema de binding, ¿qué módulos deben darse de alta en el mismo?
- E
- U y O
- Sólo U
- 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.
- 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?
- U y O
- E
- Sólo U
- 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.
- 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?
- Interés en cuando un determinado usuario escribe en cualquier sala una determinada palabra.
- Interés en cuando cualquier usuario escribe en una determinada sala una determinada palabra.
- Interés en cuando un determinado usuario escribe en una determinada sala una determinada palabra.
- 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).
- En el caso de estar interesado en ser notificado cuando cualquier
usuario escribe una determinada palabra en una sala dada, el subscriptor tendría que suscribirse al tema asociado a esa sala y descartar todos los eventos que
no incluyan esa palabra.
- En cuanto al caso de estar interesado en ser notificado cuando un cierto
usuario escribe una determinada palabra en una sala dada, el subscriptor tendría que suscribirse al tema asociado a esa sala y descartar todos los eventos que
correspondan a texto escrito por otros usuarios o que, estando escritos
por el usuario especificado, no incluyan esa palabra.
- Con respecto al caso de estar interesado en ser notificado cuando cualquier
usuario escribe una determinada palabra en alguna sala incluida en un determinado conjunto de salas determinado, el subscriptor tendría que suscribirse a los
temas correspondientes a esas salas y descartar todos los eventos que
no incluyan esa palabra.
- Por lo que se refiere al caso de estar interesado en ser notificado cuando un cierto usuario escribe una determinada palabra en cualquier sala, el subscriptor tendría que suscribirse a todas las salas y descartar todos los eventos que
correspondan a texto escrito por otros usuarios o que, estando escritos
por el usuario especificado, no incluyan esa palabra.
El uso de un filtro por contenido especificando como función que el
usuario sea una determinada persona y que la línea escrita contiene
esa palabra dada sería más beneficioso
que en los casos previos puesto que el número de eventos que se descartan
va a ser mayor (nótese que en este caso, con un filtro por temas, el
subscriptor tendría que recibir todos los eventos del sistema).
- Suponiendo un esquema push y que no se usa un mecanismo de leasing, ¿cuántos tipos de mensajes diferentes enviaría U a E?
- 3
- 1
- 2
- 4
- Explicación
-
Teniendo en cuenta que este módulo actúa como editor y subscriptor,
enviará los siguientes mensajes:
- Alta en una subscipción.
- Baja de una subscipción.
- Generar un evento.
- Suponiendo un esquema pull y que no se usa un mecanismo de leasing, ¿cuántos tipos de mensajes diferentes enviaría O a E?
- 3
- 1
- 2
- 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:
- Alta en una subscipción.
- Baja de una subscipción.
- Obtener el próximo evento.