UNIVERSITE DE BANGUI
REPUBLIQUE CENTRAFRICAINE
Unité - Dignité
-Travail
INSTITUT SUPERIEUR DE TECHNOLOGIE
*-*-*-*-*-*-*-*-*-*
DIRECTION DES ETUDES
*-*-*-*-*-*-*-*
DEPARTEMENT DE GENIE
INFORMATIQUE
MEMOIRE DE FIN DE CYCLE EN VUE DE L'OBTENTION DE LA
LICENCE PROFESSIONNELLE EN GENIE INFORMATIQUE
Option : Réseaux et
Systèmes Informatiques
MISE EN PLACE D'UN SYSTEME INFORMATISE DE TRANSFERT
D'ARGENT
(Cas de GO SARL)
Rédigé et présenté par :
Tony Ulrich NGUEREZA DANGANA
Sous la direction de :
Maître de stage
Directeur de mémoire
M. Brice Aristide HEYA IMBATIA M.
Claver GUERET
Année académique
2014-2015
DEDICACE
Je dédie ce modeste travail à tous mes
parents.
REMERCIEMENTS
Qu'il me soit permis tout d'abord de remercier Dieu
le tout puissant de m'avoir accordé la force, la santé,
l'intelligence nécessaire pour l'accomplissement de ce travail.
Je tiens à remercier vivement mon maître de
stage, M. Brice Aristide HEYA IMBATIA, responsable du service
Informatique au sein de l'entreprise RCA SOFT, pour son accueil, le temps
passé ensemble et le partage de son expertise au quotidien. Grâce
aussi à sa confiance j'ai pu accomplir totalement mes missions. Il fut
d'une aide précieuse dans les moments les plus délicats.
Je remercie aussi, M. Téfal KALOU
directeur gérant au sein de l'entreprise et manager à
AZUR Centrafrique qui a aussi accepté de me prendre en
stage.
Mes sincères remerciements vont à l'endroit de
mon directeur de mémoire, M. Claver GUERET enseignant
à l'université de Bangui qui, en dépit de sa lourde
responsabilité a contribué efficacement à la
réussite de ce travail.
Je remercie également tout le personnel de
l'entreprise RCA SOFT pour leur accueil chaleureux et leur
franche collaboration tout au long de ce stage.
Mes plus vifs remerciements s'adressent aussi à tout le
cadre professoral et administratif de l'Institut Supérieur de
Technologie (IST) en général et en particulier du
département de Génie Informatique.
Tous mes camarades de classe avec qui
j'ai connu et continue de connaître une ambiance chaleureuse et
fraternelle de travail.
Enfin mes pensées vont aussi vers tous les membres de
ma famille, en particulier à ma mère, qui ne s'est jamais
lassé de m'apporter son soutien matériel, financier et surtout
moral.
SOMMAIRE
DEDICACE
i
REMERCIEMENTS
ii
SOMMAIRE
iii
LISTE DES FIGURES ET TABLEAUX
iv
LISTE DES SIGLES ET ABREVIATIONS
v
INTRODUCTION
1
ETUDE PREALABLE
2
I-1 PRESENTATION DE LA STRUCTURE D'ACCUEIL
3
I-2 ORGANIGRAMME
4
I-3 ETUDE DE L'EXISTANT
4
ETUDE THEORIQUE
12
II-1 PRESENTATION DU PROJET : TRANSFERT
D'ARGENT
13
II-2 LA MODELISATION OBJECT AVEC UML
15
II-3 LE SYSTEME DE GESTION DE BASE DE DONNEES
MYSQL
17
II-4 LE LANGAGE PHP
18
II-5 L'ARCHITECTURE CLIENT-SERVEUR
20
II-6 LES DIFFERENTS COMPOSANTS NECESSAIRES
21
II-7 LES MESURES DE SECURITE ET DES
INFORMATIONS
29
IMPLEMENTATION
32
III-1 LA MODELISATION DU SYSTEME DE TRANSFERT
33
III-2 MISE EN PLACE DE LA BASE DE DONNEES
41
III-3 CONFIGURATION MATERIELLE ET LOGICIELLE DU
SYSTEME
43
III-4 ARCHITECTURE GLOBALE DU SYSTEME DE
TRANSFERT
45
CONCLUSION
51
GLOSSAIRE
vi
BIBLIOGRAPHIE
vii
ANNEXES
viii
TABLE DE MATIERES
xii
LISTE DES FIGURES ET TABLEAUX
Figure 1 : Organigramme de RCA SOFT
2
Figure 2 : Formalisme du diagramme de cas
d'utilisation
16
Figure 3: Illustration d'une classe
16
Figure 4: Architecture du réseau GSM
23
Figure 5 : Liaison du serveur SMS à travers
un modem GSM
25
Figure 6 : Liaison du serveur SMS à travers
une liaison spécialisée
26
Figure 7: Diagramme de cas d'utilisation du
système de transfert
35
Figure 8: Diagramme de séquence pour le cas
d'identification
36
Figure 9: Diagramme de séquence pour le cas
de transfert d'argent
36
Figure 10: Diagramme de séquence pour le cas
de réception d'argent
37
Figure 11: Diagramme de classe du système de
transfert
38
Figure 12: Diagramme de composant du système
de transfert
40
Figure 13: Diagramme de déploiement du
système de transfert
41
Figure 14: Création de la base de
données
42
Figure 15: Page d'authentification des
utilisateurs
46
Figure 16: page d'accueil des opérateurs
46
Figure 17: Formulaire d'envoi d'argent
47
Figure 18: Formulaire pour payer un transfert
47
Figure 19: Page d'accueil du panneau
d'administration
48
Figure 20: Statistique de transfert d'argent
48
Figure 21: Liste des utilisateurs du
système
49
Figure 22: Liste de plan tarifaire d'une ville
49
Figure 23: Formulaire d'ajout d'un nouvel
utilisateur
50
Tableau 1: Equipements ou outils informatiques de
RCA SOFT
2
Tableau 2: Tableau décrivant les principaux
SGBD
9
Tableau 3: Tableau décrivant le coût
du déploiement
11
Tableau 4: Identification des acteurs des cas
d'utilisation
34
Tableau 5: Description des tables de la base de
données
41
Tableau 6: Description du matériel
utilisé
43
LISTE DES SIGLES ET
ABREVIATIONS
ASP : Active Server Page
AUC: Authentication Center
BSC: Base Station Controller
BSS: Base Station Subsystem
CGI: Common Gateway Interface
CSS: Cascading Style Sheets
GSM: Global System for Mobile
Communications
HTML: HyperText Markup Language
HTTP: HyperText Transfer Protocol
IIS: Internet Information Services
IMSI: International Mobile Subscriber
Identity
ISO: International Organization for
Standardization
MERISE: Méthode d'Etude de
Réalisation Informatique par Sous Ensemble
PHP: Hypertext Preprocessor
SGBD: Système de Gestion de Base de
Données
SIM: Subscriber Identity Module
SMSC: Short Message Service Center
SSL: Secure Sockets Layer
UML: Unified Modeling Language
URL: Uniform Resource Locator
VPN: Virtual Private Network
INTRODUCTION
Les institutions bancaires en général et
micro-finances en particulier sont en pleines mutations
socio-économiques se caractérisant par une course aux
technologies de l'information et de la communication (TIC). De plus en plus,
les entreprises s'organisent en agences décentralisées et
réparties sur des espaces géographiques distincts. Cet
état de fait implique qu'il y ait des plateformes de communication entre
agences afin de mieux coordonner et d'avoir une vue globale sur l'ensemble de
leurs activités.
De ce fait, la Compagnie Gne-Obala Sarl (GO
Sarl), qui du reste s'intègre pleinement à ce type d'organisation
à savoir, l'existence d'un site central connecté aux
différentes agences réparties sur l'ensemble du territoire
national, entend pour sa part exploiter au mieux son réseau national en
s'inspirant des nouvelles perspectives qu'offrent les TIC. Et ce, pour mieux
conduire sa politique d'innovation et sa stratégie d'intégration
sur le marché national en répondant aux besoins croissants de sa
clientèle, et offrir de nouveaux services à son environnement
extérieur.
C'est dans cet esprit que nous avons comme mission au sein de
l'entreprise d'élaborer le concept de notre projet de mémoire
afin de permettre une exécution plus rapide dans le transfert
informatisé d'argent et cela à des tarifs compétitifs.
Conscient de l'importance de ce projet initié par l'entreprise, nous
avons décidé de mettre en place un système de transfert
d'argent propre à l'entreprise. Ainsi est né le projet
d'étude « MISE EN PLACE D'UN SYSTEME INFORMATISE DE
TRANSFERT D'ARGENT » dont l'objectif visé est
l'informatisation et l'amélioration de la qualité du
système d'information de transfert au sein de l'entreprise. Ainsi pour
atteindre cet objectif, notre travail se subdivisera en trois parties
principales:
La première partie intitulée « Etude
préalable » est consacrée à la
présentation de l'entreprise d'accueil, l'étude de l'existant
et la solution retenue, la deuxième partie qui a pour titre
« Etude théorique » est consacrée à la
présentation de notre projet et les différentes solutions
retenues. La troisième partie intitulée
« Implémentation », l'architecture étant
stable, le produit s'apparente alors à l'application, satisfaisant les
exigences des utilisateurs. Finalement, nous terminerons par une conclusion et
quelques perspectives intéressantes concernant ce travail.
ETUDE PREALABLE
I-1 PRESENTATION DE LA STRUCTURE
D'ACCUEIL
RCA SOFT est une petite entreprise créée en
2013. C'est un projet piloté et fondé autour d'un réseau
africain qui regroupe des ingénieurs associés dans divers
domaines liés au TIC et à la Gestion. Il a son siège
social situé à Bangui au stade 20 000 places, porte 67 sur
l'Avenue des Martyrs. On y trouve un centre de conseil, une source
d'information et de connaissances en pleine effervescence. RCA SOFT s'emploie
à une collaboration durable avec ses clients et partenaires. A la
différence des sociétés classiques RCA SOFT propose des
prestations (Conseil, Assistance, Formation, Intégration,
Développement) développées exclusivement avec des
composants logiciels ou logiciels open source. Son modèle
économique est lié à la notion de service : vendre un
savoir-faire et une expertise plutôt qu'un droit d'usage sur un logiciel.
Ce modèle économique, reposant sur le service
plus que sur le logiciel lui-même, suggère ainsi plusieurs axes
dans lesquels le modèle économique rentable peut se trouver,
dont :
ü La formation, qui dans l'esprit du
libre consiste à vouloir donner les compétences et vendre le
service consistant à rendre les personnes en charge d'un système
d'information autonomes et informées ;
ü L'installation, pour apporter
l'assistance à l'occasion des transitions du système, sans
impacter l'autonomie des personnes concernant l'exploitation
quotidienne ;
ü Le support, qui apporte l'assistance
lors d'anomalies rencontrées dans le système. Un support sur une
large base de composant implique une équipe opérationnelle
complète et aux compétences vastes, et se fait soit sur le
modèle d'un éditeur de logiciels (comme le font les
distributions), soit plus audacieusement sur un modèle d'assurance
logicielle avec engagement de délai de correction.
Services
proposés
I-1-1 Ingénierie
logicielle
A RCA SOFT on y propose de l'audit, des conseils dans la mise
en oeuvre ou l'acquisition des logiciels/solutions informatiques. On y
développe des applications spécifiques en utilisant les
éléments suivants: UML et MERISE pour la
modélisation ; Java, PHP, ASP, C/C++, ... comme outils de
programmation; MySQL, PostgreSQL, SQL Server et Microsoft Access pour le
SGBD; et EgroupWare, Claroline pour déploiement des plateformes de
travail collaboratif et de formation à distance.
I-1-2 Systèmes et
Réseaux
On y fait de l'administration de serveur, gestion de postes
clients, sécurisation de données sous Linux, la mise en place des
VPN, des réseaux locaux et l'optimisation et sécurisation des
systèmes.
I-1-3 Systèmes
documentaires
RCA SOFT offre des solutions d'entreprises très
performantes et adaptées comme KOHA et PMB qui sont des systèmes
intégrés de gestion de bibliothèque Open Source et
Gratuits.
I-2 ORGANIGRAMME
DIRECTEUR GERANT
RESPONSABLE ADMINISTRATIF ET FINANCIER
COORDINATEUR DE PROJET
RESPONSABLE DE FORMATION
CHEF INGENIERIE LOGICIEL
RESPONSABLE MARKETING
CAISSIER
COMPTABLE
RESPONSABLE RESEAUX
Figure
1 : Organigramme de RCA SOFT
I-3 ETUDE DE L'EXISTANT
Cette synthèse sur l'existant a pour but de faire une
analyse de l'existant en termes de ressources matérielles et
logicielles. Elle nous a permis de mener à bien les objectifs
suivants :
- Évaluer la situation actuelle en faisant ressortir
les ressources existantes au sein de l'entreprise ;
- Avoir les éléments concernant l'environnement
d'exploitation général des ressources de l'entreprise ;
- Faire des suggestions pour le futur.
En d'autres termes, ces travaux d'analyse nous ont permis de
décrire la situation actuelle de l'entreprise et de dégager les
ressources susceptibles d'être prises en compte dans les besoins qui
seront nécessaires pour la mise en oeuvre du système de transfert
d'argent.
I-3-1 Analyse de l'existant
Dans cette rubrique, nous présentons les ressources
informatiques et la procédure actuelle de transfert d'argent au sein de
l'entreprise :
ü Les ressources informatiques
Le tableau suivant montre les équipements ou outils
informatiques au sein de l'entreprise en nombre approximatif :
Tableau 1: Equipements ou outils
informatiques de RCA SOFT
Equipements
|
Nombre
|
Ordinateurs (Portable et Bureau)
|
17
|
Imprimantes
|
2
|
Scanner
|
1
|
Routeur Wifi
|
1
|
Switch
|
1
|
Câble RJ45
|
18
|
Serveur (Ubuntu server 12.10)
|
1
|
Notons par ailleurs que l'entreprise dispose d'un nombre
relativement important d'applications qu'elle exploite. Le système
à mettre en place fonctionnera en parallèle avec les autres
systèmes de l'entreprise.
Description du
système actuel de transfert d'argent
Lors de nos travaux, l'étude de l'existant nous a
conduit à interviewer certaines personnes à l'instar de :
- Le caissier, rencontré pour les informations
concernant les frais de transfert ainsi que la procédure pour
l'élaboration des rapports d'activité ;
- Le directeur gérant : pour les informations
concernant la procédure de transfert d'argent au sein de
l'entreprise.
Mais pour localiser les sources, nous nous sommes mis en
pratique avec eux et après une observation continuelle, nous avons pu
constater les faits suivants :
- Lorsque le client arrive au sein de l'agence, en cas d'envoi
d'argent, il fournit les informations relatives (nom, prénom, n°
téléphone, le nom de l'agence destinataire ainsi que le nom de
celui à qui sont destinés les fonds et les détails du
montant à transférer). Par la suite en cas de succès,
l'agence émettrice du transfert envoi un SMS ou effectue un appel
téléphonique à l'agence destinataire pour communiquer
toutes ses informations afin de permettre au bénéficiaire de
rentrer en possession de son argent;
- Dans le cas d'un retrait d'argent, le client
(bénéficiaire) se présente à l'agence destinatrice
avec une pièce d'identité (pas obligatoire) pour
vérification, l'opérateur lui demande quelques informations (nom,
prénom, n° téléphone de l'expéditeur, etc..).
En cas de succès, l'agence destinataire qui fait office d'ordre de
paiement donne le montant dû au bénéficiaire ceci
après signature.
I-3-2
Critiques de l'existant
Suite à cette étude, nous avons trouvé
quelques points forts et aussi décelé plusieurs problèmes
de lenteur et de retard dans le processus de transfert d'argent. D'où
les plaintes et la perte des clients.
ü Volume important des informations traitées
manuellement, ce qui provoque parfois des erreurs dans l'établissement
des documents ;
ü Recherche difficile sur les registres qui engendre une
perte de temps ;
ü Possibilité d'erreur dans le remplissage des
différents documents ;
ü Possibilité d'erreur dans les calculs des
statistiques ;
ü Nombre important des archives qui engendre une
difficulté de stockage ;
ü Détérioration des archives à force
de leur utilisation trop fréquente.
Afin d'apporter une solution efficace et de remédier
à ces nombreux désarrois, nous avons décidé
d'élaborer un système informatisé de transfert d'argent
pour permettre à l'entreprise de fonctionner de façon rapide et
automatisée.
I-3-3
Proposition de la solution
Partant du schéma de description globale d'une
procédure de transfert, nous allons définir diverses
architectures possibles et surtout adaptées à la
réalisation du système en étude.
A cet effet, pour la mise en place de cette solution,
l'entreprise a deux possibilités : soit elle achète un
logiciel dont nous déployons ou bien elle recrute un développeur
pour développer cette application. Vu le coût pour l'achat d'un
logiciel et la difficulté de prise en main et surtout l'adaptation du
logiciel pour les besoins réels de l'entreprise, l'entreprise nous a
proposé de développer une application ce qui nous a permis de
mettre en pratique nos connaissances acquises en classe et d'adapter le
logiciel selon les besoins de l'entreprise.
I-3-3-1 Objectifs de la phase d'analyse des solutions
possibles
Cette partie de l'étude a pour objectif de faire une
analyse des choix conceptuels de l'application de gestion des transferts, ainsi
qu'une analyse des divers outils (matériels et logiciels) afin de
répondre aux exigences du système de transfert ;
Il est essentiellement question de présenter les
quelques solutions étudiées.
I-3-3-2 Etude conceptuelle du système à
mettre en place
Cette partie de l'analyse des solutions possibles va porter
sur la méthode de conception du système d'information à
réaliser pour le système de transfert d'argent.
Pour ce faire, nous allons procéder à la
comparaison de deux approches de modélisation d'un système
informatique afin de faire un choix objectif et justifié. Ce sont :
l'approche fonctionnelle et l'approche orientée objet.
L'approche fonctionnelle
Cette démarche apporte des solutions satisfaisantes
lorsque les fonctions sont bien identifiées et lorsqu'elles sont stables
dans le temps. Cependant en cas d'évolution, elle rend la maintenance du
système complexe et implique une lenteur dans le développement de
logiciel. Le concept de base de cette approche est la séparation des
données et des traitements. L'une des méthodes la plus
utilisée dans cette approche est la méthode MERISE.
L'approche orientée objet
Dans l'approche orientée objet, on note qu'elle conduit
à une conception dans laquelle il y a un fort couplage des
données et des traitements grâce au principe d'encapsulation. Le
problème de maintenance en cas d'évolution relevé dans
l'approche fonctionnelle est résolu à ce niveau du fait qu'avec
cette méthode, on maîtrise mieux la complexité du
système et on a une facilité d'évolution des
modèles conçus (il est plus facile de rajouter des objets dans un
modèle objet).
A l'issue de l'étude comparative, nous avons pu
constater les avantages et les inconvénients de chaque approche
conceptuelle. De ce fait, cela nous amène à identifier quelle
approche s'adapte au mieux à la conception du système à
réaliser. Pour mener à bien ce choix, nous optons sur les
critères de bases suivants :
ü Les possibilités d'extension des besoins du
système ;
ü La réutilisation des objets ;
ü La souplesse de conception ;
ü La rapidité et l'efficacité
Pour la conception du système, nous optons pour une
méthode orientée objet du fait des avantages
qu'elle offre.
Cette approche offre une technique qui est une aide efficace
pour résoudre certains problèmes liés à la notion
de réutilisabilité des objets (bibliothèques de classes)
en se basant sur des mécanismes fondamentaux tels que :
l'héritage, le polymorphisme.
De plus, l'approche objet permet une conception qui facilite
la maintenance des applications (l'encapsulation des données et des
traitements). Cela est dû au fait qu'il est possible par exemple de
modifier une méthode sans toucher à son interface ou de
créer une sous-classe héritée de celle qui nous
intéresse.
L'adoption d'une approche objet pour la conception s'appuie
sur une méthode ou un langage efficace pour modéliser le
système d'information. La qualité d'une conception est intimement
liée à la méthode utilisée pour sa conduite. UML
(Unified Modeling Language) est le langage utilisé pour la conception du
système objet. La notation UML est née de la
fusion à partir de 1994, des méthodes OMT et Booch. Elles sont
rejointes en 1995 par Jacobson pour mettre au point une méthode
unifiée, incorporant les avantages de chacune des méthodes
précédentes (OMT, Booch et OOSE). UML devient une notation
universelle pour la modélisation objet. Cela qui a permis de l'imposer
en tant que notation universelle de développement objet. Nous optons
pour une modélisation avec le langage UML.
I-3-3-3 Choix du système de gestion de base de
données
A cette étape de l'analyse comparative des solutions,
il est question à ce niveau de faire une étude sur le
différent serveur de base de données pour la gestion des
données du système. Derrière toute application
informatique appelée à manipuler des informations, il faut un
système dédié à la gestion des différentes
bases de données, pour guider objectivement notre choix, nous orientons
cette étude sur quelques SGBD qui sont:
Tableau 2: Tableau
décrivant les principaux SGBD
SGBD
|
Description
|
MySQL
|
MySQL est un serveur de base de données SQL
multiutilisateurs et multi-threads fonctionnant sur plusieurs plateformes. Il
est simple à mettre en oeuvre et offre des performances du point de vue
des temps de réponse. Ses principaux atouts sont:
- La rapidité et la robustesse ;
- La facilité d'utilisation et la gratuité.
|
PostgreSQL
|
PostgreSQL est un système qui est fonctionnellement
très évolué.Il inclut des types graphiques, des vues et
dispose de véritables services transactionnels.
|
Oracle
|
Oracle est l'un des SGBD les plus puissants du monde
informatique. Un de ses atouts est sa capacité à gérer de
gros volumes de données. Il a également l'avantage d'être
multi-plateformes, multi-utilisateurs, etc.Néanmoins, Oracle coûte
assez cher.
|
Pour la gestion de la base de données du système
de transfert d'argent, nous retenons « MySQL» car il est assez
robuste et offre des performances techniques intéressantes. Il est
efficace dans la gestion des bases de données et offre un bon niveau de
sécurisation des données.
I-3-3-4 Description des technologies de
développement
Nous allons orienter cette analyse en prenant deux approches
qui sont: la technologie web (dont la mise en oeuvre est plus rapide et moins
coûteuse) et la technologie classique avec un langage de quatrième
ou de troisième génération (plus complexe, plus lente en
réalisation et plus onéreuse en terme de développement et
de matériel d'exploitation).
ü La Technologie avec un langage de
troisième ou quatrième génération
A ce niveau, l'application du système de transfert
d'argent sera développée en utilisant des langages de
quatrième ou troisième génération (C/C++, Delphi,
ASP, etc.) pour la programmation. Deux applications devront être
réalisées : une application cliente et une application
serveur.
Les applications développées avec ces types de
langages tiennent compte des différences de plateformes des postes de
travail qui devront les héberger.
L'un des problèmes que l'on rencontre dans le
développement d'applications réseaux avec ces langages est celui
lié à la distribution de l'application cliente. Cela
nécessite le développement d'une application cliente par
plate-forme. C'est à dire que si les postes de travail qui devront les
héberger ont des plateformes différentes (Microsoft, MAC, Linux,
etc.), l'application cliente devra exister en plusieurs versions (Microsoft,
MAC, Linux, etc.)
ü La Technologie web
Les technologies web apportent des solutions aux
problèmes posés par les langages de troisième ou de
quatrième génération. Par exemple, l'utilisation d'un
navigateur web comme client, fonctionnant sur toutes les plates-formes
(Windows, Linux, Mac) et capable de télécharger dynamiquement des
documents HTML simplifie fortement le développement et fait
disparaître le problème de la distribution des applications
clientes. Ces clients peuvent interroger un serveur web à distance.
Nous rappelons qu'avec une bonne politique sécuritaire
à plusieurs niveaux pour le système de transfert d'argent, la
technologie web est une solution rentable et efficace. Le langage le plus
utilisé et populaire est le PHP c'est avant tout un langage de script
qui est exécuté du côté serveur. Il reste une
solution qui conviendra pour interfacer les pages web avec une base de
données. PHP offre d'énormes avantages qui sont:
ü La gratuité et la disponibilité du code
source ;
ü La simplicité d'écriture de scripts.
ü La possibilité d'inclure des scripts au sein des
pages html.
A l'issue de cette étude, nous retenons une technologie
web en utilisant le langage de programmation PHP au vu des avantages qu'elle
offre, pour le développement de l'application de gestion de transfert
d'argent.
I-3-4 Solution retenue
La solution globale pour le système de transfert est
celle d'une conception orientée objet avec UML et d'une technologie de
programmation orientée objet utilisant le langage PHP basée sur
le principe de l'internet. Pour cette étude nous allons présenter
dans la deuxième partie de notre travail les divers domaines à
savoir entre autres:
- La conception du modèle global du
système ;
- Les aspects techniques du système ;
- La gestion des problèmes de
sécurité.
I-3-5 Coût de
déploiement
Il s'agit de faire une évaluation du coût de
développement de l'application de gestion du système de transfert
d'argent. Nous allons adopter une méthode d'évaluation. Le
modèle est destiné à donner des estimations approximatives
de coûts. Il s'appuie uniquement sur la taille estimée du logiciel
et sur le type de logiciel à développer (taille de
l'équipe de développement, expériences dans le domaine,
etc.). L'application à développer pour le système de
transfert est de la première classe.
Tableau 3: Tableau
décrivant le coût du déploiement
Matériel ou outil
|
Coût (FCFA)
|
Serveur (linux, 1TB Disque dur, 8GB RAM)
|
2.500.000
|
Coût du logiciel
|
40.000
|
Coût de développement
|
3.000.000
|
Toutes les valeurs notées ci-dessus sont à titre
indicatif donc susceptible d'être réétudiées au
cours de phases ultérieures.
ETUDE THEORIQUE
II-1 PRESENTATION DU PROJET :
TRANSFERT D'ARGENT
Le projet soumis à notre étude porte sur la
« Mise en place d'un système informatisé de
transfert d'argent ». Il vise à fournir des services
de transfert d'argent de façon automatisée à des tarifs
étudiés.
II-1-1 Problématique
Dans le contexte actuel de globalisation de l'économie
et de mondialisation des échanges, l'innovation de services de
qualité est devenue un instrument du développement
économique que l'entreprise doit tenir compte si elle veut affirmer sa
position et conquérir de nouveaux marchés.
Pour ce faire, la compagnie GO SARL a
souhaité, dans le cadre de la politique d'extension de ses services,
disposer d'un produit nouveau qui lui est propre et source de revenus
supplémentaires. Cela s'est traduit par le souci de l'entreprise de
proposer des services de transfert d'argent en temps réel sur son
réseau national. Ce système de transfert sera exploité
dans toutes les agences de l'entreprise implantées dans les provinces du
pays.
Pour mener à bien la réalisation de ce projet,
l'entreprise a souhaité que nous fassions une étude
détaillée de la mise en place du système de transfert
d'argent. C'est dans ce cadre, que le présent projet constitue le sujet
de notre mémoire de fin d'étude du cycle des ingénieurs en
Réseaux et Systèmes Informatiques.
Quelles sont les enjeux de mise en place de cette solution
informatique ?
Telle est la question à laquelle nous devons chercher
à répondre à travers nos investigations en vue de trouver
une solution aux problèmes posés dans la problématique de
notre sujet.
II-1-2
Objectifs et besoins généraux
II-1-2-1 Objectifs
Le projet s'inscrit dans l'initiative de proposer des services
variés et adaptés au contexte économique national. Il
s'agit entre autre de :
ü Proposer à la clientèle un service
amélioré de transfert d'argent partout sur l'étendue du
territoire national où une agence est ouverte ;
ü Satisfaire les besoins de transfert à
l'échelle national;
ü Rendre plus pratique l'envoi et la réception
d'un transfert d'argent;
ü Disposer d'un nouvel outil de transfert
personnalisé ;
ü Se doter d'un nouvel outil conçu
conformément aux besoins actuels et ouvert aux perspectives
d'évolution futures des activités de l'entreprise.
II-1-2-2 Quelques règles générales
à observer dans une procédure de transfert
ü Un transfert d'argent peut être traité
dans toutes les agences couvertes du réseau national ;
ü Un transfert est émis dès que le
numéro de contrôle du transfert est envoyé par le
système à l'opérateur;
ü Un transfert est payable par une agence
Y dès que l'opérateur de l'agence
X a validé le transfert ;
ü Avant tout envoi de transfert, l'on se rassure que
l'expéditeur a bel et bien versé les fonds ;
ü Les informations fournies par le
bénéficiaire pour un retrait du montant transféré
doivent être conformes aux données du système et doivent
rester confidentielles ;
ü Insister toujours auprès de l'expéditeur
afin de s'assurer qu'il transmet les bonnes informations au
bénéficiaire du transfert.
II-1-3
Quelques fonctionnalités du système de transfert d'argent
ü Envoi et réception en temps réel des
informations de transfert d'argent;
ü Génération des rapports
d'activités ;
ü Gestion du chargement des environnements de travail
(Opérateurs, Administrateurs) ;
ü Gestion des commissions sur les transferts;
ü Présentation dynamique des données du
système ;
ü Notification par SMS ;
ü Consultations diverses (consultations des villes, des
utilisateurs, des transactions, statistiques, etc.) par les utilisateurs de
l'application ;
ü Le paramétrage du système doit se faire
facilement par son administrateur afin de permettre un usage facile par les
opérateurs de transferts.
II-2 LA MODELISATION OBJECT AVEC UML
UML, c'est l'acronyme anglais pour « Unified Modeling
Language ». On le traduit par « Langage de modélisation
unifié ». La notation UML est un langage visuel constitué
d'un ensemble de schémas, appelés des diagrammes, qui donnent
chacun une vision différente du projet à traiter. UML nous
fournit donc des diagrammes pour représenter le logiciel à
développer : son fonctionnement, sa mise en route, les actions
susceptibles d'être effectuées par le logiciel, etc. Le langage
UML ne préconise aucune démarche, ce n'est donc pas une
méthode. Chacun est libre d'utiliser les types de diagramme qu'il
souhaite, dans l'ordre qu'il veut. Il suffit que les diagrammes
réalisés soient cohérents entre eux, avant de passer
à la réalisation du logiciel. Pour l'élaboration des
modèles conceptuels d'un système information, UML permet à
l'aide de diagrammes de définir et de visualiser ces modèles. Un
diagramme est une représentation graphique qui s'intéresse
à un aspect précis du modèle, c'est une perspective du
modèle à élaborer. UML propose neuf (9) diagrammes qui
sont :Diagrammes de cas d'utilisation, diagrammes d'objets, diagrammes de
classes, diagrammes de composants, diagrammes de déploiement, diagrammes
de collaboration, diagrammes de séquence, diagrammes
d'états-transitions et diagrammes d'activités dont les plus
utilisés sont :
ü Diagramme de cas d'utilisation : le diagramme de
cas d'utilisation a pour but de donner une vision globale sur les interfaces de
future application. C'est le premier diagramme UML constitué d'un
ensemble d'acteurs qui agit sur des cas d'utilisation et qui décrit sous
la forme d'actions et des réactions, le comportement d'un système
du point de vue utilisateur.
Acteur : un acteur est un utilisateur qui
communique et interagit avec les cas d'utilisation du système. C'est une
entité ayant un comportement comme une personne, système ou une
entreprise.
Système : cet élément
fixe les limites du système en relation avec les acteurs qui l'utilisent
(en dehors de système) et les fonctions qu'il doit fournir (à
l'intérieur du système).
Cas d'utilisation : un
cas d'utilisation représente un ensemble de séquences d'actions
à réaliser par le système et produisant un résultat
observable intéressant pour un acteur particulier
représenté par des ellipses et limité par un rectangle
pour représenter le système.
Cas d'utilisation 1
Formalisme :
Cas d'utilisation 2
Limite du système
Acteur
Figure 2 : Formalisme du diagramme
de cas d'utilisation
ü Diagramme de classes : Le diagramme de classes
permet de modéliser de façon statique une collection
d'éléments qui montre la structure du modèle. C'est son
instanciation qui permet d'obtenir le diagramme d'objet. Une classe est une
description abstraite d'un ensemble d'objets ayant des propriétés
similaires, un comportement commun, des relations communes avec d'autres objets
et des sémantiques communes. Tout système orienté objet
est organisé autour des classes. Un objet est une instance d'une classe.
C'est une entité discrète dotée d'une identité,
d'un état et d'un comportement que l'on peut invoquer. Les objets sont
des éléments individuels d'un système en cours
d'exécution.
Formalisme d'une classe
Nom de la classe
les attributs
La visibilité Les méthodes
Figure 3: Illustration d'une
classe
ü Diagramme de séquence : Le diagramme de
séquence montre l'ensemble des messages échangés avec le
système durant l'interaction de l'acteur avec celui-ci.
II-3 LE SYSTEME DE GESTION DE BASE DE DONNEES MYSQL
ü Système de Gestion de Base de
Données
Un système de gestion de base de données (SGBD)
est un ensemble de programmes qui permet la gestion et l'accès à
une base de données. Il héberge généralement
plusieurs bases de données, qui sont destinées à des
logiciels ou des thématiques différentes. On distingue
couramment les SGBD classiques, dits SGBD relationnels (SGBD-R), des
SGBD orientés objet (SGBD-O).
ü MySQL
MySQL est l'un de système de gestion de base de
données relationnelle (SGBDR) le plus populaire utilisé dans le
monde, avec un total de plus de 100 millions de copies
téléchargées ou distribuées.
MySQL est utilisé sur la majorité des
systèmes d'exploitation, comme Linux, Microsoft Windows, etc. et
fonctionne selon l'architecture client-serveur c'est-à-dire que la base
de données se trouve sur un serveur, et pour interagir avec cette base
de données, il faut utiliser un logiciel « le
client » qui va interroger le serveur et transmettre la
réponse que le serveur lui aura donnée. Le serveur peut
être installé sur une machine différente du client; c'est
souvent le cas lorsque les bases de données sont importantes. MySQL
utilise le langage SQL (Structured Query Language) qui est le langage de
requête utilisé.
Le langage SQL peut être considéré comme
le langage d'accès standard et normalisé, destiné à
interroger ou à manipuler une base de données. Les instructions
SQL sont regroupées en catégories en fonction de leur
utilité et des entités manipulées. Nous pouvons distinguer
quatre catégories, qui sont : Le langage de définition de
données (LDD), le langage de manipulation de données (LMD), le
langage de contrôle de données (LCD) et le langage de
contrôle des transactions (LCT).
Grâce à une rapidité, une fiabilité
et une simplicité d'utilisation exceptionnelle, MySQL est devenu la
solution privilégiée par les sociétés Web,
éditeurs de logiciels et sociétés de
télécommunications.
La requête de création d'une base de
données sous MySQL est la suivante :
CREATE DATABASE
`nom_base_de_donnees` ;
ü Qu'est ce qu'une base de
données ?
Une base de données est un ensemble structuré et
organisé permettant le stockage des informations afin d'en faciliter
l'exploitation (ajout, mise à jour, recherche de données,
restitution, suppression, etc.)
II-4 LE LANGAGE PHP
PHP est un acronyme récursif, qui
signifie « Hypertext Preprocessor » : c'est un langage
de script généraliste et Open Source, spécialement
conçu pour le développement des applications web. Il peut
être intégré facilement au HTML, exécuté
côté serveur. Sa syntaxe est empruntée aux langages C, Java
et Perl, et est facile à apprendre. Le but de ce langage est de
permettre aux développeurs web d'écrire des pages dynamiques
rapidement, mais on peut faire beaucoup plus avec PHP. Il a été
mis au point en 1994 par Rasmus Lerdorf. Ce langage de script lui permettait de
conserver la trace des utilisateurs venant consulter son CV sur son site
grâce à l'accès à une base de données par
l'intermédiaire de requêtes SQL d'où son ancien nom
(Personal Home Page).
Le code PHP est inclus entre une balise de début
<?php et une balise de fin ?> qui
permettent au serveur web d'interpréter les instructions PHP.
Ce qui distingue PHP des langages de script comme le
Javascript, est que le code est exécuté sur le serveur,
générant ainsi le HTML, qui sera ensuite envoyé au client.
Le client ne reçoit que le résultat du script, sans aucun moyen
d'avoir accès au code qui a produit ce résultat. Le grand
avantage de PHP est qu'il est extrêmement simple pour les
néophytes, mais offre des fonctionnalités avancées pour
les experts. Ne craignez pas de lire la longue liste de fonctionnalités
PHP. Nous pouvons nous plonger dans le code, et en quelques instants,
écrire des scripts simples .Il y a trois (3) domaines différents
où PHP peut s'illustrer.
ü Langage de script coté
serveur : C'est l'utilisation la plus traditionnelle, et aussi le
principal objet de PHP. Nous aurons besoin de trois composants pour l'exploiter
: un analyseur PHP (CGI ou module serveur), un serveur web et un navigateur
web. Nous devons exécuter le serveur web en corrélation avec PHP.
On peut accéder au programme PHP avec l'aide du navigateur web. Tout
ceci peut fonctionner sur notre propre machine si nous sommes juste
expérimentés dans la programmation en PHP.
ü Langage de programmation en ligne de
commande : Nous pouvons écrire des scripts PHP et
l'exécuter en ligne de commande, sans l'aide du serveur web et d'un
navigateur. Il nous suffit de disposer de l'exécutable PHP. Cette
utilisation est idéale pour les scripts qui sont exécutés
régulièrement (avec un cron sous Unix ou Linux), ou un
gestionnaire de tâches (sous Windows).
ü Ecrire des applications clientes
graphiques : PHP n'est probablement pas le meilleur langage pour
écrire des applications graphiques, mais si nous connaissons bien PHP et
que nous souhaitons exploiter des fonctionnalités avancées dans
nos applications clientes, on peut utiliser PHP-GTK pour écrire de tels
programmes. Nous avons aussi la possibilité d'écrire des
applications très portables avec ce langage. PHP-GTK est une extension
de PHP, qui n'est pas fournie dans la distribution de base.
PHP est utilisable sur la majorité des systèmes
d'exploitation, comme Linux, Microsoft Windows, Mac OS X, etc. PHP supporte
aussi la plupart des serveurs web actuels dont Apache, IIS et bien d'autres. En
PHP nous avons le choix d'utiliser la programmation procédurale ou objet
(POO), ou encore un mélange des deux. Comme nous le constatons, cette
page n'est pas assez grande pour lister toutes les puissantes
fonctionnalités de PHP.
En PHP, les variables sont représentées par une
chaîne de caractères, ayant toujours comme premier
caractère, le caractère dollar ($).Les variables peuvent avoir
n'importe quelle lettre en deuxième caractère du moment qu'il ne
s'agit pas d'un chiffre. De plus, on ne peut mettre d'espace dans le nom d'une
variable. L'exemple de déclaration est :
<?php
$nom = `NGUEREZA'; //chaine de caractère
$note = 18; //entier
$admis = true //booléenne;
?>
Notons que PHP n'est pas un langage typé.
II-5 L'ARCHITECTURE CLIENT-SERVEUR
L'environnement client-serveur désigne un mode de
communication à travers un
réseau
entre plusieurs
programmes
ou
logiciels : l'un,
qualifié de
client,
envoie des requêtes ; l'autre ou les autres, qualifiés de
serveurs,
attendent les requêtes des clients et y répondent. Par extension,
le client désigne également l'
ordinateur sur lequel
est exécuté le logiciel client, et le serveur, l'ordinateur sur
lequel est exécuté le logiciel serveur.
Dans cet environnement, des machines clientes contactent un
serveur, une machine généralement très puissante en termes
de capacités d'entrée-sortie, qui leur fournit des services
divers. Ce modèle met en oeuvre une conversation entre deux programmes
(un programme serveur et un programme client).
Dans cette architecture, les machines clientes gèrent
l'interface utilisateur, la machine serveur gère les données, le
réseau gère le transport des messages.
Trois types d'architecture client-serveur existent :
l'architecture un tiers, deux tiers et l'architecture trois tiers.
L'architecture un tiers : dans cette
architecture le réseau est dit
pair à pair
(peer-to-peer en anglais, ou P2P), lorsque chaque ordinateur connecté au
réseau est susceptible de jouer tour à tour le rôle de
client et celui de serveur, elle est souvent appelée
« Mainframe ».
L'architecture deux tiers : Dans ce type
d'architecture nous avons d'un côté le client et de l'autre le
serveur. Ce genre d'architecture peut se faire sur tout type d'architecture
matérielle interconnectée. Concrètement, comment ça
fonctionnement ? Le client demande un service au serveur, le serveur
reçoit cette requête, il effectue un traitement, et renvoie la
ressource demandée par le client sans passer par un autre serveur.
L'architecture 2-tiers dispose d'un grand inconvénient, vu qu'il est le
coeur du réseau, si celui-ci tombe, tout tombe. De plus, comparé
à l'architecture à 3 niveaux, celui-ci est beaucoup moins
flexible.
L'architecture trois tiers : dans un
environnement client-serveur trois tiers, on a: le client « dit client
léger », un serveur d'application (appelé aussi middleware)
et un serveur de données tous distincts.
Cette architecture fonctionne selon trois niveaux:
- Premier niveau: l'affichage et les
traitements locaux (contrôles de saisie, mise en forme de données,
...) sont pris en charge par le poste client.
- Deuxième niveau : les traitements
applicatifs globaux sont pris en charge par le service applicatif du
serveur.
- Troisième niveau: les services de
base de données sont pris en charge par un SGBD (un serveur de base de
données).
Les avantages d'une architecture 3-tiers sont nombreux. Tout
d'abord cette architecture étant plus divisé permet d'avoir du
point de vue du développement, une spécialisation des
développeurs selon le niveau de l'application et enfin, cette
architecture offre une flexibilité beaucoup plus importante que
l'architecture 2-tiers. En effet, la portabilité du tiers serveur permet
d'envisager une allocation et ou modification dynamique aux grés des
besoins évolutifs au sein d'une entreprise.
Utiliser une architecture à 3 niveaux est beaucoup plus
propre. Cela permet de diviser les tâches et par conséquent
d'avoir des services spécialisés sur un des trois niveaux. De
plus, la flexibilité qu'offre ce genre d'infrastructure est à
prendre en considération surtout si nous travaillons sur un projet qui
peut être amenée à évoluer. Notre système sur
le transfert d'argent utilisera cette architecture pour la mise en
place. Notre choix se justifie également, par le fait que cette
variante d'architecture est non seulement plus récente mais de plus,
elle offre une plus grande sécurité des services du
système.
Rappelons que ce choix nous permettra de mettre en place un
système de transfert d'argent disposant d'un serveur de base de
données d'une part, et d'un serveur d'applications d'autre part, cela
garantie une plus grande souplesse dans la disponibilité des composants
logiciels du système de transfert d'argent. Les postes clients sont
pourvus d'un programme client (navigateur) universel et résout ainsi les
problèmes de déploiement et de gestion de versions des
applications clientes sur ces postes.
Les architectures client-serveur à trois niveaux,
autorisent une montée en charge du système au fur et à
mesure de la croissance du nombre d'utilisateurs par une augmentation du nombre
de machines serveurs.
II-6 LES DIFFERENTS COMPOSANTS
NECESSAIRES
II-6-1 Système
d'exploitation du serveur
La mise en oeuvre du système de transfert d'argent
nécessite l'installation ou l'utilisation d'un environnement
d'exploitation sur lequel le serveur de base de données (MySQL) et le
serveur d'application (Apache) seront tous installés et exploités
en temps réel pour la production du système. Notre choix a
porté sur un système d'exploitation dûment
éprouvé dans le domaine informatique. Ce système
d'exploitation fait partie des systèmes ouverts et des logiciels libre
et gratuit : Linux. Les atouts qui nous ont motivées
dans notre choix sont:
ü La robustesse ;
ü Le faible coût d'acquisition et la
disponibilité de grand nombre de supports techniques ;
ü Une bonne mise en oeuvre des techniques de
tolérance aux pannes ;
ü Offre un bon nombre d'outils de sauvegarde de
données et de surveillance réseau (par exemple Heartbeat).
ü Une autre raison de ce choix est que la version Linux
du serveur Apache est beaucoup plus rapide en exécution que celle sous
Windows.
II-6-2 Le serveur web
Apache
Un serveur web est un logiciel permettant de rendre
accessibles à de nombreux ordinateurs (les clients) des pages web
stockées sur le disque.
Au vu de l'analyse effectuée dans l'étude
comparative des différents serveurs web sur le marché, nous avons
opté pour le serveur Apache car c'est un serveur robuste, efficace et de
plus il est multiplateformes, C'est probablement le logiciel Open source le
plus populaire du moment, car il fait fonctionner plus de la moitié des
sites web du monde et il accroît tous les jours sa part du
marché.
Apache est le serveur d'applications pour le système de
transfert. Son principal rôle est d'écouter et de répondre
aux requêtes émises par les navigateurs des postes clients. Il
interagit avec le serveur de données MySQL pour la gestion des
données de la base.
De plus, pour sécuriser les échanges
d'information entre le serveur du système de transfert et les postes
clients, nous optons pour la mise en place d'une technique de chiffrement
grâce au protocole SSL. Ce protocole utilise les outils fournis par le
projet OpenSSL pour ajouter une fonction très importante à
Apache: la possibilité de crypter les communications. Autrement, dans le
cas de l'utilisation d'un protocole HTTP normal, les communications entre
navigateur et le serveur web se font en texte clair et peuvent donc être
interceptées et lues par toute personne se trouvant entre le navigateur
et le serveur.
II-6-3 Kannel
Avant de parler de kannel parlons un peu du réseau GSM.
Le réseau GSM (Global System for Mobile communications) constitue au
début du 21ème siècle le standard de
téléphonie mobile le plus utilisé en Europe. Il est de la
seconde génération (2G). Les communications fonctionnent selon un
mode entièrement numérique. Baptisé « Groupe
Spécial Mobile » à l'origine de sa normalisation en 1982, il
est devenu une norme internationale nommée « Global System for
Mobile communications » en 1991.
Dans un réseau GSM, le terminal de l'utilisateur est
appelé station mobile composée d'une carte
SIM (Subscriber Identity Module), permettant d'identifier
l'usager de façon unique et d'un terminal mobile, c'est-à-dire
l'appareil de l'usager (la plupart du temps un téléphone
portable). Chaque carte SIM possède également un numéro
d'identification unique (et secret) appelé IMSI
(International Mobile Subscriber Identity). Ce code peut être
protégé par un code secret appelé PIN (Personal Identity
Number). La carte SIM permet ainsi d'identifier chaque utilisateur,
indépendamment du terminal utilisé lors de la communication avec
une station de base. La communication entre une station mobile et la station de
base se fait par l'intermédiaire d'un lien radio,
généralement appelé interface air.
Figure 4: Architecture du
réseau GSM
L'ensemble des stations de base d'un réseau cellulaire
est relié à un contrôleur de stations (en anglais Base
Station Controller, noté BSC), chargé de gérer la
répartition des ressources. L'ensemble constitué par le
contrôleur de station et les stations de base connectées
constituent le sous-système radio (en anglais BSS pour Base Station
Subsystem). Enfin, les contrôleurs de stations sont eux-mêmes
reliés physiquement au centre de commutation du service mobile (en
anglais MSC pour Mobile Switching Center), géré par
l'opérateur téléphonique, qui les relie au réseau
téléphonique public et à internet. Le MSC appartient
à un ensemble appelé sous-système réseau (en
anglais NSS pour Network Station Subsystem), chargé de gérer les
identités des utilisateurs, leur localisation et l'établissement
de la communication avec les autres abonnés. Le MSC est
généralement relié à des bases de données
assurant des fonctions complémentaires :
ü Le registre des abonnés locaux (noté HLR
pour Home Location Register): il s'agit d'une base de données contenant
des informations (position géographique, informations administratives,
etc.) sur les abonnés inscrits dans la zone du commutateur (MSC).
ü Le Registre des abonnés visiteurs (noté
VLR pour Visitor Location Register): il s'agit d'une base de données
contenant des informations sur les autres utilisateurs que les abonnés
locaux. Le VLR rappatrie les données sur un nouvel utilisateur à
partir du HLR correspondant à sa zone d'abonnement. Les données
sont conservées pendant tout le temps de sa présence dans la zone
et seront supprimées lorsqu'il la quitte ou après une longue
période d'inactivité (terminal éteint).
ü Le registre des terminaux (noté EIR pour
Equipement Identity Register) : il s'agit d'une base de données
répertoriant les terminaux mobiles.
ü Le Centre d'authentification (noté AUC pour
Authentication Center) : il s'agit d'un élément chargé de
vérifier l'identité des utilisateurs. Le réseau cellulaire
ainsi formé est prévu pour supporter la mobilité
grâce à la gestion du handover, c'est-à-dire le passage
d'une cellule à une autre. Enfin, les réseaux GSM supportent
également la notion d'itinérance (en anglais roaming),
c'est-à-dire le passage du réseau d'un opérateur à
un autre.
Kannel est un projet Open Source écrit en langage C
lancé par la compagnie finlandaise Wapit Ltd en juin 1999. Il fournit
une passerelle mixte SMS et WAP. Au niveau de l'application se fait le
traitement de la requête, puis l'envoi de la réponse via le SMSC
de rattachement à l'abonné demandeur.
II-6-3-1 Principe de fonctionnement de
Kannel :
Le SMS est acheminé par le réseau de
téléphonie mobile vers le serveur. Le serveur autorise à
part la liaison au SMSC via une liaison spécialisée, une liaison
à travers un simple modem GSM. L'acheminement des SMS
requête-réponse diffère selon les deux modes de liaison. En
effet, selon le mode de liaison du serveur au SMSC de l'opérateur, par
un modem GSM, le SMS traverse quatre fois l'interface Air comme l'indique la
figure suivante:
Figure 5 : Liaison du serveur SMS
à travers un modem GSM
Elle est indiquée lorsqu'il s'agit d'un trafic pas
assez grand. Il est prouvé que le serveur connecté selon ce mode,
ne peut traiter qu'au plus 6 à 10 SMS à la minute.
Pour le mode de liaison, à travers une liaison
spécialisée du serveur au SMSC de l'opérateur, le SMS ne
traverse que deux fois l'interface Air.
Figure 6 : Liaison du serveur SMS
à travers une liaison spécialisée
La liaison via un modem est celle que nous avons retenue pour
les tests et présentation de l'application, surtout du fait de sa mise
en oeuvre facile, techniquement et financièrement. Les résultats
obtenus seront valables pour une liaison spécialisée. Le
traitement du SMS se fait au sein du serveur, il convient de procéder
à une étude de sa structure interne
II-6-3-2 Architecture de Kannel
L'architecture de Kannel révèle qu'il est
composé de trois principaux composants, leur intercommunication correcte
confère à Kannel, sa stabilité et son utilité. Il
s'agit de : le bearerbox, SMS box et le WAP box.
ü bearerbox
Le bearerbox est l'interface entre le réseau de
téléphonie mobile et les autres compartiments du serveur. Pour
les autres blocs, Il joue le rôle de routeur. En effet, c'est lui qui
reçoit les SMS provenant d'un réseau mobile et se charge de les
transmettre au bloc approprié. Au fur et à mesure que les autres
blocs se connectent et se déconnectent au bearerbox, ce dernier met
à jour dynamiquement la liste des blocs en ligne. Mis à part la
réception de messages entrants, le bearerbox reçoit aussi tous
les messages sortants et les adapte au format du réseau auquel il
s'interconnecte.
ü Le SMS box
Un SMS box reçoit un SMS à partir du bearerbox,
l'analyse afin d'en extraire les mots-clés et les paramètres s'il
y'a lieu. En fonction du mot clé, le serveur renvoie la réponse
au client ; réponse qui peut être un texte statique, le
résultat de l'exécution d'une action associée. Dans le cas
où le service SMS configuré dans le fichier renvoie à un
URL, le SMS box peut récupérer les données contenues et
les envoyer au bearerbox qui à son tour les renvoie au client via le
SMSC de l'opérateur mobile. Le SMS box peut également
réceptionner les SMS, provenant d'ordinateurs d'un réseau
informatique tel que l'intranet ou l'Internet. En effet, les messages
reçus au format HTTP sont convertis en messages de type SMS pour
être accessibles aux terminaux GSM.
ü Le WAP box
Nous ne développerons pas assez cette partie .Nous
retiendrons de ce bloc, qu'il met en place le protocole WAP (Wireless
Application Protocol) ; Protocole qui récupère les requêtes
issues des mobiles supportant le WAP, puis les traduit en requêtes
compréhensibles par les serveurs HTTP et vice versa.
II-6-4 Framework
Codeigniter
Tout d'abord, un framework « cadre de
travail » en français, en termes plus simples, sont des codes,
des bouts de programmes, des outils qui ne demandent qu'à être
utilisés et exploités dans nos projets. Un framework est
conçu dans l'unique but d'aider les développeurs d'une part en
améliorant la vitesse de développement, d'autre part en
facilitant la maintenance du projet.
Il y a beaucoup d'avantages à utiliser un framework
:
ü Organisation : nous verrons par
la suite qu'un framework utilise un modèle d'architecture commun qui
nous aidera grandement dans le développement de nos logiciels ;
ü Réutilisation de nos codes :
déjà par le simple fait d'être pour la plupart en POO
(Programmation Orientée Objet), puis grâce à l'architecture
dont nous allons parler plus tard ;
ü Rapidité de
développement : plus que jamais, nous constaterons une
évolution dans la vitesse de développement et la qualité
du rendu ;
ü Communauté : les frameworks ont
très souvent une grosse communauté qui peut nous fournir de
l'aide en cas de problème.
CodeIgniter est un framework PHP libre
créé par la société EllisLab, dont la
première version a été officialisée en 2006. Il
existe des dizaines de frameworks PHP mais les raisons pour lesquelles nous
utilisons Codeigniter sont les suivantes :
ü Il est assez simple à apprendre, ce qui le rend
parfait pour l'apprentissage de son premier framework;
ü Malgré toutes les fonctionnalités qu'il
offre, il reste extrêmement léger et rapide;
Codeigniter utilise l'architecture MVC. MVC est l'acronyme de
Modèle-Vue-Contrôleur. Dans un but d'organisation, ce
modèle sépare les fichiers qui composent les pages en trois
catégories :
- Le modèle : Le modèle va
s'occuper de toutes les relations avec la base de données. Lorsque le
contrôleur appelle un modèle, ce dernier lui transmet en retour de
la requête effectuée en données brutes aucune mise en forme
n'est appliquée dans le modèle. Il peut effectuer des lectures,
insertions et mises-à-jour dans les champs.
- La vue: C'est tout ce que l'utilisateur
verra. Il interagit uniquement avec la vue. La vue a deux tâches :
afficher les informations récupérées du contrôleur
et recevoir les événements créés par l'utilisateur
(remplissage d'un champ, clic de souris,...) et de les transmettre au
contrôleur. La vue n'effectue aucune action, aucun traitement. Elle se
contente d'afficher les informations.
- Le contrôleur :
Le contrôleur se charge aussi d'appeler tous les
composants : vue, modèle, etc. Il va utiliser toutes les
données pour les envoyer à la vue. Il va récupérer
les informations que la vue lui fournit, puis les traiter. Si un
utilisateur modifie un texte, la vue va informer le contrôleur qui
demandera la modification au modèle correspondant. Le contrôleur
est donc la partie la plus importante pour le développeur.
II-6-5 Framework Bootstrap
Bootstrap est un framework CSS, HTML, Javascript qui a
été conçu par deux développeurs de
Twitter, Mark Otto et Jacob
Thornton et avait le nom de Twitter Blueprint en 2010. C'est une collection
d'outils qui facilite la création des applications web. Ce framework est
composé entre autre de code
HTML,
Javascript et
CSS et permet donc
de créer des interfaces graphiques (formulaires, boutons, etc.)
désignées très facilement ainsi que
l'implémentation d'éléments dynamiques comme un carrousel
ou une fenêtre modal.
II-7 LES MESURES DE SECURITE ET
DES INFORMATIONS
II-7-1 Les mesures de
sécurité
Les différentes attaques sur le système se
situent à tous les niveaux de l'environnement de production du
système. Nous pouvons énumérer quelques risques possibles
et les mesures associées, ce sont:
ü Vol du mot de passe d'un utilisateur:
changement périodique de mot de passe ;
ü Double paiement d'un transfert: dans
l'option «Réception» du système de transferts, il sera
fait de telle sorte que les opérations de paiement ne concernent que
celles marquées « 0 » dans la base de données. Mais,
cela ne suffit pas à éviter qu'un transfert soit payé deux
fois. Le problème se situe surtout au niveau des délais de mise
à jour de la base de données et surtout de la
disponibilité à temps réel du système. Cette
disponibilité est fortement liée aux médias de
communication entre les agences et le serveur (une procédure manuelle
sera appliquée pour ce type de situation).
II-7-2 La
sécurité des informations
Pour définir un système d'information
sécurisé, nous pouvons nous référer aux six (6)
points que l'International Organization for Standardization (ISO) a fait
ressortir dans ses études sur la sécurité des
systèmes informatiques. Ces points sont :
ü Le contrôle d'accès : une
ressource n'est accessible que par les personnes autorisées.
ü La confidentialité :
l'information échangée entre deux correspondants ne peut pas
être consultée par un tiers.
ü L'authentification : avant d'utiliser
le système de transfert chaque utilisateur devrait s'authentifier pour
utiliser les ressources correspondant aux personnes reconnues dans le
système.
ü La disponibilité: se
reflète dans l'information et dans les services offerts par le
système de transfert. Les données ainsi que les ressources du
système sont accessibles en permanence par ceux qui en ont besoin. Le
système de transfert se doit être un système disponible en
tout temps (les heures de travail en vigueur).
ü L'intégrité:
l'information n'est modifiée que par les personnes qui ont ce droit.
ü La non-répudiation : permet au
récepteur ou à l'émetteur de ne pas refuser les
données électroniques transmises. Donc, quand une donnée
est envoyée, le récepteur peut prouver qu'elle a bien
été envoyée par l'émetteur. De même,
lorsqu'une donnée est reçue, l'émetteur peut prouver que
le message a bien été reçu par le bon récepteur.
En plus on peut définir les mesures de
sécurité suivantes :
L'accès aux postes informatiques des opérateurs
du système : des statistiques ont montré que 70 à 80
% des actes de malveillance envers un système informatique seraient
issus de personnes internes à l'entreprise. Il faut donc gérer
les accès aux ressources en interne avec soin:
ü Accès aux postes de travail : dans une
agence, les postes qui seront configurés pour accéder au
système ne doivent être accessibles uniquement que par leur
utilisateur dédié. Les opérateurs devront éviter de
mentionner sur papier leur login d'utilisateur et leur mot de passe de
connexion ainsi que l'utilisation de mots de passe du genre: nom,
prénoms, date de naissance, etc.) qui peuvent être facilement
deviné par une personne malveillante désirant accéder au
système.
ü Nous prévoyons également deux
environnements de travail indépendants pour chaque catégorie
d'utilisateurs du système de transfert: un environnement de production
pour les opérateurs et un environnement d'administration pour
l'administrateur du système. L'avantage de ce découpage est que
cela renforce considérablement la sécurité du
système. En effet, un opérateur qui se connecte au serveur ne
voit que les fonctionnalités dont il a droit et vise versa.
ü Autres mesures de sécurisation du système
de transfert : Une mesure offerte par MySQL et le langage PHP est le
chiffrement de l'information traitée (mots de passe, contenu de
formulaire, etc.). Cela renforce la sécurité même des mots
de passe pour l'accès aux données. De plus, nous souhaiterons
l'utilisation du protocole SSL pour le serveur d'application. Son l'utilisation
offre un bon niveau de sécurité pour la transmission de
données dans un environnement client-serveur. Le protocole SSL a trois
fonctions essentielles : authentifier le serveur auquel l'utilisateur est
connecté, assurer la confidentialité et l'intégrité
des informations transmises par son intermédiaire, grâce à
l'utilisation des algorithmes de chiffrement.
NB : Les versions des programmes clients devront supporter le
chiffrement du protocole SSL (Secure Socket Layer).
ü Antivirus : Le virus est un programme capable de
provoquer la destruction des données et réduire la
fiabilité des résultats produits par le système. De ce
fait, au niveau des possibilités d'infections virales sur le serveur,
nous notons que le système Linux est jusqu'à nos jours robustes
et subit rarement ces infections virales. Mais, en ce qui concerne les postes
de travail dans les agences, ils peuvent être infectés par des
virus, et cela peut avoir plusieurs dégâts : blocage du poste de
l'opérateur, etc. De ce fait, nous prévoyons la mise à
jour des antivirus déjà installés sur les postes, nous
estimons qu'il ne serait pas nécessaire de faire une nouvelle
acquisition car le nombre de licences à payer (égal au nombre de
postes à couvrir) nous reviendrait très cher. Les antivirus
existants seront donc utilisés avec des mises à jour
régulières. Pour la mise en oeuvre du système de
transfert, nous préconisons l'adoption d'un chiffrement fort
(chiffrement utilisant des clés ayant une longueur égale à
128 bits), cela permettra de renforcer la qualité des algorithmes de
cryptage qui sont négociés lors de l'ouverture d'une session SSL
entre l'application cliente et le serveur d'application. Un accent particulier,
serait mis pour interdire l'accès des guichets désignés et
qui héberge le poste de traitements. En effet, s'il peut être
compromis, toute la sécurité mise en place peut voler en
éclat.
IMPLEMENTATION
III-1 LA MODELISATION DU SYSTEME
DE TRANSFERT
Modèle conceptuel global du système de
transfert
Un modèle est une abstraction de la
réalité, il permet de :
ü Faciliter la compréhension du système
étudié (c'est-à-dire qu'il réduit la
complexité du système étudié) ;
ü Simuler le système étudié.
Pour l'élaboration des modèles conceptuels d'un
système information, UML permet à l'aide de diagrammes de
définir et de visualiser ces modèles.
Pour notre étude, nous sélectionnerons les
diagrammes les plus importants et permettant de mieux exprimer les
fonctionnalités du système à modéliser. Ce
sont : diagramme des cas d'utilisation, diagramme de Séquence,
diagramme de classes, diagramme de composants et diagramme de
déploiement.
III-1-1 Diagramme des cas
d'utilisation du système de transfert
Pour élaborer le diagramme des cas d'utilisation, il
est nécessaire de cerner la problématique des besoins des
utilisateurs vis-à-vis du système de transfert. L'étape
d'identification des besoins est la première activité dans le
cycle de développement de systèmes logiciels. Durant cette
activité, nous cherchons à obtenir une compréhension
(établie en termes de modèles) du futur système logiciel
aussi complète et cohérente que possible, avant le passage aux
activités de conception et d'implémentation.
Vue d'ensemble de quelques besoins principaux des acteurs par
rapport au système:
ü Envoi et réception en temps réel des
informations de transfert ;
ü Gestion des accès au système de
transfert ;
ü Génération des rapports
d'activités ;
ü Consultations diverses (listes des villes, commissions,
etc.) ;
ü Mise à jour en temps réel des
données de transfert par le serveur de base de données ;
ü Effectuer des dépenses.
Détermination des cas d'utilisation
Avant toute modélisation, il faut d'abord faire une
capture des cas d'utilisation du système. Caractéristiques des
cas d'utilisation :
ü Ils limitent la modélisation aux
préoccupations « réelles » des
utilisateurs ;
ü Ils ne présentent pas de solution
d'implémentation et ne forment pas un inventaire fonctionnel du
système ;
ü Ils structurent les besoins des utilisateurs
(cités ci-dessus) et les objectifs du système futur ;
ü Ils permettent les fonctionnalités principales
du système ;
ü Ils centrent surtout l'expression des exigences du
système sur ses utilisateurs (acteurs) ainsi que leurs interactions avec
le système.
Tableau 4: Identification des
acteurs des cas d'utilisation
Les acteurs du système
|
Les cas d'utilisation traités
|
Opérateur
|
- Identification ;
- Envoyer un transfert ;
- Recevoir un transfert ;
- Consultations diverses (liste des villes, des commissions de
transfert) ;
- Edition des rapports d'activités ;
- Effectuer des dépenses.
|
Administrateur
|
- Identification ;
- Configurer le système ;
- Consultations diverses (liste des villes, des commissions de
transfert) ;
- Visualiser les statistiques.
|
Figure 7: Diagramme de cas
d'utilisation du système de transfert
III-1-2 Diagramme de
séquence du système de transfert
Les principales informations contenues dans un diagramme de
séquence sont des messages échangés entre les lignes de
vie, présenté dans un ordre chronologique. Ce diagramme permet de
montrer l'interaction directe entre l'acteur et le système. Pour notre
modélisation, nous présenterons les principaux diagrammes de
séquence par cas d'utilisation comme suit :
- Cas d'identification
Figure 8: Diagramme de
séquence pour le cas d'identification
- Cas de transfert d'argent
Figure 9: Diagramme de
séquence pour le cas de transfert d'argent
- Cas de réception d'argent
Figure 10: Diagramme de
séquence pour le cas de réception d'argent
Notez que chaque action (envoie ou réception) d'argent
précède celle d'identification.
III-1-3 Diagramme de classes du
système de transfert
Un diagramme de classes est une collection
d'éléments de modélisation statiques (classes,
paquetages...) qui montre la structure d'un modèle.
Figure 11: Diagramme de classe du
système de transfert
Description de chaque classe
Afin de mieux faire une abstraction du diagramme des classes,
certaines classes resteront non documentées dans le modèle
(c'est à dire sans précision de tous attributs et de toutes les
méthodes de la dite classe). De ce fait, la fiche de description
ci-dessous, nous permettra de mieux les détaillées. Notez que
seules les méthodes importantes sont décrites.
- Classe Ville
Attribut
|
Type
|
Commentaire
|
ville_id
|
Entier
|
Identifiant de la ville
|
ville_lib
|
Chaine
|
Nom de la ville
|
- Classe Tarif
Attribut
|
Type
|
Commentaire
|
tarif_id
|
Entier
|
Identifiant du tarif
|
tarif_min
|
Entier
|
Montant minimum
|
tarif_max
|
Entier
|
Montant maximum
|
tarif_commission
|
Entier
|
Frais de commission
|
- Classe Users
Attribut
|
Type
|
Commentaire
|
users_id
|
Entier
|
Identifiant de l'utilisateur
|
users_username
|
Chaine
|
Nom d'utilisateur
|
users_email
|
Chaine
|
Adresse E-mail
|
users_password
|
Chaine
|
Mot de passe
|
users_nom
|
Chaine
|
Nom de famille
|
users_prenom
|
Chaine
|
Prénom de l'utilisateur
|
users_permission
|
Entier
|
Niveau de permission
|
- Classe Depense
Attribut
|
Type
|
commentaire
|
depense_id
|
Entier
|
Identifiant de la dépense
|
depense_montant
|
Entier
|
montant de la dépense
|
depense_motif
|
Chaine
|
Motif Identifiant de la dépense (achat, décharge,
etc.)
|
- Classe Transfert
Attribut
|
Type
|
Commentaire
|
transfert_id
|
Entier
|
Identifiant du transfert
|
transfert_lib
|
Chaine
|
Libellé du transfert
|
transfert_montant
|
Entier
|
Montant du transfert
|
transfert_commission
|
Entier
|
Frais de commission
|
transfert_secret
|
Entier
|
Code secret généré
|
transfert_retrait_date
|
DATETIME
|
Date du retrait par le bénéficiaire
|
ville_from_id
|
Entier
|
Identifiant de la ville émettrice
|
users_from_id
|
Entier
|
Identifiant de l'utilisateur qui fait le transfert
|
Validate
|
Entier
|
Etat du retrait
|
beneficiaire_type_piece
|
Chaine
|
Type de pièce d'identité
|
beneficiaire_piece_num
|
Chaine
|
N° de la pièce d'identité
|
create_at
|
DATETIME
|
Date de la transaction
|
Opération
|
commentaire
|
Transfert()
|
Pour transférer de l'argent
|
Index()
|
Pour voir la liste des transferts effectués
|
Reception()
|
Pour faire le retrait d'argent
|
III-1-4 Diagramme de composants
du système de transfert
Un diagramme de composants montre les composants, les
interfaces fournies et requises, les ports, et les relations entre eux. Les
développeurs trouvent que le diagramme de composants est utile car il
leur offre une vue architecturelle de niveau supérieur du
système, alors que les administrateurs du système trouvent qu'il
est utile parce qu'ils obtiennent une vue rapide des composants logiciels
logiques.
Figure 12: Diagramme de composant
du système de transfert
III-1-5 Diagramme de
déploiement du système de transfert
Les diagrammes de déploiement montrent la disposition
physique des matériels qui composent le système et la
répartition des composants sur ces matériels et les
ressources matérielles sont représentées sous forme de
noeuds. Les noeuds sont connectés entre eux, à l'aide d'un
support de communication. La nature des lignes de communication et leurs
caractéristiques peuvent être précisées. Les
diagrammes de déploiement peuvent montrer des instances de noeuds (un
matériel précis), ou des classes de noeuds.
Figure 13: Diagramme de
déploiement du système de transfert
III-2 MISE EN PLACE DE LA BASE DE DONNEES
La base de données a été
réalisée et nommée
«db_transfert», elle est constituée de huit
(8) tables toutes intervenants dans l'exploitation et l'administration du
système. Ce sont :
Tableau 5: Description des tables
de la base de données
Table
|
Description
|
beneficiaire
|
Contient les informations des bénéficiaires
|
Expediteur
|
Contient les informations des expéditeurs
|
Tarif
|
Les différentes plages de montant associées
à des frais de transfert
|
Users
|
Les utilisateurs du système
|
Ville
|
Contient la liste des villes ou agences
|
transfert
|
Contient les informations de chaque transfert d'argent
effectué. C'est la table maitresse
|
Compte
|
Contient les informations de compte de chaque agence (virement,
etc.)
|
depense
|
Contient les dépenses de chaque agence (achat, etc.)
|
La création de la base de données et des tables
se fait soit via l'interface web phpmyadmin ou en mode console.
Voici les requêtes SQL qui permettent de créer la
base de données « db_transfert » et la table
« ville » :
Figure 14: Création de la
base de données
III-3 CONFIGURATION MATERIELLE ET LOGICIELLE DU SYSTEME
Cette phase consiste à la mise en place d'un prototype
représentatif des fonctionnalités du système de transfert
d'argent. Les ressources existantes (matérielles) ont été
exploitées pour cette phase.
NB: En vue de mettre en place un environnement
matériel pour la simulation du système, une machine est
utilisée pour le serveur du système de transfert.
III-3-1 Caractéristique
du serveur
Le matériel utilisé pour la réalisation
du prototype est composé d'un (1) ordinateur de marque
« ASUS » qui présente les caractéristiques
minimales suivantes :
Tableau 6: Description du
matériel utilisé
Matériel
|
Description
|
Disque dur
|
500GB
|
Mémoire RAM
|
4GB
|
Processeur
|
Intel pentium(R) 2GHz
|
Système d'exploitation
|
Windows 7 32 bits édition intégrale et Ubuntu
10.04 LTS
|
Ce matériel nous a permis de mettre en place un
environnement de simulation pour le fonctionnement du prototype.
III-3-2 Environnement
logiciel
Pour la réalisation du prototype, un environnement a
été mis en place. Nous avons dû installer nos outils sur
l'environnement Ubuntu qui est le système d'exploitation installé
pour nos tests en local. Pour la réalisation du prototype, un
environnement de développement et d'exploitation du système a
été mis en place.
ü Apache 2 : Pour le serveur web.
C'est lui qui va nous permettre d'interpréter nos pages HTML, PHP,
etc.
ü PHP 5 : La plupart des sites que
nous voudrons installer disposeront d'une partie dynamique. C'est pourquoi nous
installons le langage PHP5.
ü MySQL 5 : PHP est très
souvent couplé à MySQL. Nous installons ici MySQL 5 et aussi
phpMyAdmin il s'agit d'un script PHP qui permet de gérer ses bases de
données Mysql de façon très simple.
Pour cela, tapez en une seule ligne de commande
# apt-get install apache2 php5 mysql-server
phpmyadmin
ü Kannel
Les moyens matériels utilisés pour
l'implémentation de kannel sont les suivants :
- Un modem GSM et une carte SIM d'un opérateur
téléphonique qui doit être insérée dans le
modem pour que le SMSC virtuel puisse communiquer avec les autres SMSC.
Huawei-E153 est la marque du modem choisi. C'est ce modem qui
jouera le rôle de SMSC virtuel. Pour configurer le modem, il faut
disposer des paquets suivants :
- Le paquet minicom : est le programme
qui sert à contrôler le modem et sa configuration.
- Le paquet usb-modeswitch : permet
à l'ordinateur de reconnaitre notre clé comme modem.
#apt-get install usb-modeswitch minicom
Après installation des paquets ci-haut, on doit d'abord
créer le fichier 62-option-modem-modeswitch.rule
Installation et configuration kannel
#apt-get install kannel
L'installation est terminée, nous avons la
possibilité de configurer kannel comme une passerelle WAP ou SMS. Mais
dans notre cas nous utilisons juste comme une passerelle SMS
Le fichier de configuration de kannel est structuré en
groupe suivant les fonctions à assigner à kannel. Chaque groupe
comporte des variables et sont séparés par des lignes vides. Pour
configurer kannel comme passerelle SMS, nous devons éditer le fichier
kannel.conf situé dans le
répertoire /etc/kannel par la commande
suivante :
#gedit /etc/kannel/kannel.conf
Dans notre cas, le fichier de configuration
kannel.conf est constitué de groupe core, smsbox, smsc,
modems et sendsms-user. Le contenu de ce fichier se trouve en annexe
Pour démarrer kannel il faut agir comme suit :
#bearebox-v 0 /etc/kannel/kannel.conf
Si dans le contenu du terminal il y a une ligne du genre
« AT SMSC successfully opened », c'est que kannel
fonctionne normalement.
Démarrer ensuite le smsbox :
#smsbox-v 0 /etc/kannel/kannel.conf
Tests de kannel
Le test se fait en envoyant un message via le
navigateur :
http://localhost:14000/cgi-bin/sendsms?user=kannel&pass=kannel&to=72160180&text=text+kannel+reussi
Le navigateur affiche le résultat suivant:
0 :accepted for delivery
Cela signifie tout simplement que kannel a bien reçu
la requête et a délivré le message avec succès.
III-4 ARCHITECTURE GLOBALE DU SYSTEME DE TRANSFERT
Il est très important, voir impératif que les
paramètres systèmes (horaire) du serveur de transfert, soient
bien ajustés afin que les scripts exploitant les horaires du
système en vu d'assurer une gestion convenable des horaires
d'accès au système de transfert.
III-4-1 Démarrage de
l'application
L'appel de l'application de gestion de transfert se fait par
la saisie dans la barre d'adresse du navigateur
http://localhost/transfert.
Le lancement se poursuit par la présentation d'un
écran de demande d'authentification qui exige un login et un mot de
passe d'accès. La validation de cette interface conduit l'utilisateur
dans l'espace de travail que le système lui reconnaît et ouvre une
session pour celui-ci.
Figure 15: Page d'authentification
des utilisateurs
III-4-2 Environnement de
travail des opérateurs
Si nous admettons que l'utilisateur connecté est
reconnu comme étant un opérateur, l'espace suivant sera
affiché.
Figure 16: page d'accueil des
opérateurs
- Formulaire pour transférer de l'argent
Figure 17: Formulaire d'envoi
d'argent
- Formulaire pour payer un transfert
Figure 18: Formulaire pour payer
un transfert
III-4-3 Environnement de
travail de l'administrateur
Page d'accueil du panneau d'administration
Figure 19: Page d'accueil du
panneau d'administration
Statistiques de transferts effectués
Figure 20: Statistique de
transfert d'argent
La liste des utilisateurs du système
Figure 21: Liste des utilisateurs
du système
Plan tarifaire d'une ville
Figure 22: Liste de plan tarifaire
d'une ville
Pour ajouter un nouvel utilisateur du système
Figure 23: Formulaire d'ajout d'un
nouvel utilisateur
NB: Nous rappelons que pour des raisons de
respect du volume du mémoire, toutes les captures du prototype
réalisé ne seront pas présentées.
CONCLUSION
Au terme de ce rapport, je peux conclure que ce stage de fin
d'études m'a donné une occasion opportune de confronter l'acquis
théorique à l'environnement pratique.
En effet, le stage m'a permis de prendre certaines
responsabilités, par la suite de consolider de plus en plus mes
connaissances théoriques et pratiques. C'est là que réside
la valeur d'un tel projet de fin d'études qui combine les exigences de
la vie professionnelle aux côtés bénéfiques de
l'enseignement pratique que nous avons eu à l'IST.
Ce travail de conception et de développement d'une
application de « Gestion automatisé de transfert
d'argent » au long du stage m'a été
bénéfique sur plusieurs plans : du point de vue technique,
ce projet m'a permis de m'adapter avec l'environnement du développement
informatique, de même il m'a permis de maîtriser la méthode
de développement en utilisant des frameworks; le Processus unifié
et des nouvelles technologies de programmation.
Au début de mon stage, nous avons consacré du
temps pour l'étude et recenser les fonctionnalités de notre
application. L'étude analytique menée dans les détails m'a
permis de prévoir puis contourner les problèmes
rencontrés.
Tout au long de l'élaboration du projet, j'ai
rencontré plusieurs difficultés tant au niveau conceptuel qu'au
niveau de la réalisation. Tout de même, j'ai réussi
à les surpasser pour présenter en fin de compte une application
opérationnelle.
La réalisation du projet comporte des enjeux aussi
importants que pertinents qui sont :
ü Le projet en faisant mieux connaître l'entreprise,
ouvre les portes à de nouveaux clients ;
ü En plus de ses services actuels, l'aboutissement de ce
projet constituera pour l'entreprise un service additif susceptible de
générer des revenus supplémentaires et permettra
également de disposer d'un produit nouveau, fruit de son
innovation ;
ü Disposer d'un système de transfert
centralisé ;
ü Augmenter sa productivité et accroître sa
rentabilité de par ses services ;
ü Répondre aux nouveaux besoins du marché et
être toujours plus efficace ;
ü Tirer un meilleur profit de l'exploitation des outils
informatiques ;
ü Gagner du temps grâce à une rapidité
dans le traitement des transferts.
Comme perspective, j'espérais voir mon application
évoluer par une étape d'approfondissement du volet transactionnel
avec des services distribués sur un serveur web et bases de
données afin de rendre mon application plus intéressante, qui
permet l'échange, des diverses données en utilisant des
réseaux et des formats normalisés.
Enfin, mon souhait est que le travail que nous avons
effectué a été à la hauteur de la confiance qui
nous a été donnée.
GLOSSAIRE
Internet : réseau mondial
associant des ressources de télécommunication et des ordinateurs
serveurs et clients, destiné à l'échange de messages
électroniques, d'informations multimédias et de fichiers.
Passerelle : dispositif destiné
à connecter des réseaux de télécommunication ayant
des architectures différentes ou des protocoles différents, ou
offrant des services différents.
Portabilité : aptitude d'un
programme à être utilisé sur des systèmes
informatiques de types différents.
Programmation orientée objet :
mode de programmation dans lequel les données et les procédures
qui les manipulent sont regroupées en entités appelées
objets.
Réseau informatique : ensemble
des moyens matériels et logiciels mis en oeuvre pour assurer les
communications entre ordinateurs, stations de travail et terminaux
informatiques.
Serveur : un serveur informatique est un
dispositif informatique matériel ou logiciel qui offre des services,
à différents clients.
Système d'exploitation : un
système d'exploitation (souvent appelé OS pour Operating System,
le terme anglophone) est un ensemble de programmes qui dirige l'utilisation des
capacités d'un ordinateur par des logiciels applicatifs.
Temps réel : mode de traitement
qui permet l'admission des données à un instant quelconque et
l'obtention immédiate des résultats.
Tolérance aux pannes : aptitude
d'un système informatique à demeurer fonctionnel malgré
certaines pannes de ses constituants.
BIBLIOGRAPHIE
Jean-François Pillou. Introduction au
standard GSM. Comment ça marche. [En ligne] [Citation : 5
octobre 2016.] http://www.commentcamarche.net/contents/1122-le-standard-gsm.
AVERTY, Steve. Architecture 2-tiers VS
architecture 3-tiers. SUPINFO. [En ligne] [Citation : 5 octobre 2016.]
http://www.supinfo.com/articles/single/574-architecture-2-tiers-vs-architecture-3-tiers.
Blondiau, Geoffrey. CodeIgniter 1 - Les
bases. Macdeb.net. [En ligne] [Citation : 06 octobre 2016.]
http://macdeb.net/blog/codeigniter-1-les-bases/.
DJEUTCHEU, Cédric. 2010. Etude et
mise en place d'un système informatisé de transfert d'argent
inter-agences COMECI. 2010.
Installer et configurer le module ssl pour Apache2.
Documentation technique debian. [En ligne] [Citation : 10 octobre
2016.]
https://technique.arscenic.org/lamp-linux-apache-mysql-php/apache-le-serveur-http/modules-complementaires/article/installer-et-configurer-le-module-ssl-pour-apache2.
PHP. PHP documentation. [En ligne]
http://php.net.
Roels, Carina. Débutez l'analyse
logicielle avec UML. Openclassroom. [En ligne] [Citation : 29
septembre 2016.]
https://openclassrooms.com/courses/debutez-l-analyse-logicielle-avec-uml.
ubuntu, Documentation. Documentation
ubuntu. [En ligne] http://doc.ubuntu-fr.org.
Wikipedia. Wikipedia. [En ligne]
[Citation : 26 septembre 2016.] http://fr.wikipedia.org/wiki/Framework.
ANNEXES
Ø Fichier de configuration de kannel :
/etc/kannel/kannel.conf
#Core Kannel Configuration Section
group = core
admin-port = 13000
admin-password = kannel
status-password = kannel
admin-allow-ip = "*.*.*.*"
wapbox-port = 13003
smsbox-port = 13002
log-file = "/var/log/kannel/bearerbox.log"
access-log =
"/var/log/kannel/bearerbox-access.log"
log-level = 0
unified-prefix = "00236,+236,00"
#Wapbox
group = wapbox
bearerbox-host = localhost
log-file = "/var/log/kannel/wapbox.log"
#Smsbox
group = smsbox
bearerbox-host = localhost
sendsms-port = 14000
sendsms-url = "/cgi-bin/sendsms"
sendsms-chars = "0123456789+-"
global-sender = 14000
log-level = 0
log-file = "/var/log/kannel/smsbox.log"
access-log =
"/var/log/kannel/smsbox-access.log"
#Smsc
group = smsc
smsc = at
smsc-id = Huawei-E153
modemtype = huawei_e153
device = /dev/ttyUSB_utps_diag
host = localhost
sms-center = +236272749
my-number = +23672625326
keepalive = 10
speed = 9600
sim-buffering = true
#Modems
group = modems
id = huawei_e153
name = "huawei E153"
detect-string = "Huawei"
init-string ="AT+CNMI=2,1,2,2,0"
message-storage = "SM"
speed = 9600
#Sendsms
group = sendsms-user
username = kannel
password = kannel
forced-smsc = huawei-E153
user-allow-ip = "*.*.*.*"
max-messages = 3
concatenation = true
admin-port : est le port ou kannel
écoute pour les commandes d'administration
admin-password : mot de passe pour
l'administration de kannel, il est privé.
status-password : mot de passe pour la
visualisation de la configuration
log-file : est le chemin vers le fichier qui
contient les informations de fonctionnement (ou disfonctionnement) des
applications respectives smsbox et bearerbox. Leurs emplacements sont
définis dans les CORE et SMSBOX.
access-log : journalise les connexions
à l'interface avec les paramètres envoyés
Ø Création d'un certificat
auto-signé pour le serveur Apache
Afin de pouvoir utiliser une connexion SSL, il est
nécessaire d'avoir un certificat signé qui peut coûter
très cher. Dans notre cas nous allons créer un certificat
auto-signé, considéré comme non sûr par les
navigateurs mais suffisant pour obtenir une connexion SSL au serveur.
On va créer le certificat nécessaire dans le
répertoire /etc/apache2/ssl
#make-ssl-cert /usr/share/ssl-cert/ssleay.cnf
/etc/apache2/ssl/apache.pem
Il faut alors répondre à une question demandant
le nom d'hôte du serveur.
Notre certificat se trouve donc à l'emplacement
/etc/apache2/ssl/apache.pem.
Configuration spécifique
d'apache
Dans un premier temps il est nécessaire que le serveur
apache écoute sur le port 443. Pour cela il suffit d'éditer le
fichier /etc/apache2/ports.conf et vérifier que la
ligne « Listen 443 » y soit présente. La meilleure
manière de l'intégrer est de l'écrire de la
sorte :
<IfModule mod_ssl.c>
Listen 443
</IfModule>
Ainsi, lors de la désactivation (volontaire ou non) du
module SSL d'Apache, la configuration restera correcte et ne plantera pas le
serveur. Dans un second temps il est nécessaire de créer un
VirtualHost Apache prenant en compte notre certificat SSL. Debian et Ubuntu en
fournisse un par défaut
(/etc/apache2/sites-available/default-ssl) que nous allons
modifier pour tester.
#nano
/etc/apache2/sites-available/default-ssl
Voici le contenu du fichier
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
LogLevel warn
SSLEngine on
SSLCertificateFile
/etc/apache2/ssl/apache.pem
</VirtualHost>
</IfModule>
Activation finale et
redémarrage du serveur apache
Puis nous pouvons activer le module SSL pour Apache, le
VirtualHost SSL et redémarrer Apache :
#a2enmod ssl
#a2ensite default-ssl
#service apache2 restart
Il est ensuite possible de tester que cela fonctionne en
allant à l'adresse : http://localhost:443 ou https://localhost
Le navigateur devrait spécifier que le certificat n'est
pas considéré comme sûr mais nous permettre de voir et
d'accepter le certificat afin de pouvoir avoir accès à la page en
question.
TABLE DE MATIERES
DEDICACE
i
REMERCIEMENTS
ii
SOMMAIRE
iii
LISTE DES FIGURES ET TABLEAUX
iv
LISTE DES SIGLES ET ABREVIATIONS
v
INTRODUCTION
1
ETUDE PREALABLE
2
I-1 PRESENTATION DE LA STRUCTURE D'ACCUEIL
3
I-1-1 Ingénierie logicielle
3
I-1-2 Systèmes et Réseaux
4
I-1-3 Systèmes documentaires
4
I-2 ORGANIGRAMME
4
I-3 ETUDE DE L'EXISTANT
4
I-3-1 Analyse de l'existant
5
I-3-2 Critiques de l'existant
6
I-3-3 Proposition de la solution
7
I-3-4 Solution retenue
11
I-3-5 Coût de déploiement
11
ETUDE THEORIQUE
12
II-1 PRESENTATION DU PROJET : TRANSFERT
D'ARGENT
13
II-1-1 Problématique
13
II-1-2 Objectifs et besoins
généraux
13
II-1-3 Quelques fonctionnalités du
système de transfert d'argent
14
II-2 LA MODELISATION OBJECT AVEC UML
15
II-3 LE SYSTEME DE GESTION DE BASE DE DONNEES
MYSQL
17
II-4 LE LANGAGE PHP
18
II-5 L'ARCHITECTURE CLIENT-SERVEUR
20
II-6 LES DIFFERENTS COMPOSANTS NECESSAIRES
21
II-6-1 Système d'exploitation du serveur
21
II-6-2 Le serveur web Apache
22
II-6-3 Kannel
23
II-6-4 Framework Codeigniter
27
II-6-5 Framework Bootstrap
28
II-7 LES MESURES DE SECURITE ET DES
INFORMATIONS
29
II-7-1 Les mesures de sécurité
29
II-7-2 La sécurité des
informations
29
IMPLEMENTATION
32
III-1 LA MODELISATION DU SYSTEME DE TRANSFERT
33
III-1-1 Diagramme des cas d'utilisation du
système de transfert
33
III-1-2 Diagramme de séquence du
système de transfert
35
III-1-3 Diagramme de classes du système de
transfert
37
III-1-4 Diagramme de composants du système
de transfert
40
III-1-5 Diagramme de déploiement du
système de transfert
41
III-2 MISE EN PLACE DE LA BASE DE DONNEES
41
III-3 CONFIGURATION MATERIELLE ET LOGICIELLE DU
SYSTEME
43
III-3-1 Caractéristique du serveur
43
III-3-2 Environnement logiciel
43
III-4 ARCHITECTURE GLOBALE DU SYSTEME DE
TRANSFERT
45
III-4-1 Démarrage de l'application
45
III-4-2 Environnement de travail des
opérateurs
46
III-4-3 Environnement de travail de
l'administrateur
48
CONCLUSION
51
GLOSSAIRE
vi
BIBLIOGRAPHIE
vii
ANNEXES
viii
TABLE DE MATIERES
xii
|