Настройка и конфигурация сервисов

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

Слияние сервисов

Все сервисы, опубликованные с помощью ArcGIS 10.1 for Server объединяются в пул. Это означает, что экземпляры сервиса могут совместно использоваться различными сеансами приложений.

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

Очистка

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

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

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

При очистке уничтожаются и воссоздаются все запущенные экземпляры сервиса независимо от того, превышает ли число экземпляров минимальное значение. Для периодического сокращения числа запущенных экземпляров до заданного минимума сервис нужно остановить и перезапустить. Хороший способ автоматизировать этот процесс – создать скрипт Python, shell-скрипт или пакетный скрипт Windows, запускающий исполняемый файл командной строки с административным API-интерфейсом ArcGIS Server. Пользовательский исполняемый файл принимает имя сервера, имя сервиса, тип сервиса и то, следует ли сервис запустить или остановить, в качестве аргументов командной строки.

Время между событиями очистки называется интервалом очистки. Интервал очистки по умолчанию равен 24 часам, но его можно изменить в диалоговом окне Редактор сервисов (Service Editor). Вы можете выбрать время первоначальной очистки конфигурации. С этого времени очистка будет происходить по истечении интервала очистки.

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

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

Если изменить базовые данные сервиса, это изменение будет автоматически применено после очистки. Например, если запущен картографический сервис и вы изменяете связанный документ карты, вы сможете увидеть изменение после очистки. (Чтобы увидеть изменения незамедлительно, можно вручную остановить и запустить сервис.)

Изоляция

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

При высокой изоляции каждый экземпляр выполняется в своем собственном процессе. Если что-то вызывает сбой процесса, это повлияет только на один экземпляр, выполняющийся в нем.

Сервисы высокой изоляции
Сервисы с высоким уровнем изоляции выполняются в отдельных процессах на ГИС-сервере

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

Сервисы низкой изоляции

При низком уровне изоляции 8 экземпляров по умолчанию и максимум 24 экземпляров одной конфигурации сервиса могут совместно использовать процесс. Вы можете задать значение опции Экземпляров на процесс (Instances per process) на закладке Процессы (Processes) в диалоговом окне Редактор сервисов (Service Editor). При создании такого числа экземпляров определенного сервиса сервер запускает дополнительный процесс для следующей группы экземпляров и т. д. Экземпляры создаются и уничтожаются, они занимают и освобождают место в этих процессах.

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

Проверка неактивных подключений к данным

Если экземпляр сервиса не активен, администратор сервера с трудом может определить, успешно ли поддерживаются подключения к исходным данным. В ArcGIS for Server есть встроенные механизмы проверки неактивных подключений к базам геоданных ArcSDE. Эти проверки не позволяют сервису стать недоступным после отключения или прерывания соединения с ArcSDE.

Вы можете включить проверки подключения к данным, открыв закладку Процессы (Processes) диалогового окна Редактор сервисов (Service Editor) в ArcCatalog или Manager и отметив Периодически проверять и восстанавливать подключения к данным для простаивающих экземпляров (Periodically check and repair data connections for idle instances). Вам также нужно указать интервал в минутах, после которого подключения сервиса автоматически проверяются (и восстанавливаются при необходимости). Обычно значения по умолчанию, равного 30 минутам, достаточно.

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

Время ожидания

Понимание различных доступных значений времени ожидания может помочь добиться стабильности и доступности работы сервисов. Эти значения доступны на закладке Слияние сервисов (Pooling) в диалоговом окне Редактора сервисов (Service Editor).

После того, как клиент получает ссылку на сервис, он использует сервис в течение определенного времени перед тем, как освободить его. Период времени между тем, когда клиент получает ссылку на сервис, и тем, когда он освобождает его, является временем использования. Чтобы убедиться в том, что клиенты не удерживают ссылки на сервисы слишком долго (т.е. они корректно освобождают сервисы), у каждого сервиса есть максимальное время использования сервиса клиентом. Если клиент удерживает сервис дольше, чем заданное максимальное время использования, сервис автоматически освобождается, а клиент теряет ссылку на сервис.

Более подробноБолее подробно:

При создании нового сервиса значение максимального времени использования по умолчанию равно 600 секундам (10 минутам). Однако в предварительно созданном сервисе PublishingTools, который поставляется с каждым сайтом ArcGIS Server, максимальное время использования задано как 3600 секунд (60 минут). Это сделано для публикации задач, которые копируют большой объем данных на сервер.

Максимальное время использования также защищает сервисы от использования для выполнения большего объема работ, чем указано администратором. Например, у сервиса, используемого приложением для выполнения откреплений из базы геоданных, максимальное время использование может быть равно 10 минутам. Напротив, у сервиса, используемого приложениями, которые только отображают карты, максимальное время использование может быть равно 1 минуте.

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

Третье время ожидания указывает максимальное время работы экземпляра при простое. Когда сервисы больше не используются, они продолжают выполняться на сервере, пока другому клиенту не понадобится экземпляр. Запущенный, но неиспользуемый экземпляр все равно потребляет память сервера. Вы можете минимизировать число запущенных сервисов и, тем самым, сэкономить память, укоротив время простоя, равное по умолчанию 1800 секундам (30 минутам). Недостаток короткого времени простоя состоит в том, что когда истекает время ожидания всех сервисов, клиенты должны подождать создания новых экземпляров.

При создании сервисов на ГИС-сервере как в результате запуска сервера, так и при ответе на запрос сервера клиентом, время, необходимое на инициализацию сервиса, называют временем создания. ГИС-сервер использует время ожидания запуска, определяющее период времени, который может пройти при попытке запуска перед тем, как ГИС-сервер сочтет попытку запуска неудачной и отменит создание сервиса.

ГИС-сервер хранит статистику о времени ожидания, времени использования и других событиях, которые происходят на сервере, в памяти и в журналах. Администратор сервера может использовать эту статистику, чтобы определить, например, не слишком ли велико время ожидания для сервиса, что может указывать на необходимость увеличения максимального числа экземпляров для этого сервиса.

Ограничение действий, которые пользователи могут совершать с сервисом

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

Предположим, что вам нужно разрешить клиентам картографического веб-сервиса рисовать карту, но не запрашивать источники данных слоев карты. Для этого необходимо отключить операцию Запрос (Query) и убедиться, что операция Карта (Map) разрешена.

Сервисы объектов представляют особый интерес в этой дискуссии, так как они используются для веб-редактирования данных ГИС. У сервисов объектов есть дополнительный набор операций, которые можно использовать для ограничения функций редактирования: Запрос (Query), Создать (Create), Обновить (Update) и Удалить (Delete). Их можно включить или отключить на закладке Доступ к объектам (Feature Access) в диалоговом окне Редактор сервиса (Service Editor) в ArcGIS for Desktop. Вы также можете запретить пользователям редактирование объектов, которые были созданы не ими, применив управление доступом на основе владения.

В следующих таблицах показаны методы, которые включены при разрешении операций для различных типов сервисов:

Операции картографического сервиса

По умолчанию разрешены следующие операции картографических сервисов: Карта (Map), Запрос (Query) и Данные (Data).

Карта

Запрос

Данные

GetDocumentInfo

"Идентифицировать (Identify)"

Найти

GetLegendInfo

QueryFeatureCount

QueryData

GetMapCount

QueryFeatureCount2

QueryFeatureData

GetMapName

QueryFeatureIDs

QueryFeatureData2

GetDefaultMapName

QueryFeatureIDs2

QueryAttachmentInfos

GetServerInfo

QueryHyperlinks

QueryAttachmentInfos2

GetSupportedImageReturnType

QueryHTMLPopups

QueryAttachmentData

ExportMapImage

QueryHTMLPopups2

QueryAttachmentData2

IsFixedScaleMap

GetSQLSyntaxInfo

QueryRelatedRecords

ToMapPoints

QueryRelatedRecords2

FromMapPoints

QueryRasterValue

HasSingleFusedMapCache

QueryRasterValue2

GetTileCacheInfo

GetMapTile

HasLayerCache

GetLayerTile

GetVirtualCacheDirectory

GetCacheName

ComputeScale

ComputeDistance

ExportScaleBar

GetCacheDescriptionInfo

GetCacheControlInfo

GetCacheStorageInfo

GetDefaultLayerDrawingDescriptions

GetMapTableSubtypeInfos

GetMapTableSubtypeInfos2

GetServiceConfigurationInfo

Операции сервиса геокодирования

По умолчанию разрешены следующие операции сервисов геокодирования: Геокодирование (Geocode) и Обратное геокодирование (Reverse Geocode).

Геокодирование

Обратное геокодирование

GeocodeAddress

Обратное геокодирование

GeocodeAddresses

StandardizeAddress

FindAddressCandidates

GetAddressFields

GetCandidateFields

GetIntersectionCandidateFields

GetStandardizedFields

GetStandardizedIntersectionFields

GetResultFields

GetDefaultInputFieldMapping

GetLocatorProperties

Операции сервиса геоданных

По умолчанию для сервисов геоданных разрешены операции Запрос (Query) и Извлечение (Extraction), которые позволяют всем поддерживаемым методам запрашивать и извлекать данные. Опция Репликация (Replication) позволяет всем поддерживаемым методам выполнять синхронизацию, изменять данные, подтверждать сообщения и задавать схемы.

Запрос

Извлечение

Репликация

Get_Versions

ExpandReplicaDatasets

CreateReplica

Get_DefaultWorkingVersion

ExtractData

ExportAcknowledgement

Get_DataElements

ExportReplicaDataChanges

Get_MaxRecordCount

ImportAcknowledgement

TableSearch

ImportReplicaDataChanges

GetNextResultPortion

ReExportReplicaDataChanges

Get_Replicas

UnregisterReplica

Get_WrappedWorkspaceType

ImportData

Операции глобусного сервиса

По умолчанию разрешены следующие операции сервисов глобуса: Глобус (Globe), Анимация (Animation) и Запрос (Query). В отличие от картографических сервисов, операция Запрос (Query) охватывает операции Идентификация (Identify) и Найти (Find).

Globe

Анимация

Запрос

Get_Version

Get_Animation

"Идентифицировать (Identify)"

Get_LayerCount

Найти

Get_LayerInfos

Get_LegendInfos

Get_Config

Get_MQT

Get_Configuration

Get_Tile

Get_Symbols

Get_Textures

Get_VirtualCacheDirectory

Операции сервиса изображений

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

Изображение

Каталог

Загрузка данных

Метаданные

Пикселы

ExportImage

Поля

Загрузка данных

Метаданные

GetNativePixelBlock

ExportMapImage

GetCatalogItemCount

GetFile

GetRasterMetadata

GetPixelBlock

GenerateServiceInfo

GetCatalogItemIDs

GetImage

GetCatalogItems

"Идентифицировать (Identify)"

GetNativeRasterInfo

ServiceInfo

GetRasterInfo

Версия (Version)

GetThumbnail

9/12/2013