> Tech > Requêtes de base : lister les Clients, sur le poste client

Requêtes de base : lister les Clients, sur le poste client

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Une fois connecté au serveur, le client peut commencer des communications bidirectionnelles avec l'hôte, par l'intermédiaire de son objet socket. Le serveur, sous la forme d'un objet CustomerHostSocket, offre cinq fonctions au client :

o Lister tous les Clients suivis
o Ajouter un Client
o Modifier un Client
o

Supprimer un Client

o Déconnecter



La première partie de chaque communication déclenchée par le client avec
le serveur est un type de requête qui correspond à  l’une des cinq fonctions de
base



L’application Customer Tracking est structurée de telle sorte que la saisie de
l’utilisateur, normalement communiquée en cliquant sur un bouton, amène la classe
CustomerListKeeper du client à  demander l’une de ces cinq fonctions.

La première partie de chaque communication déclenchée par le client avec le serveur
est un type de requête qui correspond à  l’une des cinq fonctions de base. Certains
types de requêtes ordonnent au serveur de lire et de traiter des informations
supplémentaires en provenance du flux de socket. D’autres types de requêtes demandent
au serveur de renvoyer des informations au client.





Les types de requêtes sont définis comme constantes de type entier dans les deux
classes CustomerListKeeper et CustomerHostSocket. La figure 5 résume les types
de requêtes et leurs actions associées.

Pour comprendre la relation entre les activités client et les types de requêtes,
examinons la méthode refresh et l’action RQS_LIST. Quand on clique sur le bouton
Refresh (un événement actionPerformed), la méthode refresh de la classe CustomerListKeeper
est exécutée. La méthode refresh communique avec le serveur pour obtenir une table
de hachage de tous les Clients suivis :



d_output.writeInt(RQS_LIST);

ObjectInputStream input =

new ObjectInputStream(

connection.getInputStream());

custList = (Hashtable)input.readObject();




En premier lieu, la constante RQS_LIST est écrite dans la file de sortie des données
socket. Côté serveur, le type de requête est lu et une table de hachage créée.
De retour côté client, un ObjectInputStream est construit sur le flux d’entrée
simple du socket. La classe ObjectInputStream fournit une méthode readObject qui,
dans ce cas, lit l’objet table de hachage créé par le serveur. Le client utilise
cette table de hachage pour suivre les Clients et comme référence croisée entre
ID et objets Clients suivis. La table de hachage sert également à  construire la
liste visuelle des Clients suivis.









Exécuter l’application



Pour exécuter l’application Customer Tracking avec VisualAge for Java (VAJ),
il faut télécharger le code source à  partir du site www.mysystemsjournal.com,
l’importer dans VAJ et suivre ces instructions. Tout d’abord, créer la table
base de données CUSTMAST dans une bibliothèque appelée EXAMPLES sur l’AS/400.
On peut ensuite utiliser l’instruction SQL Create Table ou créer son propre
membre source DDS comparable.



CREATE TABLE EXAMPLES/CUSTMAST

( CUSTID DEC (5, 0) NOT NULL,

CUSTNAME CHARACTER (40) NOT NULL,

CUSTSTREET CHARACTER (40) NOT NULL,

CUSTCITY CHARACTER (40) NOT NULL,

PRIMARY KEY (CUSTID) )




Modifier ensuite les constantes SYSTEM, USERID et PASSWORD dans la classe
CustomerHostSocket.



private static final String SYSTEM =

« SYSTEM »;

private static final String USERID =

« USERID »;

private static final String PASSWORD =

« PASSWORD »;




Ces éléments d’information servent à  se connecter à  la base de données AS/400.

Il reste quatre étapes :



1. Remplacer la constante HOST dans la classe CustomerListKeeper par l’adresse
TCP/IP de l’AS/400. Cette information est utilisée pour connecter le client
au serveur. Selon la configuration réseau, on peut utiliser soit l’adresse
IP



private static final String HOST =

« 198.0.0.10 »;




soit le nom de système de l’AS/400



private static final String HOST =

« SYSTEM »;




2. Créer un répertoire /myjava/examples/sockets dans l’IFS de l’AS/400.
Placer les classes CustomerHostServer et CustomerHostSocket dans ce répertoire.
Il est crucial de placer ces classes dans cette structure de répertoire
exacte.



3. Démarrer la portion serveur de l’application à  partir d’une ligne de
commande OS/400 avec cette commande Run Java.



JAVA

CLASS(examples.sockets.CustomerHostServer)

CLASSPATH(‘/myjava’)




Quand le serveur est prêt à  accepter des connexions client, le message « Waiting… »
s’affiche.



4. Démarrer la portion client de l’application à  partir d’une vue de projet
ou de package VAJ. Sélectionner la classe CustomerTracking puis faire un
clic droit sur la classe. Choisir l’option Run, Run main dans le menu pop-up.



Quand l’application cliente démarre, elle se connecte au serveur. Il faut
attendre une connexion réussie et le message d’état  » Connected. Press Refresh
button to build list  » dans la fenêtre du poste client. Quand on appuie
sur le bouton Refresh, la liste des Clients suivis est construite, et le
message d’état devient  » Ready for action!  » Si une erreur survient en un
point quelconque, le message d’état dans la fenêtre client la signale. Ainsi,
si vous essayez de démarrer le client avant le serveur, le message d’état
 » Connection refused  » apparaît.

A chaque fois qu’un client se connecte au serveur, ce dernier affiche l’adresse
du client dans un message, comme  » Starting connection to client at 130.1.0.16/130.1.0.16
 » Ces messages permettent de savoir si les clients se connectent correctement
au serveur.

DD


Téléchargez cette ressource

Préparer l’entreprise à l’IA et aux technologies interconnectées

Préparer l’entreprise à l’IA et aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT