Architecture

La pile logiciel (backend-node) s'appuie sur une architecture orienté service.
Un service est une unité atomique avec une fonctionnalité bien précise. Mis ensemble, les services permettent ainsi d'effectuer la tâche du logiciel entier.

Exemple

La tâche de l'architecture backend-node est de pouvoir participer à un match de SSL.
Un service serait la prise de décision ou la manipulation en vitesse du robot.

Cette approche est à mettre en opposition à l'architecture traditionnelle du développement logiciel : architecture monolithique. La pile de NAMeC (backend-cpp) utilise cette architecture.
Ces deux types d'architectures (et leur variantes), présente chacun des avantages et des défauts.

info

A travers le cours du Club Innovation, l'accent sera mis sur les concepts clés à savoir de la SSL, cela permettra de ne pas vous rendre dépendant d'une plateforme ou d'une architecture (C++ ou NodeJS).

Schéma de l'architecture#

schéma - architecture

Présentation des services#

Dans la suite de ce chapitre, nous allons décrire précisément l'ensemble des fonctionnalités qu'apporte chaque service au projet.

Présentation des entrées-sorties#

Vision#

Les données de vision sont transmises par ssl-vision (réel) ou grSim (simulation) sous format protobuf.

Game-Controller#

TODO - A faire (17/12/2020)

Robot#

TODO - A faire

Order#

TODO - A faire

Présentation interne#

Structure principale#

La structure principale se compose de cinq services.

Fonctionnalité

Réceptionner les données en entrées (vision ou game-controller).

Outils#

Ces services sont dans le but de donner des outils et du confort au développeur.

Librairies externes#

ssl/types#

TODO

ssl/algorithm#

TODO

Structure des fichiers du services#

Schéma de définition#

Environnement#