Sncf: Projet d’étude des architectures distribuées

Mr JI Cai
SNCF Projet d’étude des Architectures distribuées appliquée à CATI(Centre d’Annonce et de Téléaffichage Informatique)

L’objectif du stage est de réaliser une étude sur les architectures distribuées afin de faire un état comparatif des techniques potentiellement applicables au Centre d’Annonce et de Téléaffichage Informatique (CATI) de la SNCF. Ensuite, il faut réaliser une maquette permettant de valider les concepts sélectionnés.

Dans l’architecture, il y a deux serveurs : un serveur maître et un serveur esclave. Il y a également des postes clients qui peuvent s’échanger des données via les deux serveurs. Lorsqu’un client envoie une information, tous les autres clients la reçoivent. Si le serveur maître "tombe", le serveur esclave devient maître. Ce basculement est transparent pour les clients.

Pour ce faire, il faut utiliser comme solution de MOM la bibliothèque ZMQ pour la communication entre clients – serveurs ; sur la base du pattern Publisher-Subscriber. Il faut programmer en C et en C++ grâce au pattern Binary Star les échanges d’état entre les serveurs maître et esclave ; notamment pour la réalisation du failover.

Concernant l’implémentation des clients, il faut utiliser le pattern Clone, développé sous ZMQ, afin de gérer les fonctionnalités utiles aux clients (connexion aux serveurs, création d’un "agent - client" (processus qui permet la communication entre le client et les serveurs), gestion des messages reçus, …). A la réception des données reçues des clients, il faut les afficher sur l’invite de commande.

Il exits un web service pour monitor les états de réseaux, par exemple l’affichage des logs générés par les clients et les serveurs. Ces logs vont récapituler les différentes actions qu’ils pourront réaliser. Nous avons : la connexion/déconnexion des clients et des serveurs, l’ajout/la suppression d’une information, …

Comme fonctionnalités supplémentaires, nous aurons :
- la recherche des logs
- la sauvegarde en local des logs recherchés
- la mise à jour de la page après un ajout de logs dans le fichier .log

2012/2013