Les autres données transférées d'un serveur à un client sont
stockées dans des bases de données, et ce sont elles qui seront
traitées par l'applet. Il s'agit de données géographiques
(vectorielles et/ou images) ainsi que des données descriptives
associées (éventuellement multimédias). Il peut aussi s'agir
d'informations d'ordre pratique, telles que le nombre de places
disponibles dans des parkings.
Un serveur HTTP et un serveur système spécifique sont les
composants logiciels nécessaires du côté serveur. Le serveur
système sert de point d'entrée pour les clients, et il ne traite que
les demandes de données de leur part (données géographiques,
descriptives, multimédias). Les requêtes HTTP sont redirigées
vers le serveur HTTP et ne sont traitées que par celui-ci. Il y a
plusieurs raisons à une telle séparation des tâches entre les deux
serveurs.
En laissant traiter les requêtes HTTP par le serveur Web, on
"réutilise" le code d'un serveur existant en s'assurant de leur
traitement correct. Les requêtes de demande de données
peuvent être à leur tour traitées plus efficacement par un serveur
système. Il peut aussi accéder directement à une base de
données (le serveur Web devrait dans ce cas utiliser des scripts
CGI). Il peut traiter les données d'une carte localement et les
envoyer par parties en fonction des besoins d'un client (le
serveur Web ne peut envoyer que des fichiers entiers). Le
serveur système permet d'augmenter la sécurité, car il n'y a pas
d'accès direct aux bases de données, ni aux fichiers images.
Figure 7 : Architecture du système
Server
Oient
HTML
page
4.4. Fonctionnement
On se sert d'un navigateur Web pour se connecter au serveur
local et charger une page HTML contenant les références sur le
code de l'applet, ainsi que le code de l'applet lui-même. Une fois
chargée, l'applet commence son exécution, se connecte au
serveur local, charge et visualise les données nécessaires : des
images rasteurs et/ou des images vectorielles constituant une
carte. A la demande de l'utilisateur, l'applet envoie une requête
pour obtenir des données GPS au serveur local, reçoit la réponse
et visualise sur le plan la position de véhicule. Le fonctionnement
de l'applet peut être changé de manière à obtenir les positions
des véhicules, stockées dans une base de données.
Le serveur local s'exécute à son tour sur l'ordinateur client. Il peut
recevoir des requêtes de la part de l'applet ou du navigateur
exécutant celle-ci (les requêtes HTTP ou les connections par
socket dans le cas général). Après avoir reçu une requête, il se
connecte à un serveur système se trouvant sur une machine
distante, envoie la requête, reçoit la réponse et la renvoie au
demandeur (le navigateur ou l'applet). Il traite la requête
localement dans le cas de besoin d'accès au GPS. Il récupère les
données GPS reçues par un port série et il les envoie à l'applet. Il
peut aussi envoyer les données du GPS au serveur du système
pour les stocker dans la base de données.
Le principe de fonctionnement du serveur système est similaire à
celui du serveur local, et il dépend du type de la requête reçue. Il
peut se connecter au serveur Web et renvoyer la réponse à un
client. La réponse peut être un fichier au format HTML, le code
de l’applet ou éventuellement d’autres données. Le serveur
système peut lire et envoyer les données rasteurs et/ou
vectorielles stockées dans les fichiers. Il peut aussi se connecter
à une base de données pour exécuter une requête et envoyer la
réponse à un client. Une requête peut être une demande de mise
à jour de données ou une simple requête de sélection.
4.5. Implémentation
Toutes les parties du système sont implémentées comme des
applications Java. Ce sont donc des applications portables,
pouvant être exécutées sur n'importe quel système d'exploitation
avec Java Runtime Environment (JRE).
Le GPS étant connecté au port série, le serveur local y accède
en utilisant un pacquetage javax, extension du Java
Development Toolkit (JDK). Le serveur système se connecte à
une base de données en utilisant les pilotes JDBC (Java
Database Connectivity). De plus, le serveur système est
indépendant de serveur HTTP, car il ne communique avec lui
qu'au moyen de requêtes HTTP.
La partie visible du client est une applet Java (Figure 8). Elle
permet la lecture et la visualisation de données constituant les
différentes couches d'une carte : des images vectorielles et
rasteurs. Celles-ci constituent les informations statiques, qui ne
changent pas au cours d'une session de travail, et dont le
rechargement n'est pas nécessaire. Une carte peut contenir
aussi des couches dynamiques représentant les informations sur
la position du (ou des) véhicule(s). Dans le cas de la visualisation
de ces couches dynamiques, l'applet consulte le serveur local à
intervalle régulier en lui envoyant une requête pour obtenir de
nouvelles données GPS. Après avoir reçu la réponse, l'applet
effectue la conversion des données GPS dans le système de
projection de la carte et les visualise ensuite. Le comportement
de l'applet est similaire dans le cas de connexion à une base de
données.
Figure 8 : Le client - une applet Java
GPS position
Show / hide
vector images
1 Show/hide
raster
GPS position