Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Fri 26 September 2008 10:58

gemini
Juste Inscrit !
Date d'inscription: 6 Feb 2008
Messages: 6

[OpenLayers/TileCache] cache client/cache serveur

Bonjour à tous,

J'ai du mal à comprendre la différence de performance selon l'endroit où est placé les tuiles en cache.

OpenLayers, à chaque requête vers un serveur (WMS en l'occurrence), va mettre en cache sur le CLIENT les tuiles concernées.
Lorsque l'on a installé TileCache, les tuiles sont alors préchargées sur le SERVEUR...
Dans la pratique, je me rend compte que de mettre en cache les tuiles coté serveur permet d'afficher la carte plus rapidement que lorsque les tuiles sont uniquement préchargées sur le poste client.
Or pour moi gérer le cache coté client devrait afficher plus vite la carte que celui coté serveur (moins de requête, non?).

Peut être que mon raisonnement est faux et que cela ne se comprend pas comme cela...
Est ce que quelqu'un peut éclairer ma lanterne?
En vous remerciant

Hors ligne

 

#2 Fri 26 September 2008 11:10

Guillaume Sueur
Participant assidu
Lieu: Toulouse
Date d'inscription: 23 Sep 2005
Messages: 331
Site web

Re: [OpenLayers/TileCache] cache client/cache serveur

éclairons, éclairons...
L'intérêt principal du cache côté serveur est de mettre à disposition des images prégénérées, sans qu'il soit besoin de les fabriquer à la volée comme dans une requêtes WMS standard. Comme dans GoogleMaps, l'ensemble des images possibles, sur toutes les échelles, est stocké sur le serveur et peut donc être envoyé au client sans solliciter le serveur cartographique. L'inconvénient est que le système impose l'usage d'un client capable d'effectuer les appels WMS selon une grille prédéfinie (celle du cache) et selon des niveaux de zoom fixés une fois pour toute. Mais ce qu'on perd en flexibilité, on le gagne 10 fois en fluidité !
Côté client le cache est aussi utile, mais il est plus aléatoire puisqu'il dépend de réglages effectués par l'utilisateur.

Hors ligne

 

#3 Fri 26 September 2008 11:32

gemini
Juste Inscrit !
Date d'inscription: 6 Feb 2008
Messages: 6

Re: [OpenLayers/TileCache] cache client/cache serveur

Donc même si les tuiles sont déjà cachées sur le client, OpenLayers va tout de même appeler le serveur carto, et seulement pour les tuiles fraichement affichables?
Et lorsque vous parlez des réglages coté client, il s'agit des paramètres lors de la création des couches, buffer, SingleTile...?
N'y a-t-il aucun moyen de prégénérer sur les postes client les tuiles comme Tilecache le fait sur le serveur?

En tout cas merci pour la rapidité de votre réponse

Hors ligne

 

#4 Fri 26 September 2008 12:35

Guillaume Sueur
Participant assidu
Lieu: Toulouse
Date d'inscription: 23 Sep 2005
Messages: 331
Site web

Re: [OpenLayers/TileCache] cache client/cache serveur

OpenLayers n'a rien à voir dans la gestion du cache client, c'est le navigateur lui-même qui gère cet aspect, en fonction des en-têtes HTTP liés à l'expiration des pages (des tuiles donc).  OpenLayers appelle donc toutes les tuiles nécessaires, et le navigateur les pioche dans le cache ou les demande au serveur selon leur disponibilité.
Lorsque je parle des réglages côté client, c'est tout simplement le fait de pouvoir indiquer à son navigateur de ne jamais rien mettre en cache, ou de ne prévoir qu'un faible espace de stockage pour celui-ci.
Prégénérer sur le poste client ? Le navigateur n'est pas un logiciel SIG, il n'est qu'un afficheur. Mais si vous voulez embarquer le maximum de tuiles sur votre client, réglez le cache sur une grande capacité de stockage, parcourez consciencieusement l'étendue de la zone à cacher sur tous les niveaux de zoom utiles, et votre navigateur n'aura alors plus rien à demander au serveur. Encore faut-il que la date d'expiration des tuiles ne soit pas dans le passé... mais ça, c'est du côté du serveur que ça se gère, en indiquant par exemple que tous les JPEG issus d'un répertoire expire dans 1 mois.

Hors ligne

 

#5 Fri 26 September 2008 14:36

gemini
Juste Inscrit !
Date d'inscription: 6 Feb 2008
Messages: 6

Re: [OpenLayers/TileCache] cache client/cache serveur

Effectivement, il y avait une légère confusion dans ma tête...

Je me rends compte qu'il n'existe pas de solution parfaite pour une rapidité d'affichage optimum, TileCache est très efficace de ce point de vue, dommage qu'il ne traite que les couches WMS.

Merci pour toutes ces infos, c'est plus clair même si je ne vais me mettre à illuminer ce forum tout de suite smile
bonne journée

Hors ligne

 

#6 Fri 26 September 2008 16:04

Guillaume Sueur
Participant assidu
Lieu: Toulouse
Date d'inscription: 23 Sep 2005
Messages: 331
Site web

Re: [OpenLayers/TileCache] cache client/cache serveur

TileCache peut aussi directement traiter un mapfile de mapserver, sans passer par du WMS. Il faut alors cependant disposer de mapscript en version python, pour lequel il existe un paquetage Debian (et peut-être d'autres), et qui est fourni avec MS4W pour Windows. TileCache peut aussi exploiter Mapnik.
Enfin, TileCache n'est pas la seule solution de cache carto puisque GDAL2Tiles permet de constituer des caches semblables, directement à partir des fichiers sources (TIF, ECW...)

Pour ce qui est de la rapidité d'affichage en tant que telle, il faut optimiser plusieurs niveaux :
- le serveur web lui-même
- la configuration d'Openlayers : si le cache est complet, préférer une couche Tilecache, qui structure automatiquement la requête pour aller chercher la tuile, sans passer par un processus intermédiaire
- dupliquer les sous-domaines pour multiplier les appels concurrents

Bon courage !

Dernière modification par Guillaume Sueur (Fri 26 September 2008 16:06)

Hors ligne

 

Pied de page des forums

Powered by FluxBB