[I] Introduction
Dans cet AGL (Atelier Génie Logiciel), nous allons découvrir ensemble les points clés de la programmation
réseaux avec JAVA, plus précisément nous allons étudier et mettre au point une application serveur
et une application client. Par la suite nous allons améliorer notre serveur de caractéristiques multitâches
et multiservice.
[I-A] Outils
Nous allons utiliser pour cet atelier l'éditeur JAVA JCreator Lite téléchargeable gratuitement
ici
Avant d'installer L'EDI JCreator, il est conseiller d'installer le JDK de SUN, pour notre atelier
on utilisera le JDK6 update 11 téléchargeable ici [I-B] Définitions[I-B-1] Architecture Client-serveur
L'architecture client-serveur se base sur deux concepts ; le concept applicatif et le concept de communication
; la partie applicatif et composée elle même d'une application dite client et d'une application
dite serveur, la partie communication se base principalement sur les sockets. Le principe de fonctionnement
d'une telle architecture se présente comme suit : L'application cliente se connecte sur l'application
serveur ; la connexion peut faire l'objet d'une authentification et elle peut être sécurisée par
exemple via SSL ; une foi connectée l'application cliente envoie des requêtes à la partie serveur.
Le serveur a son tours répond aux appels clients ; clients est au pluriel car le serveur peu gérer
plusieurs clients en même temps (multitâches) ; il peut ainsi effectuer les contrôles nécessaires
d'authentification et répondre a des commandes lancer par le client.
[I-B-2] Les Sockets
Un socket (traduit en "Connecteur réseau "), est une interface logicielle " apparue dans les systèmes
UNIX " qui permet au développeur d'exploité les services d'un protocole réseau de manière facile
et uniforme. Les sockets permettent ainsi de connecté deux entité logiciels et de leurs offrir
la capacité d'envoyer et de recevoir des données entre elles.
[II] L'EDI JCreator[II-A] Création du nouveau projet
Après avoir lancé JCreator, allez vers le menu File/New/Project comme représenter dans la figure
1.
figure1
L'assistant création de projet s'affiche (figure 2), sélectionnez l'option " Basic Java Application
" puis appuyez sur le bouton " Next ".
figure 2
L'assistant nous demande de spécifier le nom du projet dans le champ " Name " (figure 3), vous
pouvez ou non dans cette fenêtre changer le dossier dans le quel sera enregistrer notre projet (le
champ " Location "), une foi cette action effectuer cliquez sur " Next ".
figure 3
A ce niveau, l'assistant nous demande de sélectionnez les librairies à utiliser dans notre projet (figure
4) ; une librairie est un ensemble de classes regrouper dans un fichier archive java " JAR "
et dont le rôle est d'ajouter d'autres fonctionnalités a notre environnement de programmation ;
pour notre projet on utilisera les librairies standard, donc on ne change rien à cette fenêtre et
on clique sur " Next ".
figure 4
Dans la fenêtre suivante (figure 5), l'assistant nous propose de choisir les outils de compilation
à utiliser pour notre projet, on choisit l'option " Compiler " et on clique sur " Finish
".
figure 5
L'assistant entame la phase de construction du nouveau projet (figure 6), une foi ces étapes terminées
cliquez sur " Finish ".
figure 6
Une foi la construction du nouveau projet terminer, JCreator nous affiche l'espace de travail
avec le quel on doit entamer notre projet (figure 7).
figure 7 [II-B] L'espace de travail de l'EDI
L'espace de travail de l'EDI JCreator est composer par :
figure 9
figure 10
figure 11
figure 12 [III] Le Serveur[III-A] Généralités
Notre serveur sera composer de :
Ceci dit, notre application serveur sera donc composé de :
L'interface " Service ", nous permet de construire des services et les injecter dynamiquement dans notre
serveur. Il suffit d'écrire le code d'in service et de copier le fichier " .class " dans la racine
du dossier des classes, c-a-dire dans le dossier contenant les fichiers classe.
Dans ce tutorial, nous allons écrire un service simple que vous pouvez l'utiliser pour écrire vos propres
services, ce service nommé " salut " vous affiche un message salut devant un nom écrit en ligne
de commandes.
[III-B] Principe de fonctionnement
Notre serveur offre un nombre ; définit au démarrage ; de connections clients, mais il offre une unique
connexion de contrôle sur le port principal, et ce pour éviter des conflits de services. La connexion
de contrôle offre à l'administrateur la possibilité de lancer et d'arrêter un service et de changer
le nombre maximum de clients.
Ainsi, notre serveur sera muni d'un module d'écoute qui se charge de la détection des tentatives de connections
clients, d'un module de gestion des connections, d'un vecteur dans le quel seront stocker les connexions
en cours, d'un module de contrôle servant à la gestion des contrôles effectuer par la session de
contrôle, d'un module service qui se charge de l'instanciation des services demander par les clients (figure 13).
figure 13 [III-C] Codage[III-C-1] Création d'une classe sous JCreator. |