Un connecteur facilitant l’acheminement des messages Xbus vers l’ERP

Pour plusieurs clients, Xbus a été mis en œuvre pour prendre en charge l’acheminement des messages depuis/vers l’ERP Odoo. Nous avons donc réalisé un connecteur spécifique associé à un module Odoo afin de faciliter les échanges entre les deux solutions.


Un connecteur Xbus pour Odoo

Nos équipes ont développé un connecteur Xbus dédié à Odoo, qui permet à la fois d’importer dans l’ERP Open Source des messages provenant de Xbus et de transmettre au bus des données issues d’Odoo. Ce connecteur compatible avec la version 3 de Xbus est écrit en Go et s’appuie sur le module x_data_loader.

Transit des données par un serveur Redis

La solution mise en œuvre par nos équipes comporte un serveur doté du système de gestion de base de données Redis intercalé entre Xbus et Odoo afin de maintenir les performances. L’acheminement des messages Xbus jusqu’au serveur Redis est pris en charge par le connecteur Xbus-Odoo. Grâce au connecteur, le bus transmet les messages à Redis au fur et à mesure et dans un ordre aléatoire. Le serveur les conserve jusqu’à ce que l’intégralité de la transaction lui soit parvenue. Ensuite, l’ERP réceptionne en une seule fois toutes les données relatives à la transaction.

À noter que dans le cas d’un envoi de données issues d’Odoo vers Xbus (sens inverse du schéma présenté ci-dessus), les informations ne transitent pas par Redis.

Avantages d’une telle architecture :

- Réception de transactions intégrales cohérentes dans l’ERP : Odoo ne reçoit une enveloppe de la part de Redis que lorsqu’elle est complète. Ce procédé permet d’éviter les messages d’erreur signalant des données manquantes dans la base de données de l’ERP,

- Maintien des performances : grâce au mécanisme d’envoi unique par transaction, l’ERP n’est pas affecté par la durée de transmission des différents fragments d’enveloppe, parfois longue. Il conserve ainsi ses performances,

- Indépendance des applications : les messages Xbus étant stockés dans Redis une fois la totalité de l’enveloppe transmise au système de gestion de base de données, ils peuvent être livrés à l’ERP même en cas d’indisponibilité temporaire du bus,

- Une alternative à de multiples appels XML-RPC : cette architecture permet d’éviter de recourir à XML-RPC, protocole via lequel ne peut transiter qu’un volume restreint de données.

La combinaison du connecteur Xbus-Odoo et du module x_data_loader facilite la transmission des messages du bus à l’ERP par l’intermédiaire du serveur Redis. Le recours à ce serveur offre plusieurs avantages en termes de performances et renforce l’indépendance des applications.