Skip To Content

Cómo las aplicaciones acceden y usan la caché del servicio de imágenes

Un servicio de imágenes en caché puede comportarse como un servicio de imágenes dinámico o estático. Generalmente, debido a su estructura en teselas y a su naturaleza estática, un servicio de imágenes en caché será más rápido que uno que no esté almacenado en caché (o al que se acceda como servicio dinámico). Cuando accede a un servicio de imágenes en caché el comportamiento predeterminado es estático y tendrán un acceso limitado al servicio propiedades—lo que significa que no puede modificar el método de mosaico o la compresión de la transmisión.

Cualquier aplicación Web que pueda mostrar un servicio de imágenes utiliza la caché, aunque la manera en la que se recuperan y utilizan las teselas varía entre las aplicaciones.

ArcMap y ArcGIS Pro

Cuando visualiza un servicio de imágenes que se ha almacenado en la caché, tendrá capacidades del servicio de imágenes limitadas. Por ejemplo, no podrá cambiar el método de mosaico o método de compresión de la transmisión. Pero todavía podrá hacer cosas como cambiar la simbología y la mejora, realizar identificación de los píxeles, consultar datos, y descargar datos de origen.

Si necesita trabajar con el servicio de imágenes de forma dinámica y utilizar la funcionalidad como el método de mosaico, a continuación, puede cambiar el modo de la capa. Para cambiar el modo, haga clic con el botón derecho del ratón en la capa de servicio de imágenes y desactive Habilitar el modo Vista de caché. Para utilizar el servicio de imágenes como un servicio en caché, marque esta opción de nuevo.

Aplicaciones de ArcGIS API for JavaScript

Cuando desarrolla con ArcGIS API for JavaScript, utiliza la clase ArcGISTiledMapServiceLayer para conectarse a un servicio de imágenes en caché. Cuando utiliza el servicio en caché, las teselas se recuperan del directorio de caché mediante las llamadas REST al servicio de mapas. La solicitud de tesela toma la forma http://<image service URL>/tile/<level>/<row>/<column>.

  • Si ve direcciones URL como esta, su aplicación está obteniendo las teselas correctamente de las solicitudes REST:

    http://gisserver.domain.com:6080/arcgis/rest/services/myService/ImageServer/tile/10/1723/3495

  • Si ve algún otro formato de dirección URL para su servicio de imágenes, su aplicación está recuperando la tesela de una manera menos eficiente o la caché no se está usando.

Si está viendo un servicio en caché simple en cualquier aplicación Web y realiza un desplazamiento panorámico en un área donde no existen teselas, la aplicación no muestra una imagen dinámica; por lo contrario, no ve nada.

Sugerencia:

Si el servicio de imágenes parece más lento de lo esperado, examine las direcciones URL del servicio de imágenes para verificar que la aplicación esté recuperando las teselas. Una forma de hacer esto es abrir la aplicación en Mozilla Firefox 4 y hacer clic en Firefox > Web Developer > Web Console. Cuando la consola aparece, haga clic en el botón Red y, a continuación, haga zoom o un desplazamiento panorámico en su servicio de imágenes.

Sugerencia:

Asegúrese de que los datos de la fuente de datos almacenados en la caché está en la misma proyección como el resto de los datos utilizados en la aplicación Web. Si no lo está, entonces es posible que no vea los datos, dado que la mayor parte de las aplicaciones Web no puede volver a proyectar los datos. Además, asegúrese de que el esquema de ordenamiento en teselas sea el mismo para el servicio de imágenes en caché como las otras capas en la aplicación Web en caché; de lo contrario, no todas las capas serán visibles.

Mejorar el rendimiento en la visualización de servicios de imágenes en caché

Cuando los clientes envían peticiones a ArcGIS Server para visualizar un servicio de imágenes, por lo general, la respuesta del servidor queda en caché en el servidor y se reutiliza durante cierto tiempo. Este comportamiento ayuda a ArcGIS Server a lograr el mejor rendimiento de visualización posible del servicio de imágenes. No obstante, según cómo se utilicen el servicio de imágenes y sus datos asociados en aplicaciones, es posible que deba ajustarse el tiempo durante el cual el navegador debe utilizar una respuesta del caché. Esto se puede lograr agregando una propiedad llamada cacheControlMaxAge a la Notación de objetos JavaScript (JSON) del servicio.

Cómo se utiliza la propiedad cacheControlMaxAge

Las respuestas de los servicios de imágenes de ArcGIS Server incluyen una etiqueta de entidad (ETag) y un encabezado Cache-Control. El valor del encabezado ETag es un identificador único de la respuesta. El encabezado Cache-Control tiene un valor max-age que proporciona información al navegador en relación con el tiempo máximo durante el cual se puede reutilizar la respuesta del caché del navegador. Este valor se controla mediante la propiedad cacheControlMaxAge.

Si una solicitud se repite y no se ha superado la duración máxima del caché, el navegador utiliza la respuesta del caché sin enviar la solicitud al servidor. Si se ha superado la duración máxima del caché, el navegador debe enviar la solicitud al servidor y establecer un encabezado IF-NONE-MATCH con un valor de ETag asociado correspondiente a la respuesta en su caché. ArcGIS Server evalúa la solicitud y utiliza el valor de ETag para determinar si la respuesta ha cambiado. Si la respuesta del servidor es distinta de la copia que hay en el navegador, el servidor envía una respuesta totalmente nueva al navegador. Si la respuesta es idéntica a la copia que hay en el navegador, el servidor alerta al navegador para que continúe utilizando la respuesta que tiene en el caché.

Definición del valor de la propiedad cacheControlMaxAge

Como administrador de ArcGIS Server, puede definir la propiedad cacheControlMaxAge para especificar durante cuánto tiempo se permite al navegador utilizar una respuesta que esté en el caché. Puesto que se reduce la necesidad de que ArcGIS Server envíe respuestas completas, esto permite que el caché del navegador sea más eficiente, ayuda a optimizar las aplicaciones y ahorra ancho de banda.

Para servicios de imágenes en caché que no permitan a los clientes poner teselas en el caché localmente, el valor predeterminado es 0. Esto significa que el navegador siempre vuelve a enviar las solicitudes y que ArcGIS Server procesará las solicitudes y enviará respuestas completas al navegador si el contenido ha cambiado.

En el caso de servicios de imágenes que permitan a los clientes poner las teselas en el caché local, el valor predeterminado es 12 horas (43200 segundos). Esto significa que si una solicitud se repite en un plazo de 12 horas, el navegador volverá a utilizar la respuesta de su caché. Este valor funciona correctamente para la mayoría de aplicaciones.

En el caso de servicios de imágenes en los cuales el mapa o los datos no cambien frecuentemente, se recomienda aumentar el valor predeterminado hasta 30 días (2592000 segundos) o más para minimizar el tráfico de la red.

Para agregar la propiedad cacheControlMaxAge a un servicio y especificar su valor predeterminado, se hace así:

  1. En un navegador web, abra el Directorio del administrador de ArcGIS Server e inicie sesión con un usuario que tenga privilegios de administración. La URL tiene el formato http://gisserver.domain.com:6080/arcgis/admin.
  2. Haga clic en servicios y seleccione el servicio de imágenes que desee modificar en la lista Servicios. Si no ve el servicio en la lista, es posible que se encuentre en un directorio debajo de la carpeta Raíz.
  3. En la página Servicio - <nombre de servicio> (<tipo de servicio>), desplácese a la parte inferior y haga clic en editar.
  4. En el cuadro de diálogo Propiedades del servicio, busque la sección properties del JSON del servicio.
  5. Agregue la propiedad cacheControlMaxAge a la sección y especifique el valor (en segundos) de la propiedad. Por ejemplo:
    "properties": {
      "cacheControlMaxAge": "2592000",
  6. Haga clic en Guardar cambios.
  7. En la página Servicio - <nombre del servicio> (<tipo de servicio>), compruebe que la propiedad cacheControlMaxAge y el valor especificado aparezcan en la sección Propiedades.

Superponer cachés en aplicaciones Web

Como se ha indicado anteriormente, al diseñar la caché del servicio de imágenes que se superpondrá con otros servicios en caché, hay algunos factores de diseño de caché importantes a considerar. Las aplicaciones Web creadas con ArcGIS API for JavaScript requieren que haga coincidir el sistema de coordenadas y el tamaño de teselas cuando superponga las cachés. También es una buena práctica hacer coincidir la mayor cantidad de escalas posible. La forma más sencilla de hacer esto es hacer coincidir los esquemas de ordenamiento en teselas para las dos cachés y, a continuación, crear solamente las teselas en las escalas que tienen sentido para cada caché. De esta manera, puede asegurarse de que hizo coincidir el sistema de coordenadas y el tamaño de teselas y de que el software reconoce que las dos cachés tienen escalas en común.

El esquema de ordenamiento en teselas recomendado es el esquema de ordenamiento en teselas ArcGIS Online/Bing Maps/Google Maps.

OGC WMTS

El Open Geospatial Consortium, Inc. (OGC), Servicio de mapas Web (WMTS especificación de tesela) es una especificación internacional para proporcionar mapas digitales en la Web utilizando teselas de imágenes en caché. Cuando cree un mapa en caché o un servicio de imágenes utilizando ArcGIS Server, el servicio y sus teselas son accesibles mediante la especificación WMTS automáticamente.

La dirección URL para conectarse a un servicio de imágenes en caché utilizando el protocolo WMTS utiliza la siguiente patrón:

http://gisserver.domain.com:6080/arcgis/rest/services/folder/service/ImageServer/WMTS

Más información acerca de WMTS