Laissez-nous vos coordonnées, nous vous enverrons notre livre blanc par e-mail.
Je consens à ce que mes données personnelles soient traitées afin d'envoyer du matériel de marketing personnalisé conformément à la directive sur la protection des données. Politique de confidentialité. En confirmant la soumission, vous acceptez de recevoir du matériel de marketing
Merci !

Le formulaire a été soumis avec succès.
Vous trouverez de plus amples informations dans votre boîte aux lettres.

Innowise est une société internationale de développement de logiciels à cycle complet fondée en 2007. Nous sommes une équipe de plus de 1600+ professionnels de l'informatique développant des logiciels pour d'autres professionnels dans le monde entier.
À propos de nous
Innowise est une société internationale de développement de logiciels à cycle complet fondée en 2007. Nous sommes une équipe de plus de 1600+ professionnels de l'informatique développant des logiciels pour d'autres professionnels dans le monde entier.

Amélioration de l'application web GDS : intégrations API 2x plus rapide

Innowise a procédé à une refonte complète du code de la plateforme et a considérablement simplifié le processus de intégration API. 

Client

Industrie

Voyage

Région

UE

Client depuis

2023

Notre client, un acteur majeur de l'industrie du voyage, exploite un système de distribution mondial (GDS) pour l'émission de billets de ferry et d'autres services de voyage. Cette application web est un point de contact unique pour la gestion des différentes réservations de ferry, y compris les voyages de longue et de courte distance, les types de sièges multiples et même les itinéraires complexes à sauts multiples.

Les informations détaillées concernant le client ne peuvent pas être divulguées dans le cadre de l'accord de confidentialité.

Défi

Naviguer dans les limites du marché et les lacunes de la documentation

Ce client s'est trouvé limité par la taille de son marché actuel et souhaitait se développer davantage. Pour ce faire, il souhaitait mettre en place des intégrations API avec des agences de voyage. 

En outre, l'absence d'une documentation structurée sur l'architecture logicielle constituait un point sensible. Cette lacune a entraîné plusieurs défis, tels que la mise à niveau des membres de l'équipe nouvellement embauchés, le maintien d'une compréhension commune du système parmi les différentes parties prenantes et la mise en œuvre sans heurts de nouvelles fonctionnalités du produit. 

Le client s'est donc tourné vers nous pour les intégrations API et la création d'une architecture complète de documentation logicielle.

Solution

Augmenter l'efficacité des applications web et perfectionner les techniques des itégrations API

Innowise a modernisé et optimisé l'application web. Intégrations API avec les agences de voyage pour améliorer l'expérience du ferry à travers l'Europe.

Création d'une documentation sur l'architecture des logiciels

Nous avons commencé par mener des entretiens approfondis avec l'équipe de développement du client et les parties prenantes. Cette approche nous a permis de saisir l'essence de leurs besoins. 

Forts de cette mine d'informations, nous avons entrepris de concevoir une structure de documentation intuitive et compréhensible. La documentation couvre tous les aspects, de la vue d'ensemble du système aux détails du code. Nous avons incorporé des diagrammes, des organigrammes et des éléments interactifs pour la rendre informative et attrayante.

Mais il ne s'agissait pas seulement de créer un document statique. D'après notre expérience, la meilleure documentation est celle qui vit, respire et évolue avec le système qu'elle décrit. Nous avons donc mis en place un processus de documentation dynamique qui serait continuellement mis à jour au fur et à mesure que le système se développait et évoluait. Cette approche de document vivant a permis de garantir que la documentation était toujours mise à jour.

En outre, nous nous sommes attachés à rendre la documentation accessible et compréhensible pour toutes les parties concernées. Il s'agissait d'éviter le jargon, d'utiliser un langage clair et concis et de veiller à ce que les parties prenantes techniques et non techniques puissent y trouver leur compte.

En établissant cette architecture complète de documentation logicielle, nous n'avons pas seulement jeté les bases du projet en cours, nous avons fourni au client un outil qui l'aiderait dans ses développements futurs, dans l'intégration des nouveaux membres de l'équipe et dans la facilitation d'une communication claire entre toutes les parties impliquées. Il s'agit de la pierre angulaire sur laquelle tous les développements ultérieurs ont été construits.

Refonte du code et migration vers des microservices

En nous plongeant dans le système existant du client, nous avons trouvé la version obsolète de Java avec des duplications de code et des pratiques dépassées. L'architecture initiale, une application monolithique, avait fait ses preuves dans les premiers temps. Cependant, au fur et à mesure que la plateforme se développait, cette approche a montré ses limites. L'évolutivité est devenue difficile, et la base de code s'est transformée en un labyrinthe confus dans lequel il était de plus en plus difficile de naviguer et de faire des mises à jour sans introduire de nouveaux bogues.

Sur la base de notre analyse, nous avons déterminé qu'il était nécessaire de passer à une architecture de microservices. Les microservices offrent une solution aux problèmes d'évolutivité et d'agilité du système monolithique. Chaque microservice de cette architecture fonctionne de manière indépendante, ce qui signifie que les changements apportés à un service n'ont pas d'impact direct sur les autres. Cette indépendance est cruciale pour un système comme celui de notre client, où les mises à jour et les intégrations fréquentes sont la norme.

La migration vers une architecture de microservices ne s'est pas faite du jour au lendemain. Nous avons adopté une approche incrémentale, en démantelant soigneusement la structure monolithique et en la réassemblant dans une architecture plus dynamique, basée sur les microservices. Cette méthode nous a permis de maintenir la fonctionnalité du système tout au long de la transition, en évitant tout temps d'arrêt important susceptible de nuire aux opérations de notre client.

Nous avons soigneusement extrait chaque service, l'avons affiné et l'avons déployé de manière indépendante. Nos développeurs ont séparé des services tels que la réservation de billets et la gestion d'itinéraires en unités distinctes. Cette séparation signifie que les mises à jour du système de gestion des itinéraires, par exemple, peuvent être effectuées sans risquer d'avoir des conséquences imprévues sur le système de réservation.

Pour cette transformation, nous avons utilisé Spring Boot et Spring Cloud. Spring Boot a facilité la mise en place et la configuration des microservices, accélérant ainsi le développement. Spring Cloud offre des outils précieux pour les systèmes distribués, tels que la gestion de la configuration et la découverte de services.

Nous avons également intégré Kafka en tant que courtier de messages. Sa capacité à gérer de gros volumes de données et à assurer une communication fiable entre les services était cruciale, en particulier compte tenu du flux de données important de la nouvelle architecture.

Enfin, nous avons mis en œuvre de nouveaux microservices sur la dernière version de Java. Cette mise à niveau a contribué à améliorer les performances et à renforcer la sécurité, constituant ainsi une base solide et moderne pour l'ensemble de l'architecture.

Élaboration d'un nouveau module de traitement

Au fur et à mesure que nous affinions et améliorions le système de notre client, nous avons constaté qu'il fallait trouver un moyen plus efficace de traiter les nouvelles intégrations. Cela a conduit au développement d'un module de traitement spécialisé, un ajout essentiel au système qui a apporté des améliorations substantielles au processus d'intégration.

Relever les défis de la redondance

L'un des principaux défis auxquels nous avons été confrontés était la nature répétitive du processus d'écriture du code pour chaque nouvelle intégration. Avant le développement de ce module de traitement, chaque nouvelle intégration avec un autre système d agence ou service de voyage a nécessité une quantité importante de code écrit à partir de zéro.

Conception du module de traitement

Le module de traitement que nous avons développé a été conçu pour servir d'interface polyvalente entre le système de notre client et les API externes. Ce module se compose de modèles et d'outils préconstruits et personnalisables qui réduisent considérablement la nécessité d'écrire un nouveau code pour chaque intégration. Il fonctionne en abstrayant les fonctionnalités et les processus standard généralement impliqués dans l'intégration avec divers services de voyage, tels que les systèmes de réservation de billets ou les bases de données de clients.

Le module comprend plusieurs caractéristiques essentielles:

  • Gestionnaires de communication de l'API: sont conçus pour gérer les demandes d'API entrantes et sortantes des agences de voyage. Ils gèrent la complexité des différents protocoles API et formats de données, facilitant ainsi la connexion avec les systèmes externes.
  • Outils de cartographie et de transformation des données: souvent, les structures de données varient d'un système à l'autre. Notre module comprend des outils qui mappent et transforment automatiquement les données dans le format requis par le système de notre client et les fournisseurs de services externes. Cela facilite l'échange et l'intégration des données.
  • Interface de configuration et de personnalisation: Reconnaissant le besoin de flexibilité, le module est équipé d'une interface qui permet aux développeurs de configurer et de personnaliser facilement les intégrations sans avoir à se plonger dans le code de base. Cela permet une adaptation rapide aux exigences spécifiques de chaque nouvelle agence de voyage ou service.

Intégration API avec des agences de voyage

Par la suite, nous avons intégré le GDS de notre client avec 4 agences de voyage qui utilisaient des mécanismes d'échange REST et SOAP. Ces intégrations étaient cruciales pour améliorer les processus de réservation, de modification et d'annulation des billets pour les services de ferry. Notre défi était de créer un cadre d'intégration capable de gérer une gamme variée de réservations de ferry, y compris différents itinéraires, configurations de sièges et services supplémentaires.

La mise en œuvre des intégrations API a nécessité plusieurs étapes critiques. Dans un premier temps, nous avons passé au crible les API des agences pour comprendre leurs structures de données et leurs exigences fonctionnelles. En nous appuyant sur notre nouveau module de traitement, nous avons créé des connecteurs personnalisés pour chaque agence. Ces connecteurs ont été conçus pour gérer les formats de données et les flux de travail opérationnels spécifiques de chaque agence, garantissant ainsi une intégration fluide des données avec le GDS de notre client.

Le processus comprenait le déploiement d'outils sophistiqués de mappage et de transformation des données au sein de notre module de traitement. Cette technologie a joué un rôle crucial en garantissant l'intégrité et la cohérence des données. Notre équipe a entrepris des tests approfondis pour valider l'efficacité et la fiabilité de ces intégrations. Nous avons simulé différents scénarios de réservation afin de tester les intégrations dans diverses conditions. Une fois les tests réussis, nous avons déployé les intégrations dans l'environnement réel, en mettant en place des mécanismes de contrôle continu pour superviser leurs performances et résoudre rapidement tout problème.

Technologies

System engineering

Java 17, Spring, Spring Boot, Spring Cloud, Hibernate

API

REST, SOAP

Stockage des data

PostgreSQL, Memcached

Courtiers en messages

Kafka

DevOps

Pipelines CI/CD GitLab

Services

Gitlab, Jira, Confluence

Processus

Découverte et analyse

Nous avons créé un document de vision et de portée afin d'aligner les objectifs du projet sur les attentes du client lors de la phase initiale. Ce document a permis de poser les bases du projet en comprenant les objectifs du client et les défis posés par le système.

Développement de la documentation sur l'architecture des logiciels

Nous avons ensuite élaboré une documentation dynamique et facilement compréhensible, conçue pour évoluer en phase avec le projet, afin d'optimiser la communication au sein de l'équipe et de rendre le processus d'intégration plus efficace.

Conception et développement

Ici, nous nous sommes concentrés sur la mise en œuvre de l'architecture des microservices et sur l'élaboration du module de traitement. Cette phase a mis en évidence notre expertise technique, ce qui a permis d'affiner l'architecture du système et de mettre au point un module de traitement entièrement fonctionnel.

Intégration et tests

En nous appuyant sur le module de traitement, nous avons intégré de manière transparente les API des agences de voyage. Des tests rigoureux ont garanti la fiabilité du système et l'amélioration des fonctionnalités.

Communication et suivi des tâches

Microsoft Teams était notre principal outil de communication, rationalisant les discussions, mettant à jour les partages et maintenant un référentiel d'informations central. Nous avons utilisé Jira pour organiser et gérer efficacement le flux de travail pour le suivi des tâches.

Équipe

4

Ingénieurs back-end

1

Ingénieur QA

1

Chef d'équipe

1

Chef de projet

1

Architecte logiciel

1

Analyste commercial

1

Gestionnaire des livraisons

Résultats

Obtenir des résultats transformateurs avec des ventes en hausse et une présence élargie sur le marché

Après une mise en œuvre réussie, l'application web du client a présenté des améliorations remarquables en termes de performances. La combinaison du remaniement du code et de la migration vers une architecture de microservices a permis un fonctionnement nettement plus fluide. Cette refonte technique, associée à l'intégration transparente de nouveaux services, a catalysé une augmentation substantielle des ventes du client.

L'impact de cette transformation s'est étendu au-delà du domaine financier. Elle a conduit à une expansion significative, non seulement en termes de revenus, mais aussi de présence géographique. L'entreprise a ainsi fait un bond en avant dans sa couverture du marché, renforçant sa position en tant qu'acteur de premier plan dans le secteur. Notre partenariat avec le client se poursuit, avec d'autres intégrations à l'horizon.

Durée du projet
  • Mars 2023 - En cours

30%

augmentation des ventes

2x

intégrations API 2x plus rapide

Contactez nous!

Réserver un appel ou remplissez le formulaire ci-dessous et nous vous contacterons dès que nous aurons traité votre demande.

    S’il vous plaît, ajouter les détails du projet, la durée, la pile technologique, IT spécialistes nécessaires et d'autres informations pertinentes
    S’il vous plaît, ajouter les détails du projet, la durée, la pile technologique, IT spécialistes
    nécessaires et d'autres informations pertinentes
    Joindre des documents supplémentaires au besoin
    Charger file

    Vous pouvez joindre jusqu'à 1 fichier de 2MB au total. Fichiers valides : pdf, jpg, jpeg, png

    Nous vous informons que lorsque vous cliquez sur le bouton Envoyer, Innowise traitera vos données personnelles conformément à notre Politique de confidentialité dans le but de vous fournir des informations appropriées.

    Que se passe-t-il ensuite?

    1

    Après avoir reçu et traité votre demande, nous reviendrons vers vous pour détailler les besoins de votre projet et signer un accord de non-divulgation pour assurer la confidentialité des informations.

    2

    Après avoir examiné les exigences, nos analystes et nos développeurs élaborent une proposition de projet avec l'étendue des travaux, le nombre de membre de l'équipe, les délais et les coûts des coûts.

    3

    Nous organisons une réunion avec vous pour discuter de l'offre et parvenir à un accord.

    4

    Nous signons un contrat et commençons à travailler sur votre projet le plus rapidement possible.

    Merci !

    Votre message a été envoyé.
    Nous traiterons votre demande et vous recontacterons dès que possible.

    Merci !

    Votre message a été envoyé.
    Nous traiterons votre demande et vous recontacterons dès que possible.

    flèche