As part of SAE 3.02, the objective was to design a distributed system where clients can submit programs to be executed on an infrastructure composed of a master server and several secondary servers. This type of architecture allows for optimized resource management and better task distribution, ensuring efficient and scalable processing.
The whole system relies on socket communication and a graphical interface developed with PyQt, providing users with easy access to the system's features. Special attention was given to supporting multiple programming languages (Java, Python, C, C++) to ensure execution flexibility. Although some improvements such as securing exchanges and saving tasks in case of failure were not integrated, the project provides a solid foundation for an evolving and high-performance system.
You can find the full project deliverable on GitHub:
click here.
You will also find an explanatory video about the load balancing method, as well as user and developer documentation.