В этом учебном руководстве показано, как опубликовать Web Feature Service (WFS) с транзакциями (WFS-T) на ArcGIS Server с помощью ArcMap. WFS – это спецификация, выпущенная Open Geospatial Consortium, Inc. (OGC), для предоставления географических объектов через интернет. Сервис WFS с транзакциями (WFS-T) позволяет клиентам WFS редактировать данные (вставки, удаления и обновления) в исходной базе данных, используя для этого сервис WFS.
Если картографический сервис или сервис геоданных публикуется через WFS, то данные будут доступны с помощью клиентов WFS, совместимых со спецификациями OGC, включая дополнительный модуль ArcGIS Data Interoperability extension for Desktop в ArcGIS Desktop. Эти клиенты WFS могут также отслеживать последние изменения данных. Если необходимо получить дополнительные сведения о сервисах WFS до работы с этим руководством, см. раздел Сервисы WFS.
Сервисы WFS поддерживают простые объекты из источников Esri, например шейп-файлы и базы геоданных. Однако, если нужно сделать сервис транзакционным (WFS-T), все данные, которые вы хотите редактировать, должны храниться в базе геоданных рабочей группы или предприятия. В этом руководстве показан рабочий процесс, которого следует придерживаться при работе с версионными данными.
Действия перед выполнением этого руководства
Если ArcGIS Server был только что установлен, необходимо выполнить ряд подготовительных действий, прежде чем подключиться к серверу и начать публиковать сервисы.
- Подробные инструкции по настройке вашего сайта ArcGIS Server см. в разделе Приступая к работе после установки данной справочной системы.
- Сведения о том, как сделать данные, на которые ссылается ресурс ГИС, доступными на сервере, см. в разделе Предоставление доступа к данным в ArcGIS Server.
Примечание:
Это руководство использует примеры для WFS 1.1.0, однако эти шаги также применимы для WFS 2.0.0. WFS 1.0.0 не поддерживает транзакции.
Выбор между сервисом геоданных или картографическим сервисом
При использовании сервисов WFS появляется возможность публикации сервиса геоданных или картографического сервиса. Существует ряд различий, о которых следует помнить при выборе создаваемого типа сервиса. В следующих разделах приводятся общие сведения о функциональных возможностях, доступных в картографическом сервисе и сервисе геоданных, что позволит понять, какой тип сервиса более всего соответствует текущим требованиям.
Сервис геоданных
Сервис геоданных WFS позволяет получить доступ к базе геоданных рабочей группы, предприятия или файловой базе геоданных через Интернет или с помощью любого OGC-совместимого клиента WFS. При создании сервиса WFS на основе сервиса геоданных важно учитывать то, что все классы объектов в базе геоданных будут представлены в этом сервисе.
Сервисы геоданных полезны в тех случаях, когда необходимо получить доступ к базам геоданных в удаленных местах. Например, компания может настроить базы геоданных предприятия для управления данными в своих отделениях в Лос-Анджелесе и Нью-Йорке. После создания своей многопользовательской базы геоданных отделение может опубликовать ее в Интернете с помощью сервиса геоданных.
Картографический сервис
Картографический сервис WFS представляет собой документ карты, который доступен другим пользователям в Интернете или в любом клиенте WFS, совместимом с требованиями OGC. Картографические сервисы с функциональностью WFS обеспечивают большую степень управления данными, опубликованными в сервисе. Ниже приведены распространенные причины использования картографического сервиса:
- В отличие от сервиса геоданных, картографический сервис может включать данные из различных источников, в том числе из нескольких баз геоданных и шейп-файлов.
- Можно выбрать, какие классы объектов будут доступны в картографическом сервисе.
- Можно переименовать классы объектов в документе карты, чтобы сервис не предоставлял фактические названия и имена из источника данных.
Существуют также некоторые ограничения, связанные с картографическими сервисами WFS. При публикации сервиса WFS из документа карты учитывайте следующее:
- Документ карты представляет собой спецификацию слоев, которые будут доступны в сервисе WFS. Символы, определения запросов и псевдонимы полей, определенные на уровне слоя, не будет передаваться в сервис WFS, так как целью этого сервиса является предоставление доступа к объектам данных. Чтобы предоставить доступ к визуальным свойствам карты с использованием спецификаций OGC, используйте сервис WMS.
- Два и более слоя карты не могут ссылаться на один и тот же класс объектов.
- Два и более слоя карты не могут иметь одинаковое имя.
- Так как WFS работает только с объектами, любые растровые слои карты будут исключены из сервиса.
- Непространственные таблицы не предоставляются.
- Если необходимо, чтобы сервис WFS поддерживал транзакции редактирования (WFS-T), исходные данные для всех слоев карты должны находиться в одном рабочем пространстве, например в одной многопользовательской базе геоданных.
Подготовка данных для сервиса WFS-T
Перед созданием сервиса WFS с доступом для чтения и записи, следует учесть ряд исходных требований к настройке данных.
- Он должен быть загружен в базу геоданных рабочей группы или в многопользовательскую базу геоданных.
- Если необходимо работать с версионными данными, последние должны быть зарегистрированы как версионные.
- Версия должна предназначаться специально для работы редакторов WFS. Если версии не существует, она должна быть создана.
- Конкретные редакторы WFS должны иметь права доступа к файлу подключения базы данных (.sde) для его редактирования.
Выполните приведенные ниже действия для подготовки данных к обработке в сервисе WFS-T с версионностью данных.
- В ArcCatalog или окне Каталога в ArcGIS Desktop загрузите данные, которые вы хотели бы опубликовать в базе геоданных рабочей группы или предприятия. Дополнительные сведения о загрузке данных см. в разделе Загрузка данных в ArcCatalog.
- Зарегистрируйте данные как версионные, щелкнув правой кнопкой мыши набор данных и выбрав пункт контекстного меню Регистрация данных как версионных. Дополнительные сведения см. в разделе Регистрация данных как версионных.
- После включения версионности данных, необходимо назначить одну версию специально для редактирования пользователями WFS. Если такой версии не существует, щелкните правой кнопкой мыши подключение вашей базы данных и выберите Администрирование > Администрировать базу геоданных.
- В окне подключения щелкните вкладку Версии.
- Щелкните правой кнопкой мыши версию базы геоданных, для которой следует создать дочернюю версию, и выберите Создать.
- Введите Имя новой версии. Если данные будут редактировать другие пользователи, не только создатель, для параметра Права доступа должно быть задано значение Общий.
Примечание:
При создании картографического сервиса перейдите к приведенному ниже разделу картографических сервисов. При создании сервиса геоданных перейдите к приведенному ниже разделу сервисов геоданных.
Картографические сервисы
Чтобы картографический сервис публиковал нужные данные сразу после создания, документ карты должен быть обновлен таким образом, чтобы он ссылался на новую созданную версию WFS.
- Откройте документ карты в ArcMap.
- В таблице содержания ArcMap щелкните По источникам .
- Щелкните правой кнопкой мыши подключение к базе геоданных и выберите Изменить версию.
- В диалоговом окне Изменить версию выберите версию, предназначенную для пользователей WFS, и нажмите кнопку ОК.
- Сохраните изменения в документ карты.
Сервисы геоданных
Чтобы сервис геоданных публиковал нужные данные сразу после создания, свойства подключения к базе геоданных должны быть обновлены таким образом, чтобы они ссылались на созданную версию WFS.
- В ArcCatalog или окне Каталога в ArcGIS Desktop щелкните правой кнопкой мыши подключение баз геоданных и выберите Администрирование > Администрировать базу геоданных.
- В диалоговом окне Администрирование щелкните Версии.
- Выберите версию, предназначенную для пользователей WFS и нажмите кнопку ОК.
Публикация сервиса WFS-T в ArcGIS Server
Чтобы начать публикацию сервиса WFS-T, выполните следующие шаги:
- Следуйте инструкциям, представленным в следующей таблице, в соответствии с типом сервиса, который вы хотите опубликовать:
Опция Описание Для публикации картографического сервиса WFS-T...
...откройте документ карты в ArcMap, выберите Файл > Опубликовать как > Сервис и щелкните Далее.
Для публикации сервиса геоданных WFS-T...
...перейдите к базе геоданных рабочей группы, предприятия или файловой базе геоданных в ArcCatalog или окне Каталог, щелкните ее правой кнопкой мыши и выберите Опубликовать как сервис геоданных.
- В диалоговом окне Опубликовать как сервис выберите Опубликовать сервис и щелкните Далее.
Появится диалоговое окно Публикация сервиса.
- В диалоговом окне Опубликовать сервис щелкните Подключиться к ArcGIS Server для создания нового подключения к серверу.
Откроется окно Добавить ArcGIS Server.
- В окне Добавить ArcGIS Server выберите Опубликовать ГИС-сервисы и щелкните Далее.
- Введите URL сайта ArcGIS Server, к которому нужно подключиться, в поле URL сервера. Например, http://gisserver.domain.com:6080/arcgis.
- В раскрывающемся списке Тип сервера выберите ArcGIS Server.
- Во время публикации создается файл определения сервиса, который затем временно сохраняется на локальном диске. Когда процесс публикации завершается, определение сервиса загружается на сервер, а локальный файл удаляется. Для этого упражнения примите папку размещения по умолчанию и продолжайте.
- Если администратор безопасности включил функции безопасности для сайта, введите Имя пользователя и Пароль и щелкните Готово.
- При необходимости в окне Опубликовать сервис введите новое имя сервиса. Имя может содержать только цифры, буквы, подчеркивания и не может быть длиннее 120 символов. Нажмите Далее.
- По умолчанию сервисы публикуются в корневой папке (root) ArcGIS Server. Сервисы могут размещаться во вложенных папках корневой папки. Выберите папку, в которой требуется опубликовать сервис, или создайте новую папку для сервиса. Нажмите кнопку Продолжить.
- Появится Редактор сервисов. Редактор сервисов используется для выбора того, что пользователи могут делать с сервисом WFS-T, и управления предоставлением доступа к сервису на сервере. Перейдите на вкладку Функции.
- По умолчанию, картирование и KML включены. Выберите WFS.
- На левой панели редактора сервисов щелкните WFS. Используйте эту панель для выбора метода настройки свойств сервиса WFS. При указании свойств сервиса WFS клиенты могут узнать больше об издателе сервиса.
- В поле URL отображается URL, используемый клиентами для доступа к сервису WFS. URL будет иметь следующий формат: http://gisserver.domain.com:6080/arcgis/rest/services/folder/service/MapServer/WFSServer.
Подсказка:
Скопируйте и сохраните URL сервиса WFS. Он понадобится для выполнения дополнительных действий в данном руководстве.
- Если вы хотите опубликовать сервис WFS с сгенерированными системой файлами функций, используйте опцию Ввести свойства сервиса ниже. Поля Name, Title и OnlineResource заполняются автоматически и их не следует изменять. При необходимости можно заполнить дополнительные свойства с помощью полей в этом списке. Дополнительную информацию см. в разделе Доступные свойства сервиса WFS.
- Если вы хотите настроить сервис WFS для использования внешних файлов функций, выберите параметр Использовать внешний файл функций. Для использования этой опции должен быть создан файл функциональности WFS. Дополнительные сведения см. в разделе Использование внешних файлов функций с сервисами WFS.
- В поле URL отображается URL, используемый клиентами для доступа к сервису WFS. URL будет иметь следующий формат: http://gisserver.domain.com:6080/arcgis/rest/services/folder/service/MapServer/WFSServer.
- Внизу панели WFS включите опцию Включить транзакции. Это позволит пользователям WSF редактировать и применять изменения к данным, расположенным в исходной базе данных.
- Щелкните Анализировать. Документ карты или база геоданных будет проанализирована на возможность публикации ее на сервере.
Подсказка:
Чтобы расширить область просмотра при настойке сервиса WFS-T, щелкните кнопку Свернуть , расположенную в верхней части Редактора сервисов.
- Исправьте все Ошибки в окне Подготовка; это необходимо сделать до публикации. При необходимости можно устранить предупреждения и информационные сообщения, чтобы улучшить производительность и внешний вид сервиса WFS-T. Дополнительные сведения об устранении этих неполадок см. в разделе Анализ ГИС-ресурса.
Примечание:
Можно зарегистрировать папки и базы геоданных на сайте ArcGIS Server, чтобы сервер мог распознать и использовать ваши данные. Если продолжить выполнение следующих действий, все данные, указанные в ГИС-ресурсе, взятые из незарегистрированной папки или базы геоданных, будут скопированы на сервер во время публикации. Это мера предосторожности, гарантирующая, что сервер может получить доступ ко всем данным, используемым сервисом. Подробные инструкции по регистрации папки или базы геоданных на сайте ArcGIS Server см. в разделе Регистрация данных на ArcGIS Server с помощью ArcGIS Desktop.
- При необходимости в Редакторе сервисов щелкните Предварительный просмотр. Это позволит увидеть, как сервис WFS-T будет выглядеть при просмотре в браузере. Дополнительные сведения см. в разделе Предварительный просмотр карты.
- После устранения ошибок в документе карты или базе геоданных щелкните Опубликовать .
Использование сервиса WFS
После публикации сервиса WFS его можно использовать в любом клиенте, поддерживающем WFS 1.1.0 и профиль Simple Features GML, включая веб-браузеры. Браузер – это один из самых простых клиентов сервиса WFS. Информацию можно запрашивать по протоколу HTTP, а ответы или исключения получать через браузер.
Следуйте приведенным ниже действиям для получения доступа к сервисам WFS через веб-браузер:
- Откройте веб-браузер.
- Выполните запросы GetCapabilities, DescribeFeatureType и GetFeature, как показано в следующих разделах.
GetCapabilities
Этот запрос возвращает все типы объектов и функции, доступные через сервис, в формате GML. Чтобы использовать операцию GetCapabilities, скопируйте и вставьте URL сервиса WFS в адресную строку и добавьте ?request=getcapabilities в конец URL.
Пример URL: http://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/GeoDataServer/WFSServer?service=WFS&request=GetCapabilities
На следующем рисунке представлен пример функциональности, возвращаемой операцией GetCapabilities:
GetCapabilities также возвращает список всех доступных классов и таблиц объектов:
DescribeFeatureType
Этот запрос описывает сведения о полях одного или нескольких объектов в сервисе WFS. К ним относятся имена полей, типы полей, разрешенные минимальные и максимальные значения полей и другие ограничения, заданные для поля классов или таблиц объектов.
Чтобы использовать операцию DescribeFeatureType, скопируйте и вставьте URL сервиса WFS в адресную строку и добавьте ?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=1.1.0 в конец URL-адреса. Этот запрос возвращает сведения о полях каждого типа объектов и таблиц, доступных в сервисе.
Пример URL: http://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/MapServer/WFSServer?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=1.1.0
Добавление фильтров
Вы также можете указать один класс объектов или одну таблицу, для которой требуется получить сведения о полях, добавив следующий запрос в конец URL с именем типа объекта или таблицы: ?SERVICE=WFS&REQUEST=DescribeFeatureType&TypeName=<enter feature type here>&VERSION=1.1.0.
Дополнительную информацию о различных фильтрах, доступных в сервисах WSF, см. в разделе Взаимодействие с WFS сервисом в браузере.
В следующем примере запрос DescribeFeatureType используется для определения информации о полях для типа объектов continent:
Пример URL: http://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/GeoDataServer/WFSServer?SERVICE=WFS&REQUEST=DescribeFeatureType&typeName=Continent&VERSION=1.1.0
GetFeature
Этот запрос возвращает информацию об определенных типах объектов, доступных через сервис WFS.
Чтобы использовать операцию GetFeature в браузере, скопируйте и вставьте URL сервиса WFS в адресную строку и добавьте ?request=getFeature&typename=<enter feature type here> в конец URL. Этот запрос возвращает сведения об атрибутах и геометрии каждого объекта или каждой строки в типе объектов.
Пример URL: http://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/MapServer/WFSServer?service=WFS&request=getfeature&typename=cities
Добавление фильтров
Вы также можете добавить в запрос фильтры, чтобы уточнить возвращаемые результаты. Например, можно запросить все города, попадающие в указанный диапазон координат. В следующем примере два города попадают в указанный диапазон координат. Дополнительную информацию о различных фильтрах, доступных в сервисах WSF, см. в разделе Взаимодействие с WFS сервисом в браузере.
Пример URL: http://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/MapServer/WFSServer?service=WFS&request=GetFeature&typeName=cities&BBOX=46.90,-76.21,42.12,-72.88
Использование модуля Data Interoperability для подключения к сервису WFS
Дополнительный модуль ArcGIS Data Interoperability extension позволяет считывать и записывать данные в форматах, отличных от форматов ArcGIS. Для подключения напрямую к внешним форматам данных Esri, в том числе сервисам WSF, можно использовать инструмент Подключение Interoperability в ArcCatalog или в окне Каталога в ArcGIS Desktop. После создания подключения источник данных появится под записью Подключение Interoperability в дереве каталога. Подключение аналогично любому набору данных в том смысле, что можно добавить его в таблицу содержания или использовать в инструментах геообработки.
Управление изменениями, внесенными с помощью сервиса WFS-T с поддержкой версионности данных
Важно создать эффективный рабочий процесс для управления изменениями, внесенными через сервис WFS-T. Если вы следовали рекомендованному методу создания отдельной версии WFS для редакторов WFS-T, настроенная система должна походить на приведенную ниже диаграмму:
В этом примере редакторы WFS-T и ArcMap используют версии, чтобы каждая группа могла иметь свой собственный, отдельный от других вид базы геоданных. Редакторы ArcMap напрямую редактируют версию по умолчанию в ArcMap. Редакторы WFS-T получают доступ к сервису WFS через Интернет. Это позволяет редакторам WFS-T вносить изменения в версию WFS, которая была создана как дочерняя по отношению к версии по умолчанию. Дополнительные сведения о версиях см. в разделе Краткий обзор версионности в справочной системе Desktop.
Чтобы обе версии синхронизировались друг с другом, процесс следует запускать регулярно, чтобы версия WFS получала изменения из версии по умолчанию, а версия по умолчанию, в свою очередь, получала изменения из версии WFS. Эта двухэтапная процедура рабочего процесса редактирования в любой версионной системе называется согласованием и закреплением. Этот процесс может быть автоматизирован, а также управляться редактором (в зависимости от имеющихся у него прав доступа) или администратором базы данных. Дополнительные сведения о процессе согласования и закрепления см. в разделе Краткий обзор версионного редактирования.
Операция согласования принимает обновления из версии по умолчанию в текущий сеанс редактирования версии WFS. При наличии в обоих версиях одинаковых объектов могут возникать конфликты. Можно настроить автоматическое разрешение конфликтов или разрешать каждый конфликт вручную с помощью диалогового окна разрешения конфликтов.
После разрешения любых конфликтов выполняется закрепление. Этот процесс объединяет изменения из версии WFS в версии по умолчанию.
Весь процесс согласования и закрепления отображен на следующей диаграмме. Здесь версия WFS берет обновления из версии по умолчанию во время согласования. После внесения изменений версия WFS публикует свои обновления в версию по умолчанию, используя закрепление. На этом этапе версии по умолчанию и WFS имеют идентичное содержимое.
После завершения, согласования и закрепления обе версии являются обновленными и представляют текущие объекты. Редакторы WFS могут продолжить вносить изменения.
Следует заметить, что при возникновении блокировок во время выполнения согласования и закрепления, система не даст процессу завершиться успешно. Эта мера безопасности служит для предотвращения конфликтов между объектами, заблокированными клиентами WFS-T, и объектами, измененными в процессе согласования и закрепления. Кроме того, выполнение согласования и публикации приведет к блокировке версии WFS-T для предотвращения любых блокировок и вызовов транзакций со стороны редакторов WFS-T во время процесса согласования и закрепления.
Чтобы использовать эту меру безопасности, рекомендуется выполнять процесс согласования и закрепления в подходящее время, о котором уведомлены все редакторы WFS-T. Это позволит редакторам закреплять свои изменения в базе данных. Администраторы могут вручную удалять блокировки из таблицы блокировок перед запуском процесса согласования и закрепления.
Дополнительные сведения о схеме блокировки WFS-T см. в разделе WFS сервисы.