Принципы работы с глобусным кэшем
ArcGlobe имеет возможность работы с очень большими источниками данных, что обеспечивается внутренней структурой хранения данных – разбиением на листы (Data Tiling). Хранение листов данных для дальнейшего использования называется кэшированием данных. При работе с ArcGlobe листы данных всегда хранятся в кэше памяти и, дополнительно, в дисковом кэше. Хранимые листы слоя данных называются кэшем слоя данных. Преимущества кэширования данных состоят в увеличении производительности и уменьшении количества повторных запросов.
Глобусный сервис плотно взаимодействует с кэшем слоев данных. Этот кэш состоит из заранее прорисованных листов для отображения данных. Сервису быстрее достать лист из кэша, чем создавать этот лист в процессе работы – "на лету". По этой причине глобусные сервисы всегда используют кэши данных.
Глобусный кэш и картографический кэш
Если вы уже работали ранее с двухмерными картографическими сервисами, то понятие картографический кэш вам уже должно быть знакомо. Глобусные кэши хранятся в другом файловом формате и в другой иерархии, нежели картографические кэши. Тем не менее, клиентские приложения Esri для работы с глобусом (ArcGlobe и ArcGIS Explorer Desktop) могут считывать также и двухмерный кэш, поэтому при наличии существующего кэша карты не обязательно повторно строить глобусный кэш.
Глобусный кэш необходим для слоев рельефа, так как построение кэша этих слоев не поддерживается при пассивном кэшировании. Для достижения наилучшей производительности рекомендуется строить кэш всех слоев.
Способы построения кэша
Объем данных, по которому строится изначальный кэш, определяется пользователем. Существует три типа кэша: полный кэш данных, частичный кэш данных и пассивный кэш данных (который строится по запросу клиентского приложения).
Полный кэш данных
При полном кэшировании данных происходит построение и сохранение листов данных для всех областей и всех уровней детализации в наборе данных. Полное кэширование данных для любого слоя может осуществляться в приложении ArcGlobe. При работе с глобусным сервисом рекомендуется построение полного кэша данных, если это отвечает практическим соображениям.
Растровые данные, отвечающие за рельеф, всегда должны подвергаться полному кэшированию – только после этого они смогут быть включены в глобусный сервис. Инструкции, освещающие данный процесс, приведены в разделе Построение листов глобусного кэша.
Частичный кэш данных
При частичном кэшировании данных построение кэша происходит только для некоторых уровней детализации, определяемых пользователем. При построении частичного кэша сервер имеет право на пассивное кэширование данных для недостающих в кэше уровней детализации.
Частичный кэш иногда бывает более выгоден, чем полный кэш – в тех случаях, когда данные покрывают большую территорию на многих уровнях детализации. Частичный кэш должен включать уровни детализации, которые, как ожидается, будут наиболее востребованы пользователями. Когда клиент запрашивает другие уровни детализации, листы кэша будут строиться пассивным кэшированием.
Пассивное кэширование данных
При пассивном кэшировании сервер строит листы кэша только для тех областей отображения и уровней детализации, которые запрошены клиентским приложением. При перемещении по глобусу сервер строит соответствующие листы и добавляет их к кэшу. Такое кэширование еще называется кэшированием по запросу, поскольку кэш строится только для тех областей, которые запрошены пользователем. Эти листы сохраняются на диск, чтобы их можно было использовать, если кто-либо другой снова потребует просмотр той же области на том же уровне детализации.
Хотя пассивное кэширование позволяет сократить сроки публикации глобусного сервиса (исключив время построения изначального кэша), для клиентов, которые будут запрашивать листы кэша первыми, производительность значительно снизится по сравнению с предварительным кэшированием.
При пассивном кэшировании поддерживаются все типы данных, кроме растровых данных, отвечающих как рельеф.
Построение кэша
Построение глобусного кэша делится на два этапа. Эти этапы рассмотрены в следующих разделах:
Директории кэша сервера
Директория кэша сервера – это папка на диске, в которой хранятся листы кэша. При создании сайта ArcGIS Server директория кэша сервера создается автоматически в указанном пользователем месте. В одной директории кэша сервера могут храниться несколько кэшей, однако, по желанию можно добавить на сервер более одной директории кэша сервера. По этой причине на закладке Кэширование (Caching) окна Редактора сервиса (Service Editor) доступен выбор директории кэша сервера, используемой для хранения кэша.
При необходимости подключения дополнительного компьютера с ГИС-сервером для поддержки сайта, следует настроить общий доступ директории кэша сервера, для того чтобы она была доступна со всех задействованных компьютеров. В ArcGlobe этот процесс происходит так же, как и при работе с ArcMap. Дополнительная информация приведена в разделах О серверных директориях и Настройка на нескольких компьютерах. Следует убедиться в том, что учетной записи ArcGIS Server дано право на запись в директорию кэша сервера, только тогда сервер сможет располагать листы в этой директории. После построения кэша можно по желанию убрать право на запись.
Принципы хранения глобусного кэша
Все глобусные кэши хранятся в папке GlobeCache в директории кэша сервера. Нет необходимости создавать эту папку GlobeCache, поскольку программное обеспечение сделает это самостоятельно при создании первого глобусного сервиса. При создании любого глобусного сервиса, кэши слоев автоматически размещаются в папке GlobeCache в указанной пользователем директории кэша сервера.
Одна директория кэша сервера может быть указана для нескольких глобусных сервисов. Все глобусные сервисы, хранимые в одной директории кэша сервера, располагаются в одной и той же папке GlobeCache.
Каждый слой глобусного сервиса располагается в отдельном, уникальном кэше в директории GlobeCache. Единственными исключениями являются объединенные составные слои и слои, располагающиеся в сети (стандарта WMS, слои картографического сервиса и пр.); в этом случае все дочерние слои в группе имеют общий кэш.
Кэши всех слоев одного глобусного сервиса должны располагаться в одной директории кэша сервера. Различные глобусные сервисы могут иметь различные директории кэша сервера, но, при наличии места на диске, рекомендуется размещать кэш всех глобусных сервисов в одной директории.
Структура папок в директории кэша сервера
Директорию кэша сервера можно открыть для просмотра листов кэша. Изображения листов глобуса могут быть просмотрены только в ArcGlobe или ArcGIS Explorer Desktop, но все равно есть возможность просмотреть имена, размер и местоположение файлов.
Кэши в папке GlobeCache организованы в иерархию по директориям. Директория верхнего уровня носит имя слоя глобуса. Внутри этой директории расположены поддиректории, отвечающие за шесть граней глобуса, а также файл слоя, связанный с кэшем. Далее следуют папки, отвечающие за уровни детализации глобусного кэша, затем папки, соответствующие рядам для данного уровня детализации. В последних располагаются файлы листов кэша.
Необходимо ли строить глобусный кэш при наличии двухмерного кэша карты?
При работе с двухмерными и трехмерными данными на глобусе в клиентских приложениях ArcGIS наивысшая производительность достигается с применением схемы листов ArcGIS Online/Bing Maps/Google Maps. В этом случае отображение может даже превосходить по скорости кэш глобуса. При наличии двухмерного кэша с данной схемой листов нет необходимости в построении и обслуживании глобусного кэша. Если же данная схема листов недоступна, тогда наивысшую производительность даст кэш глобусного сервиса.
Двухмерные картографические кэши, построенные на основе системы координат WGS 1984, используемой ArcGIS Online, также будут совпадать с глобусным кэшем по скорости или даже превосходить его.
Добавление картографического сервиса к ArcGlobe может потребоваться в том случае, если необходимо построить трехмерный глобусный кэш, идентичный имеющемуся двухмерному кэшу карты. В таком случае работа будет связана только с построением кэша, а не с навигацией по глобусу.