Что такое расширение серверных объектов?
Расширения серверных объектов (SOE) позволяют дополнить основную функциональность ArcGIS for Server. Большинство SOE добиваются этого, используя код ArcObjects для работы с данными и картами ГИС. ArcObjects — это основные компоненты ArcGIS, предоставляющие много гибких возможностей для написания ГИС-функций.
SOE следует использовать, если у вас определенная бизнес-логика, которую необходимо выполнить, но трудно реализовать с помощью веб-интерфейсов API ArcGIS. У SOE следующие преимущества:
-
Вы можете предоставить доступ к SOE с помощью веб-сервиса REST и SOAP, позволяя создавать клиенты поверх the веб-API ArcGIS для их легкого вызова. К слову, расширения SOE REST будут отображены в ArcGIS Services Directory и они могут предоставлять доступ к основным типам объектов, поддерживаемым веб-интерфейсами API ArcGIS, в основном, в формате JSON.
-
При создании SOE вы предоставляете методы, выполняющие работу на ArcGIS for Server, а не осуществляете большое число вызовов с клиента на сервер. SOE инкапсулируют логику ArcObjects очень эффективно, предоставляя идеальную среду для быстрого выполнения вызовов.
Вы можете разработать 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 см. в разделе Альтернативы расширениям серверных объектов.