ArcGIS le permite poner a disposición de los usuarios una amplia gama de recursos: aplicaciones, mapas, capas, servicios y datos. Para ofrecer el mejor rendimiento a los usuarios que acceden a un recurso, es importante comprender que existen otros métodos de optimización, dependiendo del tipo de recurso. Las opciones disponibles pueden depender de la fuente de datos de backend, el tipo de servicio geoespacial u otros factores. Comprender los distintos tipos de optimización es una parte importante para garantizar una experiencia de usuario positiva y eficaz.
En esta sección, se describen estrategias generales para evaluar las necesidades de los usuarios, el diseño de red y las opciones de almacenamiento en caché. Consulte Optimización de aplicaciones y mapas web y Optimización de fuentes y almacenamiento de datos para obtener información adicional sobre estrategias de optimización específicas.
La optimización significa mucho más que minimizar el tiempo de respuesta de las solicitudes HTTP. Un servicio que envía respuestas rápidas y con baja latencia, pero que no son útiles, no está necesariamente optimizado. Determine quién utilizará el recurso o servicio y por qué. Comprenda las preguntas que el usuario querrá que se respondan al interactuar con el recurso. Utilice pruebas estructuradas para garantizar que el recurso funciona correctamente en otros dispositivos de cliente desde los que los usuarios accederán a los recursos. Incorpore los comentarios de los usuarios sobre la utilidad del recurso, tanto durante su desarrollo como después de que esté disponible para su uso general.
Las necesidades de los usuarios también ayudarán a determinar qué tipos de optimizaciones de rendimiento vale la pena implementar. Si un recurso solo lo va a utilizar un pequeño grupo interno unas pocas veces al día, no es tan importante optimizarlo hasta el punto de que pueda escalar a miles de solicitudes por segundo. Sin embargo, esa misma optimización podría ser vital para un recurso que utilice el público global.
El diseño de la red en la que se despliegan los componentes de ArcGIS es un factor clave que contribuye al rendimiento (tanto al buen rendimiento como al rendimiento deficiente). Normalmente, los sistemas empresariales son de naturaleza global y dan servicio a los usuarios en una amplia matriz de condiciones y conectividad de red, por lo que existen importantes diferencias entre los componentes y flujos de trabajo de ArcGIS en cuanto a su dependencia de la conectividad de red. La amplitud de las consideraciones de red para los flujos de trabajo de ArcGIS es más amplia que este tema, pero algunas recomendaciones y consideraciones iniciales incluyen:
Las solicitudes repetidas de recursos pueden requerir una sobrecarga computacional significativa para generar dichos recursos. Proporcionar una respuesta almacenada en caché puede evitar esa sobrecarga, reduciendo tanto el uso de recursos del sistema como los tiempos de respuesta. Maximizar el uso del almacenamiento en caché puede mejorar significativamente el rendimiento de los recursos de ArcGIS.
No existe un planteamiento único para utilizar el almacenamiento en caché con la variedad de aplicaciones y servicios web que se pueden utilizar en ArcGIS, sino una variedad de patrones que deben utilizarse con consideración y planificación. Entre los métodos comunes para el almacenamiento en caché se incluyen:
El almacenamiento en caché de teselas ráster y vectoriales toma datos de entrada a los que, de otro modo, se podría acceder dinámicamente a través de un mapa, una entidad o un servicio de imágenes, y los almacena en teselas en la caché. Estas teselas son imágenes estandarizadas predefinidas que muestran datos renderizados. Las teselas almacenadas en caché permiten a los clientes solicitar varias teselas representadas previamente al mismo tiempo para una escala determinada, por lo que no hay que esperar mientras el servidor accede y dibuja los datos de backend. El almacenamiento en caché de teselas ráster y vectoriales se habilita creando capas de teselas, mientras que el almacenamiento en caché de teselas de entidades requiere una configuración adicional de las propiedades de un servicio.
Cada una de estas estrategias de almacenamiento en caché tiene una amplia variedad de configuraciones, opciones y elecciones que deben seleccionarse durante la optimización de un servicio. Consulte documentación de Esri, recursos y actas de conferencias para obtener orientación adicional en estas áreas.
Recursos relacionados:
Las teselas de capas de imágenes de mapa son imágenes ráster que muestran una vista renderizada previamente de los datos, que luego se dibuja en el cliente como un conjunto de varias teselas unidas entre sí para cada extensión de visualización. Las teselas rasterizadas pueden crearse a partir de servicios de mapas, servicios de entidades alojados o servicios de imágenes, con consideraciones ligeramente diferentes para cada uno.
El caché de teselas rasterizadas es un método eficaz cuando se suministran datos relativamente estáticos que deben verse en una representación cartográfica primaria. La creación de la caché de mapas puede requerir mucho tiempo y recursos de cómputo, por lo que funciona mejor con datos que no se actualizan con frecuencia. Aunque las teselas ráster pueden proporcionar un rendimiento y una escalabilidad excelentes, no ofrecen al usuario la posibilidad de consultar atributos, identificar entidades, cambiar símbolos, desactivar capas de etiquetado, etc.
A pesar de que, durante muchos años se utilizaron teselas rasterizadas para entregar mapas base cartográficos, en la actualidad estos servicios utilizan con mayor frecuencia mapas base vectoriales por diversas razones relacionadas con el rendimiento, la calidad cartográfica y la flexibilidad. Las teselas rasterizadas se siguen utilizando para servir a muchos mapas base de imágenes o servicios basados en fotografía por satélite u ortofotografía, ya que estos servicios pretenden presentar una única capa de imágenes cuidadosamente equilibrada como fondo para aplicaciones o herramientas.
Para obtener más información sobre el almacenamiento en caché de capas de imágenes de mapa, consulte estos recursos:
El almacenamiento en caché de teselas vectoriales es similar en concepto al almacenamiento en caché de teselas ráster, pero las teselas son archivos binarios comprimidos (basados en memorias intermedias de protocolo) que almacenan entidades vectoriales como geometría y atributos, cortadas en teselas individuales que luego se vuelven a montar y se representan en el cliente según una definición de estilo independiente.
El almacenamiento en caché de teselas vectoriales es apropiado cuando una tesela ráster puede ser limitante o inadecuada por otras razones. Las teselas vectoriales pueden ser más rápidas de generar y de menor tamaño que las teselas ráster, lo que ofrece ventajas para el almacenamiento del conjunto de teselas, así como en la velocidad a la que se transfieren a un cliente a través de una conexión de red.
Las teselas vectoriales también permiten una representación dinámica mediante el uso de un estilo de tesela vectorial, que puede configurarse o actualizarse por completo en el cliente, como un navegador o una aplicación nativa, y puede mostrar u ocultar dinámicamente diferentes capas, filtrar en función de los atributos y mostrar varias versiones cartográficas diferentes de los mismos datos, todo ello utilizando la misma capa de teselas vectoriales.
A diferencia de las teselas vectoriales y las teselas ráster, las teselas de entidades no se generan previamente mediante un proceso planificado. En su lugar, las generan clientes con conocimiento de la funcionalidad que solicitan extensiones estandarizadas de datos para niveles de zoom estándar. Dado que estas solicitudes son idénticas entre distintos clientes, las entidades pueden almacenarse en caché y reutilizarse o reenviarse a otros clientes. Esta funcionalidad está disponible exclusivamente para su uso por parte de clientes diseñados para utilizar esta entidad, principalmente a través de ArcGIS Maps SDK for JavaScript, así como a través de ArcGIS Pro y aplicaciones nativas creadas con ArcGIS Maps SDK.
El uso de teselas de entidades se basa en dos supuestos clave:
Los servicios de entidades alojados en ArcGIS Online incluyen también una opción para habilitar el dibujo optimizado de capas, que puede generar datos de resolución reducida en la base de datos que se utilizan a escalas de visualización más pequeñas (con más zoom). Estos datos de resolución reducida son consultados automáticamente por el proceso de generación de teselas de entidades cuando se utilizan esas escalas, lo que a su vez, mejora el rendimiento de la respuesta.
Para obtener más información sobre el almacenamiento en caché de teselas de entidades, consulte estos recursos:
En ArcGIS Enterprise, puede configurar los servicios de mapas y de entidades para que devuelvan un encabezado Caché-Control que permita al navegador de un usuario aprovechar el almacenamiento en caché del contenido de la respuesta en función de un valor Etag
.
Cuando los clientes envían solicitudes a ArcGIS Server para solicitar una exportación de mapa o consultar un servicio de entidades con esta configuración aplicada, la respuesta del servidor normalmente se almacena en la caché del navegador y se reutiliza durante un periodo de tiempo determinado. No obstante, según cómo se utilicen el servicio de entidades o mapa y sus datos asociados en aplicaciones, es posible que deba ajustarse el tiempo durante el cual el navegador utilizará una respuesta de su caché. Esto se puede lograr agregando una propiedad llamada cacheControlMaxAge
a la definición de Notación de objetos JavaScript (JSON) del servicio.
Una red de distribución de contenido (CDN) almacena en caché el contenido en servidores periféricos que se encuentran más cerca geográficamente del usuario. Las CDN reducen los tiempos de respuesta a las solicitudes al eliminar la necesidad de consultar la base de datos y reducir la latencia derivada de los desplazamientos más largos por la red.
Tanto las capas de entidades alojadas compartidas públicamente como los activos estáticos de la aplicación web alojados en ArcGIS Online utilizan automáticamente una CDN global para almacenar en caché las teselas de entidades y las respuestas estáticas de la aplicación. Obtenga más información sobre cómo controlar la caché de CDN para capas de entidades alojadas en ArcGIS Online. La CDN de ArcGIS Online también se utiliza para acelerar la respuesta de las capas de imágenes de mapa en caché públicas (teselas ráster) y las capas de teselas vectoriales, así como los distintos servicios de mapas base de ArcGIS Online.
Las CDN también se pueden utilizar con aplicaciones web alojadas en ArcGIS Enterprise, pero hay que tener cuidado de distinguir entre los activos estáticos que son adecuados para el almacenamiento en caché en una CDN, como los archivos HTML, CSS y JavaScript, y las respuestas más dinámicas de la API REST, que no deben almacenarse en caché para evitar un comportamiento inesperado del usuario. También hay que tener especial cuidado al considerar el uso de una CDN en lo que respecta a las actualizaciones. La caché de la CDN debe invalidarse de forma forzada cuando se actualiza ArcGIS Enterprise o se realizan cambios en una aplicación, para garantizar que los usuarios no reciban información obsoleta.
La publicación de blog Un planteamiento de red de distribución de contenido (CDN) para ArcGIS Enterprise mediante AWS CloudFront ofrece un ejemplo del uso de una CDN con ArcGIS Enterprise.