Sistemas Distribuidos: Ejercicio del tema arquitectura de los sistemas distribuidos

Marzo del 2021.

Grupo de mañana.

Modelo 3

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 cocinero utiliza la aplicación A que le proporciona una operación OP1 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 OP2 que solicita el reparto de ese pedido. Un repartidor usa la aplicación B que le proporciona una operación OP3 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 OP4 de esa aplicación. Un supervisor utiliza la aplicación C que le dota de una operación OP5 para iniciar el seguimiento del pedido que especifique y la operación OP6 para abandonar ese seguimiento. Un cliente usa la aplicación D que ofrece la operación OP7 que permite enviar un pedido a la empresa, siendo informado a partir de ese momento de la evolución del mismo.

Supóngase que en un momento dado hay 13 cocineros, 10 repartidores, 11 supervisores y 12 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.

  1. ¿Cuántos temas editor/subscriptor existen en el sistema?
    12
Explicación
El esquema editor/subscriptor está destinado a realizar un seguimiento de los pedidos. Por tanto, habrá un tema por cada pedido.
  1. ¿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.
  1. ¿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.
    AD
Explicación
Tanto los clientes como los cocineros ejercen el rol de productores enviando solicitudes de pedidos y de repartos a las colas respectivas.
  1. ¿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.
    AB
Explicación
Tanto los cocineros como los repartidores ejercen el rol de consumidores recibiendo las solicitudes de pedidos y de repartos, respectivamente.
  1. ¿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.
    AB
Explicación
Los cocineros y los repartidores van notificando del progreso de los pedidos, ejerciciendo, por tanto, el rol de editores.
  1. ¿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.
    CD
Explicación
Los clientes y los supervisores van siendo notificados del progreso de los pedidos, ejerciciendo, por tanto, el papel de subscriptores.
  1. ¿A qué acción editor/subscriptor corresponde OP1?
    1. subscripción
    2. publicación
    3. 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.
  1. ¿A qué acción editor/subscriptor corresponde OP2?
    1. subscripción
    2. publicación
    3. 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.
  1. ¿A qué acción editor/subscriptor corresponde OP3?
    1. subscripción
    2. publicación
    3. 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.
  1. ¿A qué acción editor/subscriptor corresponde OP4?
    1. subscripción
    2. publicación
    3. 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.
  1. ¿A qué acción editor/subscriptor corresponde OP5?
    1. subscripción
    2. publicación
    3. baja
Explicación
El supervisor debe subscribirse para realizar el seguimiento de un pedido.
  1. ¿A qué acción editor/subscriptor corresponde OP6?
    1. subscripción
    2. publicación
    3. baja
Explicación
El supervisor debe darse de baja para abandonar el seguimiento de un pedido.
  1. ¿A qué acción editor/subscriptor corresponde OP7?
    1. subscripción
    2. publicación
    3. 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.
  1. ¿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.
    CD
Explicación
Los clientes y los supervisores, en su rol de subscriptores, deben renovar el lease.
  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 cada vez que un determinado cocinero termina de preparar un pedido.
    2. Interés en conocer cuándo está preparado un determinado pedido.
    3. Interés en conocer cuándo se entrega un determinado pedido.
    4. 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).
  1. ¿De qué tipo de sistema se trata según el teorema CAP?
    1. AP
    2. CA
    3. CP
    4. 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).
  1. ¿De qué tipo de sistema se trata según el teorema PACELC?
    1. PAEC
    2. PCEC
    3. PAEL
    4. 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).
  1. ¿Qué esquema de replicación de servicio se usa en el sistema?
    1. cold standby
    2. hot standby
    3. warm standby
    4. replicación 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.