Ich habe ein Rätsel, dass ich gemischte Ratschläge bekomme, wie ich vorgehen soll. Deshalb möchte ich es für einige begründete Antworten an GIS-SE senden.
Szenario:
Der Client verfügt über eine Web-Mapping-Anwendung. Möchte nicht in mehrere kleinere Anwendungen aufgeteilt werden. Obwohl dies gegen den heutigen Ansatz für Karten im Web verstößt (dh viele fokussierte Webkarten-Apps über eine Haupt-Webkarte), bin ich der festen Überzeugung, dass für einige Benutzer der Versuch, eine GIS-Anwendung im Web zu replizieren, von Vorteil ist ok ( manchmal )
Der Client hat einen Großteil seiner Grundkarten-Layer in separaten Diensten zwischengespeichert.
- Der Client benötigt noch weitere 600-700 Layer in einem dynamischen Kartendienst ...
- Der Dienst wird mit all diesen Schichten veröffentlicht wird ausgeschaltet .
- Es wird nicht erwartet, dass Benutzer mehr als 10-40 Ebenen gleichzeitig aktivieren.
Ich kann mir vorstellen, dass Ihre anfängliche Reaktion darauf meiner ähnelt (600+ ?! WTF ?!).
Aber - die Anforderung ist in Stein gemeißelt und warum nicht? Ihre frühere ArcIMS-Anwendung hatte ähnliche Funktionen. Warum kann dieses neuere ArcGIS Server-Produkt nicht dasselbe tun? Die Benutzer müssen möglicherweise in der Lage sein, Vergleiche durchzuführen und Analysen für den gesamten Bereich von Schichten durchzuführen, selbst wenn die Schichten zu anderen Abteilungen gehören.
Bevor Sie zu Schlussfolgerungen gelangen, ist der Client ein erfahrener ArcGIS Server-Administrator.
Sie haben die 600 Schichten nach allen Best-Practice-Regeln verwaltet: zB Skalenbereiche kombiniert mit Definitionsabfragen; Beschriftung über Beschriftung; Verallgemeinerung komplexer Schichten in kleinen Maßstäben; als MSDs veröffentlichen; etc
Problem :
Was ist der bessere Ansatz hier?
Veröffentlichen Sie alle 600 Layer in einem dynamischen Karten-Service
Teilen Sie die Ebenen in logische Gruppierungen auf (Hydrologie, Planung, Ökologie, Versorgungsunternehmen usw.).
Wenn Sie mit # 1 gehen, und Sie haben ein paar komplexe Ebenen aktiviert. Wenn Sie einen einfachen Punkt-Layer aktivieren möchten, muss ArcGIS Server weiterhin die gesamten Layer rendern, die erneut angezeigt werden.
Wenn Sie sich für Nummer 2 entscheiden, muss die Webanwendung möglicherweise jedes Mal, wenn Sie eine Anforderung stellen, mehrere GET-Anforderungen für ExportMaps von den einzelnen Karten-Services senden (ist dies nicht der Fall oder führt zu einer zusätzlichen Belastung von ArcGIS Server über Nummer 1 ?)
Das führt dann zu Konfiguration und Abstimmung, um sicherzustellen, dass alles so schnell wie möglich geht. Wir können das Back-End von ArcGIS Server auf mehrere Hosts skalieren und verfügen über eine gute Hardware, auf der es installiert werden kann.
Wenn Sie sich für Nummer 1 entscheiden, können Sie die maximale Anzahl von Instanzen ausgeben, die von AGS verarbeitet werden können.
Wenn Sie sich für Nummer 2 entscheiden, gehen wir davon aus, dass Sie die Leistung der Kartendienste bewerten (Auslastungstests und Wartezeiten) und die Min / Max-Instanzen entsprechend adressieren, um sicherzustellen, dass es keinen Dienst gibt, der ein „schwaches Glied“ ist.
Im Moment neige ich zur # 2 Annäherung, da mein Kopf mir immer noch sagt, dass 600 Schichten in einem Dienst Wahnsinn sind, aber wenn sie alle standardmäßig ausgeschaltet sind, gibt es wirklich kein Problem.
Würde gerne deine Gedanken hören. Lassen Sie mich wissen, wenn Sie weitere Informationen über die Kommentare benötigen, aber nicht nach Antworten wie "Verwenden einer Desktop-Anwendung" oder "Lernen Sie sie dazu, Dinge anders zu machen" suchen.
In den Kommentardiskussionen habe ich eine andere Überlegung nicht erwähnt. Die Anwendung, in der der Dienst verwendet wird, bietet die Möglichkeit der Sicherheit auf Ebenenebene (auf Anwendungsebene). Daher wird die Gruppe von Benutzern (die ziemlich groß ist) einer bestimmten Rolle zugewiesen, und diese Rolle hat Zugriff auf die vollständigen 600 Ebenen. Andere Rollen sind begrenzt.