Mais à quoi sert une interop ? Quel a été l’intérêt d’effectuer ce travail de refacto ?
Découvrons ensemble les réponses à ces questions tout au long cet article.
L’interop, ou comment deux systèmes communiquent entre eux
On appelle interop (pour “interopérabilité”) des briques logicielles qui font partie d’Instant Booking.
Le rôle d’une interop est double : elle permet de faire le pont entre Instant Booking et des logiciels tiers en temps réel, et permet aussi d’ajouter des fonctionnalités à Instant Booking.
Instant Suite possède deux types d’interops principales :
- Les interops qui reçoivent les données émises par les capteurs associés aux ressources. Ces données permettent de mettre à jour automatiquement les statuts d’occupation de ces ressources dans Instant Booking
- Les interops de calendrier qui permettent à Instant Booking d’interagir avec les systèmes de messagerie Microsoft Outlook et Google AgendaC’est ce deuxième cas de figure qui nous intéressera pour la suite de cet article.
80% des réservations Instant Booking font appel à des interops de calendrier
Les interops de calendrier Exchange et Google Apps permettent à Instant Booking de se connecter aux comptes de services de messagerie Microsoft Outlook ou Gmail et de synchroniser les réservations de ressources sur leurs calendriers respectifs.
Les synchronisations sont bidirectionnelles et en temps réel ; cela signifie que les réservations faites dans Instant Booking sont immédiatement transmises à Outlook ou Google Agenda, et inversement.
En plus de la synchronisation des réservations entre Instant Suite et Outlook, l’interop Exchange permet aussi de faire apparaître sur Outlook les déclarations de présence au bureau que les utilisateurs renseignent dans Instant Booking (que ce soit sur le portail web ou sur Instant Mobile).
Ces deux interops sont particulièrement importantes pour nos clients. En effet, 80 % des réservations traitées par Instant Suite dépendent d’une de ces deux interops et impliquent près de 10 000 ressources !
Un chantier de rénovation nécessaire
Un tel volume de réservations nécessite des fondements techniques à la hauteur, car la moindre erreur dans le code de la solution pourrait perturber les activités des utilisateurs. Il faut donc avoir une base de code saine, cohérente et facilement maintenable sur le long terme : c’est tout l’intérêt du travail de refactorisation.
En effet, la refactorisation consiste à modifier le code source des solutions et à le restructurer afin qu’il soit :
- Plus court,
- Plus lisible,
- Plus rapide à l’exécution,
- Plus fiable,
- Plus facilement maintenable.
Par ailleurs, cette optimisation du code prépare le terrain pour les évolutions à venir. Il devient alors plus simple et plus rapide de développer et de livrer des nouvelles fonctionnalités sans pour autant perturber celles déjà existantes.
Des interops plus efficaces et moins gourmandes en ressources
Des tests unitaires pour vérifier le code source
Au moment de lancer les interops, nous souhaitions livrer de nombreuses fonctionnalités à un rythme soutenu. Pour cela, il a fallu tester le code de ces fonctionnalités manuellement, brique par brique. Dans un petit nombre de cas, cela pouvait engendrer des problèmes de synchronisation.
Par la suite, nous avons généralisé la mise en place de tests unitaires : il s’agit de code dont le but est de vérifier le fonctionnement d’une autre portion de code, de façon automatique, sans intervention manuelle d’un développeur.
Dans une architecture où tous les tests sont automatisés, il est possible de faire valider un grand nombre de composants logiciels en un minimum de temps et d’identifier précisément quelles parties de l’application ne fonctionnent pas si le test révèle une erreur.
Les tests unitaires constituent une première étape dans l’assurance qualité.
Une fois que ces tests sont validés, nous pouvons préparer une version complète de l’application et la tester dans des conditions quasi réelles. On parle alors de tests fonctionnels.
Des tests fonctionnels automatisés pour prévenir les bugs de réservation
Au-delà de ces améliorations, la refacto a permis de mettre en place deux outils de tests extrêmement efficaces :
- Un script qui analyse la synchronisation : il vérifie que chaque réservation créée dans Instant Booking apparaît à la bonne date dans Google Agenda ou dans Outlook. Il vérifie aussi que les noms des invités sont corrects et que les ressources sont les bonnes.
- Un robot qui teste les limites des interops : il simule une activité intense d’un grand nombre d’utilisateurs. Cela permet de vérifier une grande variété de cas d’utilisation mais aussi de vérifier que tout fonctionne, même lorsque l’interop est fortement sollicitée.
Cet outil est particulièrement important pour prévenir l’apparition d’erreurs lorsque des réservations sont créées par milliers.
Préparer les interops pour un usage intensif
En plus des outils de test ci-dessus, nous avons rendu l’interop plus scalable, c’est-à-dire qu’elle est désormais capable d’adapter la quantité de ressources matérielles utilisée en fonction de l’usage.
Ainsi, si l’interop est peu sollicitée à une heure donnée, celle-ci utilisera peu de puissance de calcul, de mémoire vive ou de stockage. A l’inverse, lors d’une montée en charge, le système débloquera davantage de ressources. Cela simplifie l’exploitation et la maintenance du système, en plus de représenter des économies en termes écologiques.
Vers toujours plus de fonctionnalités
Grâce au travail sans relâche des équipes de SharingCloud ces deux dernières années, l’optimisation de des interops Exchange et Google Apps offre la possibilité d’intégrer plus facilement davantage de fonctionnalités.
Pour l’interop Exchange
- La synchronisation du module de Présence au Bureau
Par exemple, la refactorisation de l’interop Exchange a permis la synchronisation avec Outlook des statuts de présence faites depuis Instant Booking. Les statuts de présence permettent aux utilisateurs de déclarer pour quels jours de la semaine ils se trouvent au bureau, en télétravail, en déplacement, ou en congés.
Sans l’optimisation du code de l’interop, cette évolution majeure n’aurait pu être déployée sereinement.
- La synchronisation Teams
Il est désormais possible de créer de la visioconférence en même temps que la réservation d’une ressource.
Pour l’interop Google
La refactorisation de l’interop Google, quant à elle plus récente, offre de belles perspectives d’évolution. Bien que ds nouvelles fonctionnalités n’aient pas encore été développés à l’heure actuelle, ce travail nous a servi à améliorer l’existant et proposer un mécanisme de synchronisation optimal.
A l’avenir, nous serons en mesure d’envisager :
- Une synchronisation avec Google Agenda des statuts de présence au bureau déclarés depuis Instant Booking ou Instant Mobile
- Une création de réunion Google Meet depuis l’interface Instant Booking
- Et bien plus encore…
Pour conclure
Les interops permettent d’échanger des données avec plusieurs applications d’usage courant. Elles sont donc essentielles pour assurer la continuité de l’expérience utilisateur.
Grâce au travail de refacto des interops de calendrier, Instant Booking renforce ses liens avec les écosystèmes Microsoft et Google. Le portail est d’autant plus efficace, plus fiable et plus confortable.