Div Gestion D'une Banque PDF
Div Gestion D'une Banque PDF
Div Gestion D'une Banque PDF
Thème
Développement d’une application client/serveur
avec Java RMI : gestion d’une banque.
Réalisé par :
- M’rah Nadjet
- Cherifi Sabah
- Mr Benmammar B. (Encadreur)
- Mr Bendaoud F. (Co-Encadreur)
- Mr Chouiti S. (Examinateur)
Nous tenons tout d’abord à remercier Dieu le tout puissant qui nous a donné la
force et la patience et la volonté d’accomplir ce Modeste travail.
À nos familles et nos amis qui par leurs prières et leurs encouragements, on a pu
surmonter tous les obstacles.
M’rah Nadjet
Cherifi Sabah
Dédicace
Nadjet
Dédicace
Louange à Allah le Miséricorde
SABAH
Dédicace
Gestion d’une banque
Sommaire Numéro de
page
Introduction générale 5
Chapitre I : Architecture et outils utilisés. 6
I.1 Introduction 7
I.2 Gestion d’une banque 7
I.3 Les outils utilisés 8
I.3.1 Java 8
I.3.1.1 Historique 8
I.3.1.3 La programmation Orientée Objet 9
I.3.1.4 JDK (Java Development Kit) 10
I.3.1.5 JVM (Machine Virtual Java) 10
I.3.1.6 Les caractéristiques de Java 10
I.3.1.7 Java swing 10
I.3.2 ArgoUML 11
I.3.3 L’IDE NetBeans 11
I.3.3.1 Historique 11
I.3.3.2 Présentation 11
I.3.4 EasyPHP et MySQL 12
I.3.4.1 Présentation 12
I.3.4.2 Que ce qu’une base de données ? 13
I.3.4.3 L’utilité d’une Base de données 13
I.4 L’architecture Client/serveur 13
I.4.1Présentation 13
I.4.2 Avantages de l’architecture client/serveur 14
I.4.3 Inconvénients de l’architecture client/serveur 14
I.4.4 Fonctionnement d’un système client/serveur 14
I.5 RMI (Remote method Invocation) 15
I.5.1 Présentation 15
I.5.2 L’utilité de RMI 15
I.6 Les différentes étapes pour créer un objet distant et 16
l’appeler avec RMI
I.6.1 Le développement coté serveur 16
I.6.2 La définition d’une interface qui contient les méthodes de 16
l’objet distant
I.6.2.3 Mise en œuvre d’une application avec RMI 16
Page 1
Gestion d’une banque
Page 2
Gestion d’une banque
Page 3
Gestion d’une banque
Page 4
Gestion d’une banque
Introduction Générale :
C’est ainsi, que la réalisation de logiciels de gestion demeure une activité professionnelle
difficile. Malgré les progrès apportés par le génie logiciel, les développements d’application
répondant aux besoins exprimés se rationalisent lentement. En revanche, l’offre d’outils de
développement ne cesse de croitre et l’importance des langages de programmation est
toujours prépondérante. De plus en plus d’applications utilisent même plusieurs langages de
programmation dans le cadre d’un projet unique. Nous constatons enfin, un intérêt grandissant
pour issus des technologies objets.
L’objectif de notre PFE est faire la gestion d’une banque en se basant sur une architecture de
type client/serveur et en utilisant le mécanisme JAVA RMI.
Page 5
Gestion d’une banque
Chapitre I :
Architecture et outils
utilisés.
Page 6
Gestion d’une banque
I.1 Introduction :
Dans cette partie, nous allons parler un petit peu de la gestion d’une banque et ses services et
évoquer et définir tous les outils utilisés dans ce projet.
On va commencer par une présentation du langage JAVA, suivi par la présentation de
NetBeans qui est un environnement de développement intégré (EDI), ensuite nous allons
présenter MySQL qui est un serveur de base de données relationnelle, ensuite on va donner
une petite présentation de l’architecture Client/serveur et enfin parler du mécanisme utilisé
Java RMI.
Maîtriser les risques associés aux opérations bancaires réalisées sur le compte.
Améliorer la qualité des services rendus aux clients.
Rentabiliser ses comptes en équipant la clientèle des produits et services de la gamme.
2/Administrateur :
Les administrateurs sont responsables de l’inscription des clients( d’ouvrir les comptes
courants et épargnes) comme ils ont le même droit de profiter des services tel un client
et ils ont de plus :
Le droit de voir tout l’historique et toutes les opérations qui sont faites.
Page 7
Gestion d’une banque
I.3.1.1 Historique :
En raison des difficultés rencontrées avec C++, il était préférable de créer un nouveau
langage autour d’une nouvelle plate-forme de développement. Deux développeurs de chez
SUN, James Gosling et Patrick Naughton se sont attelés a cette tâche afin d’avoir une plate-
forme et un langage idéal pour le développement d’applications sécurisées, distribuées,
robuste et portable sur de nombreux périphériques et systèmes embarqués interconnectés en
réseau mais également sur Internet (clients légers) et sur des stations de travail (clients
lourds), n’oubliant pas la richesse de ses API fournis en standard ou par des tiers
commerciaux ou libres.
D’abord surnommé C++-- (C++ sans ses défauts) puis OAK, mais il s’agissait d’un nom déjà
utilisé dans le domaine informatique, il fut finalement baptisé Java mot d’argot voulons dire
café en raison des quantités de café ingurgité par les programmeurs et notamment par ses
concepteurs.
Java est puis rachetée par Oracle en 2010 qui a réussi à obtenir une très grande célébrité en
seulement quelques années grâce à ces qualités.
Aujourd’hui Java est largement utilisée notamment en entreprises et pour les applications des
appareils mobiles.
Page 8
Gestion d’une banque
Les champs :
Les champs sont à l'objet ce que les variables sont à un programme : ce sont eux
qui ont en charge les données à gérer. Tout comme n'importe quelle autre
variable, un champ peut posséder un type quelconque défini au préalable :
nombre, caractère... ou même un type objet.
Les méthodes :
Les méthodes sont les éléments d'un objet qui servent d'interface entre les
données et le programme. Sous ce nom obscur se cachent simplement des
procédures ou fonctions destinées à traiter les données.
Les champs et les méthodes d'un objet sont ses membres.
Si nous résumons, un objet est donc un type servant à stocker des données dans des champs et
à les gérer au travers des méthodes.
Si on se rapproche du Pascal, un objet n'est donc qu'une extension évoluée
des enregistrements (type record) disposant de procédures et fonctions pour gérer les champs
qu'il contient.
L’accès aux données des objets est réglementé car les données privées sont accessibles
uniquement par les fonctions membres. Les données publiques sont accessibles directement
par l’instance de l’objet par conséquence un objet n’est vu que par ses spécifications. Une
modification interne est sans effet pour le fonctionnement général du programme et une
meilleure réutilisation de l’objet.
L’Héritage :
Permet de définir les bases d’un nouvel objet à partir d’un objet existant. Aussi le nouvel objet
hérite des propriétés de l’ancêtre et peut recevoir de nouvelles fonctionnalités. Enfin la
possibilité de la réutilisation de l’objet.
Page 9
Gestion d’une banque
La JVM est un des éléments les plus importants de la plate-forme Java : une bonne
compréhension de son fonctionnement et de certains des concepts qu'elle met en œuvre est
très importante pour obtenir les meilleures performances avec certaines applications.[2]
Page 10
Gestion d’une banque
API pour fournir une interface utilisateur graphique pour des programmes Java. Il est
entièrement écrit en Java. [4]
I.3.2 ArgoUML:
Est un outil d'aide à la conception orientée objet.
Standard UML
ArgoUML est conforme avec la norme UML 1.3 définie par l'OMG. Le
code pour la représentation interne d'un modèle UML est complètement
produit suivant les spécifications de l'OMG. Pour se faire, une bibliothèque
spéciale de metamodel (NSUML ) a été développée par la
société Novosofts sous licence GPL. Ceci rend ArgoUML extrêmement
flexible pour s'ajuster aux nouvelles normes UML à venir. Cependant
quelques caractéristiques avancées d'UML ne sont pas encore disponibles
dans les diagrammes. Notamment, il n’existe pas encore de diagramme de
séquence. [5]
I.3.3.2 Présentation :
NetBeans IDE est un environnement de développement intégré (EDI)
modulaire basé sur des normes, écrit dans le langage de programmation
Java. Le projet de NetBeans IDE consiste en un EDI Open Source
complet écrit dans le langage de programmation Java et en une plate-
forme d'application cliente riche, qui peut être utilisée comme structure
générique pour créer n'importe quel type d'application. [6]
Page 11
Gestion d’une banque
Voici une liste de choses que l'IDE fait pour simplifier le développement d'Applications
Web:
Fournit un serveur Web Tomcat pour déployer, tester et déboguer vos applications.
Définit le fichier et la structure de dossier d'une application web pour vous.
Génère et maintient le contenu des descripteurs de déploiement.
S'assure que les fichiers de configuration qui apparaissent dans le dossier WEBINF de
votre application ne sont pas effacés lorsque vous exécutez la commande Clean pour
enlever les résultats des builds précédents.
Fournit une coloration syntaxique, complétion de code (L’éditeur texte reconnait les
mots clés du code source et les colorie selon leur utilisation et leur type : mot clé du
langage, variable, fonction, chaine de caractère, commentaire...etc.).
Fournit un support de débogage compréhensif, incluant le mode pas à pas dans les
fichiers JSP et le traçage des requêtes HTTP.
MySQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers
les bases de données relationnelles.
Page 12
Gestion d’une banque
I.4.1Présentation :
Page 13
Gestion d’une banque
Les services sont exploités par des programmes, appelés programmes clients, s'exécutant sur
les machines clientes.
Lorsque l'on désigne un programme tournant sur une machine cliente, capable de traiter des
informations qu'il récupère auprès d'un serveur.
Dans l'architecture client-serveur, une application est constituée de trois parties :
L’interface utilisateur, la logique des traitements et la gestion des données.
•Le client n'exécute que l'interface utilisateur (interfaces graphiques).
•La logique des traitements (formuler la requête).
•Laissant au serveur de bases de données la gestion complète des manipulations de données.
Le client émet une requête vers le serveur grâce à son adresse IP (Internet Protocol) et le port,
qui désigne un service particulier du serveur.
Le serveur reçoit la demande et répond à l'aide de l'adresse de la machine cliente et son port.
I.5.1 Présentation :
RMI est un système d’objets distribués constitué uniquement d’objets JAVA et c’est une API
(Application Programming Interface) intégrée à JAVA depuis la version 1.1.
Ce mécanisme permettant l’appel de méthodes entre des objets cet appel peut se faire sur la
même machine ou bien sur des machines connectées en réseau.
Les échanges respectent un protocole propriétaire (Remote Method Protocol).
L’idée est de rendre transparente la manipulation d’objets distants, un appel de méthode sur
un objet distant doit être syntaxiquement le même qu’un appel de méthode sur un objet local
l’idée aussi est masquer (à l’utilisateur local) les communications nécessaires pour accéder à
un objet, en fournissant un objet local de substitution. .e
Page 15
Gestion d’une banque
L'appel coté client d'une telle méthode est un peu plus compliqué que l'appel d'une méthode
d'un objet local mais il reste simple. Il consiste à obtenir une référence sur l'objet distant puis
à simplement appeler la méthode à partir de cette référence.
La définition d'une interface qui contient les méthodes qui peuvent être appelées à
distance.
L'écriture d'une classe qui implémente cette interface.
L'écriture d'une classe qui instanciera l'objet et l'enregistrera en lui affectant un nom
dans le registre de noms RMI (RMI Registry).
Ainsi chaque méthode appelée à distance doit déclarer qu'elle est en mesure de lever
l'exception java.rmi.RemoteException.
Page 16
Gestion d’une banque
Conclusion
Nous avons parlé dans ce chapitre de la gestion d’une banque et la sécurité bancaire comme
nous avons présenté les outils utilisés dans notre PFE comme Java et la mise en place de ce
programme a nécessité un environnement de développement intégré comme NetBeans, aussi
qu’un gestionnaire de base de données MySQL sous le paquetage EasyPHP pour la création
de la base de données , suivi de l’architecture Client/serveur aussi le mécanisme utilisé RMI.
Dans le chapitre suivant, nous présenterons en détails les différents résultats qu’on a réalisé et
quelques explications de notre application.
Page 17
Gestion d’une banque
Chapitre II:
Développement d’une
application de gestion
d’une banque avec
Java RMI.
Page 18
Gestion d’une banque
II.1 Introduction :
Dans ce chapitre nous allons présenter la partie application de notre projet de fin d’études qui
consiste à développer une application de gestion d’une banque avec Java RMI, pour cela nous
allons détailler les différentes étapes à suivre pour la réalisation de notre projet dans ce sui
suit.
Page 19
Gestion d’une banque
Page 20
Gestion d’une banque
Page 21
Gestion d’une banque
Page 22
Gestion d’une banque
La table historique comprend cinq champs: le type de l’opération faite par le client, le
montant géré, la date de cette opération, le numéro de compte du client qui a fait l’opération et
Page 23
Gestion d’une banque
La table « Compte » contient des champs indiquant des informations sur les clients.
La sécurité est nécessaire pour n’importe quelle application, c’est pour cette raison que nous
avons crée un mécanisme d’authentification pour l’ensemble des clients mais aussi pour
l’administrateur. Donc, il y a un login et mot de passe pour chaque client et aussi un login et
mot de passe pour l’administrateur. Les login(s) et mots de passe sont donnés aux clients
après leurs inscriptions par l’administrateur.
Un mauvais mot de passe ou login est aussi géré par notre application en cas d’erreurs de
saisie comme indiqué dans la figure suivante :
Page 24
Gestion d’une banque
II.3.1.A Inscription : L’administrateur peut inscrire des clients (ouvrir des comptes
courants) et ouvrir des comptes épargnes pour les clients qui sont déjà inscrits.
Page 25
Gestion d’une banque
L’administrateur est chargé pour ouvrir des comptes courants (inscrire des clients pour la
première fois), et l’inscription est comme suite :
Pour ouvrir un compte courant il faut verser au moins 500DA, les figures suivantes montrent
les résultats du versement initial de l’inscription :
Page 26
Gestion d’une banque
Page 27
Gestion d’une banque
Un administrateur peut aussi faire la gestion des clients en cas où il y aura un conflit il peut
vérifier les comptes comme il peut vérifier l’historique des comptes:
Page 28
Gestion d’une banque
« Historique » donne aux administrateurs la possibilité de voir les historiques des comptes
courants et épargnes, il faut que l’administrateur entre le numéro de compte du client voulu et
valider sa demande:
Page 29
Gestion d’une banque
Cette partie donne aux clients la possibilité de gérer leurs comptes et faire quelques
opérations: Créditer, Débiter, Virement vers un autre compte, Consulter et Fermer le
compte s’il est vide. Donc nous allons présenter dans ce qui suit l’ensemble des IHMs
proposées aux clients en fonction de leurs demandes.
Page 30
Gestion d’une banque
II.4.2.1 Créditer
Il est aussi impossible de valider l’opération si on ne respecte pas le type des champs.
Un client ne peut gérer que son propre compte, il n’a pas le droit d’accéder aux autre comptes
comme indiqué dans la figure précédente.
Page 31
Gestion d’une banque
II.4.2.2 Débiter
Page 32
Gestion d’une banque
La figure précédente montre qu’on ne peut pas débiter un compte sauf si son montant le
permet.
II.4.2.3 Virement
Page 33
Gestion d’une banque
Il est aussi impossible de faire le virement si le compte émetteur ne contient pas le montant
indiqué.
Page 34
Gestion d’une banque
II.4.2.4 Consultation
Page 35
Gestion d’une banque
II.4.2.5 Supprimer :
Cette opération de suppression d’un compte ne demande qu’à entrer le numéro de compte.
Page 36
Gestion d’une banque
Et enfin la partie client contient aussi des informations sur notre PFE le thème, les
réalisateurs et les encadreurs du projet :
Page 37
Gestion d’une banque
Conclusion:
Ce chapitre présente tout les résultats de notre projet et montre tout les cas et les opérations
possibles et impossibles lors de la gestion d’une banque et aussi explique la notion de la
sécurité bancaire.
Page 38
Gestion d’une banque
Conclusion générale :
Dans ce PFE, nous avons conçu et réalisé une application Client/serveur de gestion d’une
banque avec Java RMI.
Cette application offre une sécurité totale des comptes bancaires et respecte tout les services
d’une banque à un client et ses droits comme les devoirs d’un administrateur.
Nous avons défini et évoqué les outils utilisées pour réaliser notre application, ainsi que le
déroulement de l’application et les résultats obtenus.
D’autre part, ce PFE nous a aidés à mieux comprendre le langage de programmation« JAVA»
et surtout le mécanisme RMI et en même temps d’avoir une idée globale sur le système de
base de données et ses fonctionnalités, alors nous trouvons que ce PFE a ajouté et a développé
nos connaissances et nos idées.
Page 39
Gestion d’une banque
Résumé :
Le travail réalisé dans le cadre de ce PFE consiste à développer une application de gestion
d’une banque avec Java RMI. Notre rapport est constitué de deux chapitres. Le premier
chapitre est consacré à la présentation des outils utilisés comme JAVA en particulier RMI et
SWING, mais aussi NetBeans et MySQL. Nous avons également présenté dans ce chapitre un
aperçu global sur les architectures de type client/serveur. Le deuxième chapitre présente
l’application réalisée dans le cadre de ce PFE.
MOTS CLES : Java, RMI, NetBeans, EayPHP et MySQL.
Summary:
The objective of our work is to develop an application to manage a bank with Java RMI. Our
report consists of two chapters. The first chapter is devoted to the presentation of the tools
used in particular JAVA, SWING, RMI, NetBeans and MySQL. We also presented in this
chapter an overview on client / server architecture. The second chapter presents our
application.
: ﻣﻠﺨﺺ
"Java "ﻓﻲ اﻟﻔﺼﻞ اﻷول ﻗﺪﻣﻨﺎ إدارة اﻟﺒﻨﻚ ﻛﻤﺎ ﻗﺪﻣﻨﺎ اﻟﻤﻌﺪات اﻟﻼزﻣﺔ ﻟﺘﺤﻘﯿﻖ ﻣﺸﺮوﻋﻨﺎ ﺑﺪء ﺑﺘﻌﺮﯾﻒ اﻟﻠﻐﺔ اﻟﻤﻮﺟﮭﺔ اﻟﻤﻨﺤﻰ
."EayPHP" " وﺣﺰﻣﺘﮭﺎRMI" " ﺑﺎﻟﺘﺮﻛﯿﺰ ﻋﻠﻰ آﻟﯿﺔNetBeans" ﺛﻢ
Page 40
Gestion d’une banque
Références bibliographiques
[1] http://maurise-software.e-monsite.com/medias/files/java-6-2.pdf
[5]http://www-igm.univ-
mlv.fr/~dr/XPOSE/Site/Version_redigee/ArgoUML.htm
[8] http://geronimo.developpez.com/EasyPHP/images/schema.gif
[9]http://static.commentcamarche.net/www.commentcamarche.net/pictures/cs-
images-cs.gif
[10] http://twimgs.com/ddj/images/article/2008/0811/081101oh01_f1.gif
Page 41