Краткий обзор авторизации и предоставления общего доступа к сервисам геообработки

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

Пример: простая модель спроса и предложения

Далее приведен пример инструмента, созданного с помощью ModelBuilder,который становится задачей. Модель (и опубликованная задача) является очень простой моделью спроса и предложения, имеющей набор точек, представляющий предложение сервисов (например, аварийная служба или объекты розничной торговли), и еще один набор точек, представляющий спрос (например, жилые дома или офисные здания, нуждающиеся в сервисе). Эта модель назначает точки спроса ближайшему пункту обслуживания, создает полигон с торговой площадью для каждого пункта обслуживания и суммирует весь спрос в пределах торговой площади пункта обслуживания. Выходными данными является набор полигонов, по одному полигону для каждого входного пункта обслуживания с атрибутом, содержащим общую сумму спроса внутри полигона.

Простая модель назначения спроса и предложения

Обратите внимание, что в приведенной выше модели переменные Пункты обслуживания (Facilities), Спрос (Demand) и Выходные полигоны Тиссена (Output Thiessen Polygons) являются параметрами модели (у них в конце стоит буква P). Эти параметры модели становятся аргументами задачи, которые определяют клиенты задачи при ее выполнении.

Параметры модели появляются в диалоговом окне, как показано ниже, если открыть инструмент модели из окна Каталог.

Инструмент модели, открытый из окна Каталог, для открытия диалогового окна инструмента

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

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

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

Также необходимо помнить, что результат является частью сеанса ArcMap, поэтому он имеет доступ ко всем слоям и таблицам в Таблице содержания (Table Of Contents), а значит, доступ к этим слоям имеет и опубликованная задача. Таблица содержания, приведенная выше, содержит только два входных слоя и один выходной, но она может содержать гораздо больше слоев (например, слой объектов розничной торговли), которые можно сделать доступными для клиентов задачи.

Чтобы создать сервис геообработки и его первоначальную задачу, нужно щелкнуть правой кнопкой мыши Общий доступ > Сервис геообработки. Откроется мастер Общий доступ к сервису, в нем необходимо выбрать подключение к серверу и имя сервиса, после чего откроется Редактор сервиса. В Редакторе сервиса необходимо указать свойства и настройки сервиса, а также свойства параметров отдельной задачи. Ниже на рисунке показана настройка Режима ввода параметра Пункты обслуживания (Facilities). В этом примере для Режима ввода назначено Определяемое пользователем значение, что означает, что клиент должен задать набор точек с текстовым атрибутом FacilityName.

Настройка режима ввода в Редакторе сервиса

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

Пример: другие режимы ввода

Инструмент Построить таблицу соседних объектов (Generate Near Table) является системным инструментом, вычисляющим, какие объекты являются ближайшими к входным объектам, и записывающим результаты в таблицу. В этом примере инструмент Построить таблицу соседних объектов используется для того, чтобы записать все начальные школы, средние школы, пожарные части, продовольственные магазины и магазины розничной торговли, находящиеся в пределах пяти миль от какой-либо входной точки. В данном случае входными точками будут дома, выставленные на продажу. Это простой сервис, созданный для того, чтобы помочь покупателям оценить дома, выставленные на продажу. Все наборы входных данных являются слоями в таблице содержания ArcMap.

Использование системного инструмента Построить таблицу соседних объектов для получения результата и предоставления общего доступа как к сервису

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

Использование списка вариантов в качестве режима ввода

И наоборот, Ближайшие объекты могут быть фиксированными – Постоянное значение. В этом случае они больше не являются аргументом задачи, и клиент уже не может определять, какие Ближайшие объекты записывать. Он всегда будет получать таблицу со всеми ближайшими объектами.

Использование постоянного значения в качестве режима ввода

Режимы ввода

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

Дополнительные сведения о режимах ввода и типах данных

Пример: инструмент-скрипт

Можно создать задачу, используя инструмент-скрипт. На рисунке, приведенном ниже, показана страница свойств инструмента-скрипта, который выполняет ту же работу, что и простая модель спроса и предложения, о которой говорилось выше, но вместо ModelBuilder используется Python. Скрипт имеет те же параметры, что и модель, для создания задачи используется та же самая процедура: нужно запустить инструмент, чтобы создать результат, а затем предоставить общий доступ к результату как к сервису геообработки.

Страница свойств инструмента-скрипта
Инструмент-скрипт и его свойства параметров

Проектные данные и хранение данных

Проектные данные — это термин, использующийся в геообработки для описания входных данных, которые не являются параметром. Т. е. эти данные не предоставляются пользователем инструмента или задачи, но предназначены для внутреннего использования инструментом или задачей. Например, переменная Набор сетевых данных Сан-Франциско в модели, приведенной ниже, является проектными данными, поскольку она используется моделью, но представлена как параметр. В основном, проектные данные в модели отмечаются синим овалом без буквы Р.

Проектные данные в модели

Проектные данные могут появляться как в скриптах, так и в коде Python, как показано ниже.

import arcpy

# The inputPoints variable is considered to be project data 
#   since it is not an input parameter.
#  
inputPoints = r"c:\data\Toronto\residential.gdb\shelters"

arcpy.Buffer_analysis(inputPoints, 'shelterBuffers', '1500 Meters')

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

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

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

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

О хранилище данных

Каждая инсталляция ArcGIS for Server содержит хранилище данных. Хранилище данных – это способ, который используется, чтобы предоставить серверу список местоположений данных, к которым сервер имеет доступ. Если сервер имеет доступ к данным, данные, обнаруженные на локальной машине, не будут копироваться на сервер при публикации.

Дополнительные сведения о регистрации данных на сервере ArcGIS см. в разделах:

ПримечаниеПримечание:

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

Ввод и вывод простых данных

Сервис GIS работает с самым простым из всех клиентов: веб-браузером, запущенным на компьютере и не имеющем каких-либо функций GIS. Эти простые клиенты знают лишь, как отправлять на сервер простые данные, например, текст, числа, таблицы, а также географические объекты и их атрибуты. Такие клиенты ничего не знают о расширенных представлениях географических данных в ArcGIS for Desktop, например, наборы сетевых данных, топологии, TIN, классы отношений, геометрические сети и т. д. Эти наборы данных известны как сложные. Они воспроизводят сложные связи между простыми объектами. Сложные наборы данных не могут быть переданы через интернет. Это можно сделать только с простыми объектами, таблицами, растрами и файлами.

При авторизации задачи необходимо помнить, что все клиенты, будь это веб-приложения, ArcGIS Explorer или ArcGIS for Desktop, умеют только отправлять и получать (транспортировать) эти простые наборы данных. Даже если вы уверены, что работать с сервисом будут только умные клиенты, например, ArcMap, вы все равно должны будете использовать при авторизации задач простые входные данные.

Дополнительные сведения о наборах данных, которые можно и нельзя передавать, см. в разделе Режимы ввода и типы данных параметров.

Отображение результатов задачи с помощью картографического сервиса

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

Если выходной слой отображает уникальные значения, может потребоваться снять флажок с <все другие значения> в свойствах слоя, чтобы принудить пересчитать уникальные значения до отображения. Дополнительные сведения см. в разделе Создание файла символов слоя.

Документирование задачи

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

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

Более подробно о документировании сервисов и задач геообработки

Параметры среды геообработки

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

Иерархия параметров среды

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

  • Уровень приложения – щелкните в главном меню Геообработка > Параметры среды. Изменения, сделанные на этом уровне, отразятся на работе всех инструментов.
  • Уровень инструмента – в диалоговом окне инструмента нажмите кнопку Параметры среды. Откроется диалоговое окно Параметры среды. Обратите внимание, что в диалоговом окне Параметры среды отображены все установки параметров среды вне зависимости от того, относятся они к инструменту, или нет. Чтобы, определить, относится ли параметр среды к инструменту, нужно открыть страницу справки по инструменту. Все установки, сделанные на этом уровне, заменят собой установки, произведенные на уровне приложения. Эти установки применяются лишь к работе инструмента. Установки уровня приложения перезаписаны не будут.
  • Уровень модели, процесса модели или скрипта – на этом уровне вы получаете наивысший контроль над установками параметров среды. Вы можете изменить установки параметров среды для отдельного инструмента, для набора инструментов или для каждого инструмента в модели или скрипте. Все установки, сделанные на этом уровне, заменят собой установки, произведенные на уровне инструмента или приложения.

Настройки параметров среды хранятся в результате

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

Связанные темы

5/10/2014