Académique Documents
Professionnel Documents
Culture Documents
Dédicaces
Je rends grâce à Allah le Tout Miséricordieux, le Très Miséricordieux.
Je prie sur le Prophète Mohammad (Paix et Salut sur Lui), la plus parfaite des créatures, ainsi
que sur sa famille et ses compagnons.
Je dédie ce mémoire :
❖ À ma très chère mère, Soukeyna Kane pour les efforts et sacrifices consentis durant
tant d’années afin que je puisse être dans les meilleurs conditions; ce travail n’aurait pas pu
être possible sans elle
❖ À mon très cher père, El Hadji Amadou Cissé qui n’a cessé de me conseiller et de
prier pour moi durant toutes ces années
❖ À tous mes oncles, tantes, cousins, cousines, grand-mères et grand-pères de la famille
CISSÉ, KANE, SALL, SECK, et DIEYE; Que ce modeste travail, soit l’expression
des vœux que vous n’avez cessé de formuler dans vos prières. Que Dieu vous
préserve santé et longue vie.
❖ Au personnel de l’ESP et à tous les acteurs qui ont participé à la bonne réalisation des
cours et à la gestion en général du département Génie Informatique, plus précisément
les directeurs,chefs de départements, professeurs, et surveillants.
❖ À tous mes promotionnaires de la DIC3 2014/2019.
Remerciements
Ma gratitude va d’abord à mon professeur encadreur Monsieur Ahmath Bamba Mbacké, pour
sa confiance, ses conseils, sa disponibilité et ses orientations avant et durant le stage.
Avant Propos
Depuis sa création, l’Ecole Supérieure Polytechnique de Dakar a toujours constitué un
véritable pôle d’excellence pour la formation des étudiants du Sénégal, de la sous-région et
d’ailleurs. L’ESP est un établissement public qui a fêté ses 50 ans en 2014, après plusieurs
mutations. Voici quelques dates importantes pour tracer son historique depuis sa création :
❖ 20 mai 1964 : création de l’Institut Polytechnique (IP), établissement technique
supérieure dépendant de l’université Cheikh Anta DIOP de Dakar (UCAD) et
rattachée à la direction de l’enseignement supérieur ;
❖ 15 novembre 1967 : les décrets présidentiels numéros 67-12-30 et 67-12-31 créent
l’Institut Universitaire de Technologie (IUT) à la place de l’IP ;
❖ 30 avril 1973, la promulgation de la loi 73-17 et le décret 73-387 permettent à l’IUT
d’être un établissement public doté de la personnalité juridique et de l’autonomie
financière au sein de l’université ;
❖ 1973-1974, des réformes ont permis à l’IUT de dispenser des enseignements en
commerce et administration des entreprises. C’est ainsi que ces formations
complémentaires ont entraîné la délivrance de Diplôme d’Ingénieur en Technologie
(DIT) et de Diplôme d’Etude Supérieure de Commerce et d’Administration de
Gestion des Entreprises (DESCAE). Ce qui entraîne par conséquent une nouvelle
appellation de l’institut, et devient alors l'École Nationale Supérieure Universitaire de
Technologie (ENSUT) ;
❖ 24 novembre 1994, la loi 94-78 créé un établissement public dénommé Ecole
Supérieure Polytechnique (ESP), qui est composé de l’EPT et l’ENSETP ;
❖ En 2005 l’ENSETP a été reconstituée en reprenant sa partie industrielle qui était dans
l’ESP et en 2007 l'ex centre de Thiès de l’école supérieure polytechnique ex EPT est
redevenu l’Ecole Polytechnique de Thiès rattachée à l’université de Thiès et ensuite
rattachée directement au ministère chargé de l’enseignement supérieur.
L’école supérieure polytechnique de Dakar est un véritable levier de développement qui est
constituée de 06 départements : 05 départements industriels et 01 département de gestion.
Parmi ses départements on distingue :
Remerciements 4
Avant Propos 5
Sigles et Abréviations 9
Introduction 12
Conclusion et Perspectives 68
Bibliographie 69
Sigles et Abréviations
Abréviations Définitions
PV Procès Verbal
Introduction
Ce présent document est un mémoire de fin de cycle en vue de l’obtention du diplôme
d’ingénieur de conception en informatique. Il présente la réalisation d’un projet dans le
cadre d’un stage effectué à la Sonatel portant sur la gestion des réquisitions juridiques à partir
du Big Data.
Dans un premier temps nous présentons le contexte de ce projet, les problématiques qu’on
rencontre avant de donner nos objectifs. Afin d’atteindre ces objectifs nous utilisons la
méthode du cycle en V en l’appliquant à notre projet.
Une analyse des besoins est ensuite présentée en mettant l’accent sur les spécifications
fonctionnelles et voir ainsi les différentes fonctionnalités que notre système devra disposer.
Dans cette partie, UML nous aide à mieux comprendre le système avec des descriptions à
l’aide de diagrammes de classe, d’activité, de séquence, de cas d’utilisation, etc.
Suite à cette analyse, nous présentons la conception de notre solution. Cette partie est
composée de trois sous-parties :
❖ Conception Générale : où nous avons parlé de l’architecture de la solution
❖ Implémentation de l’architecture : où nous avons présenté les différents outils
technologiques que nous avons utilisé pour mettre en place notre système.
❖ Conception Détaillée : où, pour bien expliciter les réquisitions, nous avons montré, les
détails du module “Gestion des Réquisitions” avec la fonctionnalité saisie d’une
réquisition et son processus de traitement. Nous avons ensuite présenté le modèle de
conception de cette fonctionnalité.
La dernière partie de ce document présente la mise en oeuvre de la solution des résultats à
travers la présentation de l’environnement et la présentation des résultats illustrée par l’aspect
visuel de quelques interfaces de l’application.
Résumé : Dans ce chapitre nous présentons la structure au sein de laquelle nous avons
effectué notre projet de fin de cycle : la SONATEL. Ensuite, nous dégageons le contexte, la
problématique et les objectifs du sujet. Et pour terminer nous allons présenter notre méthode
de travail ainsi que quelques généralités sur le Big Data.
1.1.1.1 Historique
Le groupe Sonatel est fondé en 1985 par la fusion de l'Office des Postes et
Télécommunications et de Télé Sénégal. En 1997, Sonatel est privatisé et il entre dans le
capital de France Télécom à hauteur de 42,33%.
❖ 1998 : Entrée dans le capital de près de 10 000 actionnaires et entrée en bourse de
Sonatel à la BRVM
❖ 1999 : Création de la filiale Sonatel mobiles avec la marque Alizé
❖ 2001 : Création de la filiale Sonatel Multimédia chargée du développement de
l’activité Internet sous la marque Sentoo
❖ 2002 : Création de la Fondation d’Entreprise Sonatel - Inauguration du câble
sous-marin SAT3/WASC/ SAFE - Création de la filiale Ikatel au Mali
❖ Novembre 2006 : Sonatel adopte la marque commerciale Orange
❖ 2007 : Création de la filiale Orange en Guinée.
❖ 2016 : L'État du Sénégal vend une licence 4G à Sonatel pour 32 milliards Francs
CFA.
❖ 2016 : Rachat de Airtel Sierra Leone.
❖ 2018 : Sékou Drame devient directeur général du groupe Sonatel.
La figure 1.2 montre les chiffres du groupe Sonatel dans la dernière année, c’est-à-dire en 2018.
Le Groupe Sonatel est l’opérateur de référence en Afrique de l’Ouest qui offre des solutions
globales de télécommunications dans les domaines du fixe, du mobile, de l’Internet, de la
télévision, du mobile money et des données au service des particuliers et des entreprises.
Leader dans tous ses pays de présence, le Groupe Sonatel a démarré sa croissance externe au
Mali en 2002, puis s’est successivement installé en Guinée et en Guinée Bissau en 2007 et
tout dernièrement en Sierra Léone (2016). Il ambitionne de poursuivre son développement
externe dans la Sous-Région et plus largement en Afrique.
processus serait encore plus long et fastidieux, vu que la DRJ reçoit en moyenne plus d’une
centaine de réquisitions par jour.
De plus, vu la quantité importante d’informations à traiter et le temps que cela pourrait
prendre pour traiter toutes ces réquisitions, l’application ne les traite qu’à partir d’une
certaine heure (le plus souvent à la fin de la journée, à dix-sept heures trente 17h30) pour ne
pas impacter sur les autres applications utilisées.
Enfin, une fois les réquisitions traitées, les résultats sont enregistrées dans l'application. Le
lendemain, les utilisateurs peuvent donc poursuivre le processus. Il récupèrent tous les
résultats en vrac, dans un seul document, puis sont chargés de les traiter manuellement, un
par un, afin de les trier et d’envoyer les résultats aux instances juridiques qui avaient émises
la demande. Et dans le cas de demandes plus complexes, le processus pouvait même prendre
deux jours du fait que les résultats sont utilisées pour la suite de la réquisition.
1.2.3 Problématique
D’après l’étude de l’existant, nous pouvons dégager les problématiques suivantes:
❖ Le traitement des réquisition prend énormément de temps vu le volume important de
données à traiter.
❖ Le système n’était pas extensible dynamiquement, c’est-à-dire qu’il nécessitait d'être
modifier par des développeurs pour ajouter un nouveau type d’extraction.
❖ Le système existant ne permet pas de collecter des statistiques par rapport aux
traitement des réquisitions.
❖ Le système ne permet pas de convertir et envoyer les résultats automatiquement aux
instances juridiques.
❖ Il n’est pas possible de rajouter la localisation des appels dans les résultats
Notre problématique consiste donc à une meilleure prise en charge des réquisitions
juridiques.
1.2.4 Objectifs
Tenant compte des problématiques que nous venons de soulever dans la section précédente,
l’objectif principal de notre travail est de mettre en place une application pour nous permettre
de traiter plus facilement le grand nombre de réquisitions reçues et de résoudre les problèmes
manuels que peuvent rencontrer les utilisateurs finaux. Nous avons ainsi plusieurs objectifs
spécifiques:
❖ Faciliter la saisie d’une réquisition et toutes ses informations.
❖ Permettre, grâce aux technologies du Big Data, de traiter ces énormes volumes de
données non pas en plusieurs heures, mais en quelques minutes.
❖ Rendre possible le rajout des cas d’utilisation à la demande directement dans
l’application comme certaines déjà émises à savoir les recharges téléphoniques, les
transactions Orange Money, la localisation grâce à la carte SIM, etc.
❖ Permettre la collecte des statistiques : nombre de réquisitions reçues, nombre de
réquisitions traitées, réquisitions criminelles, vols de téléphone, vols de cartes,
transactions Orange Money, nombre de réquisitions reçues par structure…
❖ Permettre de générer directement les résultats par PV saisi.
❖ Permettre l’envoi automatique des résultats aux structures de provenance des
réquisitions ou à l’auteur de la requête selon l’option choisie.
❖ Permettre de suivre en temps réel, un numéro de téléphone.
❖ Permettre d’intégrer les coordonnées des appels dans les résultats.
La principale raison de ces échecs est une absence de méthodologie de travail d’où son
importance.
1.3.3.1 Définition
Le cycle en V est une approche de gestion de la vie d’un projet informatique conçue tout
d’abord pour l’industrie puis adaptée à l’informatique en 1980 (Bibliographie: [20]). Il est
une évolution du cycle en cascade qui manquait de réactivité. Il évite les retours en cas
d’anomalie rencontrées. Il est composé d’une phase descendante puis montante, la phase
montante envoie des informations vis-à-vis de la phase descendante.
Le client recherche un produit et il exprime ses besoins à travers ce produit. Il définit un délai
final de rendu. Le prestataire effectue une étude de faisabilité afin de savoir si la solution peut
être conçue et rentable.
Le client et le prestataire définissent un cahier des charges détaillant toutes les fonctionnalités
recherchées dans le produit final avant la conception du produit final. Le cahier des charges
est un document indispensable dans un projet car il lie le client et le prestataire sous un
contrat.
Le prestataire détermine les spécifications techniques de la solution dans la technologie
choisie, il effectue une estimation de délai pour chaque fonctionnalité à développer.
L’équipe du projet se lance dans le développement du produit sur la base des spécifications
techniques. Cette phase du projet consiste à concevoir les différentes fonctionnalités du
produit final dans les délais attendus. A chaque fois qu’un composant logiciel est développé,
il est testé afin de déterminer s’il fonctionne correctement.
Les composants logiciels sont intégrés dans la solution finale pour vérifier que l’intégration
ne provoque pas d’anomalies. Le produit est ensuite testé au regard des spécifications
fonctionnelles.
Une dernière validation du produit est effectuée avant la mise en production. Suite à la mise
en production, le client vérifie, dans le cadre de la recette, que le produit correspond bien à
ses attentes.
1.4 UML
Pour modéliser l’application de gestion des réquisitions juridiques, nous avons choisi le
langage de modélisation UML.
1.4.1 Présentation
Adopté et standardisé par l’Object Management Group depuis 1997, UML (Unified Modeling
Language ou Langage de Modélisation Unifié en français) est aujourd’hui un outil de
communication incontournable, utilisé sur des centaines de projets de par le monde.
UML, représente l'état de l'art des langages de modélisation objet. Il fournit les fondements
pour spécifier, construire, visualiser et décrire les artifices d'un système logiciel. Pour cela,
UML se base sur une sémantique précise et sur une notation graphique expressive. Il définit
des concepts de base et offre également des mécanismes d'extension de ces concepts. UML
est un langage de modélisation objet. En tant que tel, il facilite l’expression et la
communication de modèles en fournissant un ensemble de symboles et de règles qui régissent
l'assemblage de ces symboles.
UML permet de modéliser de manière claire et précise la structure et le comportement d'un
système indépendamment de toute méthode ou de tout langage de programmation. Les
créateurs d'UML insistent tout particulièrement sur le fait que UML est un langage de
modélisation et non une méthode.
UML est la fusion des langages Booch, OMT et OOSE il s'est rapidement imposé à la fois
auprès des utilisateurs et sur le terrain de la normalisation.
La figure 1.5 montre la hiérarchie des diagrammes UML 2.0 sous forme d'un diagramme de
classes.
Figure 1.5 : La hiérarchie des diagrammes UML 2.0 sous forme d'un diagramme
de classes
❖ diagramme de cas d’utilisation : permet de modéliser les interactions entre des acteurs
et un système ;
❖ diagramme d’activité : permet de visualiser un graphe d'activités qui modélise le
comportement interne d'une méthode, d'un cas d'utilisation ou plus généralement d'un
processus impliquant un ou plusieurs classificateurs (classes, cas d'utilisation,
paquetages etc.).
L’objectif principal du Big Data est de réussir à faire apparaître des connexions entre de gros
volumes de données de nature hétérogène qui seraient impossible à obtenir avec les méthodes
classiques d’analyse des données.
En 2001, Doug Laney, un analyste de chez Gartner, a donné une définition intéressante du
Big Data. Pour expliquer ce qu’est le Big Data, il a présenté la théorie des 3 V. Selon lui, le
Big Data peut se comprendre à partir de trois notions ayant tous la particularité de
commencer par la lettre « V » :
❖ Volume. Un système Big Data se caractérise d’abord par le volume de données en
jeu. Un système Big Data traite un volume de données largement supérieur à ce que
traitent les bases de données traditionnelles. Ce qui pose un défi technologique : les
volumes de données en jeu excèdent les capacités d’un simple ordinateur, nécessitent
des mises en réseau, l’utilisation du Cloud Computing…
❖ Vélocité. Depuis le début, nous insistons sur la problématique du volume. Dans Big
Data, il y a évidemment « Big ». Mais dans le Big Data, le volume n’est pas le seul
sujet. Un système Big Data, c’est aussi un système dans lequel la donnée circule vite
entre les outils, les bases, les applicatifs, les sources. Les données arrivent dans le
système en provenance de sources multiples et sont processées souvent en temps réel
pour générer des insights et mettre à jour le système. Dans le Big Data, l’approche
orientée « batch » tend progressivement à céder sa place au streaming de données en
temps réel. De plus en plus, la donnée est ajoutée, traitée, processée et analysée en
temps réel.
❖ Variété. Les données sont en grand nombre et circulent vite dans le système. Mais ce
n’est pas tout. Le Big Data se caractérise aussi par l’immense variété des données
traitées. Les bases de données relationnelles ont affaire à des données structurées et de
même type. Dans le Big Data, les données sont dans leur majorité non-structurées ou
semi-structurées. Et pour cette raison, elles doivent être travaillées, longuement
préparées. Un texte, un fichier audio ou un fichier vidéo doivent faire l’objet d’un
traitement avant de pouvoir produire du sens et supporter des métadonnées.
En résumé, le Big Data est l’art de gérer de gros volumes de données, complexes et
hétérogènes, pour la plupart non structurées, qui circulent vite dans un système donné. Ce qui
n’est pas à la portée des logiciels classiques de gestion de bases de données.
Certains auteurs ou éditeurs de logiciels ont voulu ajouter d’autres « V » aux trois proposés
par Gartner, pour mettre en avant d’autres défis posés par le Big Data :
❖ Véracité. La variété des sources et la complexité des traitements peuvent poser des
problèmes en ce qui concerne l’évaluation de la qualité des données (et, in fine, la
qualité des analyses faites à partir d’elles). La problématique de la Data Quality est
structurante dans n’importe quel projet Big Data.
❖ Variabilité. La variabilité des données entraîne une variation de leur qualité. Le fait
que les données évoluent dans le temps peut entraîner une dégradation de leur qualité.
Dans un système Big Data, il est important d’avoir à disposition des outils permettant
d’identifier, de traiter et de filtrer les données de faible qualité pour en optimiser
l’utilisabilité.
❖ Valeur. Le défi ultime du Big Data est de créer de la valeur. Or, parfois, les systèmes
et les procédures en place sont si complexes qu’il devient difficile d’extraire de la
valeur des données à disposition (d’en dégager des insights). La valeur rappelle la
finalité business de tout projet Big Data.
utilisé pour réduire le coût de la maintenance et allonger la durée de vie en bon état
des produits.
❖ Améliorer l’expérience client : L’expérience client est la résultante des sentiments et
émotions ressentis par le client dans sa relation avec une marque, au sens large. Elle
s’évalue et mesure par l’analyse de toutes les interactions entre le client et la marque.
Le Big Data permet de collecter les données en provenance de tous les canaux, de
tous les points de contact (réseaux sociaux, visites web, appels, etc.) et de qualifier de
manière relativement précise l’expérience vécue par chaque client. La qualité de cette
mesure permet d’améliorer la pertinence/ personnalisation des offres, de réduire le
churn et de résoudre les problèmes de manière proactive.
❖ Créer des modèles de Machine Learning : Le machine learning est un autre sujet
brûlant, irrésistiblement associé au Big Data. Ce n’est pas un hasard. C’est le Big
Data qui permet le Machine Learning. La donnée massive est la matière première du
machine learning. Le machine learning mériterait un article à lui tout seul. Il consiste
à instaurer un nouveau rapport à la machine, à passer d’un rapport de programmation
(l’homme programme une machine) à un rapport d’enseignement, de learning. Le
machine learning est indubitablement une des applications les plus prometteuses du
Big Data.
❖ Améliorer l’efficacité opérationnelle : L’efficacité opérationnelle fait moins parler
d’elle que le machine learning, pourtant c’est l’un des domaines où le Big Data a /
aura le plus d’impact. Le Big Data permet d’analyser et d’évaluer tout type de
production humaine et les feedbacks clients. Le Big Data peut être utilisé pour
améliorer la prise de décision, pour l’ajuster au mieux à la demande du marché.
Dans ce chapitre, nous avons commencé par présenter le groupe Sonatel, la structure
d’accueil, où nous avons effectué notre stage de fin de formation portant sur l’expression des
besoins pour l’amélioration du traitement des réquisitions. Nous avons ensuite procédé à la
présentation de notre sujet en donnant le contexte. Ensuite, fait la description de l’existant,
dégagé la problématique ainsi que les objectifs à atteindre. De plus, nous avons procédé à la
présentation de la démarche à suivre pour mettre en place la solution et à la présentation des
outils de modélisation. Et pour terminer, nous avons présenté quelques généralités sur le Big
Data. L’objet du prochain chapitre sera la spécification et analyse des besoins.
Ils sont des entités externes qui interagissent avec le système, comme une personne humaine
ou un robot. Une même personne (ou robot) peut être plusieurs acteurs pour un système, c'est
pourquoi les acteurs doivent surtout être décrits par leur rôle, ce rôle décrit les besoins et les
capacités de l'acteur. Un acteur agit sur le système. L'activité du système a pour objectif de
satisfaire les besoins de l'acteur. Les acteurs sont représentés par un pictogramme humanoïde
(stickman) sous-titré par le nom de l’acteur.
Les différents acteurs qui interviennent dans notre système sont :
❖ L’administrateur général : chargé de gérer tous les paramètres de l’application, en
plus de mettre à jour les différentes entités qui peuvent changer dans le métier (dans
notre autre application Big Data).
❖ Les administrateurs de profils: chargés de gérer les différents profils des
utilisateurs, ainsi que leurs droits d’accès à certaines fonctionnalités de l’application.
❖ Les utilisateurs simples: les utilisateurs faisant partie de la Direction des
Réglementations et des Affaires Juridiques et qui peuvent avoir accès à la plateforme.
❖ La gestion des types d’extraction : permet de gérer les bases de données, les flux,
les colonnes et les types d’extraction.
❖ La gestion des notifications : permet de gérer les notifications des utilisateurs du
système.
❖ La gestion des paramètres : permet de gérer les paramètres relatifs à l’application,
c’est-à-dire les structures, etc.
2.3 Analyse
Pour mieux faciliter l’analyse, les différentes fonctionnalités du système sont regroupées en
quatre (04) modules fonctionnels. Suite à une analyse plus détaillée, ces différents modules
ont pu être décomposés en des sous-ensembles appelés sous-modules. Ces sous-modules
auront des dépendances entre elles représentées grâce au schéma suivant. De elles seront
La figure 2.2 montre la description des modules et sous-modules regroupant l’ensemble des
fonctionnalités de notre système.
La figure 2.4 montre la description Séquentielle du cas d’utilisation “Saisir une réquisition”.
❖ Lister les réquisitions : permet de lister l’ensemble des réquisitions saisie sur la
plateforme.
❖ Consulter une réquisition : permet de consulter les détails d’une réquisition.
❖ Rechercher une réquisition : permet de rechercher une réquisition.
❖ Reprendre une réquisition : permet de reprendre une réquisition, c-a-d la relancer
s’il y a une erreur ou au cas où l’on voudrait la réutiliser.
❖ Aide réquisition : permet d’afficher une page d’aide où l’on spécifie toutes les
questions et réponses relatifs à l’utilisation de l’application Gestion des Réquisitions.
❖ Consulter une Base : permet de voir les détails d’une base de données.
Tableau 3.5 : Description Textuelle de la fonctionnalité “Consulter une Base”
Dans ce chapitre , nous avons fait l’analyse des besoins. D’abord, nous avons ressorti la
spécification du système. En suite nous avons présenté l’architecture fonctionnelle du
système. Et enfin, nous avons pu décrire l’analyse de notre système.
L’objet du chapitre suivant sera donc de présenter la conception de la solution.
Résumé : Dans cette partie nous présenterons la solution que nous avons adoptée pour gérer
l’aspect Big Data de notre système puis nous montrerons la manière dont il est structuré et
agencé avec l’application web. Ensuite, nous présenterons sa conception détaillée à travers un
cas d’utilisation et la répartition des composants du système.
Architecture de la Solution
Les microservices
Pour réaliser notre système, nous avons opté pour l’architecture microservices déjà adoptée
dans la plupart des projets de la Direction des Systèmes d’Information(DSI). Cependant, pour
que notre architecture microservices fonctionne comme une application fonctionnelle, nous
avons fait en sorte que chaque service communique et échange des données avec les autres
services de l’application grâce à un système de messagerie.
Aussi nous avons assuré une interdépendance entre les différents services grâce à un système
de conteneurs. Chaque service a donc son propre environnement d’exécution et il est alors
plus simple de tirer parti du matériel et d'orchestrer les services, notamment les services de
stockage, de réseau et de sécurité. Cela assure également la scalabilité de l’application car
avec la technologie des conteneurs, il est très facile, en fonction du besoin, d’adopter le
nombre de conteneurs par service à la hausse ou à la baisse.
Cette architecture permet également de mieux répartir les tâches de développement entre
différentes équipes, dans le cas où le projet devait continuer à avoir des évolutions. Cette
autonomie garantit alors à chaque équipe la liberté des choix techniques en fonction de ses
propres besoins.
La figure 3.5 représente, à l’aide d’un diagramme de composants UML, la répartition des
composants du système qui existait.
Figure 3.5 : Répartition des composants du système qui existait avant stème à l’aide du
diagramme de composants UML
La figure 3.1 représente, à l’aide d’un diagramme de composants UML, la répartition des
composants de notre système selon cette architecture.
La figure 3.2 qui représente la structure détaillée et les interactions des différents éléments du
système qui interviennent dans le module “Gestion des Réquisitions”, à travers un diagramme
de classe de conception UML.
La figure 3.3 qui présente la répartition physique des composants de notre système à travers un
diagramme de déploiement UML.
Résumé : Dans cette partie, nous présenterons l’environnement de développement, les choix
techniques des solutions utilisées, l’architecture technique ainsi que quelques interfaces.
4.2.1.2 Yarn
4.2.1.3 MapReduce
DataFrame et peut agir en tant que moteur de requête SQL distribué. (Bibliographie: [8])
(Bibliographie: [10])
Apache Livy est un service qui permet une interaction facile avec un
cluster Spark via une interface REST. Il facilite la soumission de tâches Spark ou d'extraits de
code Spark, de récupération de résultats synchrone ou asynchrone, ainsi que la gestion de
SparkContext, le tout via une simple interface REST ou une bibliothèque client RPC. Apache
Livy simplifie également l'interaction entre Spark et les serveurs d'applications, permettant
ainsi d'utiliser Spark pour des applications Web / mobiles interactives. (Bibliographie:
[11])
4.2.6 Scala
4.2.7 Jhipster
4.2.7.1 Angular
Spring Boot est un framework Java open source utilisé pour créer un
Micro Service. Il est développé par l'équipe pivot. Il est facile de créer des applications
autonomes et prêtes à la production avec Spring Boot. Spring Boot contient une prise en
charge complète de l’infrastructure pour le développement d’un micro-service et vous permet
4.2.7.3 Keycloak
Keycloak est une solution open source de gestion des identités et des
accès destinée aux applications et aux services modernes. (Bibliographie: [15])
4.2.7.4 ElasticSearch
4.2.7.5 Mysql
MySQL est le système de gestion de base de données SQL relationnel Open Source le plus
populaire. MySQL est l’un des meilleurs SGBDR utilisé pour le développement de diverses
applications logicielles Web. MySQL est développé, commercialisé et supporté par MySQL
AB, une société suédoise. Ce tutoriel vous permettra de démarrer rapidement avec MySQL et
(MySQL) et Big Data. Se référer aux références bibliographiques 12, 13, 14, 15 et 16.
Spring lui même sera composé de nos trois (3) microservices:
➢ Le microservice Gateway qui sera le point d’entrée de notre application
➢ Le microservice Traitement qui sera en charge du traitement des données
➢ Le microservice Proxy qui sera en charge de faire la liaison entre le groupe
Big Data et le groupe Front.
4.1.2.1 Authentification
Conclusion et Perspectives
Durant les cinq (05) mois de stage effectués au sein de la Sonatel, notre travail a porté sur la
mise en place d’une application de gestion des réquisitions juridiques. L’objectif de ce projet
a été de mettre en place un système basé sur les technologies du Big Data permettant à la
Sonatel de répondre plus efficacement aux nombreuses réquisitions reçues quotidiennement
et venant de tout le Sénégal.
Pour atteindre cet objectif, nous avons adopté la méthodologie basée sur le cycle en V utilisé.
Le langage UML nous a permis de représenter le système de gestion des réquisitions sous
formes de diagrammes d’analyse. Certains des diagrammes UML ont également été utilisés
pour présenter la conception de notre solution dans laquelle nous avons adopté l’architecture
microservices utilisée dans de nombreuses application de la Sonatel. Différents outils et
technologies nous ont permis de réaliser ce système. Nous pouvons citer Angular qui nous a
permis de développer l’interface de notre application, Spring qui nous a permis de développer
les microservices permettant la gestion de bout en bout de notre système, MySQL qui nous a
permis de mettre en place une base de données et les technologie du Big Data notamment
Apache Spark pour le traitement des données massives, Apache Livy qui nous a permis de
démarrer les jobs Spark à partir de notre interface, Apache Hive où nous avons pu puiser nos
données pour les traiter et ainsi répondre aux différents cas d’utilisation.
L’application est cependant toujours en cours de développement. La partie Big Data est sur le
point d'être finalisé, ainsi que l’interface de l’application.
Nous n’avons pas rencontré de problèmes majeurs durant le développement de l’application
Big Data, vu que les données étaient déjà présentes, accessibles et exploitables.
Afin d’améliorer le système, nous projetons de mettre en place une interface où l’instance
juridique pourra directement soumettre sa réquisition, qui nécessitera une validation interne
avant le lancement du traitement. De plus, un modèle de machine learning permettant
d’extraire les données directement depuis le Procès Verbal tiré au niveau de l’instance
juridique.
Bibliographie
1. https://fr.wikipedia.org/wiki/UML_(informatique) [Dernière consultation : Mars
2019]
2. https://fr.wikipedia.org/wiki/Diagramme_des_cas_d%27utilisation [Dernière
consultation : Mars 2019]
3. https://fr.wikipedia.org/wiki/Diagramme_de_classes [Dernière consultation : Mars
2019]
4. https://fr.wikipedia.org/wiki/Diagramme_de_s%C3%A9quence [Dernière
consultation : Mars 2019]
5. https://openclassrooms.com/fr/courses/2035826-debutez-lanalyse-logicielle-avec-uml
[Dernière consultation : Mars 2019]
6. https://hadoop.apache.org/ [Dernière consultation : Mai 2019]
7. https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html [Dernière consultation : Mai
2019]
8. https://spark.apache.org/ [Dernière consultation : Mai 2019]
9. https://hive.apache.org/ [Dernière consultation : Mai 2019]
10. https://hbase.apache.org/ [Dernière consultation : Mai 2019]
11. https://livy.incubator.apache.org/ [Dernière consultation : Juin 2019]
12. https://angular.io/ [Dernière consultation : Juin 2019]
13. https://spring.io/ [Dernière consultation : Juin 2019]
14. https://www.jhipster.tech/ [Dernière consultation : Juin 2019]
15. https://www.keycloak.org/ [Dernière consultation : Juin 2019]
16. https://www.mysql.com/fr/ [Dernière consultation : Juin 2019]
17. https://github.com/johnpapa/angular-styleguide/blob/master/a2/README.md
[Dernière consultation : Mai 2019]
18. https://fr.wikipedia.org/wiki/Big_data [Dernière consultation : Juin 2019]
19. https://fr.wikipedia.org/wiki/Architectures_logicielle [Dernière consultation : Juin
2019]
20. https://fr.wikipedia.org/wiki/Cycle_en_V [Dernière consultation : Juin 2019]