Оптимизация производительности в ArcGIS

Чтобы обеспечить одинаковый уровень производительности для пользователей, которые обращаются к сервису, важно понимать, что существуют различные методы оптимизации, в зависимости от типа геопространственного сервиса. Доступные опции могут зависеть от того, какой источник данных имеется на сервере или какой шаблон развертывания программного обеспечения используется. Понимание различных типов кэширования и разбиения на листы, наряду с другими формами оптимизации, является важной частью обеспечения положительного пользовательского опыта. В этом разделе кратко рассматриваются различные методы оптимизации производительности на различных уровнях архитектуры ArcGIS.

Проектирование сети для повышения производительности

Проектирование сети, в которой развернуты компоненты ArcGIS, является ключевым фактором производительности (как хорошей, так и низкой). Корпоративные системы часто являются глобальными по своей природе, обслуживая пользователей в широком спектре сетевых условий и возможностей подключения, и существуют важные различия между компонентами ArcGIS и рабочими процессами с точки зрения их зависимости от сетевого подключения. Область применения сетевых аспектов для рабочих процессов ArcGIS шире, чем эта тема, но некоторые первоначальные рекомендации и соображения включают следующее:

  • В целом, задержка в сети оказывает большее влияние на работу пользователей, чем пропускная способность сети для повседневных операций с ГИС. Для таких действий, как загрузка данных, копирование файлов или просмотр больших наборов данных изображений, также важна пропускная способность.
  • Трафик от ArcGIS Pro непосредственно к базам данных чувствителен к задержкам, и при просмотре и редактировании данных, а также при работе со схемой данных и ее изменении выполняется множество небольших запросов.
  • Трафик от ArcGIS Server к базам данных, файловым или объектным хранилищам также требует малой задержки и, как правило, высокой пропускной способности. Это позволяет серверному процессу получать доступ к данным, преобразовывать их в соответствии с запросами пользователей и отправлять пользователям оптимизированный ответ.
  • Клиенты, такие как браузеры, обращающиеся к веб-приложениям, менее чувствительны к сетевым ограничениям, чем настольные клиенты, так как Maps SDK for JavaScript оптимизирует запросы для уменьшения чрезмерного трафика.
  • Многие современные сети стирают различие между локальными и облачными ресурсами с помощью сетевого пиринга и других технологий, что может привести к очень низкой задержке между облачными ресурсами и локальными ресурсами или клиентами. В целом, рекомендуется, чтобы клиенты, серверные процессы, хранилище и базы данных размещались в одной «сетевой зоне». Например, можно разместить их все в облаке или локально, но в некоторых сценариях допустимо, чтобы клиенты были отделены от серверов или серверы от баз данных. Насколько эта конструкция подходит для вашей системы, зависит от дизайна сети и структурированного тестирования возможных последствий.

Оптимизация веб-приложений

Веб-приложения доставляются с веб-сервера, который часто является либо SaaS-сервисом ArcGIS Online, веб-сервером, на котором размещается ArcGIS Web Adaptor, либо веб-сервером, выделенным для размещения пользовательских веб-приложений. Ниже описаны методы размещения оптимизированных веб-приложений.

Процесс сборки

Перед развертыванием приложения для уменьшения размера и сложности статических ресурсов приложения, таких как файлы JavaScript, CSS и HTML, или удаления ненужной информации из этих файлов может быть использован процесс сборки (также включающий в себя или известный как минимизация или пакетирование). Хотя существует множество допустимых подходов к созданию успешного и подходящего процесса сборки, эти процессы часто тесно связаны с прикладной средой, используемой для создания веб-приложения.

Кэширование HTTP-ответов

Другим методом, используемым для оптимизации производительности веб-приложения, является включение кэширования HTTP-ответов для статических ресурсов веб-приложения. Эта конфигурация предоставляет конечному клиенту заголовок ответа от веб-сервера, указывающий, что статический ресурс может быть кэширован на клиенте, а также продолжительность его кэширования. Это позволяет клиентскому браузеру избежать полного запроса на повторную загрузку приложения, поскольку содержимое этого файла уже хранится локально на клиентском компьютере и повторно используется как есть до истечения срока действия кэша. Кэширование HTTP-ответов можно выборочно включить для определенных типов файлов либо через веб-сервер, либо через другой обратный прокси-сервер или на уровне программного обеспечения для ускорения приложений.

Сеть доставки ресурсов (CDN)

Веб-приложения, размещенные в ArcGIS Online, уже используют эти два шаблона оптимизации, поскольку они создаются до развертывания и размещаются в среде SaaS, которая использует кэширование статических ответов приложений в сети доставки ресурсов (CDN).

CDN также можно использовать с ArcGIS Enterprise, но будьте внимательны и проводите различие между статическими ресурсами, которые подходят для кэширования в CDN, такими как файлы HTML, CSS и JavaScript, и динамическими ответами REST API, которые не следует кэшировать, чтобы избежать непредвиденного поведения пользователя. Также будьте особенно внимательны при рассмотрении вопроса об использовании CDN в связи с обновлениями, поскольку кэш CDN должен быть принудительно аннулирован при обновлении программного обеспечения или изменении приложения, чтобы пользователи не получали устаревшую информацию.

Оптимизация веб-сервисов

Существует множество различных типов веб-сервисов, которые можно использовать в среде ArcGIS, некоторые будут отображать данные или реагировать на них на основе динамических источников данных. Не существует универсального подхода к кэшированию и оптимизации этих сервисов, но вместо этого существует множество шаблонов, которые следует использовать обдуманно и спланированно. Распространенные методы оптимизации веб-сервисов включают:

  • Кэши растровых листов
  • Кэши векторных листов

Оба метода берут входные данные (из любого источника), доступ к которым в противном случае можно было бы получить динамически через картографический сервис, сервис объектов или изображений, и кэшируют их в листы. Эти листы представляют собой предопределенные пакеты данных, организованные в стандартную многоуровневую сетку. Кэшированные листы позволяют клиентам одновременно запрашивать несколько предопределенных листов для заданного масштаба, которые «предварительно визуализируются» в виде листов, поэтому нет запроса к серверным данным и динамического отображения символов или объектов.

  • Кэширование растровых листов относится к данным, которые кэшируются в растровые листы. Эти листы представляют собой изображения, отображающие предварительно настроенный вид данных, который затем отображается на клиенте в виде набора из нескольких сшитых вместе листов для каждого отображаемого экстента. Растровые листы можно создавать с помощью картографических сервисов, размещенных сервисов объектов или сервисов изображений, при этом для каждого из них необходимо учитывать некоторые различия.
  • Кэширование векторных листов похоже по своей концепции, но листы представляют собой сжатые двоичные файлы (на основе буферов протоколов), в которых хранятся объекты в виде геометрии и атрибутов, разрезанные на отдельные листы, которые затем повторно собираются и визуализируются на клиенте.

Сопутствующие ресурсы:

Стратегии кэширования растровых листов

Кэширование растровых листов является эффективным методом, используемым при доставке относительно статичных данных, которые должны просматриваться в одном основном картографическом представлении. Хотя растровые листы могут быть высокопроизводительными, они не предоставляют пользователю возможности запрашивать атрибуты, идентифицировать объекты или изменять символы, отключать слои с надписями и так далее.

Хотя растровые листы использовались в течение многих лет для предоставления базовых карт, сегодня эти сервисы чаще всего используют векторные базовые карты по ряду причин, связанных с производительностью, качеством карт и гибкостью. Растровые листы по-прежнему используются для отображения многих базовых карт изображений или сервисов, основанных на спутниковой или ортофотосъемке, поскольку эти сервисы нацелены на представление единого, тщательно сбалансированного слоя изображений в качестве фона для приложений или инструментов.

Стратегии кэширования векторных слоев

Кэширование векторных листов — это новый, но широко поддерживаемый метод кэширования данных, когда растровые листы могут быть ограничены или не подходят по другим причинам. Векторные листы могут создаваться быстрее и иметь меньший размер, что дает преимущества как для хранения набора листов, так и для скорости их передачи клиенту через сетевое соединение.

Векторные листы также позволяют выполнять динамическую визуализацию с помощью стиля векторного листа, который может быть настроен или полностью обновлен в клиенте, например в браузере или в собственном приложении, и могут динамически отображать или скрывать различные слои, проводить фильтрацию на основе атрибутов и отображать несколько картографических версий одних и тех же данных, и все это с использованием одного и того же слоя векторных листов.

Кэширование как растровых, так и векторных листов имеет широкий спектр конфигураций, опций и вариантов выбора, которые необходимо сделать во время оптимизации сервиса. Обратитесь к документации Esri, ресурсам и материалам конференций для получения дополнительных рекомендаций в этих областях.

Листы объектов

Другой связанный с этим подход к оптимизации – это новая возможность ArcGIS, называемая листами объектов. Листы объектов не создаются заранее в ходе запланированного процесса (как векторные или растровые листы), а создаются поддерживающими функциональность клиентами, которые запрашивают стандартизированные экстенты данных для стандартных уровней масштабирования. Поскольку эти запросы идентичны у разных клиентов, объекты могут кэшироваться промежуточным CDN или прокси-сервером и повторно использоваться или повторно отправляться разным клиентам. Эта функциональность доступна только для клиентов, которые предназначены для ее использования, в первую очередь через ArcGIS Maps SDK for JavaScript, но также через ArcGIS Pro и собственные приложения, созданные с помощью ArcGIS Maps SDK. Использование листов объектов основано на нескольких ключевых допущениях:

  • Листы объектов используются только при выполнении запросов к векторным слоям (на основе картографического сервиса или сервиса объектов), которые поддерживают эту возможность, зависящую от версии. Размещенные сервисы объектов на основе ArcGIS Online поддерживают эту функциональность в течение нескольких лет.
  • Как правило, листы объектов автоматически запрашиваются клиентами у сервисов, которые их поддерживают. Хотя ArcGIS Online предоставляет несколько уровней кэширования для этих листов объектов, слои на базе ArcGIS Enterprise имеют дополнительные преимущества для наилучшего использования этой функции.
  • Функциональность хранилища объектов в ArcGIS Data Store разработана для поддержки кэширования листов объектов, так что пользователи, запрашивающие лист объекта, который уже был создан для другого запроса пользователя, могут получить этот существующий лист, обеспечивая быстрый ответ и кэшируя результат на определенный период времени. Для этой функциональности необходимо включить кэширование в отдельных слоях в размещенном векторном слое с помощью запроса REST API.

Размещенные сервисы объектов в ArcGIS Online включают опцию включения оптимизированной прорисовки слоев, которая может генерировать данные с пониженным разрешением в базе данных, используемые в меньших или более мелких масштабах просмотра. Эти данные с уменьшенным разрешением автоматически запрашиваются в процессе создания листов объектов при использовании этих масштабов, что, в свою очередь, повышает скорость отклика.

Источники данных и хранение

Помимо оптимизации приложений и сервисов, не менее важной областью для повышения производительности является хранение и характеристики данных, лежащих в основе конкретного сервиса. Большинство данных, используемых в веб-сервисах, носят табличный характер (за исключением сервисов изображений) и чаще всего включают в себя:

  • Геометрию — столбец данных с типом данных geography или geometry.
  • Атрибуты – столбцы с другими поддерживаемыми типами данных

Как геометрия, так и атрибуты могут быть оптимизированы для повышения производительности сервиса. Дополнительные сведения по этим областям доступны в документации ArcGIS Pro по настройкам, влияющим на производительность доступа к данным.

Оптимизация атрибутов

Оптимизировать использование атрибутов можно за счет сокращения их количества. Проще говоря, это влечет за собой процесс удаления или скрытия столбцов или атрибутов, которые могут существовать в таблице, но не нужны для вашего приложения или сценария использования. Этого можно добиться, удалив столбцы, когда они не нужны, или сняв отметку у опции их отображения на карте при создании для публикации, например, для слоев изображений карты.

Индексация атрибутов

Еще одним важным моментом является индексация атрибутов, особенно когда столбцы будут использоваться для фильтрации или запросов в приложении. Индексирование позволяет выполнять более быстрые и эффективные запросы, когда фильтры запросов основаны на известном атрибуте или запрашивают текстовый, числовой или основанный на дате атрибут, а добавление индексов атрибутов является отличным способом использования уже встроенной технологии оптимизации в реляционных базах данных.

Оптимизация геометрии

Столбцы геометрии также можно оптимизировать несколькими важными способами — в зависимости от варианта использования и требований к данным. Одним из вариантов является пространственная генерализация, часто также называемая упрощением, которая представляет собой процесс упрощения, сглаживания или снижения уровня детализации геометрического представления, такого как линия или полигон, для уменьшения размера объекта и требований к хранению и обработке. Этот процесс может быть выполнен на постоянной основе, если исходные данные слишком точны или слишком подробны с точки зрения включенных вершин, или может быть выполнен на копии данных, доступной только для чтения, которая используется для визуализации, при этом сохраняется полная детализация исходных данных.

С этим тесно связана идея снижения пространственной точности в отношении к геометрическому или географическому типу данных, который обычно хранит десятичное значение для фактических координат каждой вершины объекта, например, 124999.24541512. Это значение представляет собой линейную единицу измерения, меняющуюся в зависимости от системы координат набора данных, она может быть как большой, например, десятичные градусы, так и малой, например, футы или метры. В любом случае, обеспечение того, чтобы полученная пространственная точность отражала фактический сценарий использования данных, может быть важным как по функциональным соображениям, так и по соображениям производительности.

Для данных в системе координат с линейными единицами измерения на основе метра геометрия, хранящаяся как (123456.789101112, 234567.891011121), имеет 9 десятичных знаков точности, эквивалентной точности на нанометровом уровне. Если данные фиксируются устройством GPS с точностью до 1 м (в среднем), то эта точность значительно превышает фактическую точность измерения. Уменьшение пространственной точности набора данных за счет удаления десятичной части не только повышает точность, но и уменьшает размер геометрии при ее передаче в сетевом запросе на 50%, что помогает во всем, от процессов сериализации до ограничений пропускной способности. Использование соответствующей пространственной точности особенно важно при работе с высокодетализированными полигональными объектами, так как количество вершин может быстро достигать тысяч записей, и в результате это оказывает значительное влияние на производительность сервиса.

Помимо корректировки атрибутов и геометрии, оптимизировать производительность могут другие подходы к хранению данных более высокого уровня, в том числе:

  • Использование представлений базы данных или материализованных представлений для хранения часто используемого запроса на уровне базы данных, который затем может быть опубликован в картографическом сервисе для использования в приложениях ArcGIS
  • Обдумайте, может ли файловая база геоданных извлечь выгоду из сжатия – эта операция может повысить производительность за счет реорганизации внутреннего хранилища часто редактируемой файловой базы геоданных
  • Многопользовательские базы геоданных включают в себя множество других факторов производительности, некоторые из которых могут быть специфичными для базы данных, но важно учитывать операции сжатия и анализа наборов данных при работе с версионными данными, а также широкий спектр соображений производительности при использовании рабочего процесса с несколькими редакторами.

Мозаики и сервисы изображений

Сервисы изображений обычно строятся на основе наборов данных мозаики, которые представляют собой объекты базы геоданных, соответствующие многим из приведенных выше предложений по оптимизации. Кроме того, существует несколько методов оптимизации, специфичных для сервиса изображений:

  • Настройки мозаики, включая максимальное количество растров на мозаику и максимальный размер изображения, влияют на производительность сервиса, гарантируя, что система не будет искать слишком много изображений для построения результирующей мозаики, и что результирующее изображение не будет настолько большим, чтобы его построение и отправка обратно клиенту перегрузили сетевой доступ пользователя к мозаике.
  • Обзорные изображения наборов данных мозаики существуют в первую очередь для повышения производительности сервиса в меньших масштабах (более уменьшенных) – обзоры представляют собой предварительно отрисованные виды набора данных мозаики, либо те, в которых данные не изменяются часто, либо там, где специфика изображений не требуется в таком мелком масштабе. Создание обзорных изображений и их обновление по мере необходимости может значительно повысить производительность отображения сервиса изображений для пользователей.
  • Формат и конфигурация исходных изображений также имеют решающее значение, так как существуют более или менее оптимизированные форматы изображений, которые могут повлиять на производительность, а также такие свойства, как пирамидные слои изображений, которые могут быть рассчитаны с первоначальными затратами на вычисления, но приносят пользу всем будущим пользователям этого изображения.
Top