Skip to content

Latest commit

 

History

History
77 lines (65 loc) · 4.25 KB

READMES.md

File metadata and controls

77 lines (65 loc) · 4.25 KB

Distributed Systems Project

Desarrolladores


Mamey

📖

Heralex

📖

SergioRamirez

📖

Descripción

Este es un proyecto universitario para una arquitectura Cliente-Servidor, utilizando sockets TCP, subprocesos, contenedores docker y redes docker.

  • Hay 2 servidores, que pueden acceder a una base de datos.
  • Hay clientes que pueden solicitar alta, registro, verificación de identidad y encriptación de mensajes a estos servidores.
  • Todas las conexiones ocurren a través de un servidor "proxy", que maneja todas las conexiones de los clientes a los 2 servidores.

Una explicación de la arquitectura de este programa sería el siguiente UML


Requisitos

Si no desea usar poetry, deberás instalar todas las dependencias en pyproject.toml manualmente con pip install

Como instalar / ejecutar

Instalación en el IDE

  1. Descarga el proyecto y accede a su directorio.
  2. Ejecute pip install poetry
  3. Ejecute poetry install
  4. Una vez que la poetry cree el entorno virtual desde pyproject.toml, agréguelo como intérprete para su IDE.

Ejecución en el IDE

​ 118 / 5,000 Translation results Translation result Una vez que haya configurado todo y el proyecto instalado para ejecutar el proyecto, debe ejecutar estos archivos en orden:

  1. servidor_A.py y servidor_B.py
  2. proxy.py
  3. client.py

El orden de ejecución es importante, de lo contrario los sockets de cada archivo no se comunicarán.

Ejecución en Docker

Paso 1: Cree cada imagen con los siguientes comandos de terminal:

  1. cd cliente
  2. sudo docker build -t imagen_cliente .
  3. cd servidores
  4. sudo docker build -t imagen_servidores .
  5. cd proxy
  6. sudo docker build -t imagen_proxy .

Paso 2: crea una red docker:

  1. docker network create red_sergio_hernani_victor

Paso 3: Crea los contenedores con las imágenes y la red

  1. sudo docker run --name contenedor_servidores --network red_sergio_hernani_victor -d imagen_servidores
  2. sudo docker run --name contenedor_proxy --network red_sergio_hernani_victor -p 127.0.0.1:6000:6000 -d imagen_proxy
  3. sudo docker run -it --name contenedor_cliente --network red_sergio_hernani_victor imagen_cliente

Con todos los pasos anteriores completados, debería poder interactuar con el contenedor con el cliente.


Licencia

Lea el archivo LICENSE para mas información.