Optimizar el rendimiento en ArcGIS

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.

Evaluar las necesidades de los usuarios

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.

Diseñar redes para el rendimiento

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:

  • En general, la latencia de la red afecta más a la experiencia del usuario que el ancho de banda de red en las operaciones SIG cotidianas. Para actividades como la descarga de datos, la copia de archivos o la visualización de grandes datasets de imágenes, el ancho de banda también es importante.
  • El tráfico desde ArcGIS Pro directamente a las bases de datos es sensible a la latencia. Se realizan muchas solicitudes pequeñas mientras se visualizan y editan datos o se trabaja con el esquema y se realizan cambios en él.
  • El tráfico desde ArcGIS Server a bases de datos, archivos o almacenamiento de objetos también requiere una baja latencia y, por lo general, un gran ancho de banda. Esto permite que el proceso del servidor acceda a los datos, los transforme para que se ajusten a las peticiones de los usuarios y les devuelva una respuesta optimizada.
  • Los clientes, como los navegadores que acceden a aplicaciones web y servicios web, son menos sensibles a las restricciones de la red que los clientes de escritorio, ya que herramientas como ArcGIS Maps SDK for JavaScript optimizan las solicitudes para reducir el tráfico excesivo.
  • Muchas redes modernas difuminan la distinción entre los recursos locales y los de la nube a través de la interconexión de redes y otras tecnologías, lo que puede dar lugar a una latencia muy baja entre los recursos de la nube y los recursos o clientes in situ. En general, se recomienda que los clientes, los procesos del servidor, el almacenamiento y las bases de datos estén alojados en la misma “zona de red”, por ejemplo, alojándolos todos en la nube o todos en local. Sin embargo, en algunos casos, es aceptable que los clientes estén separados de los servidores, o los servidores de las bases de datos. La adecuación de este diseño a su sistema dependerá del diseño de su red y de la comprobación estructurada de los flujos de trabajo relevantes para comprender las implicaciones.

Utilizar el almacenamiento en caché de solicitudes y respuestas

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:

  • Almacenamiento en caché de capas de imágenes de mapa, donde se representa previamente un mapa en teselas ráster estandarizadas que se pueden devolver a un cliente sin necesidad de generar el mapa en el servidor.
  • Almacenamiento en caché de teselas vectoriales, donde las entidades de un mapa se representan previamente en teselas de datos vectoriales comprimidos y optimizados, y un archivo de estilo externo define la visualización del mapa.
  • Almacenamiento en caché de capas de imágenes, donde un servicio de imágenes se almacena en caché en teselas estándar (casi idénticas a la caché de capas de imágenes de mapa) para mejorar la velocidad de representación o controlar el acceso de los clientes.
  • Almacenamiento en caché de teselas de entidades, donde las capas de entidades se consultan mediante extensiones estandarizadas, lo que permite al proceso del servidor almacenar en caché la respuesta y devolver a los clientes encabezados almacenables en caché.
  • Almacenamiento en caché del lado del cliente, donde las respuestas incluyen un encabezado o una propiedad que indica que el cliente puede utilizar el recurso varias veces antes de volver a solicitarlo.
  • Las redes de distribución de contenido, que son componentes complejos dedicados a almacenar en caché las respuestas a varios puntos de presencia en un área geográfica o en todo el mundo.

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:

Estrategias para el almacenamiento en caché de capas de imágenes de mapa

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:

Estrategias para el almacenamiento en caché de teselas vectoriales

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.

Estrategias para el almacenamiento en caché de teselas de entidades

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:

  • El servicio admite teselas de entidades. Las teselas de entidades solo se utilizan cuando se hacen peticiones a capas de entidades (basadas en un servicio de mapas o en un servicio de entidades) que admiten esta funcionalidad, que varía en función de la versión. Los servicios de entidades alojados basados en ArcGIS Online han admitido esta funcionalidad durante varios años. En ArcGIS Enterprise, las capas individuales de un servicio de entidades alojado deben configurarse mediante una solicitud API REST para habilitar el almacenamiento en caché de teselas de entidades, y las teselas de entidades almacenadas en caché se guardan en el almacén de objetos.
  • El cliente que realiza la solicitud es compatible con teselas de entidades. Normalmente, los clientes que admiten teselas de entidades las solicitan automáticamente a los servicios que las admiten. Aunque ArcGIS Online proporciona varias capas de caché para estas teselas de entidades, las capas basadas en ArcGIS Enterprise tienen consideraciones adicionales para aprovechar al máximo esta función.

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:

Estrategias para optimizar el almacenamiento en caché del lado del cliente

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.

Red de distribución de contenido (CDN)

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.

Top