Mam zagadkę, że otrzymuję mieszane porady, jak się poruszać. Dlatego chciałbym przekazać go do GIS-SE w celu uzyskania uzasadnionych odpowiedzi.
Scenariusz:
Klient ma aplikację do mapowania stron internetowych. Nie chce dzielić się na wiele mniejszych aplikacji. Chociaż jest to sprzeczne z tym, co jest współczesne podejście do map w Internecie (tj. Wiele skoncentrowanych aplikacji do map internetowych na jednej głównej mapie), mocno wierzę, że dla niektórych użytkowników próba replikacji aplikacji GIS w sieci jest ok ( czasami ).
Klient zbuforował tyle swoich warstw mapy bazowej do osobnych usług.
- Klient nadal wymaga dodatkowych 600-700 warstw w dynamicznej usłudze map ...
- Usługa zostanie opublikowana z wyłączonymi wszystkimi tymi warstwami .
- Nie przewiduje się, że użytkownicy będą włączać więcej niż 10–40 warstw jednocześnie.
Wyobrażam sobie, że twoja początkowa reakcja na to jest podobna do mojej (600+ ?! WTF ?!)
Jednak - wymaganie jest określone w kamieniu, a dlaczego nie? Ich poprzednia aplikacja ArcIMS miała podobną funkcjonalność, więc dlaczego ten nowszy produkt ArcGIS Server nie robi tego samego? Użytkownicy mogą potencjalnie mieć możliwość porównywania i przeprowadzania analizy całego zakresu warstw, nawet jeśli warstwy te należą do innych działów.
Zanim wyciągniesz wnioski, klient jest zdeklarowanym administratorem ArcGIS Server.
Administrowali 600 warstwami zgodnie z wszystkimi zasadami najlepszych praktyk: np. Zakresy skali w połączeniu z zapytaniami dotyczącymi definicji; adnotacja na etykiecie; uogólnienie złożonych warstw w małych skalach; publikować jako MSD; itp
Problem :
Jakie jest tutaj lepsze podejście?
Opublikuj wszystkie 600 warstw w jednej dynamicznej usłudze map
Podziel warstwy na logiczne grupy (hydrologia, planowanie, ekologia, narzędzia itp.)
Jeśli wybierzesz numer 1 i masz włączonych kilka złożonych warstw. Jeśli chcesz włączyć prostą warstwę punktów, wówczas ArcGIS Server nadal będzie musiał ponownie renderować całe warstwy.
Jeśli wybierzesz numer 2, potencjalnie za każdym razem, gdy wysyłasz żądanie, aplikacja sieciowa może być zmuszona do wysłania kilku żądań GET dla ExportMaps z poszczególnych usług mapowych (czy to źle, czy też powoduje dodatkowe obciążenie ArcGIS Server ponad numer 1 ?)
Prowadzi to do konfiguracji i dostrajania, aby wszystko było jak najszybciej. Możemy przeskalować zaplecze ArcGIS Server do wielu hostów i mieć dobry sprzęt, aby go obsadzić.
Jeśli wybierzesz numer 1, możesz rzucić maksymalną liczbę instancji obsługiwanych przez AGS.
Jeśli wybierzesz numer 2, zakładam, że oceniasz wydajność usług mapowych (testowanie obciążenia i sprawdzanie czasów oczekiwania) i odpowiednio reagujesz na wystąpienia min / max, aby upewnić się, że nie ma jednej usługi, która byłaby „słabym łączem”.
Obecnie skłaniam się ku podejściu nr 2, ponieważ moja głowa wciąż mówi mi, że posiadanie 600 warstw w jednej usłudze to szaleństwo, ale jeśli wszystkie są domyślnie wyłączone, naprawdę nie ma problemu.
Bardzo chciałbym usłyszeć twoje myśli. Daj mi znać, jeśli potrzebujesz więcej informacji za pomocą komentarzy, ale nie szukasz odpowiedzi takich jak „użyj aplikacji komputerowej” lub „naucz ich, aby działali inaczej”
Z dyskusji w komentarzach nie wspomniałem o innym rozważaniu. Aplikacja, w ramach której usługa będzie używana, ma możliwość zabezpieczenia na poziomie warstwy (na poziomie aplikacji). Dlatego grupa użytkowników (która jest dość duża) przypisana jest do określonej roli i ta rola będzie miała dostęp do pełnych 600 warstw. Inne role będą ograniczone.