Comme il s'agit d'une application client-serveur, tout est asynchrone. Cette fiche brosse l'ensemble des aspects réseaux de l'application et présente les classes et objets qui entrent en jeux.
- Toutes les requêtes du client sont exécuté par le
NetworkManager
via l'objetRequest
; - Toutes les resources du model (
Sample
,File
,Subject
,Project
, ...) vont suivre un même cycle de vie; - Certaines resources un peu plus compliquées comme les
FilteringAnalysis
vont avoir un cycle un peu plus compliquée aussi.
Request
NetworkManager
Websocket
HTTP / HTTPS
Connection status
En fonction des aléas du réseau, il faut être en mesure de présenter à tout instant un status clair de la situation à l'utilisateur. Le client doit donc gérer finement le status de la connection et savoir si des données sont présentable ou non, en cours de synchronisation ou pas, etc. Et en cas d'interruption, il faut recharger certains élément afin d'être à jours.
TODO: diag flow + machine a état du status