Enunciado

Trabajo Práctico 2 - Concurrentes - FIUBA

Diagramas Draw.io

Diagramas en Draw.IO

Repositorio

https://github.com/concurrentes-fiuba/2024-1c-tp2-helados-grido

Técnicas de Programación Concurrente I -Trabajo Práctico 2 “Heladería Robotizada”

Integrantes

Pedro Gallino 107587

Manuel Pol 108448

Luca Lazcano 107044

Arquitectura

General

El sistema se compone de varias Screens, que son las encargadas de leer los archivos de los pedidos (uno por cada pantalla) y derivarlos a los robots. Las screens se organizan en un régimen centralizado donde una de ellas es convocada como la ScreenLeader. Esta se elige utilizando el algoritmo Bully de elección de líder, la del id más alto es la elegida. La líder se encarga de recibir todos los pedidos del resto de las pantallas y coordinarlos para entregarlos a los robots que están libres (en funcionamiento y sin estar resolviendo un pedido), teniendo variables de estado que precisamente le indican la condición de los robots. De esta forma nos evitamos un grande e innecesario tránsito de mensajes entre pantallas y robots para encontrar los robots disponibles a recibir un pedido.

Los Robots son los actores que concretamente resuelven los pedidos. Los reciben por medio de la pantalla líder y son los encargados de manejar los contenedores de helados para completarlos. Los contenedores de helados están representados por tokens (uno por cada gusto), que se van transportando por los robots en círculos, haciendo uso del algoritmo de Token Ring. Un robot puede acceder al contenedor de un gusto en específico de helado solamente cuando obtiene el token del mismo, token que mantiene el estado actualizado del contenedor.

Por último tenemos al Gateway de pagos. Este tiene como función (decidir si) capturar la tarjeta vinculada a un pedido y, una vez que el pedido fue confirmado , anotarlo en un log. En caso de que la tarjeta sea rechazada o no se pudo resolver el pedido, se loguea lo ocurrido en el archivo. El gateway es una entidad única y se da por hecho que nunca falla.

Entidades principales del Modelo

Screens: