Что такое расширение серверных объектов?

Расширения серверных объектов (SOE) позволяют дополнить основную функциональность ArcGIS for Server. Большинство SOE добиваются этого, используя код ArcObjects для работы с данными и картами ГИС. ArcObjects — это основные компоненты ArcGIS, предоставляющие много гибких возможностей для написания ГИС-функций.

SOE следует использовать, если у вас определенная бизнес-логика, которую необходимо выполнить, но трудно реализовать с помощью веб-интерфейсов API ArcGIS. У SOE следующие преимущества:

Вы можете разработать SOE, если вы хотите получить доступ к функциям ArcObjects, недоступным в любой другой ситуации (при использовании встроенных инструментов геообработки или сервисов ArcGIS for Server), или функциям, которые должны выполняться очень быстро.

Расширения SOE предназначены для опытных разработчиков и для их применения необходимы знания различных платформ разработки. Пакеты ArcObjects SDK for Java и ArcObjects SDK for the Microsoft .NET Framework содержат несколько примеров SOE, которые вы можете изучить.

SOE, в основном, предназначены для расширения картографических сервисов.

Что нужно знать для разработки SOE

Для разработки SOE необходимы знания по использованию ArcObjects в языках программирования Java или .NET. Для этого также требуется понимание принципов REST и SOAP.

Кроме того, если вы хотите создавать пользовательские страницы свойств для расширений SOE, помимо страниц, которые создаются автоматически, необходимо обладать опытом разработки форм Windows или Java Swing (для страниц ArcCatalog) или разработки веб-форм с помощью языка HTML и JavaScript (для страниц Менеджера).

Нужно ли вам расширение SOE?

Для создания SOE могут понадобиться знания в области разработки веб-сервисов и применению ArcObjects, а для предоставления доступа к расширениям необходимо выполнить их развертывание. Перед разработкой расширение объектов сервера следует рассмотреть некоторые более простые альтернативы.

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

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

Многие разработчики писали код ArcObjects в прошлом для различных задач, которые теперь выполняются без ArcObjects. Подробное описание способов решения задач веб-картографии без применения ArcObjects см. в разделе Альтернативы расширениям серверных объектов.

9/12/2013