intro a architecture Client/serveur

publicité
Université Tunis El Manar-Institut Supérieur d’Informatique
Module SOA-Web Services - A.U 2012/2013
TP1 : Introduction Aux Architectures CLIENT/SERVEUR
Objectifs :

Comprendre l’architecture Client/serveur.

Explorer et déployer une application de type 2 tiers (service de chat).

Explorer et déployer un site marchand ‘Goodiezz’ du type 3 tiers.
I. Mise en œuvre d’un service de ‘CHAT’ :
On désire développer une application de Chat entre deux entités ‘Client / Serveur’.
1. Technologies à utiliser :

Plateforme NetBeans 7

Java : le client et le serveur seront codés tous les deux en JAVA sous la forme
d’un projet JAVA application.
2. Réalisation :
1. Charger la plateforme NetBeans.
2. Créer un nouveau projet comme ‘Java Application’ nommé ‘CHAT-CLIENT’
3. Ajouter une nouvelle classe Java « client » au projet ‘CHAT-CLIENT’.
4. Ajouter le code Java : client d’ANNEXE dans cette classe.
5. Créer de nouveau un projet comme ‘Java Application’ nommé ‘CHATSERVEUR’
6. Ajouter une nouveau classe Java «serveur » au projet ‘CHAT-SERVEUR’.
7. Ajouter le code Java : serveur d’ANNEXE dans cette classe.
8. Exécuter les projets ‘CHAT-CLIENT’ et ‘CHAT-SERVEUR’.
3 ème SIL
p. 1
9. Faire échanger des messages entre le client et le serveur.
Remarque : vérifiez que l’option ‘Set Main Class’ est décoché lors de création d’un projet.
II. Etude d’un Site marchand « Goodiezz » :
1. Description du site :
Goodiezz est un site web de commerce électronique de catégorie B2C (Business to Consumers).
Ce site sera spécialisé dans la vente d’accessoires divers et d’objets de décoration. Il sera orienté
vers un public « jeune » et il devra :

Présenter un choix de produits diversifié et intéressant.

Faire connaître ce type de produits.

Permettre d’effectuer des achats grâce à des méthodes de paiement en ligne.

Assurer des transactions sécurisées.

Présenter un aspect visuel attractif.

Fidéliser les clients.
2. Fonctionnalités du site :
Vente
Clients





Recherche



Catalogue de produits
Organisation par rubriques
Fiches d’informations sur les
produits
Système de caddie
Paiement en ligne
Recherche par nom de
produit
Recherche par prix
Recherche par mots clé




Inscription et création de
comptes
Gestion des sessions
Système de contact
Consultation et ajout de
commentaires sur les produits
Page de profil

Valeur ajoutée
 Commentaire sur les objets
mise en vente
 Pla n cliquable du site
 Téléchargement du catalogue
 FAQ
3. Architecture applicative du site
Le modèle d’architecture utilisé pour notre site est le modèle d’architecture 3-tiers.



3 ème SIL
couche présentation : client.
couche métier : serveur d’application.
couche accès aux données : serveur de données.
p. 2
4. Technologies à utiliser :
Les logiciels de développement utilisés sont :

Adobe Dreamweaver® : un éditeur de site web de type WYSIWYG.

Adobe Photoshop® : est un logiciel de retouche, de traitement et de dessin
assisté par ordinateur.

Adobe Flash® : logiciel multimédia utilisé pour créer le contenu Flash.

EasyPHP® : est un package WAMP, une plateforme de développement
Web,
permettant de faire fonctionner localement (sans se connecter à un serveur
externe) des scripts PHP.
Pour le développement de goodiezz.com nous avons eu recours a certaines technologies dont :

XHTML 2.0

CSS 2.x et 3.x

Flash

PHP

SQL

Ajax
5. Réalisation :
Le site marchand ‘Goodiezz’ est déployé sur machine.
Remarques :
 le dossier contenant les fichiers du site est sous le répertoire :
C:/ProgrammesFiles/EasyPHP1.7/www.
5.1 Charger EasyPHP 1-7.
5.2 Démarrer EasyPHP.
5.3 Charger Web local
5.4 Choisir le dossier ‘Goodiezz’
5.5. Explorer le site :
1. Consulter les produits.
3 ème SIL
p. 3
2.
3.
4.
5.
6.
7.
8.
9.
Chercher des produits suivant plusieurs critères.
Effectuer l’inscription au site.
Ajouter des produits au caddie.
Ajouter un commentaire.
Enregistrer le caddie.
Payer le caddie.
Consulter l’historique des caddies précédents.
Consulter ton profil.
10. Contacter le site.
5.6 Explorer la base de données du site
1.
2.
3.
4.
Charger PHPMyAdmin.
Choisir GESTIONBDD.
Sélectionner la base de données ‘Godieez’ et ‘laposte’
Afficher et commenter les modifications apportés sur les tables
‘utilisateur’,‘caddie’, ‘comptedinars’, ‘contact’ et ‘commentaire’.
ANNEXE
1. LANGAGE O.O JAVA :
 Une classe Java est un prototype général qui décrit les caractéristiques d’objets
similaires ayant des propriétés (données) et des opérations (méthodes).
 Le constructeur (New) contrôle la création et l’initialisation d’un objet.
 Un objet est une instance d’une classe particulière.
 La méthode Main est une méthode existée dans la classe. C’est la première méthode qui
sera exécutée. Elle permet de tester les méthodes d’une classe.
 Package est un ensemble de classes ou interfaces. Il sert à regrouper des classes
similaires. (ayant même intérêt).
 Exception : est un événement anormal ou inattendu. Ce sont des objets qui stockent des
informations tels que le type d’exception, la source.
2. Code Java : Client :
Package CHAT-CLIENT;
import java.net.*;
import java.io.*;
public class client {
public client () {
}
3 ème SIL
p. 4
public void dialoguer () {
Socket sClient=null;
try{
// on se connecte au service officiant sur le port P de la machine M
System.out.println("Demande de connexion...");
sClient=new Socket("127.0.0.1",7001);
System.out.println("Connexion établie...");
// on crée les flux d'entrée-sortie du socket client
BufferedReader in=new BufferedReader(new
InputStreamReader(sClient.getInputStream()));
BufferedReader keybord = new BufferedReader(new
InputStreamReader(System.in));
PrintWriter out=new PrintWriter(sClient.getOutputStream(),true);
// boucle demande - réponse
boolean fini=false;
String demande;
String reponse;
while (! fini){
// on prépare la demande
demande = keybord.readLine();
// on l'envoie
out.println("CLIENT : "+ demande);
// on lit la réponse
reponse = in.readLine();
// on traite la réponse
System.out.println("client1:" + reponse);
if(demande.equals("quitter")||demande.equals("Quitter")) fini=true;
}
// c'est fini
sClient.close();
} catch(Exception e){
// on gère l'exception
System.out.println("Erreur "+e);
}
}
}
public static void main(String[] args) {
client client1 = new client();
client1.dialoguer();
}
3. Code Java : Serveur
package CHAT-SERVEUR;
import java.net.*;
import java.io.*;
3 ème SIL
p. 5
public class serveur {
public serveur() {
}
public void dialoguer(){
ServerSocket sEcoute = null;
try {
// ouverture du service
int portEcoute = 7001;
int maxConnexions = 1;
sEcoute = new ServerSocket(portEcoute, maxConnexions);
// traitement des demandes de connexion
boolean fini = false;
Socket sService = null;
System.out.println("Attente de connexion...");
sService = sEcoute.accept();
System.out.println("Connexion établie...");
BufferedReader in = new BufferedReader(new
InputStreamReader(sService.getInputStream()));
BufferedReader keybord = new BufferedReader(new
InputStreamReader(System.in));
PrintWriter out = new PrintWriter(sService.getOutputStream(),true);
String demande;
String reponse;
while (!fini) {
demande = in.readLine();
if (demande.equals("CLIENT : quitter")||demande.equals("CLIENT :
Quitter")){
out.println("...ok! Bye! fermeture de la connexion ");
fini = true;
continue;
}
System.out.println(demande);
reponse = keybord.readLine();
out.println("SERVEUR : "+reponse);
}
// c'est fini - on clôt le service
System.out.println("...fermeture de la connexion!");
sEcoute.close();
sService.close();
} catch (Exception e) {
// on traite l'exception
System.out.println("Erreur !" + e);
}
}
public static void main(String[] args) {
serveur serveur1 = new serveur();
serveur1.dialoguer();
}
}
3 ème SIL
p. 6
Téléchargement