Proyecto ELO330

Acceso general sincronizado a un inventario

Por Ariel Gamboa, Rodrigo Jimenez

Resumen

En el ámbito administrativo de lo referente al inventario de una tienda, es necesario mantener actualizada y accesible la información de los productor existentes, la cual debe ser modificada por el encargado de la bodega quien recibe y ordena los productos proporcionados por los proveedores, además los vendedores deben ser capaces de quitar productos del stock al momento de vender, y al mismo tiempo los clientes quieren ver una lista actualizada de los productos disponibles para comprar. Es por esto que se hace necesario aplicar los conocimientos adquiridos en ELO330 tales como zonas de memoria compartida, comunicacion entre procesos, hilos de prosesos, semaforos de sincronizacion y llamadas al systema para permitir y sincronizar el acceso a estos datos compartidos, por los 3 diferentes grupos de personas al mismo tiempo.

Los tres programas

El problema fue resuelto por medio de tres archivos fuente bodeguero.c, comprador.c y vendedor.c, los cuales compilan tres programas respectivamente:

 

 

 

Ejemplo de Uso

A continuacion se muestra un ejemplo de uso: en vista que es un programa con asignacion de memoria compartida y servidor socket tcp, los programas deben ejecutarse en orden.

En primer lugar se ejecuta el programa b, puesto que este crea la zona de memoria compartida para inventario y carrito de compras. 

$./b

En cualquier momento el bodeguero puede revisar el inventario y agregar nuevos productos.

Luego se debe ejecutar el programa v, en vista que este levanta el servidor tcp al que se conectará el cliente. Este programa queda esperando por conexiones desde el programa cliente cuando se solicite concretar una venta.

$./v <puerto>

Finalmente, se ejecuta el programa cliente:

$./c <ip> <puerto>

En cualquier momento puede aparecer un cliente y ocupar el programa: ver inventario, seleccionar articulos (pudiendo filtrarlos), ver carrito de compras y confirmar la compra.

 

Conclusiones

Mejoras

EL proyecto puede mejorarse bastante, entre las mejoras detectadas se tiene:

entre otras.

Capturas

Interfaz de bodeguero

 Interfaz de bodeguero

Interfaz de comprador

 Interfaz de comprador

Interfaz de vendedor

 Interfaz de vendedor

Descargas

Fuente:  enlace

Presentacion:  enlace