Web service embarqué ?
On se rend compte que si notre logiciel d'ingestion des logbooks via le service web fonctionne bien sur une bonne connexion, le temps de traitement devient déraisonnablement long sur connexion à forte latence (4G). 15 minutes pour un trip. Et c'est bien la réalité de nos bureaux de saisie abidjanais et dakarois.
En cause : les très nombreux appels au service pour récupérer les topiaid requis pour former le trip à finalement insérer
Plusieurs solutions peuvent résoudre ce problème :
- Un service d'insertion qui n'exigerait pas les topiaid des références, mais pourrait lui-même les déterminer à partir des id ou strings métier que nous lui fournirions (codes espèces, valeurs 'code', sous-chaînes de texte, etc) -> risque d'un service au comportement 'brouillon', peu contrôlable
- Mettre en cache de notre côté les paires clé-valeur déjà rapatriées -> amélioration des performances progressive et non garantie
- Récupérer toutes les listes de référence en un appel, et faire faire assumer au client les recherches d'id -> moins satisfaisant, car moins le client traite, mieux c'est. Mais ce serait viable.
- Avoir un WS qui tourne sur le client -> la meilleure option
Mais est-ce possible techniquement ?
L'idée serait :
- d'avoir le service web embarqué dans un Jetty, qui démarrerait en arrière plan en même temps que l'application, ou qui se démarrerait par une action dans le menu
- d'utiliser dans ce cas la base locale comme référence...
- ...et comme cible de l'insertion par le POST
Edited by Pascal Cauquil