ArcGIS vous permet de mettre à la disposition des utilisateurs une gamme de ressources : applications, cartes, couches, services et données. Pour offrir les meilleures performances possibles aux utilisateurs qui accèdent à une ressource, il est important de comprendre qu’il existe différentes méthodes d’optimisation, en fonction du type de ressource. Les options disponibles peuvent dépendre de la source de données back-end, du type de service géospatial, ou d’autres facteurs. Connaître les différents types d’optimisation est crucial pour garantir une expérience utilisateur positive et efficace.
Cette section couvre les stratégies générales d’évaluation des besoins des utilisateurs, la conception du réseau et les options de mise en cache. Pour plus d’informations sur des stratégies d’optimisation spécifiques, consultez Optimiser les cartes et applications Web et Optimiser les sources de données et le stockage.
L’optimisation ne se limite pas à réduire le temps de réponse des requêtes HTTP. Un service qui envoie des réponses rapides, à faible latence mais inutiles, n’est pas nécessairement optimisé. Déterminez qui utilisera la ressource ou le service et pourquoi. Comprenez les questions auxquelles l’utilisateur souhaite obtenir une réponse en interagissant avec la ressource. Utilisez des tests structurés pour vous assurer que la ressource fonctionne correctement sur les différents appareils clients à partir desquels les utilisateurs accéderont aux ressources. Intégrez les commentaires des utilisateurs sur l’utilité de la ressource pendant son développement et après sa mise à disposition pour une utilisation générale.
Les besoins des utilisateurs aideront également à déterminer les types d’optimisations de performances qui valent la peine d’être mis en œuvre. Si une ressource n’est utilisée que quelques fois par jour par un petit groupe interne, il n’est pas aussi important de l’optimiser au point qu’elle passe à des milliers de requêtes par seconde. Cette même optimisation, cependant, pourrait être vitale pour une ressource utilisée par un public mondial.
Les performances générales (bonnes ou mauvaises) sont étroitement liées à la conception du réseau où les composants ArcGIS sont déployés. Les systèmes d’entreprise, souvent de portée mondiale, permettent de répondre aux besoins des utilisateurs dans un large éventail de conditions de réseau et de connectivité. Il existe des différences importantes entre les composants et les processus ArcGIS quant à leur dépendance à la connectivité réseau. Les considérations sur le réseau destiné aux processus ArcGIS dépassent le cadre de ce sujet, mais voici quelques recommandations et pistes de réflexion utiles :
Les demandes répétées de ressources peuvent nécessiter une surcharge de calcul importante pour générer ces ressources. L’utilisation d’une réponse mise en cache permet d’éviter cette surcharge, en réduisant à la fois l’utilisation des ressources système et les temps de réponse. L’optimisation de l’utilisation de la mise en cache peut améliorer considérablement les performances des ressources ArcGIS.
Il n’existe pas d’approche unique pour l’utilisation de la mise en cache avec la variété d’applications et de services Web qui peuvent être utilisés dans ArcGIS, mais plutôt une variété de modèles qui exigent un certain niveau de réflexion et de planification. Les méthodes courantes de mise en cache sont les suivantes :
La mise en cache des tuiles raster et vectorielles prend des données en entrée qui seraient autrement accessibles dynamiquement via une carte, une entité ou un service d’imagerie, et les met en cache dans des tuiles. Ces tuiles sont des images standardisées prédéfinies qui affichent les données rendues. Les tuiles mises en cache permettent aux clients de demander plusieurs tuiles pré-rendues en même temps pour une échelle donnée, de sorte qu’il y a une attente pendant que le serveur accède aux données back-end et les extrait. La mise en cache des tuiles raster et vectorielles est activée par la création de couches de tuiles, tandis que la mise en cache des tuiles d’entités nécessite une configuration supplémentaire des propriétés d’un service.
Chacune de ces stratégies de mise en cache offre une grande variété de configurations, d’options et de choix possibles lors de l’optimisation d’un service. Pour obtenir des conseils supplémentaires dans ces domaines, consultez la documentation, les ressources et les comptes rendus de conférence d’Esri.
Ressources associées :
Les tuiles de couche d’images de carte sont des images raster qui affichent une vue pré-rendue des données. Cette vue est ensuite représentée sur le client sous la forme d’un ensemble de plusieurs tuiles assemblées pour chaque étendue d’affichage. Les tuiles raster peuvent être créées à partir de services de carte, de services d’entités hébergés ou de services d’imagerie en tenant compte de considérations légèrement différentes selon les services.
La mise en cache des tuiles raster est une méthode efficace pour fournir des données relativement statiques devant être affichées dans une représentation cartographique principale. La création d’un cache de carte peut être gourmande en temps et en ressources de calcul requises, de sorte qu’elle fonctionne mieux pour les données qui sont rarement mises à jour. Bien que les tuiles raster puissent fournir des performances et une évolutivité excellentes, elles ne permettent pas à l’utilisateur de demander des attributs, d’identifier des entités, de modifier des symboles, de désactiver des couches d’étiquetage, etc.
Alors que les tuiles raster ont été utilisées pendant de nombreuses années pour fournir des fonds de carte, ces services tirent aujourd’hui parti, le plus souvent, de fonds de carte vectoriels pour des raisons de performance, de qualité de carte et de flexibilité notamment. Les tuiles raster sont toujours exploitées pour générer de nombreux fonds de carte d’imagerie ou par des services basés sur la photographie par satellite ou l’orthophotographie. Ces services visent à présenter une seule couche d’imagerie soigneusement équilibrée comme arrière-plan pour des applications ou des outils.
Pour en savoir plus sur la mise en cache des couches d’images de carte, consultez les ressources suivantes :
La mise en cache des tuiles vectorielles est similaire dans son concept à la mise en cache des tuiles raster, mais les tuiles sont des fichiers binaires compressés (basés sur des zones tampon de protocole). Ceux-ci stockent les entités vectorielles sous forme de géométrie et d’attributs, découpés en tuiles individuelles qui sont ensuite réassemblées et rendues sur le client selon une définition de style distincte.
La mise en cache des tuiles vectorielles est appropriée alors qu’une tuile raster peut être contraignante ou inadaptée pour d’autres raisons. Les tuiles vectorielles peuvent être plus rapides à générer et sont de plus petite taille que les tuiles raster. Cela permet de stocker un plus grand nombre de tuiles et accélère la vitesse à laquelle elles sont transférées vers un client via une connexion réseau.
Les tuiles vectorielles permettent également un rendu dynamique grâce à l’utilisation d’un style de tuile vectorielle. Celui-ci peut être configuré ou mis à jour entièrement sur le client (tel qu’un navigateur ou une application native) et peut afficher ou masquer dynamiquement différentes couches, filtrer en fonction des attributs et afficher plusieurs versions cartographiques différentes des mêmes données, le tout à l’aide de la même couche de tuiles vectorielles.
Contrairement aux tuiles vectorielles et aux tuiles raster, les tuiles d’entités ne sont pas pré-générées par un processus planifié. Au lieu de cela, elles sont générées par des clients compatibles qui demandent des étendues de données standardisées pour des niveaux de zoom standard. Étant donné que ces requêtes sont identiques entre les différents clients, les entités peuvent être mises en cache, puis réutilisées ou renvoyées à différents clients. Cette fonctionnalité est réservée exclusivement aux clients conçus pour exploiter les tuiles d’entités, principalement via ArcGIS Maps SDK for JavaScript, mais également via ArcGIS Pro et les applications natives créées avec ArcGIS Map SDK.
L’utilisation de tuiles d’entités repose sur deux hypothèses principales :
Les services d’entités hébergés dans ArcGIS Online incluent également une option permettant d’activer l’affichage optimisé des couches. Cette option permet de générer des données à résolution limitée dans la base de données, qui sont utilisées pour afficher des échelles plus petites (plus réduites). Ces données à résolution limitée sont automatiquement interrogées par le processus de génération de tuiles d’entités lorsque vous travaillez à ces échelles, ce qui améliore le temps de réponse.
Pour en savoir plus sur la mise en cache des tuiles d’entités, consultez les ressources suivantes :
Dans ArcGIS Enterprise, vous pouvez configurer les services de carte et d’entités pour qu’ils renvoient un en-tête Cache-Control qui permet au navigateur d’un utilisateur de tirer parti de la mise en cache du contenu de la réponse en fonction d’une valeur Etag.
Lorsque les clients envoient des demandes à ArcGIS Server pour demander une exportation de carte ou interroger un service d’entités avec l’application de ce paramètre, la réponse du serveur peut alors généralement être mise en cache par le navigateur et réutilisée pendant un certain temps. Toutefois, selon la manière dont votre service d’entités ou de carte et les données qui lui sont associées sont utilisés dans les applications, vous pouvez envisager d’ajuster la durée pendant laquelle le navigateur utilisera une réponse figurant dans son cache. Pour cela, il convient d’ajouter une propriété nommée cacheControlMaxAge dans la définition du fichier JSON (JavaScript Object Notation) du service.
Un réseau de diffusion de contenu (CDN) met en cache le contenu sur des serveurs de périphérie situés à proximité géographique de l’utilisateur. Les CDN réduisent les temps de réponse des demandes en éliminant la nécessité d’une requête de base de données et en réduisant la latence due à des déplacements réseau plus longs.
Les couches d’entités hébergées partagées publiquement et les ressources statiques d’application Web hébergées dans ArcGIS Online utilisent automatiquement un CDN global pour la mise en cache des tuiles d’entités et des réponses d’applications statiques. En savoir plus sur le lcontrôle du cache CDN pour les couches d’entités hébergées dans ArcGIS Online. Le CDN ArcGIS Online est également utilisé pour accélérer la réponse des couches d’images de carte publiques mises en cache (tuiles raster) et des couches de tuiles vectorielles, ainsi que des différents services de fond de carte ArcGIS Online.
Les CDN peuvent également être utilisés avec des applications Web hébergées dans ArcGIS Enterprise. Veillez toutefois à faire la distinction entre les ressources statiques adaptées à la mise en cache dans un CDN (telles que les fichiers HTML, CSS et JavaScript), et les réponses plus dynamiques de l’API REST qui ne doivent pas être mises en cache pour éviter tout comportement inattendu de l’utilisateur. L’utilisation d’un CDN en ce qui concerne les mises à niveau mérite également une attention particulière. Le cache du CDN doit être invalidé de force lors de la mise à niveau d’ArcGIS Enterprise ou d’une modification de l’application, afin de garantir que les utilisateurs ne reçoivent pas d’informations obsolètes.
Le billet de blog A Content Delivery Network (CDN) approach to ArcGIS Enterprise using AWS CloudFront fournit un exemple d’utilisation d’un CDN avec ArcGIS Enterprise.