Véhicules Hors Quai
Conformité des trains et quais de la SNCF
Cette application a pour but de remplacer une "moulinette" Excel développée en interne par la Direction Régionale de la SNCF Rhône‑Alpes. Cette moulinette, une fois copié plusieurs fichiers CSV provenant de différents outils de gestion de la SNCF, tentait de lister les gares où un train dépassait du quai, ce qu'une nouvelle législation interdit.
La moulinette mettant plusieurs heures à tourner, pour des résultats aléatoires et de fait peu fiables, il fallait revoir complètement la copie. Les objectifs étant principalement d'avoir un outil générant un résultat fiable, avec plusieurs vues de contrôle, et secondairement rapide. En effet, la notion de rapidité, bien que souvent accessoire, est ici importante dans la mesure où la modification d'une configuration de roulement (combinaison de matériel+trajet) réponds à des contraintes commerciales, et doit pouvoir être vérifiée d'un point de vue technique et légal avec un minimum de délais.
J'ai donc proposé de reprendre deux applications développées auparavant et de les fusionner pour répondre à leur besoin : d'une part le programme d'import/export de fichiers hétérogènes, SuperBridge, et d'autre part un module de gestion de base de données "light", qui permet de naviguer dans une BD et exécuter des requêtes & scripts préparées à l'avance. Ce dernier module avait été développée pour un projet d'intégration Global Blue dans Retail Pro.
Contrairement à SuperBridge et les projets précédents où il a été utilisé, ici les résultats sont exportés dans une base de données, choisie pour ses qualités de performance et de versatilité : FireBird. En effet, c'est une base de données gratuite, qui peut aussi bien fonctionner en local (avec juste une dll et les fichiers de la base) ou en mode serveur, sans modification de l’application (par simple configuration). De plus, les performances SQL sont parmi les meilleures.
La première étape consiste donc à charger les fichiers de référence de gares, voies, et caractéristiques matériels. Ensuite, il faut charger des fichiers en provenance de leur outil de gestion de lignes commerciale : les tranches, qui correspondent aux liaisons qui sont assurées, et les régimes associés, c'est à dire la programmation journalière. Enfin, un autre fichier en provenance d'un autre outil, définit l'affectation de matériel (locomotive+wagons) aux tranches.
Le chargement des fichiers réalisé dans les tables de données, plusieurs scripts SQL vont se charger par exemple de recombiner certains roulements spécifiques, qui correspondent en fait à plusieurs rames qui peuvent se coller ou se détacher sur différents tronçons, ce qui a pour effet de faire varier la longueur du convoi sur un même parcours.
Ces imports et traitements complétés, les données sont prêtes pour être analysés, grâce au second module de l'application. Une série de requêtes permet d'abord de valider certains aspects du chargement, les données venant de plusieurs environnements il est nécessaire de valider la cohérence. Enfin, une requête va lister tous les convois qui dépassent le quai à chaque point de passage.
En termes de prestation, l'utilisation des blocs fonctionnels déjà existants à ma disposition a permis de fournir un outil fiable en temps record. Si la SNCF nationale avait voulu déployer cet outil géré par la direction régionale, tout était prêt pour l'adosser à un serveur de données, sans modifications de l'application (à part peut-être une gestion de plusieurs utilisateurs pour cloisonner les essais des uns et des autres).
En termes qualitatifs, l'outil est agréable à utiliser et cela même par des utilisateurs non informaticiens (contrairement à la moulinette qui était géré par une seule personne assez au fait du fonctionnement d'Excel). Au niveau des performances, le rechargement de toutes les données de références et de production, et les calculs des VHQ se fait sur le même PC portable en moins de 2 minutes, soit > 100 fois plus rapide qu'avant. L'outil, qui peut tout à fait s'exécuter depuis une clé USB, peut même charger le fichier de la base en RAM Disk avant connexion, ce qui divise encore le temps de traitement par deux - au final cela n'est pas utilisé, car "il n'y a plus le temps d'aller chercher un café". Et aussi parce que la politique de la DSI SNCF est d'interdire l'installation de tout logiciel non validé, ce qui est le cas des RAM Disk. C'est aussi l'explication du non déploiement en national de cet outil. Dommage, à la place ils ont commencé le développement d'une solution Web en Java, malgré un coût qui sera très largement supérieur et des performances et expérience utilisateur forcément inférieures. Après 2 ans, le site n'était pas déployé et les directions régionales autre que Rhône‑Alpes toujours dans l'incapacité de se mettre en conformité.


Modèle Conceptuel de Données de VHQ, après import et normalisation
Fenêtre d'accueil : Connection BD (option en RAM Disk), Modules Import & Exploitation
Configuration, évolution du SuperBridge : Plugins Load/Save, Résultats dans une Table BD, Scripts SQL...
Module Exploitation des résultats : Requêtes SQL prêtes à l'emploi, Filtrage et Export
Tables des données importées, résultats intermédiaires & finaux