18 décembre 2017
– 2 min de lecture
Bruno Tardy
Senior Manager Architecture
Bien que tentante par sa concision et sa fluidité, cette formulation est une chausse-trape tant elle semble précise alors qu’elle est absolument vide de sens. Elle donne l’impression aux parties prenantes de s’être exprimées alors qu’elle masque complètement la réflexion qu’ils doivent mener.
« Faire du temps réel » n’est en effet pas un besoin. On voit tout juste pointer le bout du nez d’une information sur la vitesse de propagation mais c’est une exigence non fonctionnelle qu’il sera nécessaire d’arriver à quantifier, l’ubiquité de la donnée n’étant pas encore accessible. Et ce sera d’ailleurs l’occasion de parler volumétrie, supervision, sécurité.
Et rappelons que le synchronisme n’a rien à voir là-dedans… De nos jours des API complexes vont mettre beaucoup plus de temps à répondre qu’une transmission asynchrone utilisant un outil correctement dimensionné.
Pour être sûr de ne plus faire l’erreur, reprenons les bases
L’important dans la conception d’un échange de données est de comprendre la relation entre le consommateur et le producteur. Et ça, c’est bien les sachants fonctionnels qui sont les mieux placés pour l’exprimer (un accompagnement par une personne exercée peut être utile) :
- Qui déclenche le flux ? Est-ce le besoin d’accéder à la donnée -et donc le consommateur- ou le fait d’avoir capté un événement (création, modification d’information) -et donc le créateur ?
- Est-on dans le cadre d’une communication bidirectionnelle -question-réponse-, ou unilatérale ?
- S’il y a réponse, doit-elle être liée à la question et à son contexte ou garde-t-elle tout son sens et sa pertinence quel que soit le timing de retour ?
Un petit exemple, car je sens que cette phrase absconse peut laisser pantois : Quand je lance un calcul d’itinéraire avec G**gle, la réponse est entièrement liée au contexte d’appel, i.e. ma position. L’information n’a plus de sens si elle arrive trop tard ou si j’ai depuis déclenché une nouvelle demande (si j’ai raté une intersection par exemple). En revanche si je demande le score de Lyon/Paris-Saint Germain d’hier, le contexte de ma demande n’influe pas, je veux la réponse dès que possible, et si cela arrive dans 2 minutes cela m’intéresse toujours !
Il est maintenant clair que ces trois questions dépassent largement la notion de « temps réel ». Délaissez donc cette formulation passe partout et cantonnez-la aux discussions dont le fond n’est pas réellement l’architecture des échanges (et heureusement elles sont nombreuses !).