Retour à l'accueil

Intégration du portail B2B avec ERP via ESB

L'article décrit le modèle d'intégration asynchrone bidirectionnelle du portail B2B avec le cœur ERP via ESB pour éviter les conditions de course et la perte de données. Considère le flux de données, le tamponnage dans les files d'attente, et le protocole AOK pour la documentation. Convient aux développeurs middle/senior.

ESB pour B2B et ERP : synchronisation asynchrone sans pertes
Advertisement 728x90

Intégration résiliente d'un portail B2B avec le cœur ERP via un ESB

Dans les projets d'entreprise, les portails B2B destinés aux partenaires sont intégrés à des systèmes monolithiques comme l'ERP ou Tririga. Les connexions directes entraînent des conditions de concurrence, où des modifications simultanées des utilisateurs du portail et des administrateurs du cœur écrasent les données. La solution est un ESB servant de couche intermédiaire avec un modèle événementiel pour un transfert asynchrone bidirectionnel.

L'ESB isole le portail de la structure interne du cœur : il accepte du JSON, le transforme en SOAP/XML ou en REST spécifique, et le met en tampon dans des files d'attente (RabbitMQ, Kafka) en cas d'indisponibilité. Le cœur reste la source unique de vérité — les modifications qu'il subit déclenchent des webhooks vers le bus pour mettre à jour le portail.

Problèmes de l'intégration synchrone point à point

Les appels synchrones provoquent :

Google AdInline article slot
  • Condition de concurrence : La dernière requête écrase la précédente.
  • Propagation des indisponibilités : Les sauvegardes ou mises à jour du cœur cassent le portail.
  • Risques de sécurité : Exposition des API à l'extérieur sans protection adéquate.

Dans un scénario, un sous-traitant modifie un quota sur le portail (de 10 à 50 objets), tandis qu'un administrateur le modifie dans le cœur (à 5 suite à une pénalité). Sans tampon, les données sont perdues.

Architecture via ESB : Flux de données

Flux de données :

  • Le portail envoie du JSON à l'ESB.
  • L'ESB valide, transforme la charge utile et la met en file d'attente.
  • Quand le cœur est disponible — livraison et confirmation.
  • Modifications dans le cœur → déclenchement → webhook vers l'ESB → mise à jour du portail.

Cela garantit :

Google AdInline article slot
  • Isolation des interfaces.
  • Asynchronie avec politiques de nouvelle tentative.
  • Résilience aux pannes pendant les pics de charge.

Documentation du code : Protocole AOK

Pour maintenir l'architecture, utilisez AOK — un passeport dans les commentaires JSDoc des modules clés. Il enregistre l'objectif, l'architecture, les points d'intégration et la conformité SOLID.

Exemple pour un module de synchronisation des quotas :

/**
 * ====================================================================
 * | PASSEPORT AOK : MODULE DE SYNCHRONISATION DES CAPACITÉS |
 * ====================================================================
 *
 * @OBJECTIF
 * Assurer la synchronisation bidirectionnelle des paramètres "Quota"
 * entre l'Espace Personnel du Partenaire et la fiche dans le système Cœur.
 *
 * @ARCHITECTURE
 * Accepte une charge utile JSON du Portail Partenaire.
 * Valide les valeurs (min/max) selon les tables de configuration.
 * Lance des mises à jour d'enregistrement dans la table (Objet Métier).
 * Lorsque les données sont modifiées par l'Administrateur Métier, cela déclenche
 * un processus en arrière-plan pour renvoyer les données via Webhook.
 *
 * @INTÉGRATION
 * Point de terminaison : /api/v1/sync_capacity
 * Mécanisme de sécurité : Validation du token JWT, chiffrement SSL/TLS.
 * Gestion des erreurs : Si le bus est indisponible, active
 * une politique de nouvelle tentative (3 essais à 5 minutes d'intervalle), puis journalise dans Kibana.
 *
 * @CONFORMITÉ_SOLID
 * Responsabilité unique : Le module est uniquement responsable de la synchronisation des données ;
 * la logique de calcul de notation est isolée dans un microservice séparé.
 * ==================================================================== */

AOK minimise l'intégration : les nouveaux développeurs voient immédiatement le contexte d'intégration, la validation et la gestion des erreurs.

Google AdInline article slot

Composants clés de mise en œuvre

  • Files d'attente : RabbitMQ/Kafka pour la mise en tampon.
  • Transformations : L'ESB mappe JSON → formats hérités (SOAP, XML).
  • Déclencheurs : OnSave dans le cœur pour la synchronisation inverse.
  • Sécurité : JWT, TLS, limitation du débit.
  • Surveillance : Journaux dans Kibana, métriques des files.

Points clés à retenir

  • Le cœur est la source unique de vérité ; le portail reflète l'état via l'ESB.
  • L'asynchronie prévient les indisponibilités et les conditions de concurrence.
  • AOK dans le code assure une maintenabilité à long terme.
  • Politiques de nouvelle tentative (3 essais, intervalles de 5 minutes) pour la fiabilité.
  • L'isolation réduit les risques de sécurité des API externes.

— Editorial Team

Advertisement 728x90

Lire ensuite