46
Rapport de Stage 3A Ingénieur d'études JEE pour le Service Web d'Aide à la Gestion du Trafic de la future Rocade de Marseille Clément Lucas, Parcours OMIS-I promo 2015 Une œuvre d'art anonyme sur les murs de la Rocade Durée du 1 Avril au 30 Septembre 2015 Tuteur de Stage : Monsieur Pascal Préa Enseignant-Chercheur Responsable de parcours OMIS-I : Monsieur François Brucker Enseignant-Chercheur

Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

  • Upload
    others

  • View
    6

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Rapport de Stage 3A

Ingénieur d'études JEE pour le Service Web d'Aide à la Gestion du

Trafic de la future Rocade de Marseille Clément Lucas, Parcours OMIS-I promo 2015

Une œuvre d'art anonyme sur les murs de la Rocade

Durée du 1 Avril au 30 Septembre 2015

Tuteur de Stage : Monsieur Pascal Préa Enseignant-Chercheur

Responsable de parcours OMIS-I : Monsieur François Brucker Enseignant-Chercheur

Page 2: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant
Page 3: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Remerciements

Je tiens à remercier en premier lieu l'équipe des enseignants en Informatique de l'Ecole Centrale

Marseille, en particuliers Messieurs François Brucker, Pascal Préa et Emmanuel Dauce pour avoir

éveillé mon intérêt et m'avoir donné l'envie de me spécialiser dans ce domaine. Merci de tous les

efforts que vous portez à rendre vos cours passionnants, à la pointe de la technologie et accessibles

par tous les élèves.

Je remercie Philippe Vanden Bossche, ingénieur en développement web, pour sa pédagogie et sa

patience sans limite. Elles ont été un atout sans égal la réussite de toute l'équipe.

Merci aussi à Aude Beaudino pour m'avoir aidé à chaque fois que l'opportunité s'en présentait et

avoir donné de la crédibilité à mes remarques. Son recul, son courage, sa détermination et sa force

de caractère m'ont fortement marqué et inspiré.

Un grand merci pour sa bienveillance et sa disponibilité à mon tuteur de stage David Millien, analyste

fonctionnel et Chef de Projet. Le temps qu'il a consacré pour faciliter mon intégration m'a permis de

mieux comprendre le fonctionnement et les attentes d'une société de service.

Je salue les louanges de Sébastien Minet, architecte, qui a su se rendre disponible pour m'aider à

concevoir et valider mes solutions techniques les plus délicates. J'ai été impressionné par ses

compétences et enjoué par sa façon d'aborder la programmation.

Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis

de progresser énormément en me confiant beaucoup de responsabilités tout en me donnant les

moyens et les clés pour les tenir.

Merci à tout le personnel de l'agence Sopra Steria d'Aix-en-Provence qui a fait de mon stage de fin

d'études une grande aventure humaine unique et enrichissante. Merci aussi pour avoir démontré

l'envie de m'intégrer à vos équipes avec une proposition d'embauche au cours du stage.

Milles mercis à Julien Candela et Philippe Mothais, deux stagiaires dont l'amitié et l'amabilité a

ensoleillé mes journées au sein du groupe.

Page 4: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Résumé

Rapport de stage de fin d'études de six mois chez Sopra Steria à Aix-en-Provence d'un élève de l'Ecole

Centrale Marseille promotion 2015.

Intégration d'un groupe projet développant un service web d'aide à la gestion du trafic sur la future

rocade de Marseille pour les opérateurs de la DIRMed (Direction Interdépartementale des Routes de

la Méditerranée) . Le sujet du stage portait sur la réalisation d'un simulateur d'équipement et le

module "Simulation" de l'application visant à la formation des agents.

Participation aux phases de conception, développement, qualification interne et recette usine du

produit.

Abstract

Six-month computer science engineering Internship at Sopra Steria report of a last year Centrale

Marseille's engineering student.

Integration of a project group developing a help desk trafic management web service on the

upcoming ring road of Marseille for the agents of the french road's direction. The Internship's topic

was implementing an equipement simulator together with the "simulation" module of the

application.

Took part in the phases of conception, development, internal qualification and factory acceptance of

the product.

Page 5: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Lexique

Offshore : L’offshore outsourcing ou externalisation offshore concerne une délocalisation des services vers des pays étrangers éloignés. Le plus souvent, ce terme est associé à Maurice, Madagascar ou à l’Inde. Nearshore : Forme d’externalisation des services recourant à des prestataires implantés sur le territoire national ou à des sous-traitants bénéficiant d’une proximité moyenne dans des pays comme la Roumanie, l'Espagne, l’Algérie, la Tunisie et le Maroc. Onshore : L’externalisation onshore consiste à faire travailler des prestataires étrangers sur le site du client. La prestation est facturée aux conditions du pays d’origine, donc à un tarif réduit. ESN : Entreprise de Service du Numérique, remplace le sigle SSII pour les société de services en

ingénierie informatique

SAGT : Application web de Service d'Aide à la Gestion du Trafic

SGM : Service de Gestion et de Maintenance, applicatifs de la DIRMed comprenant la MCIM et le

SAGT

MCIM : Application Web de la DIRMed pour l'information sur les pannes d'équipement et le calcul de

pénalités.

CRM : Client Relationship Management en anglais, gestion de la relation client. Un secteur qui a

beaucoup évolué grâce aux progrès et innovations dans la collection et le traitement de données de

ces dernières années.

SRL2 : Société de réalisation de la Rocade L2.

PPP : Le partenariat public-privé est un mode de financement par lequel une autorité publique fait

appel à des prestataires privés pour financer et gérer un équipement assurant ou contribuant

au service public. Le partenaire privé reçoit en contrepartie un paiement du partenaire public et/ou

des usagers du service qu'il gère.

Groupement d'intérêt économique : Un groupement doté de la personnalité morale qui permet à ses

membres de mettre en commun certaines de leurs activités afin de développer, améliorer ou

accroître les résultats de celles-ci tout en conservant leur individualité.

DIRMed : Direction Interdépartementale des Routes de Méditerranée. Service public responsable de

l'exploitation d'une grande partie du réseau routier dans le sud-est de la France.

PMV : Panneau à message variable. Ces panneaux affichent des messages sur l'autoroute.

TA : Télé-alarme. Une alarme qui est levée par un équipement communiquant avec le SAGT

TE : Télé-alerte, comme une TA mais indiquant necessitant la necessité d'intervention d'un opérateur

DIRMed

Page 6: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

ET : Une mesure quantifiable qui représente par une convention préétablie l'état fonctionnel d'un

équipement sur le terrain

TM : Une mesure pas toujours quantifiable représentant ce qu'affiche un équipement.

OPC-UA : Open Platform Communication - Unified Automation. L'évolution du protocole standardisé

de communication entre équipements industriels adapté pour les langages orientés objects et les

applications web

CAS : Central Authentication Service, projet libre et open-source permettant l'authentification à un

service web.

GTC : Gestion des tunnels centralisée

Frontal : Interface pour les SAGT avec les équipements.

RAU : Réseau d'Appels d'Urgences, le nom du frontal

PAU : Poste d'appel d'urgence, les téléphones oranges sur le côté de la route.

JMS : Java messaging Service, permet aux modules du SAGT de communiquer entre eux.

Page 7: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Table des matières

Remerciements ....................................................................................................................................... 3

Résumé .................................................................................................................................................... 4

Abstract ................................................................................................................................................... 4

Lexique .................................................................................................................................................... 5

Table des matières .................................................................................................................................. 7

Introduction ............................................................................................................................................. 9

Partie A : Présentation de Sopra Steria ................................................................................................. 10

1. Identité, Taille ................................................................................................................................ 10

2. La Fusion entre Sopra et Steria ..................................................................................................... 11

3. Activités et offre de Sopra Steria ................................................................................................... 11

a. Sopra Steria Consulting ............................................................................................................. 12

b. Intégration de systèmes ............................................................................................................ 13

c. Edition de solutions métier ........................................................................................................ 13

d. Infrastructure Management ...................................................................................................... 13

e. Busines Process Services ........................................................................................................... 13

4. Quelques Projets emblématiques du groupe ................................................................................ 13

5. Organisation du groupe ................................................................................................................. 14

6. Organisation de l'agence 121 ........................................................................................................ 16

Partie B : Description du Projet et de la mission du stage .................................................................... 18

1. Présentation de la L2 ..................................................................................................................... 18

2. Le financement de la rocade ......................................................................................................... 19

3. Présentation générale du SGM ..................................................................................................... 20

a. Le service de maintenance des équipements ........................................................................... 20

b. Le service de gestion du trafic ................................................................................................... 21

4. Les modules du SAGT .................................................................................................................... 22

5.Récapitulatif des Modules du SAGT ............................................................................................... 22

a. Le module Equipement.............................................................................................................. 22

b. Le module Alarme/Alerte .......................................................................................................... 23

c. Le module données trafic .......................................................................................................... 23

d. Authentification ......................................................................................................................... 24

e. Fiche Evénement ...................................................................................................................... 24

Page 8: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

g. Consigne .................................................................................................................................... 24

h. Historique .................................................................................................................................. 25

i. Référentiel .................................................................................................................................. 25

j. Politique d'exploitation .............................................................................................................. 25

La politique d'exploitation permet de paramétrer les actions proposées dans le plan d'action

proposé après validation d'une fiche événement en fonction de conditions sur les attributs de la

fiche validée................................................................................................................................... 25

k. Rejeu et Simulation .................................................................................................................... 25

l. Diffusion d'information .............................................................................................................. 26

m. Conditions d'utilisation de l'application par les opérateurs .................................................... 26

5. Organisation du Projet .................................................................................................................. 27

6. Environnement Technique ............................................................................................................ 28

7. Les ressources................................................................................................................................ 30

Partie C : Réalisations ............................................................................................................................ 32

1. Missions et objectifs du stage ....................................................................................................... 32

2. Le simulateur ................................................................................................................................. 33

a. Modèle des équipements .......................................................................................................... 33

b. Communications SAGT-Equipements en OPC-UA ..................................................................... 33

c. Conception et implémentation du simulateur ......................................................................... 34

3. L'Application de Master Simulation .............................................................................................. 35

a. Présentation générale ............................................................................................................... 35

b. Simulation des équipements ..................................................................................................... 36

c. Paramétrer des retours sur commande .................................................................................... 36

d. Paramétrer des retours sur scénario ......................................................................................... 37

e. Simuler des états de trafic ......................................................................................................... 38

f. Listes d'action ............................................................................................................................ 39

4. Autres Tâches ................................................................................................................................ 43

a. Initialisation du référentiel ........................................................................................................ 43

b. Tests de qualification interne .................................................................................................... 44

c. Correction de bug ...................................................................................................................... 45

Conclusion ............................................................................................................................................. 46

Page 9: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant
Page 10: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Introduction

Le stage de fin d'études a été l'occasion de mettre en pratique sur le terrain le métier

d'ingénieur d'études dans une société de service, mais aussi une révélation sur l'utilité de mon cursus

et ce qu'un ingénieur Centralien peut apporter dans une entreprise.

Issu d'un parcours d'ingénieur généraliste, spécialisé en informatique et en gestion de projet,

j'ai eu l'occasion d'observer avec intérêt et étonnement les pratiques concrètes en entreprise avec le

recul d'un enseignement sur les bonnes pratiques dans une grande école d'ingénieur portée sur

l'innovation.

Une certaine attirance pour le développement, les solutions élégantes et les bonnes

pratiques m'a fait choisir ce stage. Sopra Steria m'a offert la possibilité de compléter ma formation et

solidifier mes compétences avec un sujet passionnant participant à un projet de transformation du

système d'information de grande envergure dans le domaine du BTP .

Partie A : Présentation de Sopra Steria

1. Identité, Taille

Né de la fusion absorption en 2014 de Stéria par Sopra Group, deux géants des systèmes

d'informations, Sopra Steria est un leader en Europe du marché de la transformation numérique.

C'est une entreprise de service qui propose aux entreprises de sous-traiter leurs activités liées à

l'informatique en général.

L'entreprise compte plus de 37 000 collaborateurs et est présente à travers plus de vingt

pays. Elle est surtout présente et reconnue en Europe. Contrairement à ses principaux concurrents

Atos et CAP Gemini qui sont très internationaux, elle concentre ses activités et réalise la majeure

partie de son chiffre d'affaire en France et en Angleterre.

Page 11: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

En effet, Sopra Group est une entreprise française créée en 1968. Malgré la fusion, le siège

social du groupe est resté à Annecy en Savoie où le groupe a vu le jour. D'après son ancien président

Pierre Pasquier, l'entreprise a connu une croissance plutôt lente mais efficace, et a fait preuve d'une

volonté d'exister à toute épreuve qui lui permet d'être présente aujourd'hui dans de top 5 des

entreprises de service du numérique en France tout en étant solide et disposant d'un business plan à

toute épreuve. Nous allons présenter la fusion de son point de vue car elle en est l'initiatrice.

2. La Fusion entre Sopra et Steria

En 2014, Sopra Group saisit l'opportunité d'une croissance très forte et rapide avec la

possibilité d'acquérir Stéria, une grande ESN comparable en taille. En devenant actionnaire de celle-ci

majoritaire à plus de 90%, Sopra prend le risque d'avaler un poisson aussi gros que lui, mais mise sur

la grande complémentarité et les valeurs communes qui existent entre les entités pour réussir cette

fusion absorption.

En effet, les deux entités ont de forts points communs en terme de taille, de poids et

d'image. Un atout majeur pour la fusion est la complémentarité des entités sur le marché, apportant

de nouveaux clients à Sopra mais aussi des nouvelles offres de solutions qui s'articulent bien avec

celles existantes comme l'ingénierie des réseaux.

Il existe aussi une certaine complémentarité géographique pour Sopra avec Steria. Tout

d'abord car Stéria était très présent en Grande-Bretagne alors que Sopra y était presque inexistant,

mais aussi grâce à l'acquisition de nouveaux centres de compétence nearshore et offshore pour y

compter en tout plus de 8000 personnes.

L'augmentation de la taille et du capital de l'entreprise est aussi un atout pour la confiance

des clients sur les capacités de l'entreprise à subsister et à gérer des projets possédant de forts

enjeux sur les plans techniques et financiers.

3. Activités et offre de Sopra Steria

L'entreprise travaille dans des domaines très variés. La majorité des clients faisant appel aux

services de Sopra Steria se trouvent dans le domaine de la finance et duc secteur publique. Les

contrats avec l'état comme pour le projet de la L2 auquel j'ai pu participer ont donc des enjeux

stratégiques important pour l'entreprise.

Page 12: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Répartition des marchés Secteurs stratégiques

Sopra Steria possède une offre de service très complète car elle peut intervenir dans toutes

les étapes de la chaîne de valeur dans le domaine des systèmes d'informations. Le groupe attache

une grande importance à ce que ses offres soient en adéquation avec l'évolution et les innovations

du marché. Il a donc anticipé son ouverture sur le développement futur du big data, du cloud et des

réseaux collaboratifs.

a. Sopra Steria Consulting

L'entreprise possède une filiale nommée Sopra Steria Consulting spécialisée dans le conseil

en management et en technologie. Elle est capable d'accompagner les entreprises afin de les aider à

mettre en place leur vision et leur stratégie liée aux systèmes d'informations, à la politique RH et à la

relation Client gràce au CRM.

Elle est capable de les aider à identifier les pratiques innovantes du marché et de les mettre

en accord avec les besoins d'une entreprise. Puis elle sait accompagner dans la mise en place et le

suivi de ces solutions.

Page 13: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

b. Intégration de systèmes

Gestion de l'ensemble du cycle de vie du patrimoine applicatif d'un client depuis son

architecture en passant par sa conception, son développement, son intégration, le testing, et jusqu'à

amélioration continue d'un produit. L'application de développement web que mon projet est chargé

de concevoir fait partie de ces solutions.

c. Edition de solutions métier

Sopra Steria est fier de pouvoir se targuer d'être un éditeur de logiciel reconnu et parmi les

plus développés en France à travers ses filiales Sopra Banking Software, Sopra HR Software et Sopra

Real Estate Software.

d. Infrastructure Management

Accompagnement dans la transformation des infrastructures et intégration de technologies

autour du Cloud, des Datacenter et de l'environnement de travail utilisateur. Notre projet a

notamment été chargé de commander une partie du matériel qui sera intégré chez le client dont un

mur d'image aussi grand qu'un écran de cinéma.

e. Busines Process Services

Sopra Steria possède l'expertise afin d'assurer la délocalisation de chez ses clients des

fonctions Finance, Comptabilité, Ressources Humaines et Achats.

4. Quelques Projets emblématiques du groupe

Page 14: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

5. Organisation du groupe

Sopra Steria est une immense entité française de 37000 collaborateurs, on peut donc

s'attendre à ce que la société soit très structurée. C'est bien le cas, et l'organisation de la direction du

groupe est séparée en fonction des entités géographiques par pays et continents, et par secteur

d'activité stratégique comme Aeroline qui passe des contrats avec des sociétés du secteur de

l'aéronautique, ou encore par entité filiale comme Sopra Banking Software. Enfin, il existe aussi de

petites entités indépendantes pour les départements internes comme le juridique, les achats ou les

ressources humaines.

A noter que la nomination d'anciens de Sopra Group à la direction générale suite au

remerciement de François Enaud à ce poste qui était l'ancien président de Steria.

Organigramme de la direction de Sopra Steria

Lors de mon stage, j'ai intégré le département Conseil et intégration indiqué par la

magnifique flèche verte qui malgré sa petite taille sur le schéma représente 57% des activités de

Sopra Steria.

Page 15: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Encore une fois, on peut remarquer que les différentes entités du département sont

séparées par secteur géographique mais aussi par secteurs d'activité stratégique comme la défense,

l'industrie, les banques, les télécoms, l'énergie et les transports.

Les différentes divisions suivent la politique globale de l'entreprise, mais sont en compétition

et il y a très peu de collaboration entre elles. L'agence d'Aix-en-Provence dans laquelle j'ai réalisé

mon stage s'appelle Provence Business Technologies fait partie de la division Sud-est de Sopra Steria,

on l'identifie par le numéro 121.

Page 16: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

6. Organisation de l'agence 121

L'agence 121 s'organise en pôles de compétences, et chaque pôle est divisé en plusieurs

groupes projets indépendants gérés par des chefs de projets auxquels on donne carte blanche pour

réaliser le meilleur résultat.

Des commerciaux sont chargés de démarcher et vendre l'expertise de ces pôle afin d'étendre

le portefeuille client et le chiffre d'affaire de l'agence. Les ressources humaines s'occupent du

recrutement et des évolutions au sein de la boîte. Cependant, la répartitions des ressources internes

compétentes sur les projets est décidée par les directeurs de projet de l'agence à la suite d'une

réunion chaque semaine.

La grande majorité des recrutement de la société concerne exclusivement des profils Bac +5,

et très majoritairement des jeunes diplômés. Les compétences en développement Java sont

extrêmement recherchées. Il y a très peu de profils experts avec plus de dix ans d'expérience issu de

chez Sopra, contrairement à la politique qui était en vigueur chez Steria. Cela permet aux jeunes

actifs avec du potentiel de faire leurs armes et monter en responsabilité très rapidement dans le

monde de l'entreprise. Cependant l'ESN sert souvent de tremplin donc il existe un turnover

important et l'entreprise peine à retenir toutes ses ressources compétentes.

La majorité des contrats, environ 70%, concernent de la tierce maintenance applicative au

forfait. Le reste représente des activités de régie, soit des postes d'ingénieurs temporaires chez un

client.

Le chiffre d'affaire de l'agence provient d'une quinzaine de clients dans la région PACA. Le

graphe suivant présente le volume du chiffre d'affaire de chacun dans l'agence. Il date d'avant la

fusion de Sopra avec Steria, il manque donc le projet de la L2 qui a été apporté par l'agence de Stéria

et qui représente 15% du chiffre d'affaire.

Page 17: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

La répartition géographique de l'agence 121 se fait entre le bâtiment principal et l'ancien

bâtiment de Steria situés à quelques centaines de mètre l'un de l'autre. Tous les groupes projets de

l'agence 121 sont situés dans le bâtiment principal, sauf celui de la L2 hérité de Steria et le nouveau

pôle pour la française des jeux. Sopra Steria a pour projet de déménager dans un plus grand

bâtiment de la technopôle des milles afin de rassembler tout le monde sous le même toit et intégrer

définitivement tout le personnel de Steria à l'agence.

Page 18: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Partie B : Description du Projet et de la mission du stage

1. Présentation de la L2

La construction d'une rocade à Marseille pour désengorger le trafic de la ville la plus

embouteillée de France en ralliant les autoroutes Nord et Est est un projet vieux comme le monde.

Cela fait plus de 80 ans qu'il est prévu par la ville de Marseille, et son histoire a même été le sujet

principal d'une thèse de doctorat en urbanisme soutenue par Stéphanie Leheis « La ville et sa rocade,

projet d’infrastructure au temps long, le cas de Marseille ».

Plan de la rocade L2

Il s'agit d'une voie rapide urbaine gratuite d'une dizaine de kilomètre qui contourne le

centre-ville. Elle doit permettre de délester le trafic des grands boulevards du centre-ville et sa

livraison est prévue courant 2016.

C'est au cours des années 90 que le projet de construction de la rocade a commencé à se

concrétiser. Une toute petite partie de la route est déclarée d'utilité publique ce qui permet sa

construction. Il a fallu attendre 2010 pour que les plans soient définitifs et que l'entièrement du

tracé soit approuvé d'utilité publique. Cependant l'état a manqué de fonds pour construire la route, il

a donc lancé un appel d'offre pour lancer un groupement d'intérêt économique d'entreprises privées

pouvant financer la route.

Page 19: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

2. Le financement de la rocade

Un groupement attributaire dont Bouygues Construction est le mandataire s'est ainsi associé

à l'état formant le premier partenariat public privé pour la construction d'une route en France. Le

budget total alloué est de 620 million d'euro, il est financé au deux tiers par des entités de l'état

incluant Marseille Provence Métropole, le Conseil Général 13 et le département. Le tiers restant sera

financé par les investisseurs du groupement et des prêts.

La SRL2 Société de Réalisation de la Rocade de Marseille est titulaire de ce contrat de

partenariat public privé. La conception et la réalisation lui ont été confiées, et elle sera ensuite

responsable de son entretien et de sa maintenance pendant 30 ans. En tant que responsable des

délais et du budget, elle est la maîtrise d'ouvrage.

Cette dernière a confié au groupement d'intérêt économique GIE Groupement L2

Construction la maîtrise d'œuvre de la conception et la construction de l'Autoroute, son entretien et

sa maintenance.

Le GIE a choisi de faire sous-traiter les prestations de conception-construction d'équipements

fixes d'exploitation (EFE) de la route par Bouygues Energies & Services, Egis Projects et Aximum. Ces

derniers ont mandaté Sopra-Steria pour réaliser les applications de gestion et de maintenance de ces

équipements pour celui qui exploitera la route, la Direction Interdépartementale des Routes DIRMed.

Une clause de transparence répartit uniformément les pénalités en cas de retard à la livraison.

Page 20: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Fort de son expérience dans la conception de services routiers personnalisés, Steria a été

sélectionné par le mandataire du groupement EFE en Avril 2014 pour réaliser les services applicatifs

liés à la gestion et la maintenance du trafic à destination des opérateurs de la DIRMed. En effet,

Steria s'est imposé comme une évidence car ayant déjà réalisé avec succès le logiciel servant à

l'exploitation du tunnel de Toulon, ainsi que 5 services d'aide à la gestion du trafic à travers la France

et la Belgique.

3. Présentation générale du SGM

a. Le service de maintenance des équipements

Les services de gestion et de maintenance développés par Sopra Steria ont pour utilisateur

final les opérateurs de la DIRMed. Ceux-ci sont responsables de l'exploitation et de la maintenance

des routes. Cependant, ils ont déléguer une partie de ces responsabilité, c'est à dire la maintenance

des équipements routiers à des sous-traitants plus qualifiés.

Les premières applications développées d'Avril à Mai 2014 par Steria concernent donc la

gestion et maintenance des équipements assistée par ordinateur avec une solution d'un éditeur de

logiciel indépendant CARL sur toutes les routes de la DIRMed.

Page 21: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Le logiciel est capable de communiquer avec les équipements terrains et d'informer les

responsables équipements d'une panne ou défaillance sur un équipement. Les sous-traitants de la

DIRMed ont alors un certain délai légal pour intervenir, sans quoi ils sont redevables d'une pénalité.

En cas de panne équipement, une alarme est levée, mais les opérateurs DIRMed n'ont pas

besoin d'intervenir sur le terrain pour le réparer. Ils ont cependant besoin de l'information de la

panne pour éventuellement adapter leurs actions, et pour calculer les pénalités de retard que leurs

sous-traitant leurs doivent s'ils sont trop long à réparer les équipements. Voici dont l'objectif

principal de la MCIM qui vient s'interfacer avec la GMAO pour les utilisateurs de la DIRMed et calcule

automatiquement les pénalités.

b. Le service de gestion du trafic

La seconde partie du développement du SGM est le Service d'Aide à la Gestion du Trafic

SAGT. C'est un service sous forme d'application web conçue pour regrouper et facilité la réalisation

de toutes les tâches liées à la gestion des routes effectuées par les opérateurs de la DIRMed et

certains de leurs collaborateurs. Il sera aussi utilisé par exemple avec des permissions restreintes par

des CRS qui restent en place à leurs côtés dans une salle de contrôle afin d'intervenir en cas de

besoin.

Cette application comporte beaucoup plus de fonctionnalités à implémenter et des besoins

métier spécifiques compliqués à mettre en œuvre. L'application est divisée en 12 modules pouvant

fonctionner indépendamment les uns des autres car cela fait partie des exigences clients. L'utilisateur

doit en effet pouvoir "éteindre" un ensemble de fonctionnalité en temps voulu.

Page 22: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

4. Les modules du SAGT

Récapitulatif des Modules du SAGT

a. Le module Equipement

Le module équipement permet à un opérateur de naviguer à travers les équipements

connectés avec le SAGT et les piloter. Il pourra ainsi consulter leur état sur le terrain et le manipuler

si besoin pour afficher par exemple un message sur un panneau à message variable PMV ou bien

bouger une caméra, ou encore pour allumer la ventilation d'un tunnel.

Des macro-commandes ont été implémentées permettant à l'utilisateur d'enregistrer au

préalable une suite d'action à réaliser sur des équipements et de suivre et contrôler son exécution

pas à pas. Cela est très utile lorsqu'il faut par exemple envoyer toutes les commandes aux

équipements pour fermer un tunnel lors d'une urgence.

Il est aussi possible d'inhiber ou invalider un équipement, rendant toutes les informations

qu'il fournira caduques aux yeux de l'application. Cela est utile lorsqu'un équipement est défectueux

afin qu'il ne lève pas de fausses alarmes ou alertes.

Page 23: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

b. Le module Alarme/Alerte

Ce module permet les gestion des alarmes et alertes. Il est important de faire la distinction

entre une alarme qui concerne en général une panne d'équipement et ne nécessite pas

d'intervention terrain de l'opérateur DIRMed, et une alerte qui correspond à un grave problème

d'exploitation de la route et exige son déplacement immédiat sur les lieux concernés.

Les alarmes peuvent être levées directement par les équipements qui en informent le SAGT

si ceux-ci sont défectueux, ou bien par le SAGT si l'exécution d'un pilotage équipement ne se déroule

pas correctement.

Les alertes sont très rarement levées par les équipements. Elles sont le signe d'un événement

grave nécessitant l'intervention d'un opérateur aussi tôt que possible. Les postes d'appel d'urgence,

téléphones orange sur le côté de la route déclenchent par exemple une alerte lorsque le combiné est

décroché car cela est signe qu'un problème qui pourrait gêner l'exploitation de la route est présent

sur la chaussée.

Cependant dans la majorité des cas, les alertes sont identifiées par le SAGT. Elles peuvent

être levées en fonction d'un paramétrage effectué par l'utilisateur final de l'application. Ce sont des

alertes combinatoires car elles sont déclenchées seulement lorsque certaines conditions combinées

sur le déclanchement de plusieurs alarmes sont présentes.

Par exemple lorsque trois ventilations consécutives ne fonctionnent plus à l'intérieur d'une

tranchée couverte, elle devient inexploitable par les automobilistes car trop dangereuse en cas

d'incendie. Il est donc vital pour la DIRMed de paramétrer une alerte sur l'exploitation d'une

tranchée couverte qui correspond à trois alarmes sur équipements consécutifs de type ventilation

dans une tranchée couverte.

Chaque module est aussi capable de lever des alertes en fonction des problèmes liés à

l'exploitation qu'il est en mesure d'identifier. Lorsqu'une alerte a été identifiée et traitée, l'opérateur

peut l'acquitter.

c. Le module données trafic

Ce module est chargé de recevoir l'immense volume de données des équipements de mesure

trafic sur la route sous forme de trames HMVL, puis de calculer l'état du trafic sur chaque tronçon

avec un algorithme adapté. Il demande au module alarme/alerte de lever des alertes bouchon

lorsque le trafic est bloqué.

Page 24: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

d. Authentification

Module qui gère l'implémentation d'un CAS commun à tous les services du SGM afin de

permettre aux utilisateurs de s'identifier et pouvoir accéder à tous les services en ne s'identifiant

qu'une seule fois. Il a été très bien réussi par Julien Candela, un stagiaire qui vient aussi du parcours

informatique à Centrale Marseille.

e. Fiche Evénement

Les événements sont un terme très générique qui permet de désigner quelque chose qui

pourrait influencer sur la gestion du trafic. Ces événement sont prévisibles ou non, et s'ils le sont

donnent lieu à des alertes de rappel lorsqu'ils débutent ou finissent. C'est une des fonctionnalités

que j'ai eu la chance d'implémenter.

Les événements sont identifiés par un seul type, et peuvent être regroupés ensemble s'ils ont

une cause commune qui sera alors l'événement principal du regroupement. Plus concrètement, un

événement de type intempérie météo localisé sur Marseille pourra être l'événement principal d'un

regroupement contenant des événements de type accident, de type mesure de gestion du trafic ou

encore de type incendie.

Lorsqu'une fiche correspondant à un événement est créée et validée par un opérateur, un

plan d'action lui est proposé en fonction des attributs de la fiche et du paramétrage édité dans le

module politique d'exploitation. Ainsi lorsqu'un incendie démarre à l'intérieur d'un tunnel, des

mesures telles qu'appeler les pompiers ou encore déclencher la macro-commande d'ouverture de

toutes le ventilations et fermetures des barrières à l'entrée pourront être proposées.

Il existe une douzaine de type d'événements différents, chacune possédant des attributs

différents qui seront diffusés aux réseaux nationaux et européens de gestion du trafic sous un

format normalisé répondant au doux nom de Datex2.

f. Cartographie

C'est un outil utilisant OpenStreetMap permettant la localisation ainsi que l'identification

facile et très visuelle des équipements, des événements, et des bouchons sur une carte.

g. Consigne

Ce module gère l'attribution d'astreinte à une certaine zone pour un groupe d'utilisateur

responsable d'une portion précise du réseau.

Page 25: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

h. Historique

Sert à consulter les données liées au SAGT à une date précise. Cela implique l'audit des

changements dans les tables liées par exemple aux états des équipements ou bien aux actions

menées par l'utilisateur.

i. Référentiel

Utile pour changer le référentiel du SAGT lié à tous ses équipements et ses différents

paramétrages. Le référentiel permet l'import et la suppression des équipements référencés par le

SAGT.

j. Politique d'exploitation

La politique d'exploitation permet de paramétrer les actions proposées dans le plan d'action

proposé après validation d'une fiche événement en fonction de conditions sur les attributs de la fiche

validée.

Il est aussi capable d'afficher des messages automatiques sur un PMV de priorités faibles si

les opérateurs n'ont pas besoin d'afficher d'y afficher d'autres informations plus prioritaires. Il est par

exemple possible de paramétrer l'affichage du message "Rappel : Attachez vos enfants pour leurs

sécurité" du Lundi au Vendredi de 15h30 à 18h aux heures de sortie d'école.

k. Rejeu et Simulation

Le rejeu permet de refaire revivre l'ensemble des opérations qui ont eu lieu sur le SAGT à

partir d'une certaine date. L'opérateur n'est autorisé à effectuer aucune action mais peut observer

les réactions de l'opérateur alors en poste en fonction des données alors reçues par le SAGT qui ont

été conservées par le module historique.

La simulation a pour but de reproduire le comportement des équipements qui

communiquent avec le SAGT en situation réelle. C'est la partie qui m'a été confiée lors du stage. Elle

est utile pour pouvoir tester l'application en dehors du terrain, afin d'appréhender les problèmes qui

pourraient être introduit avec des changements dans le référentiel.

Elle sert aussi à la formation de nouveaux opérateurs qui peuvent se préparer à utiliser le

SAGT dans des conditions réelles. Un scénario peut être préparé à l'avance par le formateur, et

l'élève peut opérer sans crainte qu'aucune de ses erreurs ne puisse avoir des répercussions réelles.

Page 26: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

l. Diffusion d'information

Ce module communique les informations collectées dans le SAGT avec l'extérieur. Il glane par

exemple les données des fiches événements et les convertis sous un format uniformisé et normalisé

européen nommé DATEX.

m. Conditions d'utilisation de l'application par les opérateurs

Les opérateurs DIRMed et CRS opèrent dans la salle de contrôle. Chacun possède trois grands

écrans et a une vue directe sur le mur d'image au centre de la pièce. L'écran du milieu permet de

naviguer à travers les menus d'exploitation de la route. L'écran de gauche affiche les alarmes et les

alertes levées, et l'écran de droite affiche la cartographie. Les opérateurs de la DIRMed sont à gauche

de la pièce alors que les CRS sont à droite.

Vue du pupitre d'un opérateur

En raison des conséquences critiques pouvant émerger d'une perte d'accès aux services de

l'application, un accord a été trouvé sur une contrainte de haute disponibilité pour l'application qui

ne peut être indisponible plus de 10 minutes par mois sous peine de fortes pénalités.

Page 27: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

5. Organisation du Projet

Le projet suit une méthodologie en V adaptée à l'expérience et aux connaissances de tous les

acteurs. En effet, elle a été préférée à une méthodologie agile à cause du manque de disponibilité du

client et des nombreuses expériences des différents chefs de projets avec cette méthode.

Les étapes du projet

Le projet de réalisation du SAGT se découpe en 5 grandes étapes. Tout d'abord la réponse à

l'appel d'offres qui donne naissance au projet le 4 avril 2014. S'en suit la phase de spécification qui

Page 28: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

était prévue pour durer 6 mois mais s'en prolongée jusqu'en août 2015 à cause d'un manque de

disponibilité de la maîtrise d'œuvre et de la grande difficulté à définir le besoin au travers de toutes

les couches intermédiaires entre le prestataire et l'utilisateur final.

La décision a été prise conjointement entre Sopra Steria et ses mandataires de l'EFE de

commencer la phase de développement avant la fin des rédactions des spécifications fonctionnelles.

Cela implique un développement de très réfléchi pour être assez générique et facilement

refactorisable car il aura de fortes chances d'être sujet au changement. Cette phase de

développement se poursuit après la première phase de recette usine car de nouvelles fonctionnalités

ont été mandatées tout au long de la réalisation du projet.

La phase de qualification interne a pour but de tester une première fois indépendamment du

client les fonctionnalités implémentées en suivant les stratégies de tests définies au préalable afin de

vérifier que l'application soit présentable pour de la phase de recette usine.

La première phase de recette usine que se déroule en ce moment en compagnie des

représentants de chaque entité faisant partie du contrat vérifie et valide définitivement les

fonctionnalités développées pour la DIRMed dans un environnement d'intégration. Les clients font

part des derniers écarts aux spéculations perçus afin que ceux-ci soient rapidement corrigés.

6. Environnement Technique

Une contrainte légale imposée par l'état pour le client est l'utilisation exclusive de

technologies open-source pour le développement d'une application web d'aide à la gestion du trafic.

Cela m'a permis de me former à utiliser des technologies de pointe passionnantes comme AngularJS,

Spring Boot et Hibernate.

Environnement Technique

Page 29: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Du côté client, le choix s'est orienté vers HTML5/CSS3 avec des frameworks permettants de

construire une application web dynamique, responsive et mobile-first comme BootStrap et

AngularJS. LESS permet de modifier le code source de bootstrap afin de l'adapter aux besoins de

notre IHM très peu aéré contrairement au design par défaut proposé. Grunt est très utile afin

d'effectuer les tâche répétitives sur les fichiers de côté client comme la minification et la compilation.

Les échanges entre le client et le serveur se font grâce à des objets JSON. Cela combiné aux

fonctionnalités offertes par BootStrap permettra de développer efficacement par la suite une

application mobile pour le client en modifiant très peu le code source de l'application.

Le côté serveur est développé sous le framework Spring Boot, une évolution des dernières

versions de Spring qui s'appuie sur les conventions d'utilisations pour permettre de minimiser les

configurations de bean en xml et leur privilégier les annotations.

L'injection de dépendances très puissante du framework Spring permet d'augmenter

grandement la productivité des développeurs en permettant de séparer clairment le code des

controllers, des services et des repository. Le framework permet aussi de mettre facilement en place

des tests unitaires avec JUnit qui apportent de la confiance dans le code et identifient

immédiatement éventuelle régression et les bouts concernés par icelle. Le responsable technique de

l'application n'a cependant pas souhaité que nous fassions des tests unitaires.

Les controllers Spring MVC 4.0 de l'application servent de véritables points d'entrées et de

sortie du modèle pour les communications entre le client et le serveur.

Fonctionnement d'une architecture MVC

Hibernate a été retenu en tant qu'implémentation de Java Persistence API pour remplir les

fonctions d'outil d''Object Relational Mapping, c'est à dire transformer des objects java communs en

données stockées dans un base relationelle.

Page 30: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Le choix a été fait de partir sur une base de données PostgreSQL, une technologie open-

source dotée d'une énorme communautée particulièrement active en France et adaptée pour de

grands volumes de données.

Nous avons développé l'application sous l'IDE Eclipse et nous avons utilisé Maven afin d'aller

rechercher les dépendances de l'application et pour la builder. Le serveur de Tomcat est utilisé sur

les postes de développement mais l'application est déployée en intégration sous l'héritier de JBoss

WildFly. L'outil de versionning que nous avons utilisé était TortoiseSVN.

J'ai ainsi eu l'immense plaisir de m'autoformer rapidement pour utiliser tous ces outils. Le

secteur du développement web est passionant car il est extrêmement porteur d'innovation et évolue

très vite.

7. Les ressources

Le budget associé au SAGT est d'environ un million d'euro réparti sur un an. Les coûts sont

calculés par les chefs de projets en fonction du salaire et du nombre de jour que passe chaque

ressource sur le projet. Le but principal du chef de projet est d'augmenter son bénéfice, il subit de

fortes pression de la part de la direction pour utiliser ses ressources qui lui sont attribuées avec une

efficacité maximisée.

Le projet a conservé les trois chefs de projets qui ont menés la réponse de Steria à l'appel

d'offre afin de rédiger les spécifications fonctionnelles, maîtriser l'avancement du projet et gérer la

relation avec le client. Mis à part la partie du projet au Maroc, nous avons travaillé tous ensemble

dans un bureau open-space de trente mètre carré.

Page 31: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

L'architecte qui a conçu la solution est à plein temps sur le projet. Il est responsable de la

qualité du développement ainsi que de l'évolution de l'environnement technique. Les réunions

hebdomadaires dur l'attribution des ressources sont l'occasion de décision politique sur la priorité de

l'avancement d'un projet par rapport à l'autre. Ainsi, certains développeurs ont été amené à naviguer

très régulièrement entre les projets selon les besoins de l'agence. Cela n'a pas été vraiment en phase

avec la décision des responsables de la répartitions des tâches de concentré la connaissance et la

maîtrise de chaque module en un seul développeur.

Nous avons aussi pu expérimenter la difficulté de travailler avec des collaborateurs au Maroc

éloignés géographiquement. En effet, il est très difficile à cause de la distance de leur faire prendre

part entièrement à la vie du groupe autant qu'à une personne présente toute la journée dans le

bureau de la L2. Skype nous a tout de même permis de communiquer et avancer ensemble.

Des réunions sur la présentation de l'avancement de chaque partie étaient prévues chaque

Lundi matin, mais les délais très courts accompagnés d'une très forte pression sur les résultats ont

vite pris le pas sur elles. J'ai trouvé cela dommage car il n'a existé que très peu d'échanges entre les

développeurs sur ce qu'ils ont réalisés, empêchant bien souvent de prendre connaissance d'une

implémentation réutilisable ou bien encore de se mettre d'accord sur des pratiques communes.

Cependant, nous avons aussi été marqué par l'implication et l'investissement démontré par

chacun des acteurs du projet. De fortes exigences et une culture de la réussite nous ont donc tirés

vers le haut et permis d'apprendre énormément lors de cette expérience enrichissante.

Page 32: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Partie C : Réalisations

1. Missions et objectifs du stage

Etant donné qu'il s'agissait de mon stage de fin d'études et qui plus est d'un stage de pré-

embauche, mon objectif principal était de faire mes preuves en entreprise et mettre en application

les compétences d'ingénieur que l'école Centrale Marseille m'a transmis. Cela a été une très belle

réussite car l'entreprise m'a proposé un contrat d'embauche deux mois avant la fin de mon stage.

J'ai ainsi eu l'occasion de pouvoir m'intégrer à un groupe projet pour réaliser des tâches

intéressantes et endosser des responsabilités sur un projet phare de l'agence. La tâche principale qui

m'a été confiée est le développement du module Simulation, mais on m'a aussi bien réparti au

quotidien sur d'autres tâches en fonction des besoins. J'ai ainsi pu me rendre compte des facilités

d'adaptation et de la versatilité que ma procuré ma formation.

Calendrier des tâches effectuées

Le module simulation se compose de deux parties. La première est le simulateur

d'équipement. Il permet de simuler l'existence est les réactions des équipements sur le terrain. C'est

lui que j'ai réalisé en premier lieu car il a permis de rentrer dans une phase de test des autres

modules de l'application dans l'environnement de simulation. Etant donné qu'il n'est pas encore

possible de s'interfacer avec les frontaux car ils sont en phase de développement comme le SAGT,

l'implémentation du simulateur était indispensable pour tester les fonctionnalités de l'application. En

effet, il a rendu possible le pilotage d'équipement, l'apparition d'alarme et d'alerte simulée sans

adapter leur logique.

Page 33: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

La deuxième partie est l'application de Master Simulation. Elle permet à un formateur de

devenir un véritable maître du jeu. Le rendant à la fois metteur en scène et scénariste, cette

application lui permet de simuler des accidents d'exploitation en temps réel et permet de former les

apprentis-opérateurs en dehors de l'environnement réel d'exploitation. Il pourra par exemple

simuler l'apparition d'alarmes sur les équipements et recréer les conditions d'apparitions d'alertes

d'exploitations et observer les réactions des élèves qui subissent ces actions.

2. Le simulateur

a. Modèle des équipements

Pour comprendre comment le simulateur remplace les équipements en conditions normales

d'exploitation, il est important de savoir comment le SAGT communique concrètement avec ces

équipements.

Tout d'abord, intéressons-nous à la représentation d'un équipement au sein du modèle de

données de l'application. Chaque équipement est représenté pour un ensemble d'attributs généraux

comme son identifiant, son libelle, son code et son type. Les différents types sont par exemple les

caméras mobiles, les panneaux à message variables à 2 lignes ou encore les postes d'appels

d'urgence.

Le type d'un équipement est assez précis pour définir totalement tous ses attributs et donc la

façon dont il communiquera avec le SAGT. Ainsi, tous les équipements d'un même type auront un

ensemble d'attribut totalement commun. Ces attributs sont principalement les alarmes que

l'équipement peut déclencher de lui-même, les alertes, mais encore ses états, ses mesures, ses

réglages possibles depuis le SAGT et facultativement ses commandes d'activation des réglages.

Si on récapitule, chaque équipement possède donc un ensemble d'attribut entièrement

identifié par son type. Les équipement communiquent avec le SAGT en OPC-UA, une spécification

standard normalisée gouvernée par la OPC Fundation. Cela permet à tous les équipements de

communiquer de la même manière et permet de s'affranchir d'installer autant de drivers

indépendants qu'il y a d'équipements différents.

b. Communications SAGT-Equipements en OPC-UA

Aux yeux d'OPC-UA, les équipements sont vus comme des petits serveurs mettant à

disposition chacun de leurs attributs (alarmes, alertes, commande, états) sous forme de nœud OPC

qui possède une valeur. Par exemple pour une alarme ou une alerte, la valeur du nœud associé vaut

soit true quand l'alarme est présente soit false quand elle ne l'est pas. Les clients peuvent alors

s'abonner aux changements dans ces nœuds pour s'informer des alarmes/alertes levées par les

équipements.

Page 34: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Mais les équipements ne possèdent pas seulement des alarmes et des alertes comme

attribut. Ils ont aussi des états que les opérateurs extérieurs voudraient être en mesure de contrôler

à la manière du récent hacker de panneau à Lille. Pour changer les valeurs des nœuds, aussi appelés

data points, liés à l'état d'un équipement, un opérateur extérieur est autorisé à écrire la valeur qu'il

souhaite dans le nœud d'un attribut commande associé à cet état, et cette valeur sera transmise

grâce à l'intelligence du serveur OPC propre à l'équipement.

Ainsi lorsqu'on veut par exemple tourner une caméra vers la droite depuis le SAGT, nous

allons décrire la logique qui opère. Tout d'abord, le SAGT écrit la valeur de l'angle de rotation désiré

dans le télé-réglage associé à la rotation vers la droite. Ensuite la caméra interprète la commande et

commence la rotation. Lorsque la rotation est terminée, elle passe alors le nœud de l'état associé à

sa commande à la valeur trente degré. Le SAGT est alors au courant que la rotation a bien été

effectuée car il a souscrit aux changements de ce nœud d'état associé à la commande qu'il a envoyé.

Certains équipements comme les PMV sont plus complexes à piloter. Il interprète et traite en

effet les valeurs des nœuds de ses réglage seulement lorsqu'un nœud spécial appelé TC est passé à la

valeur true. Ainsi, le SAGT écrira ce qu'il voudra afficher sur le panneau dans les réglages associés,

puis écrira en dernier la valeur true sur la TC pour piloter concrètement le panneau. Il pourra en suite

aller vérifier dans les nœuds associés aux états de toutes les commandes que le pilotage s'est bien

effectué.

La première tâche de développement que j'ai réalisée dans l'application a été

l'ordonnancement des commandes pour s'assurer que la TC soit toujours placée en dernier et

permettre des pilotages complexes comme celui-ci. J'ai ensuite conçu et développé le simulateur

grâce à l'aide précieuse de l'architecte du projet. Nous avons implémenté un module de

communication qui s'occupe de centraliser les communications de l'application avec les

équipements.

c. Conception et implémentation du simulateur

En réalité, l'application n'est pas reliée indépendamment à chaque équipement mais à un

serveur OPC intermédiaire appelé frontal qui regroupe des ensembles d'équipement. Il existe par

exemple un frontal GTC qui regroupe tous les équipements des tranchées couvertes, mais encore un

frontal RAU qui regroupe les équipements postes d'appels d'urgence, ou le frontal DAI contenant les

caméra pour la Détection Automatique des Incidents.

Nous avons ensuite utilisé l'api java de l'Opc Fundation pour instancier un serveur OPC au

démarrage de l'application qui contient les nœud des attributs de tous les équipements de

l'application rassemblés par frontal. J'ai implémenté la fonction qui utilise cette api et s'intègre au

driver de communication du SAGT pour aller écrire la valeur voulue sur le nœud demandé. L'api

permet de récupérer le type du nœud du serveur opc afin que je puisse convertir adéquatement la

valeur sous le bon format pour l'envoyer.

Cela a rendu possible la simulation de l'écriture d'une valeur dans une commande d'un

équipement, mais le serveur de simulation des équipements que nous avons démarré ne possède

Page 35: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

pas l'intelligence des frontaux. Nous sommes donc en train de demander à un chat d'aller chercher

une balle. Nous avons beau demander à cette caméra de tourner, elle n'en fera rien et son état ne

changera pas.

Afin de pouvoir updater les nœuds des états liés aux commandes nous avons choisi de

souscrire en simulation depuis le module de communication aux changements sur les nœuds des

commandes, chose qu'il ne fera jamais dans les conditions normales d'exploitation.

Un service JMS sur le topic duquel nous avons placé un listener dans notre module

simulation informera alors l'application lorsqu'un changement de valeur dans un noeud commande

sera effectif sur le serveur OPC. Mon module ira ensuite rechercher dans la table des attributs des

équipements l'adresse du datapoint de l'état associé à la commande pour le mettre à jour sur le

serveur avec la nouvelle valeur.

Une dernière manipulation pour la gestion des comptes-rendus lors des actions de pilotage

et le simulateur de frontaux a marqué la fin de développement du simulateur de frontal, et a permis

le démarrage de la phase de test du SAGT.

3. L'Application de Master Simulation

a. Présentation générale

Le master simulation a la main mise sur le déroulement d'une séance de simulation. Cela lui

permet de former des apprentis ou bien de tester des changements dans le référentiel des bases de

données sans risquer des conséquences négatives sur l'environnement réel d'exploitation. C'est une

application à part entière qui n'est accessible que par les profils ayant les droits de master

simulation.

Page 36: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

b. Simulation des équipements

La première partie de l'application permet de simuler les valeurs des nœuds de n'importe

quel attribut des équipements sur le serveur OPC. Le SAGT ne peut en temps normal pas écrire

directement une valeur dans un nœud autre qu'une commande, mais le master simulation peut

survoler ces droits et écrire directement dans un état.

Il navigue pour rechercher un équipement puis le sélectionne dans le tableau ci-dessous. Cela

ouvre une popup qui permet d'écrire la valeur que l'on veut dans le nœud correspondant à l'attribut

que l'on souhaite parmi les états, les mesures, les alertes et les alarmes. Pour envoyer une

commande le master peut toujours piloter les équipements de manière habituelle dans le SAGT.

Interface de simulation des équipements

La popup se met automatiquement à jour en fonction des cases sélectionnées par l'utilisation grâce

au data-binding d'AngularJS.

c. Paramétrer des retours sur commande

Cette interface permet de simuler un disfonctionnement sur un équipement. Le but est de

simuler le fait que l'état de l'équipement ne se mette pas à jour avec la bonne valeur lorsque l'élève

du formateur essayera de la commander.

Ainsi, le master navigue à travers les TR possibles. Il en sélectionne une et écrase le retour

attendu par un nouveau retour qu'il paramètre. Ces données sont enregistrées en base grâce à un

controller et un repository.

Page 37: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Du côté serveur, j'ai ajouté une validation en plus qui, lorsqu'on souscrit à un changement de

valeur d'un noeud commande en simulation vérifie que sa réponse n'est pas écrasée avant d'aller

écrire dans l'état associé sur le serveur opc.

Interface de paramétrage des retours commande

d. Paramétrer des retours sur scénario

Comme décrit précédemment, les frontaux sont dotés d'une intelligence propre que leur

permet de réagir à une commande. Certaines commandes appelées scénarios sont capable

d'entraîner non pas un, mais une multitude de changements d'états par frontal. Par exemple le

scénario fermeture du tunnel entraînera l'arrêt des ventilations, l'extinction des éclairages, le

rabaissement des barrières et tout un tas d'actions gérées par le frontal.

Ces scénarios sont inconnus du SAGT, c'est à dire que l'application n'a aucune idée des états

modifiés par la commande scénario et ne sait à priori donc pas vérifier sa bonne exécution. Afin de

palier à ce problème, au lieu d'être associés à un vrai état d'équipement, les scénarios sont liés à un

nœud du frontal faisant le compte rendu de l'exécution du scénario par l'équipement.

Page 38: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Interface de paramétrage des retours scénario

L'interface de paramétrage d'un scénario permet au master simulation connaissant les

changements d'état d'un frontal liés au scénario de paramétrer leur exécution. L'interface que j'ai

implémenté lui donne accès aux scénarios qu'il a déjà paramétré sur le frontal sélectionné au

préalable. Il peut alors les modifier ou en ajouter un nouveau.

Pour paramétrer un scénario, il faut lui choisir un nom et choisir la valeur de l'attribut de

l'équipement du frontal qui le déclenchera sur la partie gauche de la popup. Il est ensuite possible de

paramétrer l'ensembre des retours d'états sur les équipements qui seront effectuer lorsque cette

commande sera envoyée par n'importe qui dans le SAGT.

e. Simuler des états de trafic

Cette interface permet de récupérer des portions de route et leur appliquer des

changements d'état de trafic. En mode d'exploitation normal, des équipements de mesure du trafic

envoient un volume gigantesque de données qui sont traitées par le module gestion trafic sous

forme de trames au format HMVL.

Toutes les 6 secondes, un algorithme lie ces données avec un état de trafic sur le tronçon de

la route contenant les points de mesure du trafic par les équipements. Ces données sont trop

complexes pour être réellement simulées, dont la partie simulation des états trafic contourne le

fonctionnement normal du SAGT qui il outrepasse le mécanisme de calcul des états de trafic sur la

route.

Page 39: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Afin de simuler un état de trafic sur une portion de route dans l'application, j'ai localisé les

portions de routes et je leur ai associé une mesure correspondante dans la table des mesures.

Injection d'états de trafic en simulation

Cette simulation ne permet pas de tester l'algorithme de calcul des états trafic, mais il permet de

vérifier le mécanisme des alertes bouchons qu'il lève lorsqu'on choisit un état de trafic bloqué. Il

permettra aussi à terme de mettre à jour la cartographie en fonction des données rentrées par le

master simulation.

Apparition des alertes bouchons sur les troncons concernés par l'injection de trafic bloqué

f. Listes d'action

Lors d'une formation , un des besoins primordiaux du formateur maître de la simulation est

de pouvoir quitter son poste afin d'aller observer et aider ses apprentis. Il souhaiterait donc pouvoir

programmer des apparitions d'alertes, d'alarmes, des injections d'état trafic et des pilotages

d'équipements au cours du déroulement d'une Simulation tout en restant éloigné son poste.

Page 40: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

C'est l'intérêt de la programmation d'une liste d'action. On peut lui ajouter des actions de

type injection d'alarme, d'alerte, pilotage d'équipement ou encore injection d'état trafic. A celles-ci,

on peut ajouter des temporisations ou des contrôles opérateurs. Cela signifie qu'on attendra le

temps de la temporisation avant l'exécution de la prochaine action, ou bien que l'on attendra une

confirmation du master simulation avant de continuer le processus d'exécution.

Dans le menu principal d'affichage des listes d'action, le master peut cliquer sur une liste et

en afficher toutes les actions en bas de l'IHM.

Menu d'affichage des listes d'action

Il est possible d'éditer cette liste ou bien d'en créer une nouvelle à travers l'interface d'édition des

listes d'action.

Interface d'édition des listes d'action

Ici, on ajoute les étapes de la liste d'action une à une dans l'ordre dans lequel ont souhaitera les

exécuter en cochant le type d'action souhaité puis en cliquant sur le bouton ajouter une action. La

popup d'édition de l'étape de la liste d'action dépendra de son type.

Page 41: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Popup édition étape liste d'action de type injection d'alarme

Popup édition étape liste d'action de type pilotage équipement

On ajoute une à une les actions de la liste. Lorsqu'on en sélectionne une dans la liste, il est possible

de paramétrer ses temporisations et contrôles, ainsi que de modifier sa position grâce à une nouvelle

partie de la fenêtre qui s'affiche en bas à gauche.

Page 42: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Sauvegardons cette liste d'action, puis tentons de l'exécuter dans le menu principal

d'affichage des listes d'action. L'utilisateur peut voir le statut des actions qui s'enchaînent ainsi que la

barre de progression de leurs temporisations.

Si l'action exige une confirmation côté master simulation avant de continuer son exécution,

de nouveaux boutons s'updatent en bas de la page. C'est encore une fois toute la magie d'AngularJS

de lier aussi simplement les scopes et les vues.

Page 43: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

4. Autres Tâches

a. Initialisation du référentiel

Sopra Stéria est responsable de l'initialisation des données des tables de l'application avec les

données fournies par EFE. J'ai été chargé de la génération des scripts d'insertion dans les bases du

SAGT à partir des données d'un référentiel national du réseau routier et de données sur le futur tracé

de la L2.

Mes tâches étaient de comprendre le fonctionnement de ces tables et ce qu'elles voulaient

dire sans documentation pour adapter leurs données au MDD de notre application. Cela a permis

d'approfondir mes connaissances en SQL et mes compétences avec PgAdmin/PostgreSQL. Ces

problèmes étaient facilement divisibles en petites parties facilement résolubles ce qui rendait la

tâche fastidieuse agréable et satisfaisante. Une requête a été trop fastidieuse à réaliser un SQL et

m'a parmis d'appréhender JDBC avec l'aide d'un collègue.

J'ai ainsi pu importer les données sur les axes gérés par la DIRMed comme par exemple les

bretelles, échangeurs, les communes et les départements. J'ai aussi importé les points de repère sur

la route indispensables pour tester toutes les activités de localisation dans le SAGT.

Page 44: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Exemple de requête SQL pour les échangeurs

b. Tests de qualification interne

J'ai réalisé des tests en qualification interne pendant près d'un mois. Cela m'a donné l'occasion

d'avoir un aperçu encore plus global sur les étapes et le fonctionnement d'un large projet

Page 45: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

informatique. J'ai aussi appris à me servir de l'outil d'HP Quality Center. Ce dernier est très utile pour

tester les fonctionnalités de l'application et instaurer une communication efficace entre

développeurs, testeurs et chefs de projets.

c. Correction de bug

La dernière tâche qui m'a été assignée pendant quelques semaines est la correction de bugs

sur l'application. Un chef de projet définit un objectif de correction d'un certain nombre de bug avec

le développeur et l'accent est mis sur la rapidité.

Assez souvent cependant, les bugs s'avéraient être des fonctionnalités entières pas encore

développées. J'ai ainsi pu coder un service qui prévient l'utilisateur de l'arrivée imminente d'un

événement planifié et rappelle tous les jours à la bonne heure la présence d'un chantier qui se répète

quotidiennement.

Cela a été une étape plutôt enrichissante pour moi car j'ai eu l'occasion de toucher à

plusieurs endroits du code de l'application et relire le code de développeurs expérimentés. J'ai le

sentiment que rien que le fait d'avoir relu leur code m'a fait beaucoup progressé et évolué dans ma

manière d'approcher la programmation.

Page 46: Rapport de Stage 3A©ment_Rappo… · Merci à mes chefs de projets, Laurent Livolsi et Laurent Claudel, pour m'avoir fait confiance et permis de progresser énormément en me confiant

Conclusion

Comblé par tout ce que mon stage ma apporté sur la plan technique et humain, je suis ravi

d'avoir eu le privilège d'apprendre et utiliser professionnellement un ensemble de nouvelles

technologies du web. J'ai été par ailleurs aussi très heureux de parvenir à apporter ma touche

personnelle et vivre un grande aventure au sein d'un groupe projet unique et impressionnant.

Par ailleurs, cela fut aussi l'occasion de découvrir concrètement le milieu des ESN. Ma

curiosité me projette maintenant vers un changement de cap total car je souhaiterais commencer

ma carrière en prenant part à un projet d'entreprenariat centré autour d'un projet innovant à

l'étranger.