BL.Exchange, une solution pour rendre les logiciels conviviaux.

Image vedette de BL.Exchange.

Aujourd'hui, le marché informatique est composé de milliers d'applications avec encore plus d'options logicielles. Les organisations utilisent différents types d'applications avec des configurations distinctes qui évoluent très rapidement pour des objectifs différents. En outre, les applications sont développées selon des normes techniques qui évoluent constamment. Ce contexte rend la communication entre les applications difficile. Quoique, plus ces systèmes peuvent "dialoguer" entre eux, plus l'entreprise sera efficace.. C'est pourquoi nous travaillons sur BL.Exchange, une solution d'interopérabilité qui permet de créer des intégrations transparentes et aide les logiciels à fonctionner ensemble.

Schéma de la vision principale de BL.Exchange
Figure 1 : Schéma de la vision principale de BL.Exchange

BL.Exchange permet la communication (ou l'échange de données) entre des applications hétérogènes, développées dans différents langages, avec différents frameworks, pour différents secteurs.. Pour ce faire, la solution va prendre la position de médiateur. Elle reçoit les données des applications sources et les transmet aux autres applications qui doivent consommer ces données. Elle peut traiter les informations échangées par son intermédiaire, comme la traduction d'un format de données à un autre, elle est réalisée pour que les données puissent être comprises par les applications cibles, ce qui crée une relation de collaboration entre elles et les fait travailler ensemble.
Nous pouvons l'illustrer en disant qu'il s'agit du cargo, du port et du contrat avec la société de logistique, mais pas du contenu des conteneurs, ni du contrat entre le client et le fournisseur.

Par exemple, lorsque Berger-Levrault acquiert une nouvelle filiale, elle doit intégrer son système d'information pour pouvoir communiquer avec nos applications existantes et celles de nos clients. Par conséquent, il peut être nécessaire de créer de nouveaux flux d'échanges et de mettre à jour les flux existants, ce qui peut entraîner une perte de visibilité. De plus, cela nécessite un temps de développement important et réduit donc la réactivité en cas de panne. L'objectif principal de BL.Exchange est de fournir une plateforme d'interopérabilité flexible et évolutive permettant de créer de nouveaux flux d'échange entre différentes applications, avec un effort de développement moindre.

Nos objectifs finaux

Notre objectif à travers ce projet est de créer une solution :

  • Low-code / pas de code, facile à mettre en œuvre ;
  • Basé sur le cloud, pour gérer l'infrastructure et le code ;
  • Surveillable ;
  • Authentifié et sécurisé ;
  • Fiable et évolutif ;
  • Agnostique pour les entreprises ;
  • Extensible : Validation du format des données ; transformation des données à la volée ; possibilité de composition de services ;
  • Réutilisable, utilisant un catalogue de connecteurs ; un catalogue de modèles de flux ;
  • Découplé : Asynchrone et orienté événement ; Routage / multiplexage ; Connecteurs externalisés.

BL.Caractéristiques des échanges

BL.Exchange met l'accent sur la séparation entre les applications métier et les mécanismes qui gèrent la communication. Ainsi, BL.Exchange est complètement découplé de la logique métier.qui garantit son indépendance technique, fonctionnelle et managériale vis-à-vis des applications métiers. On peut donc créer de nouveaux flux d'échange pour tenir compte de l'évolution des besoins d'interopérabilité d'une application métier sans modifier les autres applications.

Pour atteindre nos objectifs, BL.Exchange est basé sur la technologie Spring Cloud Data Flow (SCDF)..
SCDF est un cadre de données natif du cloud source ouvert. Il unifie le traitement par flux et par lot, et définit les meilleures pratiques pour le traitement des données distribuées et par lot. Sa technologie permet aux développeurs de créer, d'orchestrer et de remanier les données. pipelines avec un modèle de programmation unique pour les cas d'utilisation courants tels que ingestion de donnéesanalyse en temps réelet importation/exportation de données. Le SCDF est livré avec plus de 60 applications préconstruites, a une large liste de connecteurs pour les situations courantes d'interopérabilité, il est polyglotte et fonctionne avec des applications développées dans différentes languesil sécurise les authentifications en utilisant OAuth2 et OpenID Connectet il offre le possibilité de se lier à n'importe quel courtier de messages (RabbitMQ, Apache Kafka, Kafka Streams, Amazon Kinesis, Google Pub/Sub, Solace PubSub+, Azure Event Hubs ou RocketMQ).

Interface web du SCDF
Figure 2 : Interface web du SCDF

Pour mettre en place un nouveau flux d'échange, l'utilisateur peut procéder de trois manières différentes :

  1. utiliser un langage spécifique au domaine pour spécifier comment connecter les sorties et les entrées des applications préconstruites et comment les déployer,
  2. utiliser un tableau de bord qui offre un éditeur graphique pour construire des pipelines de données de manière interactive,
  3. utiliser un shell séparé qui permet de travailler facilement avec l'API REST exposée par SCDF à partir de la ligne de commande.

Cette vision à faible code est la principale valeur ajoutée de notre solution d'interopérabilité avec ce qui existe déjà sur le marché..

Feuille de route du projet

Nous déployons actuellement une infrastructure de type "sandbox" sur AWS et poursuivons des expériences sur différents scénarios.
Puis nous récupérerons les erreurs, améliorerons sa sécurité d'authentification et testerons ses limites avant de le déployer et de le tester sur des cas d'utilisation réels.
Enfin, à long terme, nous souhaitons parvenir à la syndication de services, à la plateforme de messages IoT (haute fréquence, faible volume), à la découverte dynamique de services, à la montée en charge prédictive, au générateur de code connecteur, à l'analyse sémantique et à l'interopérabilité entre le front-end et le back-end.

Pour aller plus loin

BL.Exchange est construit comme une architecture orientée vers les événements. pour que les applications puissent communiquer, ce qui signifie une communication asynchrone, afin que les logiciels puissent continuer à fonctionner pendant que la solution est en cours d'exécution.

Vous trouverez ci-dessous plusieurs représentations de l'architecture de BL.Exchange. La première représentation concerne le contexte de notre solution d'interopérabilité.

BL.Exchange Contexte de l'architecture
Figure 3 : contexte de l'architecture de BL.Exchange

Le contexte de BL.Exchange fait référence à l'état de l'art de l'interopérabilité. Conception et cadre conceptuel pour aborder les questions d'interopérabilité et il doit être instancié dans le contexte des produits.

BL.Conteneurs d'architecture d'échange
Figure 4 : Conteneurs de l'architecture BL.Exchange
BL.Exchange Composants de l'architecture
Figure 5 : Composants de l'architecture de BL.Exchange

Plus ...

Retour en haut