ArcGIS ermöglicht es Ihnen, Benutzern eine Reihe von Ressourcen zur Verfügung zu stellen: Apps, Karten, Layer, Services und Daten. Um die beste Performance für Benutzer zu erzielen, die auf eine Ressource zugreifen, ist es wichtig, zu verstehen, dass es je nach Ressourcentyp unterschiedliche Optimierungsmethoden gibt. Die verfügbaren Optionen können von der Backend-Datenquelle, der Art des räumlichen Service oder anderen Faktoren abhängen. Das Verständnis der verschiedenen Arten der Optimierung spielt eine wichtige Rolle, wenn es darum geht, eine positive und effektive User Experience zu gewährleisten.
In diesem Abschnitt werden allgemeine Strategien zum Bewerten der Benutzeranforderungen, des Netzwerkdesigns und der Caching-Optionen behandelt. Weitere Informationen zu spezifischen Optimierungsstrategien finden Sie unter Optimieren von Webkarten und -Apps und Optimieren von Datenquellen und -speicherung.
Bei der Optimierung geht es um mehr als die Minimierung der Antwortzeit für HTTP-Anfragen. Ein Service, der schnelle, aber nicht hilfreiche Antworten mit geringer Latenz sendet, ist nicht unbedingt optimiert. Ermitteln Sie, wer die Ressource oder den Service verwenden soll und warum. Beschäftigen Sie sich mit den Fragen, die der Benutzer beantwortet haben möchte, indem Sie mit der Ressource interagieren. Verwenden Sie strukturierte Tests, um eine gute Performance der Ressource auf den verschiedenen Clientgeräten, von denen aus Benutzer auf die Ressourcen zugreifen, zu gewährleisten. Berücksichtigen Sie das Feedback der Benutzer zur Nützlichkeit der Ressource während der Entwicklung und nach der Bereitstellung der Ressource für die allgemeine Verwendung.
Die Benutzeranforderungen geben auch Aufschluss darüber, welche Arten von Performance-Optimierungen es wert sind, implementiert zu werden. Wenn eine Ressource nur wenige Male am Tag von einer kleinen internen Gruppe verwendet wird, ist es nicht so wichtig, sie so weit zu optimieren, dass sie auf Tausende von Anforderungen pro Sekunde skaliert wird. Diese Art der Optimierung könnte jedoch für eine Ressource, die von einer öffentlichen Zielgruppe weltweit genutzt wird, von entscheidender Bedeutung sein.
Das Design des Netzwerks, in dem ArcGIS-Komponenten bereitgestellt werden, trägt wesentlich zur Performance bei (sowohl zu einer guten als auch zu einer schlechten Performance). Unternehmenssysteme sind häufig globaler Natur und werden von Benutzern über eine Vielzahl von Netzwerkbedingungen und -verbindungen hinweg verwendet. Außerdem bestehen wichtige Unterschiede zwischen ArcGIS-Komponenten und -Workflows in Bezug auf ihre Abhängigkeit von der Netzwerkverbindung. Der Umfang der Netzwerküberlegungen für ArcGIS-Workflows geht über dieses Thema hinaus, aber einige erste Empfehlungen und Überlegungen umfassen die folgenden:
Wiederholte Anforderungen von Ressourcen können einen erheblichen Rechenaufwand bei der Generierung dieser Ressourcen mit sich bringen. Durch das Bereitstellen einer zwischengespeicherten Antwort kann dieser Aufwand vermieden werden. So werden weniger Systemressourcen beansprucht und die Antwortzeiten reduziert. Durch eine möglichst umfangreiche Nutzung von Caching kann die Performance von ArcGIS-Ressourcen erheblich verbessert werden.
Es gibt keinen einheitlichen Ansatz für die Verwendung von Caching mit der Vielzahl von Webanwendungen und Services, die in ArcGIS verwendet werden können, sondern eine Vielzahl von Mustern, die mit Bedacht und Planung verwendet werden sollten. Zu den gängigen Methoden für das Caching gehören:
Beim Caching von Raster- und Vektorkacheln werden Eingabedaten, auf die andernfalls dynamisch über eine Karte, ein Feature oder einen Image-Service zugegriffen werden könnte, in Kacheln gecacht. Diese Kacheln stellen vordefinierte standardisierte Bilder dar, die gerenderte Daten anzeigen. Gecachte Kacheln ermöglichen es Clients, mehrere vorab gerenderte Kacheln gleichzeitig für einen bestimmten Maßstab anzufordern. Dadurch kommt es zu einer Wartezeit, während der Server auf die Backend-Daten zugreift und diese abruft. Das Caching von Raster- und Vektorkacheln wird durch das Erstellen von Kachel-Layern ermöglicht, während das Caching von Feature-Kacheln eine zusätzliche Konfiguration der Eigenschaften eines Service erfordert.
Jede dieser Caching-Strategien ist mit einer Vielzahl von Konfigurationen, Optionen und Auswahlentscheidungen verbunden, die während der Optimierung eines Service festgelegt werden müssen. Weitere Informationen zu diesen Bereichen finden Sie in der Dokumentation, in den Ressourcen und in den Konferenzberichten von Esri.
Zugehörige Ressourcen:
Kartenbild-Layer-Kacheln sind Raster-Bilder, die eine vorab gerenderte Ansicht der Daten anzeigen, die dann auf dem Client als ein Satz mehrerer zusammengefügter Kacheln für jede Anzeigeausdehnung dargestellt werden. Raster-Kacheln können aus Kartenservices, gehosteten Feature-Services oder Image-Services erstellt werden, wobei für die einzelnen Kacheln leicht unterschiedliche Überlegungen gelten.
Raster-Kachel-Caching ist eine effektive Methode, wenn relativ statische Daten bereitgestellt werden, die in einer primären kartografischen Darstellung angezeigt werden sollen. Die Erstellung von Karten-Caches kann zeit- und rechenintensiv sein. Sie eignet sich daher am besten für Daten, die selten aktualisiert werden. Raster-Kacheln können zwar eine hervorragende Performance und Skalierbarkeit aufweisen, bieten dem Benutzer jedoch nicht die Möglichkeit, Attribute abzufragen, Features zu identifizieren, Symbole zu ändern, die Beschriftung von Layern zu deaktivieren usw.
Während Raster-Kacheln viele Jahre lang zum Bereitstellen kartografischer Grundkarten verwendet wurden, werden bei diesen Services heute aus verschiedenen Gründen der Performance, Kartenqualität und Flexibilität am häufigsten Vektorgrundkarten verwendet. Raster-Kacheln werden nach wie vor verwendet, um viele Bilddaten-Grundkarten oder Services auf der Grundlage von Satelliten- oder Orthofotografien bereitzustellen, da diese Services darauf abzielen, einen einzelnen, sorgfältig ausbalancierten Bilddaten-Layer als Hintergrund für Anwendungen oder Werkzeuge darzustellen.
Weitere Informationen zum Caching von Kartenbild-Layern finden Sie in den folgenden Ressourcen:
Vektorkachel-Caching ist ähnlich wie Raster-Kachel-Caching, aber die Kacheln sind komprimierte Binärdateien (basierend auf Protokollpuffern), in denen Vektor-Features als Geometrie und Attribute gespeichert werden. Sie werden in einzelne Kacheln unterteilt und dann anhand einer anderen Style-Definition wieder zusammengesetzt und auf dem Client gerendert.
Das Caching von Vektorkacheln eignet sich dort, wo eine Raster-Kachel möglicherweise einschränkend oder aus anderen Gründen ungeeignet ist. Vektorkacheln können schneller als Raster-Kacheln generiert werden und kleiner als diese sein, was Vorteile in Bezug auf die Speicherung des Kachelsatzes sowie auf die Geschwindigkeit hat, mit der die Vektorkacheln über eine Netzwerkverbindung an einen Client übertragen werden.
Vektorkacheln ermöglichen auch dynamisches Rendering durch die Verwendung eines Vektorkachel-Styles, der vollständig im Client, z. B. einem Browser oder einer nativen Anwendung, konfiguriert oder aktualisiert werden kann und verschiedene Layer dynamisch ein- oder ausblenden, basierend auf Attributen filtern und mehrere verschiedene kartografische Versionen derselben Daten anzeigen kann, die alle denselben einzelnen Vektorkachel-Layer verwenden.
Im Gegensatz zu Vektorkacheln und Raster-Kacheln werden Feature-Kacheln nicht durch einen geplanten Prozess vorab generiert. Stattdessen werden sie von funktionalitätsbezogenen Clients generiert, die standardisierte Datenausdehnungen für Standardzoomstufen anfordern. Da diese Anforderungen zwischen verschiedenen Clients identisch sind, können die Features gecacht und wiederverwendet oder erneut an andere Clients gesendet werden. Diese Funktionalität ist ausschließlich für die Verwendung durch Clients verfügbar, die für die Verwendung dieses Features konzipiert sind, hauptsächlich über das ArcGIS Maps SDK for JavaScript sowie über ArcGIS Pro und native Anwendungen, die mit ArcGIS Maps SDKs erstellt wurden.
Die Verwendung von Feature-Kacheln beruht auf zwei wichtigen Annahmen:
Gehostete Feature-Services in ArcGIS Online enthalten eine Option zum Aktivieren einer optimierten Layer-Darstellung, mit der Daten mit reduzierter Auflösung in der Datenbank generiert werden können, um kleinere (verkleinerte) Ansichtsmaßstäbe anzuzeigen. Diese Daten mit reduzierter Auflösung werden bei Verwendung dieser Maßstäbe automatisch vom Feature-Kachel-Generierungsprozess abgefragt, was wiederum die Antwort-Performance verbessert.
Weitere Informationen zum Caching von Feature-Kacheln finden Sie in den folgenden Ressourcen:
In ArcGIS Enterprise können Sie sowohl Karten- als auch Feature-Services so konfigurieren, dass ein Cache-Control-Header zurückgegeben wird. Dieser ermöglicht es dem Browser eines Benutzers, das Caching von Antwortinhalten basierend auf einem ETag-Wert
zu nutzen.
Wenn Clients Anforderungen an ArcGIS Server senden, um einen Kartenexport anzufordern oder einen Feature-Service abzufragen, auf den diese Einstellung angewendet wurde, kann die Antwort vom Server in der Regel im Browser gecacht und für einen bestimmten Zeitraum wiederverwendet werden. Abhängig davon, wie der Karten- oder Feature-Service und die ihm zugeordneten Daten in Anwendungen verwendet werden, können Sie die Länge des Zeitraums anpassen, in der der Browser eine Antwort aus seinem Cache verwendet. Dies können Sie erreichen, indem Sie eine Eigenschaft mit dem Namen cacheControlMaxAge
zur JavaScript Object Notation (JSON)-Definition des Service hinzufügen.
Ein Content Delivery Network (CDN) cacht Inhalte auf Edgeservern, die sich in größerer geografischer Nähe zum Benutzer befinden. CDNs verkürzen die Antwortzeiten für Anfragen, indem sie eine Datenbankabfrage überflüssig machen und die Latenz durch längere Netzwerkreisen reduzieren.
Sowohl öffentlich freigegebene gehostete Feature-Layer als auch statische Ressourcen der Webanwendung, die in ArcGIS Online gehostet werden, verwenden automatisch ein globales CDN für das Caching von Feature-Kacheln und statischen App-Antworten. Erfahren Sie mehr über das Steuern des CDN-Cache für gehostete Feature-Layer in ArcGIS Online. Das ArcGIS Online CDN wird auch verwendet, um Antworten für öffentlich gecachte Kartenbild-Layer (Raster-Kacheln) und Vektorkachel-Layer sowie für die verschiedenen ArcGIS Online-Grundkarten-Services zu beschleunigen.
CDNs können auch mit in ArcGIS Enterprise gehosteten Webanwendungen verwendet werden. Achten Sie jedoch darauf, zwischen statischen Ressourcen, die für das Caching in einem CDN geeignet sind, wie z. B. HTML-, CSS- und JavaScript-Dateien, und dynamischen REST-API-Antworten zu unterscheiden, die nicht gecacht werden sollten, um unerwartetes Benutzerverhalten zu vermeiden. Seien Sie auch bei der Verwendung eines CDN besonders vorsichtig in Bezug auf Upgrades. Der CDN-Cache sollte zwangsweise ungültig gemacht werden, wenn ein Upgrade für ArcGIS Enterprise durchgeführt oder eine Anwendung geändert wird. Dadurch wird sichergestellt, dass Benutzer keine veralteten Informationen erhalten.
Der Blogbeitrag A Content Delivery Network (CDN) approach to ArcGIS Enterprise using AWS CloudFront enthält ein Beispiel für die Verwendung eines CDNs mit ArcGIS Enterprise.