Quand on fait le schéma d’un système d’information (un système informatique pour gérer un site e-commerce par exemple), on fait souvent des schémas avec des blocs et des traits.
L’idée est simple : l’important, ce qui doit être étudié, ce sont les blocs.
Ils contiennent les fonctions qui doivent faire vivre le système, et apporter la valeur attendue.
On se retrouve à faire un beau « légo » avec des blocs super sympa, un CRM par ci, un ERP par là, un moteur e-commerce bien sûr…
Méfiez vous !
Tous les « urbanistes » de systèmes d’informations savent que dans la vrai vie, un vrai sujet de complexité se cache dans les traits du schéma.
Les raisons ?
Elles sont nombreuses :
Les différentes briques ainsi assemblées ne parlent pas nécessairement le même langage. Il va donc falloir définir des « traducteurs », pour que tout le monde se comprenne.
Qui dit « lien » dit en fait protocole d’échange. Il faut spécifier ce protocole, en détail ;
Ce protocole doit définir :
- Le support pour échanger les données (fichier FTP, Web Services, …) ;
- Le contenu des échanges (XML, CSV, …) ;
- Le modèle de données des échanges ;
- Le mode de synchronisation :
- Synchrone (le client fait une demande, et à la réponse en temps réel) ;
- Asynchrone, soit de manière évènementiel, soit sur intervalles de temps réguliers ;
- Le traitement des erreurs. Souvent oublié, alors que les raisons et les types d’erreurs sont nombreux (panne d’un des serveurs, bug, évolution d’un des systèmes non répercuté sur les autres, …
Tout cela est sympathique, mais ce n’est pas fini, il faut également penser évolutivité !
Cela veut dire que notre protocole d’échanges doit être capable d’évoluer, sans tout avoir à refaire.
Enfin, un tel système d’échange doit pouvoir s’administrer, se « monitorer ».
Bien sûr, pour un petit site, on doit faire simple,…
Mais « petit site deviendra grand » (c’est tout le mal que je lui souhaite 😉 ) et si on ne prend pas le temps de bien concevoir le nouveau système d’information…
C’est pourquoi dès qu’un site est suffisemment grand, je propose de mettre en place un véritale système d’échange, pour « remplacer les traits » par un module, bien identifié, dont la fonction est de faciliter tous les échanges entre les différentes briques du système d’information.
Le grand avantage de cette architecture, c’est qu’on factorise, on regroupe les différents besoins d’échanges au même endroit.
Enfin, il me semble raisonnable d’ajouter : c’est vraiment l’un des métiers d’Araok de vous accompagner dans ce type de réflexion…