Tenho um enigma de que estou recebendo conselhos contraditórios sobre como proceder. Portanto, gostaria de colocá-lo no GIS-SE para obter algumas respostas justificadas.
Cenário:
O cliente possui um aplicativo de mapeamento da web. Não deseja dividir em vários aplicativos menores. Embora isso vá contra o que a abordagem moderna é para mapas na web (por exemplo, muitos aplicativos de mapas da web focados em um mapa da web principal), acredito firmemente que, para alguns usuários, tentar replicar um aplicativo GIS na web é ok ( algumas vezes )
O cliente armazenou em cache o máximo de suas camadas do mapa base em serviços separados.
- O cliente ainda requer 600-700 camadas adicionais em um serviço de mapa dinâmico ...
- O serviço será publicado com todas essas camadas desativadas .
- Não é esperado que os usuários ativem mais de 10 a 40 camadas por vez.
Eu imagino que sua reação inicial a isso é semelhante à minha (600+ ?! WTF ?!)
No entanto - o requisito é definido em pedra e por que não? O aplicativo ArcIMS anterior tinha funcionalidade semelhante; então, por que esse produto ArcGIS Server mais recente não pode fazer o mesmo? Os usuários potencialmente precisam ser capazes de comparar e executar análises em toda a gama de camadas, mesmo que elas pertençam a outros departamentos.
Antes de tirar conclusões precipitadas, o cliente é um administrador do ArcGIS Server.
Eles administraram as 600 camadas de acordo com todas as regras de melhores práticas: por exemplo, intervalos de escala combinados com consultas de definição; anotação sobre rotulagem; generalização de camadas complexas em pequenas escalas; publicar como MSDs; etc
Problema :
Qual é a melhor abordagem aqui?
Publique todas as 600 camadas em um serviço de mapa dinâmico
Divida as camadas em agrupamentos lógicos (hidrologia, planejamento, ecologia, utilidades, etc.)
Se você for com o número 1 e tiver algumas camadas complexas ativadas. Se você deseja ativar uma camada simples de pontos, o ArcGIS Server ainda terá que renderizar as camadas inteiras novamente.
Se você optar pelo nº 2, sempre que fizer uma solicitação, o aplicativo da Web poderá ter que fazer vários pedidos GET para ExportMaps a partir dos serviços de mapas individuais (isso é ruim ou cria carga adicional para o ArcGIS Server sobre o nº 1 ?)
E isso leva à configuração e ajuste para garantir que tudo seja o mais rápido possível. Podemos escalar o back-end do ArcGIS Server para vários hosts e ter um bom hardware para acomodá-lo.
Se você optar pelo número 1, poderá lançar o número máximo de instâncias que o AGS pode manipular.
Se você for o número 2, presumo que você avalie o desempenho dos serviços de mapa (teste de carga e verifique os tempos de espera) e resolva as instâncias mín. / Máx. De acordo para garantir que não haja um serviço que seja um 'link fraco'.
Atualmente, estou me inclinando para a abordagem nº 2, pois minha cabeça ainda está me dizendo que ter 600 camadas em um serviço é loucura, mas se todas estiverem desativadas por padrão, realmente não haverá problema.
Gostaria de ouvir seus pensamentos. Informe-me se precisar de mais informações através dos comentários, mas sem procurar respostas como "usar um aplicativo de desktop" ou "educá-los para fazer as coisas de maneira diferente"
Das discussões nos comentários, deixei de mencionar outra consideração. O aplicativo em que o serviço será consumido possui a capacidade de segurança no nível da camada (no nível do aplicativo). Portanto, o grupo de usuários (que é bastante grande) é atribuído a uma função específica, e essa função terá acesso às 600 camadas completas. Outras funções serão limitadas.