Architecture Client -Serveur & java RMI
JDBC et SQL
SQL (sigle de Structured Query Language, en franรงais langage de requรชte structurรฉe) est un langage informatique normalisรฉ servant ร effectuer des opรฉrations sur des bases de donnรฉes relationnelles. La partie langage de manipulation de donnรฉes de SQL permet de rechercher, d’ajouter, de modifier ou de supprimer des donnรฉes dans les bases de donnรฉes relationnelles. Crรฉรฉ en 1974, normalisรฉ depuis 1986, le langage est reconnu par la grande majoritรฉ des systรจmes de gestion de bases de donnรฉes relationnelle (abrรฉgรฉ SGBDR) du marchรฉ. SQL fait partie de la mรชme famille que les langages SEQUEL (dont il est le descendant), QUEL ou MySQL est un gestionnaire de base de donnรฉes libre. Il est trรจs utilisรฉ dans les projets libres et dans le milieu industriel.
Requรชtes SQL dans JDBC
Les requรชtes SQL sont reprรฉsentรฉes dans JDBC ร lโaide des interfaces Statement, PreparedStatement et CallableStatement. Chacune de ces interfaces est spรฉcialisรฉe dans un type particulier de requรชtes, Une fois obtenue auprรจs dโune Connection, une requรชte peut รชtre exรฉcutรฉe, son rรฉsultat prenant la forme dโun ResultSet, dans le cas dโun SELECT. Ce rรฉsultat peut alors รชtre vรฉrifiรฉ (valeur NULL, ensemble vide, etc.) et parcouru ligne par ligne. Les ordres DELETE, INSERT, UPDATE quant ร eux retournent un entier. La mรฉthode executeQuery() exรฉcute une requรชte et retourne le rรฉsultat sous forme dโun ResultSet. Un ResultSet est un ensemble de lignes (chaque ligne reprรฉsentant un tuple de la relation rรฉsultat); chaque ligne comporte le mรชme nombre de colonnes (chaque colonne reprรฉsentant un attribut de la relation rรฉsultat).
EasyPHP et MySQL
EasyPHP permet d’installer MySQL, une base de donnรฉes, le troisiรจme et insรฉparable membre du trio Apache/PHP/MySQL. Une base de donnรฉes est un programme permettant de gรฉrer une grande quantitรฉ de donnรฉes en les organisant sous forme de tables. Vous n’avez alors plus ร vous occuper de la maniรจre dont les donnรฉes sont stockรฉes sur le disque dur, de simples instructions permettent d’ajouter, de supprimer, de mettre ร jour et surtout de rechercher des donnรฉes dans une base de donnรฉes. On peut de plus accรฉder trรจs facilement ร une base de donnรฉes MySQL ร partir de PHP, ce qui permet de dรฉvelopper des sites web trรจs performants et interactifs (par exemple, le forum de Developpez.com). EasyPHP joint PHPMyAdmin ร MySQL, un outil รฉcrit en PHP permettant de gรฉrer vos bases de donnรฉes MySQL. En utilisant EasyPHP, vous pouvez installer un serveur web complet, qui vous permettra de faire tous vos tests de pages PHP en toute facilitรฉ. MySQL dรฉrive directement de SQL (Structured Query Language) qui est un langage de requรชtes vers les bases de donnรฉes relationnelles. Il en reprend la syntaxe mais nโen a pas toute la puissance.
Dรฉveloppement de gestion dโabsences
Pour rรฉcapituler la rรฉalisation de notre application , nous allons exposer les รฉtapes de dรฉroulement de notre travail. Nous allons commencer par le choix des outils. En effet, les outils qui ont permis le dรฉveloppement de notre application ont รฉtรฉ choisis pour des soucis de compatibilitรฉs, notamment dus ร la rรฉcence de certaines technologies. La rรฉalisation du projet sโest dรฉroulรฉe en plusieurs รฉtapes : Nous avons utilisรฉ le modรจle relationnel afin de concevoir le schรฉma de la base de donnรฉes. Un premier projet de test a รฉtรฉ dรฉveloppรฉ afin de tester les connexions ร la base de donnรฉes, le bon dรฉploiement du projet sur le serveur dโapplications ainsi que les opรฉrations de base comme lโajout et la suppression. Nous avons crรฉer une JFrame dโauthentification pour nous assurer quโil y avait une bonne communication entre base de donnรฉe et serveur. Aprรจs nous รชtre assurรฉs de la bonne connexion entre eux , nous avons pu continuer le dรฉveloppement du projet .
Un deuxiรจme projet de test a รฉtรฉ dรฉveloppรฉ afin de tester la connexion client-serveur sur deux machines pour cela nous avons crรฉรฉ un rรฉseau ad-hoc sรฉcurisรฉ par un mot de passe pour que le client et le serveur soient sur le mรชme rรฉseau (voir annexe), nous avant rรฉussi dโรฉtablir une connexion client serveur RMI sur deux machine cโest a base de ce teste nous avons pu poursuivre notre travail. Parmi les services que lโapplication doit fournir lโaffichage des justifications dโabsence des รฉtudiants .Aussi il offre le service dโimpression cote client et cote serveur. Ainsi que lโenvoi dโemail dโavertissement au รฉtudiants qui ont exclu ou proche dโรชtre exclu dons un module. De mรชme que notre application permet les opรฉration de base tel que lโajout, modification et la suppression.
L’authentification pour un systรจme informatique est un processus permettant au systรจme de s’assurer de la lรฉgitimitรฉ de la demande d’accรจs faite par une entitรฉ (รชtre humain ou un autre systรจme…) afin d’autoriser l’accรจs de cette entitรฉ ร des ressources du systรจme (systรจmes, rรฉseaux, applicationsโฆ) conformรฉment au paramรฉtrage du contrรดle d’accรจs . L’authentification permet donc, pour le systรจme, de valider la lรฉgitimitรฉ de l’accรจs de l’entitรฉ, ensuite le systรจme attribue ร cette entitรฉ les donnรฉes d’identitรฉ pour cette session (ces attributs sont dรฉtenus par le systรจme ou peuvent รชtre fournis par l’entitรฉ lors du processus d’authentification). C’est ร partir des รฉlรฉments issus de ces deux processus que l’accรจs aux ressources du systรจme pourra รชtre paramรฉtrรฉ (contrรดle d’accรจs). Pour notre application le serveur et le client doit dโabord sโauthentifier par un login et un mot de passe sauvegarder dans la base de donnรฉe pour accรฉder au menu principal dโapplication client ou serveur.
Conclusion Gรฉnรฉrale
Ce projet nous a donnรฉ la chance de dรฉcouvrir les diffรฉrentes architectures distribuรฉes, en particulier lโarchitecture de type client/serveur et de se familiariser aussi avec lโoutil java et en particulier avec le middleware java RMI. Nous avons appris comment utiliser lโarchitecture client /serveur avec la mรฉthode Java RMI pour dรฉvelopper notre application de Gestion Des Absences sur un rรฉseau ad hoc. Lโutilisateur de notre application qui peut รชtre un enseignant ou un agent dรฉdiรฉ aura a sa portรฉ une application facile a utiliser , dโune interface emviviale, il pourra a tous moment sauvegarde le suivi de ses รฉtudiants, de plus avertir les รฉtudiant et de maniรจre automatique des que le nombre dโabsence sโaugmente. Idรฉal que notre application soit intรฉgrรฉ dans la gestion de scolaritรฉ.
|
Table des matiรจres
INTRODUCTION GENERALE
Chapitre 1 Architecture Client -Serveur & java RMI
I.1 Introduction
I.2 Systรจmes distribuรฉs 4
I.2.1 Dรฉfinition
I.2.2 Les types dโarchitecture de systรจme distribuรฉs
I.3 Architecture client serveur
I.3.1 Dรฉfinition
I.3.2 Le serveur
I.3.3 Les clients
I.3.4 Une requรชte
I.3.5 Rรฉponse
I.3.6 Avantages de l’architecture client/serveur
I.3.7 Inconvรฉnients du modรจle client/serveur
I.3.8 Les diffรฉrentes architectures client/serveur
I.3.9 Les modes dโinteraction client/serveur
I.4 Notion de middleware
I.5 Remote Method Invocation (RMI)
I.5.1 Introduction
I.5.2 Dรฉfinition
I.5.3 Lโapplication RMI
I.5.4 Package RMI
I.5.5 Quelques classes
I.5.6 Architecture RMI
I.5.7 Principe de fonctionnement RMI
I.5.1 Dรฉploiement de RMI
I.6 Conclusion
Chapitre 2 : Analyse & Conception
II.1 Introduction
II.2 Etude de lโexistant
II.3 Problรฉmatiques
II.4 Spรฉcification des besoins
II.4.1 Besoins fonctionnels
II.4.2 Besoins non fonctionnels
II.5 Conception du systรจme
II.6 Le langage de modalisation UML
II.7 ArgoUML
II.8 Identification des acteurs
II.9 Identification des activitรฉs
II.10 Diagramme de cas d’utilisation
II.10.1 Identification des acteurs
II.10.2 Identification des cas d’utilisations
II.11 Spรฉcification des tรขches et scenarios du systรจme
II.12 Diagramme de sรฉquence
II.13 Diagramme de classes
II.1 Conclusion
III. Chapitre 03 Implรฉmentation
III.1 Introduction
III.2 Java
III.3 Eclipse
III.4 JDBC (java database connectivity)
III.5 EasyPHP et MySQL
III.6 Prรฉsentation de lโapplication
III.7 Dรฉveloppement de gestion dโabsences
III.8 Application gestion des absences
III.9 La sรฉcuritรฉ dans notre application
III.10 Conclusion
Conclusion Gรฉnรฉrale
Bibliographies
Liste des tableaux
Tableau 1 : Spรฉcification des tรขches et scenarios du systรจme
Tรฉlรฉcharger le rapport complet