Casino, un outil pour migrer les applications

Image vedette du processus CASINO

Depuis cinq ans, notre équipe travaille à la préparation de la migration des applications de Berger-Levrault. Pour faciliter la migration des applications vers les nouveaux standards, nous avons créé Casino. Un outil artisanal pour aider les futures migrations.

Migration de Swing vers Angular
Figure 1 : Le processus de migration de Casino

Casino, qu'est-ce que c'est ?

Il s'agit d'un outil innovant qui simplifie le processus de migration en transformant automatiquement le code des applications. Nous expliquons ci-dessous les quatre étapes représentées dans l'animation.

1ère étape : lire et simplifier le code source

En l'état actuel du texte, il est compliqué de travailler sur le code source d'une application. Pour simplifier le processus de code source, la soucoupe volante (qui représente la VerveineJ outil) lire le code source de l'application originale, l'analyser, et produit le modèle d'application. Ce modèle permet de représenter les lignes principales de l'application originale : classes, méthodes, attributs.

2ème étape : extraire les éléments d' intérêt pour migrer l'application

Parmi le code source de l'application originale, seuls certains aspects peuvent être traités par Casino. Ce sont les éléments d'intérêt. A l'intérieur de ces éléments, on trouve le code visuel, le code comportemental, et le code business. Ici, nous ne parlerons que du code visuel dans le front-end de l'application et du code métier dans son back-end.

3ème étape : faire correspondre l'ancien et le nouveau code

Pour le code visuel, Casino construit un dictionnaire pour lier l'ancien code au nouveau. Il fait correspondre les éléments visuels de l'application originale dans l'application migrée pour obtenir le même résultat final. Ainsi, un bouton GWTButton sera équivalent à un bouton Angular Material, un panneau Swing à une carte Angular Material.
Le même principe est utilisé pour le code métier concernant les DTOs et les Services. Casino crée de nouvelles classes Angular pour correspondre aux DTOs de l'application originale, et les services RMI ou RPC sont mis en correspondance avec les futurs services Rest.

4ème étape : génération du code

Une fois le mapping mis en place, Casino visite tous les éléments d'intérêt trouvés à l'étape 2, puis il se réfère aux dictionnaires créés à l'étape 3 pour générer le code de l'application migrée. Après la génération, les développeurs doivent vérifier si le processus s'est bien déroulé, puis ils doivent compléter la migration en injectant leurs connaissances dans l'application, comme la logique métier, et en recréer les liens entre les DTOs/Services et la partie visuelle de l'application (HTML).

L'objectif de Casino est d'aider au processus de migration de toutes les applications de bureau ou client/serveur. Pour l'instant, l'outil fonctionne particulièrement bien avec les applications Java, mais il est également adapté à d'autres langages de programmation et peut être étendu pour en supporter encore plus.

Plus ...

Retour haut de page