Sistemas Distribuidos: Ejercicio del tema arquitectura de los sistemas distribuidos
Marzo del 2021.
Grupo de mañana.
Modelo 4
Se trata de una empresa de comida a domicilio que incluye en su plantilla cocineros, repartidores y supervisores. Un cliente usa una aplicación para realizar un pedido, de manera que, una vez enviada la solicitud, va a ser informado de la evolución del estado del pedido, distinguiéndose los siguientes eventos: pasa al estado de en preparación (un cocinero se ha hecho cargo del pedido), transita al estado de pendiente de reparto (ya está cocinado), alcanza el estado de en reparto (un repartidor se ha hecho cargo de la entrega) y llega al estado final de entregado. Cuando un cliente realiza una solicitud, el pedido queda a la espera de que un cocinero que esté en ese momento libre se encargue de prepararlo. Cuando el cocinero completa su labor, el pedido ya elaborado queda a la espera de que un repartidor que esté libre se dedique a llevarlo hasta el domicilio del cliente. Por otro lado, para controlar la calidad del servicio, los supervisores se encargan de ir haciendo el seguimiento de algunos pedidos.
Para afrontar esta funcionalidad se va a usar un esquema productor-consumidor para todo lo relacionado con la gestión de los pedidos (el envío de la solicitud del cliente, la recepción del pedido por parte de un cocinero, su solicitud de reparto cuando completa su preparación y la recepción de esa solicitud por parte de un repartidor), exceptuando lo que se refiere al seguimiento de la evolución del estado de los mismos, que se lleva a cabo mediante un esquema editor-subscriptor basado en temas.
Un repartidor usa la aplicación A que le proporciona una operación OP1 que deja al repartidor en espera de un pedido preparado completándose dicha operación cuando este recibe uno. Cuando el repartidor realiza la entrega en el domicilio activa la operación OP2 de esa aplicación. Un supervisor utiliza la aplicación B que le dota de una operación OP3 para iniciar el seguimiento del pedido que especifique y la operación OP4 para abandonar ese seguimiento. Un cliente usa la aplicación C que ofrece la operación OP5 que permite enviar un pedido a la empresa, siendo informado a partir de ese momento de la evolución del mismo. Un cocinero utiliza la aplicación D que le proporciona una operación OP6 que deja al cocinero en espera de un pedido completándose dicha operación cuando este recibe uno. Cuando el cocinero termina de preparar la comida correspondiente al pedido recibido, usa la operación OP7 que solicita el reparto de ese pedido.
Supóngase que en un momento dado hay 10 cocineros, 12 repartidores, 11 supervisores y 13 pedidos.
Los supervisores almacenan en un sistema de ficheros los datos correspondientes a los distintos eventos manteniéndose 3 copias que deben gestionarse asegurando que no se acceden a datos obsoletos en circunstancias normales, pero priorizando evitar cortes en el acceso a esos datos ante problemas de conectividad que causan particiones. Asimismo, usan un cierto servicio de alta disponibilidad, implementado de tal manera que se reduzca el gasto de energía de los procesadores involucrados, pero evitando que la recuperación implique reconstruir el estado desde el inicio del servicio.
- ¿Cuántos temas editor/subscriptor existen en el sistema?
13
- Explicación
-
El esquema editor/subscriptor está destinado a realizar un seguimiento de los pedidos. Por tanto, habrá un tema por cada pedido.
- ¿Cuántas colas productor/consumidor existen en el sistema?
2
- Explicación
-
El esquema productor/consumidor se usa para que los clientes envíen las solicitudes de pedido y los cocineros las de reparto. Por tanto, son necesarias dos colas.
- ¿Qué componentes ejercen el rol de productor? Si hay varios componentes, responda especificando juntas las letras correspondientes, en orden alfabético, como, por ejemplo, AC.
CD
- Explicación
-
Tanto los clientes como los cocineros ejercen el rol de productores
enviando solicitudes de pedidos y de repartos a las colas respectivas.
- ¿Qué componentes ejercen el rol de consumidor? Si hay varios componentes, responda especificando juntas las letras correspondientes, en orden alfabético, como, por ejemplo, AC.
AD
- Explicación
-
Tanto los cocineros como los repartidores ejercen el rol de consumidores
recibiendo las solicitudes de pedidos y de repartos, respectivamente.
- ¿Qué componentes ejercen el rol de editor? Si hay varios componentes, responda especificando juntas las letras correspondientes, en orden alfabético, como, por ejemplo, AC.
AD
- Explicación
-
Los cocineros y los repartidores van notificando del progreso de los pedidos, ejerciciendo, por tanto, el rol de editores.
- ¿Qué componentes ejercen el rol de subscriptor? Si hay varios componentes, responda especificando juntas las letras correspondientes, en orden alfabético, como, por ejemplo, AC.
BC
- Explicación
-
Los clientes y los supervisores van siendo notificados del progreso de los pedidos, ejerciciendo, por tanto, el papel de subscriptores.
- ¿A qué acción editor/subscriptor corresponde OP1?
- subscripción
- publicación
- baja
- Explicación
-
Cuando el repartidor recibe una solicitud de entrega genera una publicación para que los interesados puedan conocer que el pedido está en reparto.
- ¿A qué acción editor/subscriptor corresponde OP2?
- subscripción
- publicación
- baja
- Explicación
-
Cuando el repartidor realiza la entrega de un pedido genera una publicación para que los interesados puedan conocer que el pedido está entregado.
- ¿A qué acción editor/subscriptor corresponde OP3?
- subscripción
- publicación
- baja
- Explicación
-
El supervisor debe subscribirse para realizar el seguimiento de un pedido.
- ¿A qué acción editor/subscriptor corresponde OP4?
- subscripción
- publicación
- baja
- Explicación
-
El supervisor debe darse de baja para abandonar el seguimiento de un pedido.
- ¿A qué acción editor/subscriptor corresponde OP5?
- subscripción
- publicación
- baja
- Explicación
-
El cliente se queda a la espera de ser notificado de los distintos eventos correspondientes al seguimiento del pedido, por lo que se trata de una subscripción.
- ¿A qué acción editor/subscriptor corresponde OP6?
- subscripción
- publicación
- baja
- Explicación
-
Cuando el cocinero recibe un pedido genera una publicación para que los interesados puedan conocer que el pedido está en preparación.
- ¿A qué acción editor/subscriptor corresponde OP7?
- subscripción
- publicación
- baja
- Explicación
-
Cuando el cocinero termina de preparar un pedido genera una publicación para que los interesados puedan conocer que el pedido está listo para el reparto.
- ¿Qué módulo debería enviar los mensajes de renovación si se aplica leasing al esquema editor/subscriptor? Si hay varios componentes, responda especificando juntas las letras correspondientes, en orden alfabético, como, por ejemplo, AC.
BC
- Explicación
-
Los clientes y los supervisores, en su rol de subscriptores, deben renovar el lease.
- 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?
- Interés en conocer cada vez que un determinado cocinero termina de preparar un pedido.
- Interés en conocer cuándo está preparado un determinado pedido.
- Interés en conocer cuándo se entrega un determinado pedido.
- Interés en conocer cada vez que hay una entrega en un domicilio.
- 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 conocer cuándo está preparado un determinado pedido, habría que subscribirse a ese pedido y descartar todos sus eventos de seguimiento exceptuando el que indica que ya está preparado. Por tanto, se descartan 3 notificaciones.
- Si se está interesado en saber cuándo se entrega un determinado pedido, bastaría con subscribirse a ese pedido y descartar todos sus eventos de seguimiento exceptuando el que indica que ya está entregado. En consecuencia, se descartan 3 notificaciones.
- Para conocer cada vez que se realiza una entrega a domicilio hay que subscribirse a todos los pedidos y quedarse con solo el evento de entrega de cada pedido. En este caso, se descartan 3 notificaciones por cada pedido.
- En cuanto a saber cada vez que un determinado cocinero termina de preparar un pedido, se debería subscribir a todos los pedidos y descartar todos los eventos de todos los pedidos exceptuando aquellos que correspondan a la notificación de que ese cocinero ha completado ese pedido. Claramente, se trata del caso donde sería más ventajoso usar un filtro por contenido puesto que se descartan todos los eventos de la mayoría de los pedidos, quedándose solo con la notificación de pedido completado únicamente para pedidos preparados por ese cocinero.
- ¿De qué tipo de sistema se trata según el teorema CAP?
- AP
- CA
- CP
- CAP
- Explicación
-
Se plantea como requisito que el sistema proporcione acceso ininterrumpido a los datos, por lo que se prioriza la disponibilidad (A) a la consistencia (C) cuando se produce una partición (P).
- ¿De qué tipo de sistema se trata según el teorema PACELC?
- PAEC
- PCEC
- PAEL
- PCEL
- Explicación
-
Se plantea como requisito que el sistema proporcione acceso ininterrumpido a los datos, por lo que se prioriza la disponibilidad (A) a la consistencia (C) cuando se produce una partición (P). Sin embargo, cuando no hay problemas de conectividad (E) se prima el mantenimiento de la consistencia (C) frente a la reducción de la latencia (L).
- ¿Qué esquema de replicación de servicio se usa en el sistema?
- warm standby
- cold standby
- hot standby
- replicación activa
- Explicación
-
Este esquema conlleva un gasto reducido de recursos de procesamiento, pero evitando que el proceso de recuperación implique reconstruir el estado desde el inicio del servicio.