• Aucun résultat trouvé

Chapitre 6 : Prototype

4. Description de l’infrastructure de communication

4.2. Choix d’implémentation

Le prototype a été réalisé en Java. Les nœuds légers sont représentés par des iPAQ H3950 et

pour les nœuds centraux, nous avons utilisé des ordinateurs de type PIII. La machine

virtuelle choisie est celle de Personal Java qui est adaptée au développement d’applications

sur terminaux nomades. Le type de réseau utilisé est Wifi 802.11b et le réseau filaire a

également été exploité pour la connexion entre les différents nœuds centraux. La distribution

entre les différents services de localisation est gérée par l’API JNDI (JNDI – Java Naming

Directory Service). Les communications entre les différents nœuds de l’applicatio n sont

gérées en utilisant des sockets. En effet, l’utilisation intensive d’une technologie telle que les

Java RMIs (RMI – Remote Method Invocation) pose des problèmes de surcharge au niveau

des terminaux nomades qui se bloquent alors rapidement.

Concerna nt la découverte de ses nœuds voisins, un serveur multicast est géré par chaque

nœud de l’application. Ce serveur est activé lorsque l’utilisateur souhaite participer à

l’application : rechercher ou partager de l’information. Ce serveur est implémenté à l’aide

d’une socket en « écoute » sur une adresse de groupe multicast. L’adresse de groupe

multicast est définie pour l’application. Lorsqu’un nœud souhaite mettre à jour son

environnement, un message est envoyé sur cette adresse de groupe. Les nœuds connectés

sont alors prévenus et envoient grâce à une socket unicast, leurs informations. Les mises à

jour des informations concernant les voisins d’un nœud sont effectuées à intervalles définis

par le profil de mobilité de l’utilisateur : plus l’utilisateur est mobile, plus l’intervalle de

temps entre deux mises à jour est réduit.

La diffusion des informations au sein d’ISLANDS repose également sur l’utilisation de

groupes multicasts auxquels les nœuds s’inscrivent s’ils sont susceptibles d’être intéressés

par les informations diffusées dans un groupe particulier.

5. Synthèse

De nombreuses topologies peuvent être envisagées dans le cadre d’une application de

proximité ; en effet, dans une application de commerce électronique de proximité, par

exemple, le nombre de nœuds varie considérablement en fonction des heures de la journée.

Pour évaluer notre solution de localisation, nous avons envisagé différents types

d’environnements et testé notre solution dans ces environnements :

- Environnement dense où le nombre de noeuds est important (environ un noeud sur 2m²

par exemple).

- Environnement peu dense

- Environnement bien connecté : où il n’existe qu’une seule sphère de communication

pour l’ensemble des participants.

- Environnement peu connecté : plusieurs sphères existent et chaque participant peut ne

pas être en mesure de communiquer avec tous les autres participants.

- Environnement où l’ensemble des localisations est exprimé en données physiques : ces

localisations peuvent cependant être soit estimées (via notre algorithme), soit issues

d’une technologie de géo- localisation.

- Environnement où l’ensemble des localisations est exprimé en données symboliques :

ces localisations peuvent cependant être soit estimées (via notre algorithme), soit exactes

(décrites par l’utilisateur).

- Environnement mixte où les localisations sont représentées à la fois par des données

physiques et symboliques.

Pour chaque environnement, des tests d’évaluation des requêtes dépendantes de la

localisation ont été effectués grâce au prototype implémenté. Les résultats obtenus sont

globalement concluants. L’évaluation d’une LDQ basée sur notre solution d’estimation de la

localisation fournit de bons résultats dans la majorité des environnements. Toutefois, pour

certaines configurations, notre solution peut présenter quelques limites que nous décrivons

ci-dessous.

Salle 1 Salle 2

A

B

C

Figure 6.8.a. Exemple de répartitions

Salle 1 Salle 2

A

B

C

P1

P2

Figure 6.8.b

Une des premières constatations est que dans un environnement dense, il devient impossible

de différencier les différents noeuds voisins lorsque l’on a atteint le grain de représentation le

plus fin (la pièce par exemple), si la localisation est représentée en données symboliques.

Cette constatation est cependant à relativiser : si on a atteint le grain de représentation le plus

fin, la marge d’erreur est négligeable (quelques mètres si la structure choisie pour la

représentation symbolique est finement décrite).

La deuxième constatation concerne la différence de résultats entre un traitement basé sur des

localisations symboliques fixes et un traitement basé sur des localisations physiques issues

d’une technologie de géo- localisation : nous obtenons des différences puisque pour la

représentation en données physiques, nous calculons la distance exacte entre les différents

noeuds sans prendre en compte les obstacles : murs, sols etc. Ainsi comme l’illustre la figure

6.8.a, si on recherche le voisin le plus proche de A : la réponse est B dans le cas d’une

représentation symbolique et C sinon. En nous basant sur cette constatation, il peut être

intéressant lorsque cela est possible, de choisir le type de données de localisation utilisé en

fonction de l’environnement dans lequel on se situe, pour mieux répondre aux requêtes. Par

exemple, s’il s’agit d’un grand hall, sans obstacle, où le grain utilisé pour la représentation

en données symboliques n’est pas extrêmement fin, on favorise le traitement en données

physiques et inversement.

La troisième constatation concerne l’estimation de la localisation basée sur des données

symboliques : l’estimation utilise la « distance » qui sépare un noeud de ses différents

voisins. La comparaison des fichiers est quant à elle une comparaison entre représentations

symboliques. Si le noeud se trouve à la limite d’une section géographique, la réponse peut

être erronée : par exemple, dans la figure 6.8.b, le noeud A recherche le produit P le plus

proche de lui mais il ne connaît pas sa localisation. Donc, suivant l’algorithme d’estimation

de la localisation, la localisation de A est représenté par une liste de couples (localisation,

degré d’approximation) où la localisation de C risque d’être en première position avec le

degré le plus petit. L’évaluation de la requête repose ensuite sur une comparaison des

données symboliques et donc, va retourner comme réponse que le produit P le plus proche

est le produit P2 se situant dans la salle 2. Cependant, comme le calcul du degré

d’approximation repose sur le signal entre deux machines, les obstacles sont pris en compte

et cette erreur est souvent atténuée.

A B

P1

P2

Connexion

Pas de connexion

Figure 6.9. Exemple de répartition de noeuds

Et enfin, la dernière constatation est que dans un environnement faiblement connecté, notre

algorithme d’estimation de la localisation peut entraîner des réponses erronées. Comme

l’illustre la figure 6.9, si A recherche le produit P le plus proche de lui, sa localisation est

basée sur la localisation de B puisque B est le seul noeud connecté à A, il obtient donc, en

réponse, le produit P2.

6. Conclusion

Le prototype a permis dans un premier temps de valider le service de localisation ISLANDS

et plus particulièrement le modèle d’évaluation des requêtes dépendantes de la localisation.

Quelques limites ont été mises en évidence dans un environnement peu connecté : dans ce

cas, l’application de proximité utilise plusieurs sphères de communication et l’accès à

l’ensemble des informations disponibles dans l’application devient impossible.

La première version du prototype a également permis de mettre en évidence certaines limites

et nous a aidé à définir quelles contraintes étaient à considérer pour proposer des

optimisations adaptées. En effet, les contraintes en terme de temps de réponse et de

consommation des ressources sont importantes à considérer dans les applications de

proximité. En particulier, l’autonomie des terminaux nomades s’est avérée très

problématique. D’autre part, les expérimentations effectuées grâce au prototype ont été

utilisées pour le calibrage de nos simulations d’optimisations. Une version évoluée du

prototype est actuellement en cours de développement. Cette version intègre l’ensemble des

optimisations proposées dans les chapitres précédents.

Actuellement, nous étudions également la possibilité de développer et de déployer ce

prototype au sein d’une gare de la région Nord Pas de Calais. L’application de commerce

électronique de proximité doit être adaptée à l’environnement d’une gare. Cette expérience

nous permettra de mettre en évidence et de résoudre d’autres problématiques intéressantes

telles que la montée en charge et le déploiement automatisé. Le matériel dont nous

disposions ne nous a pas permis, pour le moment, d’aborder ces problématiques.