WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Mise en place d'un système informatisé de transfert d'argent (cas de go sarl)

( Télécharger le fichier original )
par Tony Ulrich NGUEREZA DANGANA
Université de Bangui - Licence professionnelle 2014
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

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






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Et il n'est rien de plus beau que l'instant qui précède le voyage, l'instant ou l'horizon de demain vient nous rendre visite et nous dire ses promesses"   Milan Kundera