Projet de Fin d'Études en Génie Informatique
Projet de Fin d'Études en Génie Informatique
Elaboré par :
MDINI Mohamed Yassin
A nos très chers parents Abderrahman & Samira qui nous ont toujours
soutenus, encouragés en approuvant nos choix et nos décisions.
A nos sœur et frère Hiba & Kacem qui ont toujours été à nos côtés
pour nous conseiller.
A nos encadrants et professeurs qui ont été toujours présents et qui nous
ont aidés à réaliser ce travail.
Nous tenons tout d’abord à exprimer nos profondes gratitudes à toutes les
personnes qui ont contribué à notre succès et à nos encadrants,
Nous adressons aussi nos vifs remerciements pour toute l’équipe MpSoft
pour leur accueil et leur esprit d’équipe.
Table des matières
INTRODUCTION GENERALE .............................................................................................................................. 6
CHAPITRE I : CONTEXTE GENERAL DU PROJET .................................................................................................. 8
1. INTRODUCTION .............................................................................................................................. 9
2. PRESENTATION DE L’ENTREPRISE ........................................................................................... 9
3. PRESENTATION DU PROJET ...................................................................................................... 10
3.1 ETUDE DE L’EXISTANT ........................................................................................................................ 10
3.2 PROBLEMATIQUE ................................................................................................................................ 11
3.3 SOLUTIONS PROPOSEES ...................................................................................................................... 12
3.4 ARCHITECTURE REST ....................................................................................................................... 12
3.5 AUTHENTIFICATION DU LOGICIEL ..................................................................................................... 13
3.6 SERVICE DES OPERATIONS DES VERSEMENTS .................................................................................... 13
a. Description .............................................................................................................................................. 13
b. Donnée en entrée .................................................................................................................................... 14
c. Donnée en sortie...................................................................................................................................... 16
3.7 SERVICES DES OPERATIONS DE CESSION BBE ................................................................................... 17
a. Donnée en entrée .................................................................................................................................... 17
b. Données en sortie .................................................................................................................................... 19
3.8 SERVICE D’ALIMENTATION DES OPERATIONS DES AUTORISATIONS DES SORTIE ............................. 19
a. Données en entrée ................................................................................................................................... 19
b. Données en sortie .................................................................................................................................... 21
3.9 SERVICE DES OPERATIONS DE TRANSFERT DES DEVISES ................................................................... 21
a. Données en entrée ................................................................................................................................... 21
b. Données en sortie .................................................................................................................................... 22
CONCLUSION................................................................................................................................. 37
CHAPITRE III : CONCEPTION ............................................................................................................................ 38
1. INTRODUCTION ............................................................................................................................ 39
2. ARCHITECTURE DE L’APPLICATION ...................................................................................... 39
3. OUTIL DE CONCEPTION STARUML : ....................................................................................... 41
4. DIAGRAMMES DE SEQUENCES ................................................................................................. 42
4.1 DIAGRAMME DE SEQUENCES DE « S’AUTHENTIFIER »....................................................................... 43
4.2 DIAGRAMME DE SEQUENCES DE « PRODUIRE DES DONNEES POUR KAFKA » .................................... 43
4.3 DIAGRAMME DE SEQUENCES DE « CONSOMMER DES DONNEES DE KAFKA » .................................... 44
4.4 DIAGRAMME DE SEQUENCES DE « AJOUTER PARAMETRE DE MAPPAGE » ...................................... 45
4.5 DIAGRAMME DE SEQUENCES DE « EDIT PARAMETRE DE MAPPAGE................................................. 46
5. DIAGRAMME DES CLASSES ....................................................................................................... 47
6. CONCLUSION................................................................................................................................. 48
CHAPITRE IV : REALISATION ........................................................................................................................... 49
1. INTRODUCTION ............................................................................................................................ 50
2. LANGAGES ET OUTILS DE DEVELOPPEMENT : .................................................................... 50
2.1 FRAMEWORK SPRING ......................................................................................................................... 50
3.10 BOOTSTRAP ......................................................................................................................................... 50
3. ENVIRONNEMENT MATERIEL : ................................................................................................ 50
4. ENVIRONNEMENT LOGICIEL .................................................................................................... 51
4.1 ECLIPSE ............................................................................................................................................... 51
4.2 APACHE KAFKA .................................................................................................................................. 51
4.3 STARUML ........................................................................................................................................... 51
4.4 ORACLE DATABASE ............................................................................................................................ 52
5. INTERFACES DE SYSTEME......................................................................................................... 52
5.1. KAFKA ................................................................................................................................................. 52
5.2. API PRODUCER ................................................................................................................................... 53
5.3. API CONSUMER .................................................................................................................................. 56
5.4. MPHANNIBAL ................................................................................................................................. 59
a. Interface « Authentification » .................................................................................................................. 59
b. Interface « Consulter liste des opération » .............................................................................................. 60
c. Interface « ajouter une opération » ......................................................................................................... 61
d. Interface « éditer une opération » ........................................................................................................... 61
e. Interface « Consulter liste des Mappage » ............................................................................................... 62
2
f. Ajouter un mappage ................................................................................................................................ 63
g. Interface « Consulter liste des Web Service »........................................................................................... 64
h. Ajouter un web service ............................................................................................................................. 65
i. Web service de MPHANNIBAL .................................................................................................................. 66
j. Mapping ................................................................................................................................................... 67
k. Invocation de web service de Hannibal .................................................................................................... 69
6. CONCLUSION................................................................................................................................. 69
CONCLUSION GENERALE ................................................................................................................................ 70
BIBLIOGRAPHIE .............................................................................................................................................. 72
3
Liste des Figures
4
Liste des tableaux
Tableau 1: Exemple authentification d'un web service ............................................................ 13
Tableau 2: Donnée d'entrée de versement web service ............................................................ 15
Tableau 3: Exemple de donnée d’entrée de web service versement ........................................ 16
Tableau 4: donnée de sortie de web service de versement ....................................................... 17
Tableau 5 : Exemple de donnée de sortie ................................................................................. 17
Tableau 6: Donnée d'entrée de Service des opérations de cession des BBE ............................ 19
Tableau 7: Donnée en sortie de Service des opérations de cession des BBE .......................... 19
Tableau 8: Donnée d'entrée Service d’alimentation des autorisations de service .................... 20
Tableau 9: Donnée sortie Service d’alimentation des autorisations de service ....................... 21
Tableau 10: Donnée d'entrée de Service des opérations de transfert des devises .................... 22
Tableau 11: Donnée de sortie de Service des opérations de transfert des devises ................... 23
Tableau 12: Description de diagramme de cas d’utilisations<<API Producer>> .................... 33
Tableau 13: Description de diagramme de cas d’utilisations<<API Consumer>> .................. 34
Tableau 14: Description de diagramme de cas d’utilisations<<MPHANNIBAL>> ............... 35
Tableau 15: Description de diagramme de cas d’utilisations<<Agent>> ................................ 37
5
Introduction Générale
Le marché des technologies a connu une évolution énorme ces dernières années et avec
l'intégration de l'internet il y a eu des changements sur la façon et la rapidité d'accès aux
informations. Plusieurs secteurs se sont adaptés à ce changement et encore plus ont vu le jour
pour satisfaire ces nouveaux clients. Les banques représentent l'un des domaines qui
connaissent un nombre énorme de client et qui souffrent pour les satisfaire.
Ils doivent alors proposer leurs services d'une façon plus rapide et sécurisé mais aussi à
distance afin de pouvoir éviter la congestion dans les agences. Les entreprises informatiques
voient dans le Big Data, une opportunité de trouver des nouveaux leviers de compétitivité
pour améliorer leur relation avec ses clients. MpSoft l’un des entreprises les plus connus qui
cherche toujours à répondre aux besoins de ces clients financières ( Poste , banques …)
Le présent rapport est structuré en quatre chapitres à travers lesquels on décrit les étapes de
réalisation du projet selon la méthodologie le modèle en V.
Le premier chapitre « cadre de projet » met le projet dans son contexte en présentant le cadre
général du projet, l'étude de l'existant ainsi que le choix de la méthodologie adoptée pour la
gestion de projet.
Le deuxième chapitre « Spécification des besoins » sera consacré à l'analyse des besoins
fonctionnels et non fonctionnels. En modélisant les besoins des utilisateurs via les
diagrammes de cas d’utilisation.
6
Le troisième chapitre « Conception » est consacré pour l'analyse qui est composée d'une vue
statique illustrée par des diagrammes de classes participantes et une vue dynamique présentée
par des diagrammes de séquences.
7
Chapitre I : Contexte général du projet
8
1. Introduction
Au cours de ce chapitre nous mettons notre travail dans son contexte. Nous allons présenter
l’organisme d’accueil, ainsi le cadre général du projet et l’état de l’existant, enfin nous décrivons
notre démarche en argumentant le choix de la méthode de modélisation
2. Présentation de l’entreprise
Ayant atteint la troisième année ingénierie informatique à Université Arabe des Sciences,
un sujet de fin d’études nous est demandé d’accomplir.
Notre choix s’est rapporté à Système de déclaration règlementaire Asynchrone.
Après de nombreuses recherches et demandes de stages, nous avons réussi à obtenir l’accord
des responsables de la société Manager Partner Software (MpSoft).
MpSoft est une société de Services, de conseil et d’ingénierie Informatique, créée autour d’un
noyau de compétences ayant une grande expérience dans le domaine des activités bancaires
et des nouvelles techniques, spécialisée dans la mise en œuvre de systèmes d’information des
institutions financières (Banques, banques postales et assurances).
Parmi les nombreuses applications crées par cette société dans ce secteur, MpBank qui est un
des rares global Banking orienté client destinée principalement aux établissements bancaires.
MpSoft propose un nombre des webservices qui couvrant l'ensemble des opérations de
l'activité bancaire. C'est dans ce cadre que s'inscrit ce projet de fin d 'études effectué au sein
de la société MpSoft dont l'objectif est de mettre en place un Système de déclaration
règlementaire Asynchrone basées sur les technologies de big data.
9
La mission de MpSoft :
3. Présentation du projet
3.1 Etude de l’existant
L’étude de l’existant est une étape primordiale dans le parcours de réalisation de notre
application. En fait, elle nous a permis de présenter les résultats de l’étude existante, de point
de vue présentation, description et critiques.
Cette étape constitue une phase de diagnostic qui vise à étudier l’état actuel afin de
chercher une amélioration de l’existant. Pour ce faire, nous procédons à une étude du mode
actuel tout en dégageant les défaillances remarquées enfin nous exposons la solution
proposée.
Ainsi pour l’étude de l’existant nous avons combiné les différentes méthodes qui sont :
10
L’état actuel du site se caractérise par :
3.2 Problématique
Dans nos jours, on rencontre plusieurs difficultés liées aux systèmes d'information de
l'entreprise. Le problème de Global Banking qu'il est un système qui nécessite une haute
performance de système en termes de rapidité, sécurité et fiabilité afin de récupérer et diffuser
les informations.
La CTAF a eu une entrevue avec un groupe d’experts de l’Union européenne dans le cadre du
programme régional de lutte contre le terrorisme financé par l’instrument contribuant à la
stabilité et à la paix (IcSP) qui a pour vocation d’appuyer les initiatives en matière de sécurité
et les actions de consolidation de la paix dans les pays partenaires de l’Union Européenne.
Dans ce cadre, une implémentation d’un client REST de l’API HANNIBAL à destination des
banques et de poste pour s’interfacer avec la plateforme HANNIBAL est devenu impérieux et
urgent. L’objectif est de spécifier les services de l’API afin de permettre d’automatiser
l’alimentation des versements des montants en devise, opérations de cession des BBE, les
autorisations de sorties et les opérations des transferts.
11
Un système fiable, sécurisé et rapide doit être mis en place pour suivre les opérations
bancaires et éviter des cas de fraude et blanchiment d’argent dans le territoire tunisien
Dans L’objectif est de spécifier les services de l’API afin de permettre d’automatiser
l’alimentation des versements des montants en devise, opérations de cession des BBE, les
autorisations de sorties et les opérations des transferts en basant sur l’architecture REST et
d’une structure bien déterminer des fichier JSON.
Les API REST sont basées sur HTTP, qui signifie HyperText Transfer Protocol. C’est un
protocole qui définit la communication entre les différents systèmes. L’échange est basé sur
des requêtes client et serveur.
Le choix du REST justifié par son extensibilité et l’aptitude de l’intégré dans des systèmes
existants sans être susceptible de la diversité technologique.
12
Figure 2: schéma descriptif de l’architecture REST
L’usage des services HANNIBAL nécessite une authentification « Basic Auth » à chaque
requête, et en cas d’erreur d’authentification (code http 401) le logiciel doit renvoyer la
requête de nouveau.
a. Description
Ce service permet d’alimenter la plateforme HANNIBAL par les versements des montants
déclarés à la Douane. Les utilisateurs de cet API sont notamment les systèmes bancaires et
les systèmes de poste.
13
Le service est exposé via web en utilisant REST. L’exploitation de ce service se passe par
l’envoie d’une requête POST à la ressource suivante:
[Link]
b. Donnée en entrée
Les données en entrée sont encapsulées dans une structure de données : [Versement] définie
dans le tableau suivant:
14
Agent “agent” chaîne de caractères
Equivalent en TND “equivalentTND” Numérique *
Code de devise “codeDevise” chaîne de caractères * Norme : ISO-4217
Montant de devise “montantDevise” Numérique *
Taux de change “tauxChange” Numérique *
Coupures des devises “coupuresDevise” chaîne de caractères *
15
Exemple de requête de service d’alimentation des versements des devises
POST /api/banques/versements HTTP/1.1
Host: [Link]
Content-Type: application/json
Authorization: Basic ...
cache-control: no-cache
{
"numVersement": "01001VR1010211",
"dateVersement": "2019-01-21T[Link].924Z",
"nom": "Ben Foulen",
"prenom": "Foulen",
"numPasseport": "",
"numCIN": "12345678",
"numSejour": "",
"numCompte": "123456789012345678901234",
"deviseCompte" : "EUR",
"titulaireCompte": "Mohamed Ben Foulen",
"nationalite": "TN",
"numDD": "DD7001554",
"paysResidence": "TN",
"banque": "01",
"agence": "001",
"agent": "Mohamed Salah",
"equivalentTND": 17000
}
Tableau 3: Exemple de donnée d’entrée de web service versement
c. Donnée en sortie
Les données en sortie sont distinguées en deux cas : succès de la requête ou son échec. Un
code http serait indiqué dans l’entête de la réponse.
16
Nom fonctionnel Champs de Type Valeurs possibles
réponse
Message de réponse “message” chaîne de caractères Un message textuel décrit le
résultat de réponse
Exemple de réponse
Status Code: 201Created
Content-Type: application/json
Date: Thu, 24 Jan 2019 [Link] GMT
Content-Length: 24
{
"message": "Versement bien crée",
"content": "01001VR1010211"
a. Donnée en entrée
Les données en entrée sont encapsulées dans une structure de données : [CessionBBE]
définie dans le tableau suivant :
17
Nom fonctionnel Champs de webservice Type Exigence
N° Cession “numCession” chaîne de caractères *
Date de cession “dateCession” chaîne de caractères Norme :
* ISO-8601
Nom “nom” chaîne de caractères *
18
Code de devise “codeDevise” chaîne de caractères Norme : ISO-4217
*
Montant de devise “montantDevise” Numérique
*
Taux de change “tauxChange” Numérique
*
Coupures des devises “coupuresDevise” chaîne de caractères
b. Données en sortie
Les données en sortie sont distinguées en deux cas: succès de requête ou échec. Un code http
sera indiqué dans l’entête de la réponse.
a. Données en entrée
Les données en entrée sont encapsulées dans une structure de données [AutorisationSortie]
définie dans le tableau suivant :
19
Date d’autorisation de “dateAS” chaîne de caractères Norme :
sortie * ISO-8601
Date d’échéance “dateEcheance” chaîne de caractères Norme :
* ISO-8601
Nom “nom” chaîne de caractères *
Prénom “prenom” chaîne de caractères *
N° passeport “numPasseport” chaîne de caractères Obligatoire si pas de
CIN/Carte séjour
N° CIN “numCIN” chaîne de caractères Obligatoire si pas de
passeport
N° carte de séjour “numSejour” chaîne de caractères Obligatoire si pas de
passeport, résident et
nationalité non Tunisienne
N° du compte “numCompte” chaîne de caractères * Format IBAN
Titulaire du compte “titulaireCompte” chaîne de caractères *
Devise de compte “deviseCompte” chaîne de caractères * Norme :ISO-4217
Pays de résidence “paysResidence” chaîne de caractères * Norme utilisée par la BCT
Nationalité “nationalite” chaîne de caractères * Norme utilisée par la BCT
Profession “profession” chaîne de caractères
Nombre des accompagnés “accompagne” Numérique
Pays de destination “destination” chaîne de caractères * Norme utilisée par la BCT
Motif du transfert “motifTransfert” chaîne de caractères
Origine des fonds “origineFonds” chaîne de caractères
Banque “banque” chaîne de caractères *
Agence “agence” chaîne de caractères *
Agent de banque “agent” chaîne de caractères
Equivalent en TND “equivalentTND” Numérique *
Code de devise “codeDevise” chaîne de caractères * Norme : ISO-4217
Montant de devise “montantDevise” Numérique *
Taux de change “tauxChange” Numérique *
Coupures des devises “coupuresDevise” chaîne de caractères
Tableau 8: Donnée d'entrée Service d’alimentation des autorisations de service
20
b. Données en sortie
Les données en sortie sont distinguées en deux cas : succès de requête ou échec. Un code http
sera indiqué dans l’entête de la réponse.
a. Données en entrée
Les données en entrée sont encapsulées dans une structure de données : [Transfert] définie
dans le tableau suivant :
b. Données en sortie
Les données en sortie sont distinguées en deux cas : succès de requête ou échec. Un code http
sera indiqué dans l’entête de la réponse.
22
Nom fonctionnel Champs de Type Valeurs possibles
réponse
Message de réponse “message” chaîne de caractères Un message textuel décrit le
résultat de réponse
Contenu de réponse “content” chaîne de caractères Contient le N° de transfert en cas
de succès.
Tableau 11: Donnée de sortie de Service des opérations de transfert des devises
✓ Création d’un fichier JAR : lors de cette étape on va chercher la bonne pratique de
création un fichier jar et comment structurer les données selon besoin dynamiquement.
✓ Création d’un client webservice interne : dans cette étape nous allons créer une
application qui consomme les données existantes dans le broker et qui cherche la
bonne création d’un client web service
✓ Création de client web service MPHANNIBAL : dans cette étape on va créer des web
services internes et invoquer des web service simultanément.
5. Architecture du projet
23
✓ Kafka Cluster: inclut ZooKeeper et creation de topic
✓ API ( Consumer )
✓ MPHANNIBAL
6. Méthodologie de développement
24
L’origine de ce découpage provient du constat que les erreurs ont un coût d’autant
plus élevé qu’elles sont détectées tardivement dans le processus de réalisation.
Le modèle en V demeure actuellement le cycle de vie le plus utilisé. Il s’agit d’un modèle
en cascade dans lequel le développement des tests et des logiciels sont effectués de manière
synchrone.
Le principe de ce modèle est qu’avec toute décomposition doit être décrite la recomposition
et que toute description d’un composant est accompagnée de tests qui permettront de s’assurer
qu’il correspond à sa description.
Ceci rend explicite la préparation des dernières phases (validation-vérification) par les
premières (construction du logiciel), et permet ainsi d’éviter un écueil bien connu de la
spécification du logiciel : énoncer une propriété qu’il est impossible de la vérifier objectivement
après la réalisation.
25
b. Planification du travail
La condition pour réussir tout projet réside dans une planification systématique orientée vers
l'objectif, établie sur la base du plan d'exécution de projet. La planification doit être réalisée
soigneusement, progressivement et conformément aux possibilités, si on veut atteindre les
objectifs du plan d'exécution de projet. La planification n'est pas un processus statique mais
dynamique. Dans la phase de planification, l'apparition de nouveaux éléments tout au long des
étapes successives nous oblige souvent à modifier les données fixées au début. Pour débuter
n’importe quel projet informatique il est nécessaire de faire une période de formation et de
documentation sur les outils, les langages et les technologies utilisés durant le période de stage.
En effet, nous allons passer à l’étape d’analyse pour identifier les besoins de notre projet
en question puis définir les spécifications fonctionnelles et non fonctionnelles. L’objectif de ces
deux phases est l’obtention d’un cahier de charge décrivant les fonctionnalités de notre application.
Puis, nous entamerons la phase de conception qui est une étape primordiale dans le cycle de
vie de toute application. Au cours de cette phase nous allons définir l’architecture de l’application,
les relations entre les éléments et élaborer les diagrammes tels que le diagramme de classes, le
diagramme d’activités et les diagrammes de séquences.
Par la suite nous attaquerons la phase de la réalisation ou nous allons utiliser les outils, les
langages et les technologies nécessaires pour développer notre application à fin qu’élaborer un
travail prêt à être testé.
7. Conclusion
Dans le chapitre qui suit, nous nous intéresserons à la spécification des besoins
fonctionnels et non fonctionnels pour l’élaboration d’une telle application
26
Chapitre II : Spécification et étude des besoins
27
Introduction
Avant de développer une application, il est nécessaire d’analyser les exigences du système. La
détermination et la compréhension des besoins sont souvent difficiles étant donné que le
développeur n’est pas forcément un connaisseur du domaine. Pour ce fait, nous devons
commencer par la modélisation des besoins des utilisateurs du système. Ceci permettra
d’identifier les fonctionnalités du système. Ce chapitre permet de déterminer les objectifs à
atteindre et permet d’analyser les besoins des utilisateurs et les contraintes à satisfaire en
développant la partie spécification par le moyen des diagrammes des cas d’utilisation.
Pour notre projet nous adaptons un cycle de vie composé de phases suivantes :
28
publier les données après la validation de l’opération choisi vers Kafka.
❖ Mappage : Le système doit faire le mappage entre les champs reçu et leur
correspondant de champ qui nécessite d’envoyé
Les principaux besoins non fonctionnels de notre application se résument dans les
points suivants :
• Performance
o L’application répond à toutes les exigences des internautes d’une manière
optimale
• Fiabilité
o Bon fonctionnement de l’application sans détection de défaillance
• Rapidité
o Le déplacement entre les pages doit être facile et rapide
o Les transactions se fait en temps réel.
• Sécurité
o Les données des utilisateurs sont sécurisées par mot de passe (longueur,
caractères spéciaux, expiration, politique de réutilisation…)
o Authentification lors de l’appel de web service
29
o Séparation de data base des applications pour assurer la sécurité de base de
données de la poste ou la banque
Dans ce niveau nous allons s’intéresser à présenter et détailler les fonctionnalités présentées
précédemment en utilisant le langage de modélisation UML (« l'Unified Modeling Language » ou
« langage de modélisation unifié ») et que nous allons l’utiliser dans ce chapitre et dans l’étape de
Conception.
UML est un langage de modélisation graphique à base de pictogrammes. Il est apparu dans
le monde du génie logiciel, dans le cadre de la « conception orientée objet ». UML est
couramment utilisé dans les projets logiciels.
UML est utilisé pour spécifier, visualiser, modifier et construire les documents nécessaires
au bon développement d'un logiciel orienté objet. UML offre un standard de modélisation, pour
représenter l'architecture logicielle. Les différents éléments représentables sont :
Un acteur est une entité qui définit le rôle joué par un utilisateur ou par un système
qui interagit avec le système modélisé.
Nous distinguons les acteurs systèmes et humaines suivants :
Agent : est un utilisateur qui permet de gérer les différents paramètres de notre système
30
✓ S’authentifier.
✓ Gérer les déférents paramétrage de notre application
API Producer : est un fichier jar contient ensemble des classes et méthodes dont l’objectif de communiquer avec
la messagerie broker de notre choix :
Notre système se déroule d’une façon totalement automatique, aucune action manuelle est
demandée afin de gagner du temps et éviter l’erreur humaine.
A la première mise en place, une certaine configuration est obligatoire, dès que le système
est mis en route et les process tournent tous les communications sont faites entre les APIs du
système.
31
Dans le diagramme des cas d‘utilisation (Figure 5) ont décrit toutes les fonctions de chaque
intervenant dans l’application (dans notre cas il y a que des acteurs systèmes)
32
b. Diagramme de cas d’utilisations<<API Producer>>
La description textuelle de digramme de cas d’utilisation API Producer est représentée par le
tableau 12.
-Suite à l’arrive des donnée, notre API structurée ses données sous format
précisé et produire ses données à Kafka pour stoker dans un topic spécifier.
33
c. Diagramme de cas d’utilisations<<API Consumer>>
La description textuelle de digramme de cas d’utilisation API Consumer est représentée par le
tableau 13.
-Suite à l’arrive des données à Kafka, notre API consomme ses données et
structurer sous format précisé, après il appel le web service de
MPHANNIBAL et envoi ses données.
34
a. Diagramme de cas d’utilisations<<MPHANNIBAL>>
La description textuelle de digramme de cas d’utilisation API Consumer est représentée par le
tableau 13.
Titre MPHANNIBAL
Résumé -Offre à l’utilisateur des interfaces pour gérer le mappage des champs des
webservice, gérer les opérations et gérer les web services.
-Mappage des données : les clés de champs arriver correspond a des clés
reliés à l’application métier donc il faut changer ses clés avec leur
correspond du clés demander et acceptent par le Hannibal.
Acteurs MPHANNIBAL
35
b. Diagramme de cas d’utilisations<<Agent>
Dans le système métier chaque transaction financière ou statique fait par un utilisateur s’appelé une
opération.
La description textuelle de digramme de cas d’utilisation Agent est représentée par le tableau
15
36
Résumé -Gérer les opérations de système, elles sont généralement des opérations
déjà existant de système métier chaque opération identifier par un code
unique et un libellé.
-Gérer les web service : chaque web service caractériser par une adresse, un
nom et dédier à une opération.
Acteurs Agent
Conclusion
Dans cette partie nous avons présenté les spécifications des besoins en insistant sur les
différents besoins fonctionnels et non fonctionnels et les différents acteurs avec la description du
chaque cas d’utilisation ainsi que les données issues de l’étude préalable et en fournissant des
informations déterminantes à modéliser le système d’information futur.
37
Chapitre III : Conception
38
1. Introduction
L’analyse est une phase obligatoire pour le développement d’une application. Elle permet
d’organiser les fonctionnalités identifiées dans le chapitre spécification des besoins et de définir
l’architecture de notre application.
Dans ce chapitre, nous allons définir l’architecture relative à notre application ainsi que
les différents diagrammes.
2. Architecture de l’application
Notre application s’appuie sur l’architecture 3 tiers ainsi que le modèle MVC sur le quel
Spring Boot est basé.
I. Architecture 3-tiers
✓ La couche présentation
✓ La couche métier
✓ La couche accès aux données
39
II. Modèle MVC (Model View Controller)
• Le Modèle :
Définir des méthodes permettant de mettre à jour les données (insertion, suppression, changement
de valeur). Il offre aussi des méthodes pour récupérer ces données. Les résultats renvoyés par le
modèle sont indépendants de toute présentation.
40
• La vue :
La vue correspond à l'interface avec laquelle l'utilisateur interagit. Elle n'effectue aucun
traitement. En effet, elle affiche seulement les résultats des traitements effectués par le modèle. En
plus, elle permet de présenter les résultats reçus par le modèle et de recevoir toutes les actions de
l'utilisateur (clic de souris, boutons, etc.). Ces différents événements sont envoyés au contrôleur
par la suite.
• Le contrôleur :
Le contrôleur assure la gestion des événements de synchronisation pour mettre à jour la vue
ou le modèle et les synchroniser. Il reçoit tous les événements par l’interface utilisateur et
enclenche les actions à effectuer. Le contrôleur n'effectue aucun traitement, il analyse seulement
la requête du client, appelle le modèle adéquat et renvoie la vue correspondante à la demande.
La différence ente l’architecture 3-tiers et le model MVC ce que l’architecture 3-tiers assure
la séparation entre la couche accès aux données et la couche métier. Pour que MVC soit 3-tiers il
faut une couche d’abstraction entre DAO « Data Access Object » entre couche métier et la couche
accès aux données. Dans notre application Spring Boot utilise l’ORM « Object Relational
Mapping » Hibernate comme DAO. Inversement, il faut ajouter contrôleur entre la couche
présentation et la couche métier.
StarUML est un puissant outil de Modélisation des Systèmes informatique. Cet outil
supporte plusieurs techniques de modélisation standard : modélisation Merise (Données et
Traitements), Modélisation UML particulièrement adaptée à la logique des applications et
Modélisation des Processus Métiers dédiée aux non-informaticiens pour leur faciliter l'expression
des besoins. L'originalité d’outil tient dans la forte intégration proposée entre ces différentes
techniques. StarUML propose un environnement graphique très intuitif et très facile à aborder.
41
4. Diagrammes de séquences
◆ Les contrôles peuvent interagir avec les dialogues, les entités, ou d’autres contrôles.
Pour chaque cas d’utilisation, nous réalisons un diagramme de séquence détaillé représentant
notre choix d’allocation de responsabilités dynamiques.
42
4.1 Diagramme de séquences de « S’authentifier »
43
Figure 12: Diagramme de séquences de « Produire des données pour kafka »
Notre application demande d’abonné à Kafka pour consommer les données existant dans un
certain Topic. Après s'être abonné à un ensemble de sujets, le consommateur rejoindra
automatiquement le groupe lorsque le sondage (long) est appelé.
Le consommateur restera dans le groupe et continuera à recevoir des messages des partitions
qui lui ont été attribuées.
44
Figure 13: Diagramme de séquences de « Consommer des données de kafka »
45
Figure 14: Diagramme de séquences de « Ajouter Paramètre de Mappage »
46
Figure 15: Diagramme de séquences de « Edit Paramètre de Mappage
Dans cette partie nous allons définir les différentes classes qui vont répondre aux cas
d’utilisation. Le digramme de classes est une représentation graphique qui permet de représenter
les différentes relations entre les constituants de notre system. Une classe est un ensemble
d’attributs et des fonctions qui décrit le comportement d’un objet.
47
Figure 16: Diagramme de classes
6. Conclusion
Dans ce chapitre nous avons définir l’architecture de notre application puis nous avons
détaillé la conception UML sous différents points statiques : diagramme de classes et
dynamique : diagramme de séquences, diagramme d’états des transitions et diagramme
d’activités.
48
Chapitre IV : Réalisation
49
1. Introduction
Après avoir décrit la conception de l’application, nous traiterons dans ce chapitre la
partie réalisation et mise en œuvre des fonctionnalités de notre application.
Nous présenterons en premier lieu l’environnement de travail, suivi d’un aperçu sur le
travail réalisé par le biais d’un ensemble de copies d’écran.
Spring est un Framework open source pour construire et définir l'infrastructure d'une
application Java3, dont il facilite le développement et les tests.
3.10 Bootstrap
C’est un ensemble des outils principalement utilisé pour la création des applications web. Il
contient des fichiers CSS, JavaScript, code HTML et des composants comme les boutons, les
navbars etc.…
3. Environnement matériel :
Le développement de notre application est fait sur un ordinateur portable qui possède les
caractéristiques suintantes :
• Marque : DELL
• Processeur : Intel Core i7-4710MQ @ 2.50 GHz 2.50 GHz
50
• Mémoire vive : 16 Go
4. Environnement logiciel
4.1 Eclipse
4.3 StarUML
51
4.4 Oracle Database
Dans le choix d’un SGBD on a choisi oracle car
c’est un moteur de base de données très solide
qui permet de gérer de grands volumes de
données.
5. Interfaces de système
5.1. Kafka
La figure14 représente la création d’un Producer avec la commande disponible par kafka,
après la création on va consulter tous les topics disponibles dans le cluster.
52
Figure 19: Création de Producer
Ce module est un fichier JAR composé des classes java qu’utilise l’API disponible de Kafka
pour faciliter au développeur d’envoi la donnée nécessaire à Kafka Producer.
Ses classes contient des méthodes qui permettent de structurer et envois des données.
Les méthodes ci-dessous sont des méthodes prédéfinis, l’objectif de ses méthodes est
d’utiliser les API de Apache Kafka et envoyer les données à Kafka
Pour la traçabilité nous avons écrit une méthode permettant de créer un fichier log personnalisé
et enrichi celui obtenu de Kafka avec plus de détails.
54
La figure 23 présente la méthode développer pour la gestion des logs personnalisés de l’API
Producer.
L’étape suivante de développement de notre API est l’export en tant qu’un fichier jar intégrer
dans le système métier.
55
La figure 24 présente l’exportation d’un fichier JAR.
Le principe de cette fonction est de tourner dans un mode continu, consommer les informations
de Kafka et faire des appels au Web service interne.
56
Figure 25: « Consumer » configuration
Après la configuration, nous avons utilisé les méthodes de l‘API Kafka consumer pour
s’abonner et consommer les données existantes dans Kafka Topic.
Pour chaque donnée consommée nous la structurons sous format JSON et utilisons une méthode
que nous avons développée pour appeler le web service de MPHANNIBAL.
Le principe de la méthode runConsumer (cf. figure 26) est de créer le « consumer », structurer
les données et appeler le web service.
57
Figure 26: Principe de la méthode « runConsumer »
58
Ensuite, nous avons créé une méthode « Log Consumer » pour la gestion de log personnalisé
de l’API Consumer (cf figure 28)
5.4. MPHANNIBAL
Cette section sera réservée à la présentation de la majorité des scénarios possibles dans notre
site à travers des captures d’écrans des interfaces.
a. Interface « Authentification »
Dès que l’utilisateur entre des paramètres d’identification corrects (login et mot de passe), il
accède à la page d’accueil de notre application.
59
Figure 29: Interface « Authentification »
62
f. Ajouter un mappage
Cette interface (cf figure 34) permet d’afficher le formulaire à remplir pour ajouter un nouveau
mappage.
Chaque opération de système contient son propre champ et son correspondant au champ de web
service. Nous offrons donc une liste qui contient les opérations pour choisir le champ
correspondant à l’opération choisie.
63
g. Interface « Consulter liste des Web Service »
La figure 35 présente l’interface « Consulter liste des Web Service » permettant d’afficher
chaque opération et son nom et le lien au web service qui lui correspond. Chaque opération peut
avoir un ou plusieurs web service mais un web service ne peut avoir qu’une seule opération.
64
h. Ajouter un web service
La figure 36 présente l’interface « Ajouter un web service ».
Chaque web service se caractérise par un nom, une adresse et l’opération qui invoque ce web
service.
65
i. Web service de MPHANNIBAL
La figure 37 présente le web service de MPHANNIBAl. Ce web service générique accepte tout
JSON et permet aussi le mappage des champs et l’invocation des web services d’une manière
automatique.
66
j. Mapping
La figure 38 présente la méthode de mappage des champs web service. Cette méthode accepte
le JSON arrivant du web service comme attribut puis le transforme en Map pour le mappage.
Le mappage se fait à l’aide d’une méthode transform que nous avons développée.
67
Pour tester le web service « Mapping » nous avons utilisé l’outil Postman.
68
k. Invocation de web service de Hannibal
La figure 40 présente la méthode utilisée pour invoquer les web service de Hannibal.
Nous avons ajouté une méthode de gestion de log personnalisé pour sauvegarder les requêtes
HTTP et leur réponse.
6. Conclusion
Dans le chapitre réalisation nous avons défini les différents langages et outils de
développement. Puis, nous avons présenté les composant de notre système en finissant par la
présentation des interfaces de notre application.
69
Conclusion Générale
Ce rapport résume les résultats de mon projet de fin d’étude pendant les quatre mois qui sont
dédiés pour la réalisation de notre application web « Système de déclaration règlementaire
Asynchrone ».
Ce projet m’a offert l’occasion d’apprendre et de suivre une formation pour de nouveaux
langages de programmation comme le langage de programmation orienté objet JAVA, HTML
comme langage de balisage, CSS pour la gestion d’une meilleure présentation et javascript. En
effet, ce projet était pour moi une occasion pour assimiler les nouveaux outils, mis à notre
disposition pour le développement de notre application, tel que le Framework Spring, Bootsrap,
Jquery.
Lors de la phase de réalisation nous avons rencontré quelques problèmes, comme tout projet,
en ce qui concerne l’installation et l’intégration d’Apache Kafka sur l’environnement de
développement dû à un manque de l’information puisque Kafka est un nouvel outil. Aussi nous
avons rencontré un problème lors de l’utilisation et l’adaptation des méthodes déjà existantes dans
les API de Kafka.
Notre application peut être améliorée ultérieurement en ajoutant d’autres fonctionnalités qui
la rendraient plus performante et efficace.
Au-delà de l’aspect technique, nous avons eu la chance de développer notre esprit d’analyse
et d’assurer une formidable expérience avec les employés de la société MpSoft, qui nous ont fait
bénéficier de leur expérience et de leur professionnalisme.
Finalement, ce projet a été une bonne opportunité pour l’intégration dans une société
spécialisé dans le développement web qui m’a permis d’évaluer ma compétence dans ce domaine.
70
Acronymes
A
71
Bibliographie
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
72
Résumé :
Ce rapport présente le travail que nous avons réalisé durant notre stage de fin
d’études consiste à implémenter un Système de déclaration règlementaire
Asynchrone au sein de la société MpSoft. Nous avons commencé par une
analyse des besoins suivie d'une conception architecturale détaillée de la
solution envisagée. Pour l'implémentation, nous avons utilisé Eclipse comme
outil de réalisation qui nous a permis d'obtenir à la fin des interfaces
ergonomiques et faciles à utiliser. Mots clés : Cycle en v, Asynchrone, Web
service, Kafka.
Summary :
This report presents the work that we carried out during our end of studies
internship consists of implementing an Asynchronous regulatory reporting
system within the company MpSoft. We started with a needs analysis followed
by a detailed architectural design of the proposed solution. For the
implementation, we used Eclipse as an implementation tool which allowed us to
obtain ergonomic and easy to use interfaces at the end of the day. Keywords:
Cycle in v, Asynchronous, Web service, Kafka.
ملخص:
يعرض هذا التقرير العمل الذي قمنا به خالل نهاية تدريبنا للدراسات والذي يتكون من تطبيق نظام إعداد
التقارير التنظيمية غير المتزامن داخل شركةMpSoft. عا بتصميم
ً بدأنا بتحليل االحتياجات متبو
استخدمنا، من أجل التنفيذ. معماري مفصل للحل المقترحEclipse كأداة تنفيذية سمحت لنا بالحصول
الكلمات المفتاحية. على واجهات مريحة وسهلة االستخدام في نهاية اليوم: Cycle in v،
Asynchronous، Web service، Kafka