Sistemas Distribuidos: Ejercicio del tema arquitectura de los sistemas distribuidos
Septiembre del 2014.
Una nueva empresa, denominada TeLoContamos, se va a dedicar a la retransmisión en directo de todo tipo de espectáculos basándose en la información generada en tiempo real por los reporteros de la empresa destinados a cada espectáculo. Los usuarios que contraten este servicio dispondrán de una aplicación (U) que instalarán en sus equipos. Esta aplicación permitirá a un usuario seleccionar (operación OPU1) cualquiera de los espectáculos que se estén retransmitiendo en ese momento (puede tener seleccionados varios simultáneamente), recibiendo a partir de entonces toda la información generada por los reporteros que cubren el mismo, hasta que el usuario indique que ya no está interesado en él (OPU2). Para realizar las retransmisiones, cada reportero de la empresa tendrá instalada en su dispositivo portátil una aplicación (R) que le permitirá iniciar la retransmisión (OPR1) de un determinado espectáculo, enviar comentarios sobre el mismo (OPR2) y terminar esa retransmisión (OPR3), pudiendo estar cubriendo un mismo reportero varios espectáculos simultáneamente. Por otro lado, dado que puede haber varios reporteros cubriendo un mismo espectáculo, para que esta retransmisión simultánea sea coherente y la información generada por los reporteros se complemente, cuando un reportero seleccione el inicio de la retransmisión de un determinado espectáculo (OPR1), comenzará a recibir también la información generada por los otros reporteros que cubren dicho espectáculo, y esto seguirá hasta que el reportero indique que ha finalizado su retransmisión (OPR3). Por último, en la sede de la empresa estará instalado el software (E) requerido para proporcionar esta funcionalidad. A la hora de desarrollar esta aplicación distribuida se barajan dos posibles arquitecturas. Como primera opción, una arquitectura editor/subscriptor basada en temas, donde cada espectáculo es un tema, pudiéndose optar por un esquema push (ESH) o pull (ESL). Como alternativa, se plantea un esquema cliente/servidor donde E actúa como servidor (no puede iniciar peticiones de conexión; sólo las acepta), mientras que U y R actúan como clientes (realizan peticiones de conexión usando una conexión por cada operación; no aceptan peticiones de conexión), distinguiéndose entre un esquema con estado (CSE) y uno sin estado (CSS).
- ¿Qué módulo realiza el papel de subscriptor?
- U y R
- U
- R
- E
- Explicación
-
Tanto U, cuando un usuario selecciona un espectáculo, como R, cuando un reportero inicia una transmisión, están interesados en ser notificados de los
comentarios pertinentes en cada caso. Por tanto, desempeñan el papel
de subscriptores.
- ¿Qué módulo realiza el papel de editor?
- R
- U y R
- U
- E
- Explicación
-
El módulo R realiza el papel de editor publicando los comentarios del reportero que lo usa.
- ¿Qué módulo realiza el papel de proceso intermediario?
- E
- U y R
- U
- R
- Explicación
-
El módulo E instalado en la empresa incluye la
funcionalidad de la distribución de los comentarios que recibe a los
subscriptores interesados en los mismos. Por tanto, realiza
el papel de intermediario.
- ¿Qué solución proporciona al usuario mayor inmediatez en la visibilidad de la información retransmitida?
- ESH
- ESL
- CSE
- CSS
- Explicación
-
La solución ESH proporciona mayor inmediatez, puesto que en la misma el módulo E envía inmediatamente los comentarios a los interesados, mientras que tanto en ESL como en las soluciones cliente-servidor, el interesado debe realizar una consulta periódica a E para obtener los eventos.
- ¿Qué solución no requiere almacenar en E los comentarios que generan los reporteros?
- ESH
- ESL
- CSE
- CSS
- Explicación
-
En ESH, al retransmitir E inmediatemente los comentarios, no es necesario que los almacene. En cambio, en las otras tres soluciones sí se requiere puesto que hay que guardarlos hasta que los interesados los soliciten.
- ¿Para qué solución tendría menos sentido proporcionar en la aplicación U un botón para actualizar la información de las retransmisiones presentada hasta el momento?
- ESH
- ESL
- CSE
- CSS
- Explicación
-
En las soluciones basadas en un sondeo periódico, puede ser conveniente incluir en U un botón de actualización para forzar una consulta inmediata sin esperar a que se cumpla el periodo de sondeo. Dada la inmediatez del ESH, no se requiere esta funcionalidad.
- ¿Qué solución tendría mayor tolerancia de fallos ante el reinicio de E, de manera que, aunque se pueda perder algún comentario, los usuarios puedan recuperar inmediatamente el servicio?
- CSS
- ESL
- ESH
- CSE
- Explicación
-
En las soluciones editor/subscriptor, el reinicio de E, que actúa de proceso intermediario en este caso, dejaría sin servicio a los usuarios actuales puesto que se habrá perdido toda la información de subscripción. En el caso de CSE, tampoco podría reanudarse inmediatemente el servicio, ya que E guarda información de estado de los usuarios (como, por ejemplo, cuál fue el último evento recogido por un proceso interesado en un determinado espectáculo). Sin embargo, la solución CSS no requiere ninguna información de estado en el servidor usando para ello peticiones auto-contenidas (en el ejemplo, la información sobre el último evento recibido por un cliente viajaría en la propia petición) lo que permite que continúe inmediatamente el servicio a los clientes después de un reinicio de E.
- ¿En la solución editor/subscriptor, qué acción implica OPU1 en U?
- subscripción
- baja
- publicación
- notificación
- Explicación
-
La subscripción al espectáculo seleccionado por el usuario de U.
- ¿En la solución editor/subscriptor, qué acción implica OPU2 en U?
- baja
- subscripción
- publicación
- notificación
- Explicación
-
La baja de la subscripción previa al espectáculo seleccionado por el usuario de U.
- ¿En la solución editor/subscriptor, qué acción implica OPR1 en R?
- subscripción
- baja
- publicación
- notificación
- Explicación
-
Dado que cuando un reportero inicia una retransmisión de un determinado
espectáculo debe ser notificado de los comentarios que realizan los reporteros que también lo retransmiten, OPR1 causará la subscripción a dicho espectáculo.
- ¿En la solución editor/subscriptor, qué acción implica OPR2 en R?
- publicación
- baja
- subscripción
- notificación
- Explicación
-
OPR2 envía el comentario escrito por el reportero, por lo que se trata de una acción de publicar en un modelo editor-subscriptor.
- ¿En la solución editor/subscriptor, qué acción implica OPR3 en R?
- baja
- subscripción
- publicación
- notificación
- Explicación
-
Al finalizar una retransmisión de un espectáculo, se dará de baja de
la subscripción del mismo.
- ¿En qué solución OPU2 no requeriría contactar con E?
- CSS
- ESL
- ESH
- CSE
- Explicación
-
En las soluciones editor/subscriptor, OPU2 contacta con E para darse
de baja del tema. En CSE, en esta operación, U contacta con E para
indicarle que ha terminado el seguimiento de ese espectáculo, lo que
permitiría que E libere el estado almacenado asociado al mismo.
Sin embargo, en CSS, dado que no hay ningún estado asociado al cliente
almacenado en el servidor, no es necesario que contacte con el mismo.
- Evidentemente, el servicio debe garantizar que un usuario no reciba repetido ningún comentario. ¿En qué solución esto requeriría que U almacenara, e incluyera en los mensajes correspondientes, la marca de tiempo del último evento recibido de cada espectáculo seleccionado?
- CSS
- ESL
- ESH
- CSE
- Explicación
-
Los esquemas editor/subscriptor garantizan que no se duplican eventos, por lo que no es necesario que los subscriptores almacenen ningún tipo de información.
En CSE, el estado que almacena el servidor le permite saber cuál es el último evento que ha recogido un cliente. Sin embargo, en CSS, al no disponer de ninguna información de estado de los clientes, es necesario que éstos almacenen esta información y la envíen en sus mensajes de petición.
- ¿De qué proceso necesitan conocer a priori su puerto el resto de los procesos en la solución cliente/servidor?
- Sólo de E
- De U y de R
- Sólo de U
- Sólo de R
- Explicación
-
En un esquema cliente/servidor, la única dirección que debe ser conocida a priori es la del servidor.
- ¿De qué proceso necesitan conocer a priori su puerto el resto de los procesos en la solución editor/subscriptor?
- Sólo de E
- De U y de R
- Sólo de U
- Sólo de R
- Explicación
-
En un esquema editor/subscriptor, la única dirección que debe ser conocida a priori es la del proceso intermediario.
- Suponiendo que se usa un esquema de leasing para mejorar la tolerancia a fallos de la solución editor/subscriptor, ¿qué proceso otorgará el lease?
- E
- U y R
- U
- R
- Explicación
-
Cuando se aplica un mecanismo de leasing en un esquema editor-subscriptor, es el proceso intermediario el encargado de otorgar los leases
siendo los subscriptores los que lo renuevan.
- Suponiendo que se usa un esquema de leasing para mejorar la tolerancia a fallos de la solución cliente/servidor con estado, ¿qué proceso otorgará el lease?
- E
- U y R
- U
- R
- Explicación
-
Cuando se aplica un mecanismo de leasing en un esquema cliente-servidor con estado, es el proceso servidor el encargado de otorgar los leases
siendo los clientes los que lo renuevan.
- Para la solución editor/subscriptor, 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 notificaciones no deseadas?
- Interés en todas las retransmisiones de un determinado reportero.
- Interés en todas las retransmisiones.
- Interés en un cierto espectáculo pero sólo en los comentarios de un determinado grupo de reporteros.
- Interés en un cierto conjunto de espectáctulos pero sólo en los comentarios de un determinado reportero.
- Explicación
-
Veamos cada caso planteado analizando, en primer lugar, si el uso de un filtro por contenido tendría alguna ventaja en ese caso y, si hay varios en los que sí, en qué caso
sería más efectivo (es decir, descartaría más eventos no deseados).
- En el caso de estar interesado en todas las retransmisiones,
no hay ningún beneficio en usar un filtro por
contenido puesto que está interesado en todos los eventos, no teniendo
que descartar ninguno.
- Por lo que se refiere al caso de estar interesado en un espectáculo dado pero sólo en los
comentarios de un grupo de reporteros, el subscriptor tendría que suscribirse al tema asociado a ese espectáculo y descartar todos los eventos que no estén
vinculados con uno de los reporteros de interés.
El uso de un filtro por contenido especificando como función que el
escritor del comentario pertenezca a ese grupo de reporteros sería, por tanto, beneficioso ya que descartaría todos los demás eventos.
- En cuanto al caso de estar interesado en los comentarios que haga un determinado reportero sobre un conjunto de espectáculos concreto,
el subscriptor tendría que suscribirse a los temas asociados a esos espectáculos y descartar todos los eventos que no estén vinculados con ese reportero de interés.
El uso de un filtro por contenido especificando como función que el
escritor del comentario sea ese reportero sería, por tanto, beneficioso ya que descartaría todos los demás eventos.
- Con respecto al caso de estar interesado en los comentarios que haga un determinado reportero sobre cualquier espectáculo,
el subscriptor tendría que suscribirse a todos los temas (espectáculos) y descartar todos los eventos que no estén vinculados con ese reportero de interés.
El uso de un filtro por contenido especificando como función que el
escritor del comentario sea un determinado reportero sería más beneficioso
que en los casos previos puesto que el número de eventos que se descartan
va a ser mayor.
- Suponga que se crea para la solución editor/subscriptor con esquema push una jerarquía de temas (por ejemplo, para expresar el interés en todos los partidos de tenis del torneo de Wimbledon que se estén retransmitiendo en ese instante se usaría deportes/tenis/wimbledon/*). ¿Podría aumentar o diminuir el número de operaciones de subscripción (S) y el de notificaciones (N) si se usa el esquema jerárquico en vez de uno plano?
- Menos S
- Más S
- Menos N
- Más N
- Explicación
-
El uso de un tema de más alto nivel en la subscripción
va a permitir poder usar una única operación
de subscripción en vez de tener que suscribirse a cada uno de
los temas de nivel inferior incluidos en el mismo.
Por tanto, se va a reducir el número de mensajes requeridos
para esta operación de subscripción.
Por otro lado, ya sea usando una
subscripción de alto nivel o las de bajo
nivel equivalentes, el número de notificaciones será el mismo.