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

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

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

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

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

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

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

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

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

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

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

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

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

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

9/12/2013