Tengo un enigma de que estoy recibiendo consejos mixtos sobre cómo hacerlo. Por lo tanto, me gustaría ponerlo en GIS-SE para obtener algunas respuestas justificadas.
Guión:
El cliente tiene una aplicación de mapeo web. No quiere dividirse en múltiples aplicaciones más pequeñas. Aunque esto va en contra de lo que el enfoque moderno es para los mapas en la web (es decir, muchas aplicaciones de mapas web enfocadas en un mapa web principal), creo firmemente que para algunos usuarios, intentar replicar una aplicación SIG en la web es ok (a veces )
El cliente ha almacenado en caché la mayor parte de sus capas de mapa base en servicios separados.
- El cliente aún requiere 600-700 capas adicionales en un servicio de mapas dinámicos ...
- El servicio se publicará con todas estas capas desactivadas .
- No se anticipa que los usuarios activen más de 10-40 capas a la vez.
Me imagino que tu reacción inicial a esto es similar a la mía (¡¿600+ ?! WTF ?!)
Sin embargo, el requisito se establece en piedra y ¿por qué no? Su aplicación ArcIMS anterior tenía una funcionalidad similar, entonces, ¿por qué este nuevo producto ArcGIS Server no puede hacer lo mismo? Los usuarios potencialmente necesitan poder comparar y realizar análisis cruzados en todo el rango de capas, incluso si las capas pertenecen a otros departamentos.
Antes de llegar a conclusiones, el cliente es un administrador de ArcGIS Server.
Han administrado las 600 capas según todas las reglas de mejores prácticas: por ejemplo, rangos de escala combinados con consultas de definición; anotación sobre etiquetado; generalizar capas complejas a escalas pequeñas; publicar como MSD; etc.
Problema :
¿Cuál es el mejor enfoque aquí?
Publique las 600 capas en un servicio de mapas dinámicos.
Divida las capas en agrupaciones lógicas (hidrología, planificación, ecología, servicios públicos, etc.)
Si va con el # 1, y tiene algunas capas complejas activadas. Si desea activar una capa de puntos simple, ArcGIS Server aún tendrá que mostrar las capas completas nuevamente.
Si va con el n. ° 2, cada vez que realiza una solicitud, la aplicación web podría tener que realizar varias solicitudes GET para ExportMaps desde los servicios de mapas individuales (esto es malo o crea una carga adicional para ArcGIS Server sobre el n. ° 1) ?)
Y luego esto lleva a la configuración y ajuste para garantizar que todo sea lo más rápido posible. Podemos escalar el back-end de ArcGIS Server a múltiples hosts y tener un buen hardware para instalarlo.
Si va con el # 1, puede arrojar el número máximo de instancias que AGS puede manejar.
Si va con el n. ° 2, supongo que evalúa el rendimiento de los servicios de mapas (prueba de carga y mira los tiempos de espera) y aborda las instancias mín / máx en consecuencia para asegurarse de que no haya un solo servicio que sea un 'enlace débil'.
Actualmente me estoy inclinando hacia el enfoque # 2, ya que mi cabeza aún me dice que tener 600 capas en un servicio es una locura, pero si todas están desactivadas por defecto, realmente no hay problema.
Me encantaría conocer tu opinión. Avíseme si necesita más información a través de los comentarios, pero no busca respuestas como "usar una aplicación de escritorio" o "educarlos para que hagan las cosas de manera diferente"
De las discusiones en los comentarios, no mencioné otra consideración. La aplicación dentro de la cual se consumirá el servicio tiene la capacidad de seguridad de nivel de capa (en el nivel de aplicación). Por lo tanto, el grupo de usuarios (que es bastante grande) está asignado a un rol particular, y ese rol tendrá acceso a las 600 capas completas. Otros roles serán limitados.
fuente
Respuestas:
Usó la herramienta de planificación de capacidad para ayudar a comparar un servicio de mapas superpesado con 4 servicios de mapas lite, y los resultados indican que el servicio de mapas pesados es el camino a seguir.
Puede que esta no sea la respuesta correcta, y la herramienta de planificación de capacidad no tiene en cuenta todos los factores (p. Ej., Los flujos de trabajo de los usuarios); háganme saber a través de comentarios lo que piensan.
1 servicio de mapas súper pesado:
utilización de la CPU del servidor de aplicaciones = 49.4%
utilización de la CPU del servidor de bases de datos = 7.6%
Carga de red = 16 Mbps
Tiempo de respuesta en pantalla = 0.88 segundos
(Las imágenes se pueden ver en grande por RC y abrir en una pestaña nueva)
4 servicios de mapas lite:
utilización de la CPU del servidor de aplicaciones = 55.4%
utilización de la CPU del servidor de bases de datos = 7.6%
Carga de red = 64 Mbps
Tiempo de respuesta de visualización = 0.32 segundos cada uno, por lo que entre 0.32 y 1.28 segundos dependiendo de los gastos generales del navegador web
Más lógica para soportar el enfoque de un servicio de mapas:
Todas las capas están en el mismo servicio de mapas, por lo tanto;
a. se envía una solicitud al servidor
b. un proceso SOC dibuja el mapa
c. se devuelve una imagen a través de la red
Las 40 capas se distribuyen en 4 servicios de mapas (10 capas cada una), por lo tanto;
a. Se envían 4 solicitudes al servidor
b. 4 procesos SOC dibujan un mapa
c. Se devuelven 4 imágenes a través de la red.
1a y 1c serán más rápidos y pondrán menos carga en la red que 2a y 2c.
2b puede usar el procesamiento paralelo para devolver un mapa más rápido que 1b para un solo usuario, pero este no será el caso para muchos usuarios. De hecho, la sobrecarga de las transacciones adicionales que procesa el servidor en 2b (más la carga de red adicional de 2c) verá que 1b escala mucho mejor a medida que aumenta el número de usuarios.
fuente
Aunque el uso de múltiples servicios, el escalado de capas / etiquetas, el almacenamiento en caché y el uso de etiquetas no dinámicas ayudan a mejorar la experiencia de la aplicación web, el usuario final notará el golpe inicial para cargar las más de 600 capas en una aplicación. Especialmente el tiempo que lleva poblar el TOC. Si tiene que crear una aplicación de más de 600 capas, definitivamente elegiría la opción # 2. Es posible que desee modelar su estructura de datos contra un modelo de datos (como el modelo de datos del gobierno local).
El documento técnico a continuación destaca algunas pautas de mejores prácticas interesantes y estadísticas de rendimiento para las configuraciones de aplicaciones web de ArcGIS Server.
http://www.esri.com/library/whitepapers/pdfs/creating-arcgisserver-web-mapping.pdf
fuente