ArcGIS позволяет сделать ряд ресурсов доступными для пользователей: приложения, карты, слои, сервисы и данные. Чтобы обеспечить максимальную производительность для пользователей, которые обращаются к сервису, важно понимать, что существуют различные методы оптимизации, в зависимости от типа ресурсов. Доступные варианты могут зависеть от внутреннего источника данных, типа геопространственного сервиса или других факторов. Понимание различных типов оптимизации является важной частью обеспечения положительного и эффективного пользовательского опыта.
В этом разделе рассматриваются общие стратегии оценки потребностей пользователей, проектирования сети и вариантов кэширования. Дополнительную информацию о конкретных стратегиях оптимизации см. в разделах Оптимизация веб-карт и приложений и Оптимизация источников данных и хранилища.
Оптимизация — это больше, чем просто минимизация времени отклика на HTTP-запросы. Сервис, который отправляет быстрые ответы с низкой задержкой, но бесполезные, не оптимизирован должным образом. Определите, кто и зачем будет пользоваться ресурсом или сервисом. Поймите, на какие вопросы пользователь захочет получить ответы, взаимодействуя с ресурсом. Используйте структурированное тестирование, чтобы убедиться, что ресурс хорошо работает на различных клиентских устройствах, с которых пользователи будут получать доступ к ресурсам. Учитывайте отзывы пользователей о полезности ресурса как во время разработки, так и после того, как ресурс стал доступен для общего использования.
Потребности пользователей также помогут понять, какие виды оптимизации производительности стоит реализовать. Если ресурс будет использоваться небольшой внутренней группой всего несколько раз в день, не так важно оптимизировать его до такой степени, чтобы он масштабировался до тысяч запросов в секунду. Однако эта же оптимизация может быть жизненно важной для ресурса, которым пользуется глобальная публичная аудитория.
Проектирование сети, в которой развернуты компоненты ArcGIS, является ключевым фактором производительности (как хорошей, так и низкой). Корпоративные системы часто являются глобальными по своей природе, обслуживая пользователей в широком спектре сетевых условий и возможностей подключения, и существуют важные различия между компонентами ArcGIS и рабочими процессами с точки зрения их зависимости от сетевого подключения. Область применения сетевых аспектов для рабочих процессов ArcGIS шире, чем эта тема, но некоторые первоначальные рекомендации и соображения включают следующее:
Повторные запросы ресурсов могут потребовать значительных вычислительных затрат на создание этих ресурсов. Предоставление кэшированного ответа позволяет избежать этих затрат, сокращая как использование системных ресурсов, так и время отклика. Максимальное использование кэширования может значительно повысить производительность ресурсов ArcGIS.
Не существует универсального подхода к использованию кэширования с учетом разнообразия веб-приложений и сервисов, которые можно использовать в ArcGIS, а вместо этого существует множество шаблонов, которые следует использовать обдуманно и спланированно. Распространенные методы кэширования включают в себя:
Кэширование растровых и векторных листов принимает входные данные, которые в противном случае могли бы быть доступны динамически через сервис карты, объектов или изображений, и кэширует их в листы. Эти листы представляют собой предопределенные стандартизированные изображения, на которых показываются отображенные данные. Кэшированные листы позволяют клиентам запрашивать несколько предварительно отрисованных листов одновременно для заданного масштаба, поэтому приходится ждать, пока сервер получит доступ к любым внутренним данным и отрисует их. Кэширование растровых и векторных листов обеспечивается путем создания слоев листов, в то время как кэширование листов объектов требует дополнительной настройки свойств сервиса.
Каждая из этих стратегий кэширования имеет широкий спектр конфигураций, опций и вариантов выбора, которые необходимо сделать во время оптимизации сервиса. Обратитесь к документации Esri, ресурсам и материалам конференций для получения дополнительных рекомендаций в этих областях.
Сопутствующие ресурсы:
Листы слоев изображений карты представляют собой растровые изображения, отображающие предварительно настроенный вид данных, который затем отображается на клиенте в виде набора из нескольких сшитых вместе листов для каждого отображаемого экстента. Растровые листы можно создавать с помощью картографических сервисов, размещенных сервисов объектов или сервисов изображений, при этом для каждого из них необходимо учитывать некоторые различия.
Кэширование растровых листов является эффективным методом, используемым при доставке относительно статичных данных, которые должны просматриваться в одном основном картографическом представлении. Создание кэша карты может быть трудоемким как по времени, так и по вычислительным ресурсам, поэтому оно лучше всего подходит для данных, которые обновляются нечасто. Хотя растровые листы могут обеспечить отличную производительность и масштабируемость, они не предоставляют пользователю возможности запрашивать атрибуты, идентифицировать объекты или изменять символы, отключать слои с надписями и так далее.
Хотя растровые листы использовались в течение многих лет для предоставления базовых карт, сегодня эти сервисы чаще всего используют векторные базовые карты по ряду причин, связанных с производительностью, качеством карт и гибкостью. Растровые листы по-прежнему используются для отображения многих базовых карт изображений или сервисов, основанных на спутниковой или ортофотосъемке, поскольку эти сервисы нацелены на представление единого, тщательно сбалансированного слоя изображений в качестве фона для приложений или инструментов.
Чтобы узнать больше о кэшировании слоя изображений карты, ознакомьтесь со следующими ресурсами:
Кэширование векторных листов похоже по своей концепции на кэширование растровых листов, но листы представляют собой сжатые двоичные файлы (на основе буферов протоколов), в которых хранятся векторные объекты в виде геометрии и атрибутов, разрезанные на отдельные листы, которые затем повторно собираются и визуализируются на клиенте в соответствии с отдельным определением стиля.
Кэширование векторных листов уместно в тех случаях, когда растровые листы могут быть ограничены или непригодны по другим причинам. Векторные листы могут создаваться быстрее и иметь меньший размер, чем растровые листы, что дает преимущества как для хранения набора листов, так и для скорости их передачи клиенту через сетевое соединение.
Векторные листы также позволяют выполнять динамическую визуализацию с помощью стиля векторного листа, который может быть настроен или полностью обновлен в клиенте, например в браузере или в собственном приложении, и могут динамически отображать или скрывать различные слои, проводить фильтрацию на основе атрибутов и отображать несколько картографических версий одних и тех же данных, и все это с использованием одного и того же слоя векторных листов.
В отличие от векторных листов и растровых листов, листы объектов не создаются заранее в рамках запланированного процесса. Вместо этого они создаются поддерживающими функциональность клиентами, запрашивающими стандартизированные экстенты данных для стандартных уровней масштабирования. Поскольку эти запросы идентичны у разных клиентов, объекты могут кэшироваться и повторно использоваться или повторно отправляться разным клиентам. Эта функциональность доступна только для клиентов, которые предназначены для ее использования, в первую очередь через ArcGIS Maps SDK for JavaScript, а также через ArcGIS Pro и собственные приложения, созданные с помощью ArcGIS Maps SDKs.
Использование листов объектов основано на двух ключевых допущениях:
Размещенные сервисы объектов в ArcGIS Online также включают опцию включения оптимизированной прорисовки слоев, которая может генерировать данные с пониженным разрешением в базе данных, используемые для отображения меньших (более удаленных) масштабов. Эти данные с уменьшенным разрешением автоматически запрашиваются в процессе создания листов объектов при использовании этих масштабов, что, в свою очередь, повышает скорость отклика.
Дополнительные сведения о кэшировании листов объектов см. в следующих ресурсах:
В ArcGIS Enterprise вы можете настроить как картографические сервисы, так и сервисы объектов так, чтобы они возвращали заголовок Cache-Control, который позволяет браузеру пользователя использовать преимущества кэширования содержимого ответа на основе значения Etag
.
Когда клиенты отправляют запросы в ArcGIS Server для запроса экспорта карты или запроса к сервису объектов с примененной настройкой, ответ от сервера может быть кэширован браузером и повторно использован в течение определенного периода времени. Однако в зависимости от использования сервиса объектов и связанных с ним данных в приложении, может потребоваться изменить время использования кэшированного ответа. Это можно сделать с помощью добавления свойства cacheControlMaxAge
к определению JavaScript Object Notation (JSON) сервиса.
Сеть доставки ресурсов (CDN) кэширует ресурсы на периферийных серверах, расположенных в непосредственной географической близости от пользователя. CDN сокращают время отклика на запросы, устраняя необходимость в запросе к базе данных и уменьшая задержку из-за длительного перемещения по сети.
Как общедоступные размещенные векторные слои, так и статические ресурсы веб-приложений, размещенные в ArcGIS Online, автоматически используют глобальную CDN для кэширования листов объектов и статических ответов приложений. Более подробно об управлении кэшем CDN для размещенных векторных слоев в ArcGIS Online. ArcGIS Online CDN также используется для ускорения отклика для общедоступных кэшированных слоев изображений карт (растровые листы) и слоев векторных листов, а также различных сервисов базовых карт ArcGIS Online.
CDN также можно использовать с веб- приложениями, размещенными в ArcGIS Enterprise, но будьте внимательны и проводите различие между статическими ресурсами, которые подходят для кэширования в CDN, такими как файлы HTML, CSS и JavaScript, и более динамическими ответами REST API, которые не следует кэшировать, чтобы избежать непредвиденного поведения пользователя. Также обратите особое внимание на использование CDN в связи с обновлениями. Кэш CDN должен быть принудительно аннулирован при обновлении ArcGIS Enterprise или изменении приложения, чтобы гарантировать, что пользователи не получат устаревшую информацию.
В записи блога подход Сети доставки ресурсов (CDN) к ArcGIS Enterprise с использованием AWS CloudFront приведен один из примеров использования CDN с ArcGIS Enterprise.