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#
Présentation des servicesDans 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#
VisionLes données de vision sont transmises par ssl-vision (réel) ou grSim (simulation) sous format protobuf.
#
Game-ControllerTODO - A faire (17/12/2020)
#
RobotTODO - A faire
#
OrderTODO - A faire
#
Présentation interne#
Structure principaleLa structure principale se compose de cinq services.
- network-gateway
- game-data
- MSB
- bots-control
- bots-gateway
Fonctionnalité
Réceptionner les données en entrées (vision ou game-controller).
Fonctionnalité
Filtrer les données obtenus en entrée.
Fonctionnalité
Prise de décision en fonction d'un état du jeu.
Fonctionnalité
Contrôler le robot à travers des ordres simples (aller à une position donnée, tirer, ...)
Fonctionnalité
Envoyer les ordres en vitesse au robot.
#
OutilsCes services sont dans le but de donner des outils et du confort au développeur.
#
Librairies externes#
ssl/typesTODO
#
ssl/algorithmTODO