Manejo de pedidos inteligente

Resumen

A continuación se presenta el informe del proyecto perteneciente al curso ELO330 “Programación De Sistemas”. Dentro del proyecto, se utilizó comunicación tcp entre cliente y servidor, manejo de hilos, sincronización, etc.

Introduccion

En los momentos de alta afluencia de público en un restaurant, se generan conflictos y demoras en la atención no sólo por la cantidad de gente y la escases de personal, sino también por el tiempo que tarda el mesero en tomar el pedido, informarlo en cocina y preguntar constantemente si se encuentra el pedido listo. Para simplificar el trabajo dentro de un restaurant, se implementó un sistema para poder generar una posible solución al conflicto y así ahorrar tiempo tanto para los clientes como para el personal, logrando así una mejor atención al público. Se plantea crear un sistema de comunicación más expedito entre el cliente, la cocina y el mesero, que permita mejorar la eficiencia de la atención y ahorrar tiempo de trabajo para el personal, que podrá atender más mesas durante la alta demanda del restaurant.

Funcionamiento del sistema

El sistema consta de 3 programas; Mesa (cliente), Cocina (servidor) y Mozo (servidor). Al iniciar la atención del local se debe ejecutar el sistema de la cocina el cual es el servidor del sistema, cuando éste se encuentra corriendo se procede a conectar los distintos clientes. Los mozos al conectarse, envían un mensaje indicando que éste es un mozo y el ID del mismo, para que la cocina lo almacene y procese qué mozos se encuentran en servicio. A su vez cada mesa tiene un ID ya asociado a un mozo para la información directa. Cuando la mesa realiza un pedido se envía la información del ID de mesa y del pedido a la cocina (servidor), la que almacena ésta información y da un aviso de que hay un nuevo pedido. Cuando el pedido se encuentra listo para servir se debe marcar en el servidor su disponibilidad para que el sistema avise al mozo y éste proceda a hacer la entrega del platillo.

Programas del sistema

Cocina

El programa cocina es un servidor tipo tcp concurrente el cual recibe múltiples conexiones de los distintos clientes que se deben conectar. Ésto se logró mediante el uso de select para manejar las conexiones, además se usó hilos para mantener un menú corriendo el cual es el encargado de mostrar los pedidos, avisar su disponibilidad y liberar las mesas.

Mesa

El programa mesa es un cliente tipo tcp que se conecta con cocina, cada programa de este tipo en cada mesa tiene asociado un ID para el reconocimiento en el servidor. Tiene un menú en el cual se realiza el pedido, o se puede llamar al mozo que le corresponde para alguna situación especial

Mozo

El programa mozo es un cliente tipo tcp que se conecta al servidor donde envía su ID para que este registre y de aviso de lo que sucede con las mesas que está a cargo, ya sea que se requiere para algún caso especial o que algún plato se encuentra disponible para ser servido.

Conclusiones

Al concluir el proyecto se puede evaluar que la idea principal, eliminar los tiempos de espera y mejorar la eficiencia de la atención, se cumplió según lo planeado. Sin embargo, durante la realización de proyecto, surgieron posibles mejoras, tales como implementar interfaz gráfica en los clientes para hacer más amigable su presentación, lo que significaba cambiar el lenguaje de programación del cliente, por lo que no era implementable en el momento ya que se debía cumplir con los plazos requeridos en la entrega del proyecto. Otra mejora que se podría realizar, sería además implementarlo en dispositivos móviles, ya sean Tablet o smartphones, para lograr una mayor independencia de sistemas estáticos.

Codigo

Codigo del programa

Autor

Gonzalo Báez