Para ofrecer un nivel de rendimiento similar a los usuarios que acceden a un servicio, es importante comprender que existen diferentes métodos de optimización, en función del tipo de servicio geoespacial. Las opciones disponibles pueden depender de cuál sea la fuente de datos backend o del patrón de implementación de software utilizado. Comprender los distintos tipos de caché y ordenación en teselas, junto con otras formas de optimización, es una parte importante para garantizar una experiencia de usuario positiva. Esta sección cubre brevemente una variedad de técnicas de optimización del rendimiento, a través de distintos niveles de la arquitectura de ArcGIS.
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 aplicaciones web se entregan desde un servidor web, que suele ser un servicio SaaS de ArcGIS Online, un servidor web que aloja un ArcGIS Web Adaptor o un servidor web dedicado a alojar aplicaciones web personalizadas. A continuación se describen métodos para alojar aplicaciones web optimizadas.
Antes de implementar una aplicación, se puede utilizar un proceso de generación (que también incluye o se conoce como minificación o empaquetado) para reducir el tamaño y la complejidad de los activos estáticos de la aplicación, como los archivos JavaScript, CSS y HTML, o eliminar la información innecesaria de estos archivos. Aunque existen muchos planteamientos válidos para establecer un proceso de creación correcto y adecuado, estos procesos suelen estar estrechamente ligados al marco de aplicación utilizado para crear la aplicación web.
Otro método utilizado para optimizar el rendimiento de las aplicaciones web es habilitar el caché de respuesta HTTP para los activos estáticos de la aplicación web. Esta configuración proporciona al cliente final un encabezado de respuesta del servidor web, indicando que el activo estático se puede cachear en el cliente y durante cuánto tiempo se puede cachear. De esta forma, el navegador del cliente puede evitar una solicitud de ida y vuelta completa en una recarga de la aplicación, ya que el contenido de ese archivo ya está almacenado localmente en el equipo cliente y se reutiliza tal cual hasta que se alcanza el tiempo de caducidad de la caché. El caché de respuesta HTTP puede habilitarse de forma selectiva para determinados tipos de archivo, ya sea a través de un servidor web o de otro proxy inverso o capa de software de aceleración de aplicaciones.
Las aplicaciones web alojadas en ArcGIS Online ya hacen uso de estos dos patrones de optimización, ya que se crean antes de su implementación y se alojan en un entorno SaaS que hace uso del almacenamiento en caché de la Red de distribución de cotenido (CDN) de las respuestas estáticas de la aplicación.
Las CDN también pueden utilizarse con ArcGIS Enterprise, pero tenga 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, frente a las respuestas dinámicas de la API REST que no deben almacenarse en caché para evitar comportamientos inesperados de los usuarios. Tenga también especial cuidado al considerar el uso de una CDN en lo que se refiere a las actualizaciones, ya que la caché de la CDN debe invalidarse forzosamente cuando se actualice el software o cambie una aplicación, para garantizar que los usuarios no reciban información obsoleta.
Existen muchos otros tipos de servicios web que pueden utilizarse en un entorno ArcGIS, algunos de los cuales mostrarán o responderán en función de fuentes de datos dinámicas. No existe un planteamiento único para el caché y la optimización de estos servicios, sino una variedad de patrones que deben utilizarse con consideración y planificación. Entre los métodos habituales para optimizar los servicios web se incluyen:
Ambos métodos toman los datos de entrada (de cualquier origen), 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 almacenan en caché en teselas. Estas teselas son paquetes de datos predefinidos, organizados en una cuadrícula estándar de varios niveles. Las teselas almacenadas en caché permiten a los clientes solicitar varias teselas predefinidas al mismo tiempo para una escala determinada, que se «renderizan con anterioridad» en forma de tesela, por lo que no hay que solicitar datos al backend ni dibujar dinámicamente la simbología o las entidades.
Recursos relacionados:
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. Aunque las teselas rasterizadas pueden tener un alto rendimiento, no ofrecen al usuario la posibilidad de consultar atributos, identificar entidades o 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.
El caché de teselas vectoriales es un método más reciente, pero ampliamente admitido, para almacenar datos en caché, cuando una tesela rasterizada podría ser limitante o inadecuada por otras razones. Las teselas vectoriales pueden ser más rápidas de generar y de menor tamaño, 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.
Tanto el almacenamiento en caché de teselas rasterizadas como el de teselas vectoriales tienen una gran variedad de configuraciones, opciones y elecciones que deben realizarse durante la optimización de un servicio. Consulte documentación adicional de Esri, recursos y actas de conferencias para obtener orientación adicional en estas áreas.
Otro planteamiento de optimización relacionado es una funcionalidad más reciente de ArcGIS denominada teselas de entidades. Las teselas de entidades no se generan previamente mediante un proceso planificado (como las teselas vectoriales o las teselas rasterizadas), sino que son generadas por clientes conscientes de la funcionalidad que solicitan extensiones normalizadas de datos para niveles de zoom estándar. Dado que estas peticiones son idénticas entre distintos clientes, las entidades pueden ser cacheadas por una CDN o proxy intermedio, y reutilizadas o reenviadas 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, aunque también a través de ArcGIS Pro y aplicaciones nativas creadas con ArcGIS Maps SDK. El uso de teselas de entidades se basa en varios supuestos clave:
Los servicios de entidades alojados en ArcGIS Online incluyen 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 visión más pequeñas o 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.
Más allá de la optimización de aplicaciones y servicios, un área igualmente importante para la mejora del rendimiento es el almacenamiento y las características de los datos que hay detrás de un servicio específico. La mayoría de los datos utilizados en los servicios web son de naturaleza tabular (a excepción de los servicios de imágenes), y con frecuencia se trata de ambos:
Tanto la geometría como los atributos pueden optimizarse para mejorar el rendimiento del servicio. Encontrará documentación adicional sobre estas áreas en la documentación de ArcGIS Pro para los ajustes que afectan al rendimiento del acceso a los datos.
Puede optimizar el uso de los atributos mediante la reducción de atributos. En pocas palabras, implica el proceso de eliminar u ocultar columnas o atributos que pueden existir en una tabla pero que no son necesarios para su aplicación o caso de uso. Puede lograrse eliminando columnas cuando no sean necesarias o desmarcándolas para su visualización en el mapa cuando se autorice su publicación, por ejemplo, para las capas de imágenes de mapa.
La indexación de atributos es otra consideración importante, principalmente cuando las columnas se utilizarán para filtrar o consultar en una aplicación. La indexación permite realizar consultas más rápidas y eficientes cuando los filtros de la solicitud se basan en un atributo conocido o se consulta por un atributo basado en texto, números o fechas, y agregar índices de atributos es una forma excelente de aprovechar la tecnología de optimización ya incorporada en las bases de datos relacionales.
Las columnas geométricas también pueden optimizarse de varias formas importantes, en función del caso de uso y los requisitos de los datos. Una opción es la generalización espacial, a menudo también denominada simplificación, que es un proceso de simplificación, suavizado o reducción del nivel de detalle de una representación geométrica, como una línea o un polígono, para reducir el tamaño de la característica y los requisitos de almacenamiento y procesamiento. Este proceso puede completarse de forma permanente, si los datos originales son demasiado precisos o demasiado detallados en cuanto a los vértices incluidos, o podría completarse en una copia de solo lectura de los datos que se utilice para la visualización, conservando todos los detalles en los datos de origen.
La idea de reducir la precisión espacial está estrechamente relacionada: se refiere al tipo de dato geométrico o geográfico, que suele almacenar un valor decimal para las coordenadas reales de cada vértice de una entidad, como 124999.24541512. Este valor representa una unidad lineal, que varía, dependiendo del sistema de coordenadas del dataset, que podría ser tan grande como grados decimales o tan pequeña como pies o metros. En cualquier caso, garantizar que la precisión espacial captada refleja el caso de uso real de los datos puede ser importante tanto por razones funcionales como de rendimiento.
Para datos en un sistema de coordenadas con una unidad lineal basada en metros, una geometría almacenada como (123456.789101112, 234567.891011121) tiene 9 dígitos decimales de precisión, equivalentes a una precisión de nivel nanométrico. Si los datos son captados por una unidad GPS con una precisión de 1 m (de media), entonces esta precisión está sobrevalorando la precisión real de la medición en un factor significativo. Reducir la precisión espacial del conjunto de datos eliminando la parte decimal no solo es más exacto, sino que reducirá el tamaño de la geometría cuando se transfiera en una solicitud de red en un 50 %, lo que ayuda en todo, desde los procesos de serialización hasta las limitaciones de ancho de banda. Utilizar una precisión espacial apropiada es especialmente importante con las entidades poligonales muy detalladas, ya que el número de vértices puede alcanzar rápidamente los miles de registros, y el impacto resultante en el rendimiento del servicio es significativo.
Más allá de los ajustes de atributos y geometría, otros planteamientos de almacenamiento de datos de nivel superior pueden ayudar a optimizar el rendimiento, entre ellos:
Los servicios de imágenes suelen construirse a partir de datasets de mosaico, que son objetos de geodatabases que siguen muchas de las sugerencias de optimización anteriores. Además, hay que tener en cuenta varias técnicas de optimización específicas de los servicios de imágenes: