Мифы и правда про ArcGIS Server

Стрельцов И.В., DATA+, e-mail: istreltsov@dataplus.ru

Вступление

Как известно, семейство программных продуктов ArcGIS предоставляет полный набор компонентов для построения полнофункциональной корпоративной геоинформационной системы (ГИС). Одним из ключевых элементов такой системы является серверное программное обеспечение (ПО) ArcGIS Server. Оно содержит развитые средства хранения пространственной и атрибутивной информации, инструментарий для представления картографических данных в интернете с возможностью поиска нужных объектов, печати карт, геообработки, редактирования объектов, управления доступом к картографическим ресурсам и т.д. Клиентами ArcGIS Server могут выступать настольные приложения ArcGIS Desktop (ArcInfo, ArcEditor, ArcView, ArcReader), бесплатный пакет ArcGIS Explorer, обычный web-браузер, а также самостоятельно разработанные приложения, работающие под Windows, Windows Mobile, UNIX, Linux. В принципе, большинство потенциальных заказчиков всё это понимают и хорошо разбираются в различных вариантах лицензий на это ПО. Но нередко при общении с ними приходится встречаться и с некоторыми заблуждениями, требующими, по нашему мнению, соответствующих разъяснений.

Про ArcGIS Server

В этой статье приведены наиболее распространенные мифы, с которыми мы нередко сталкиваемся при обсуждении вариантов разворачивания корпоративных ГИС(далее они выделены полужирным курсивом), и описано реальное положение дел. Итак, по порядку.

Это очень сложно. Нельзя сказать, что ArcGIS Server – это очень просто, но это и не чрезвычайно трудно. Это действительно решение «из коробки», которое любой системный администратор может полностью установить за 1-2 рабочих дня. То есть, можно, конечно, установить и за час, убедиться, что ничего не работает, или работают не все функции, потом почитать руководство по установке (на диске с дистрибутивом) и рекомендации по установке (на диске с русификацией), деинсталлировать все компоненты, установить все корректно и выдать в конце: «Ну и замороченный софт!». Если это человек упорный, то дело до прочтения инструкций доходит нескоро, и процесс установки может растянуться на более длительный срок (именно для таких случаев в настоящее время в цену ArcGIS Server Enterprise входят опции бесплатной установки и обучения одного специалиста).

А реально, ArcGIS Server – это действительно готовое решение «из коробки», которое позволяет загрузить большой объем информации в базу данных с использованием технологии ArcSDE, представить подготовленные карты в Интернете, добавить в созданные приложения задачи поиска объектов, печати карт, геообработки и т.д., причем, без использования какого-либо программирования. Все эти операции описаны в электронной справке по ArcGIS Server и ArcGIS Desktop. Правда, на русском языке – пока только в справке для ArcGIS Desktop. ArcGIS Server довольно просто устанавливается на обычный Windows Server. Проблемы могут возникнуть, если в организации используется специальный дистрибутив или очень «интересная» политика безопасности, что приводит к многочасовым «кульбитам» вокруг сервера. Установить и запустить в работу ArcGIS Server на LinuxUNIX, конечно, сложнее, но и эта задача успешно решается при наличии соответствующих навыков.

Это ПО само решит все ваши проблемы. Этот миф относится не только к ArcGIS Server, но и к любому программному обеспечению, которое стоит недешево и окутано дымкой некоторого недопонимания принципов его работы: например, СУБД или система управления производством. Все же решает проблему не само программное обеспечение, а специалисты, которые занимаются его установкой и настройкой под конкретные задачи конкретной организации. Для примера возьмем только лишь систему хранения и многопользовательского редактирования, то есть, технологию ArcSDE, которая включена во все варианты поставки ArcGIS Server. Пусть это будет ArcGIS Server Enterprise, поскольку Workgroup – решение более консервативное и много тут не порегулируешь, хотя и в этом случае настройка возможна. Так вот, сама установка ArcSDE довольно проста, а вот доводка для получения системы с правильной политикой доступа и максимальной производительностью не совсем тривиальна. Для этого необходимо знать правила работы самой СУБД, а также принципы хранения и редактирования данных с помощью ArcSDE. Опять же, все это (и принципы, и настройка) подробно описано в электронной справке по ArcGIS Server и ArcGIS Desktop (в справке по Desktop – на русском). Конечно, ПО будет работать и безо всякой настройки, но такая система будет не вполне оптимальной.

То же самое относится и к web-части ArcGIS Server. Конечно, в комплекте поставки есть шаблон web-приложения, но, вполне возможно, вас это может не устроить или вам потребуется внедрить ГИС-содержание в структуру имеющихся страниц готового сайта. В этом случае потребуется вмешательство программиста. Нельзя сказать, что эта работа будет ОЧЕНЬ трудоемкой, но она будет, должна быть. В настоящее время ArcGIS Server имеет различные интерфейсы программирования: .NET, Java Script, Java, FLEX, SilverLight, так что опыт и пристрастия практически любого web-программиста будут к месту. Да и уже готовых наработок достаточно много, например, на resources.esri.com, arcscripts.esri.com. Найдется работа и для ГИС-специалиста. Но об этом мы поговорим в следующем разделе.

Скорость работы ArcGISServerпросто запредельная. В версии до 9.3 с Service Pack 1 (не путать с версией 9.3.1) ArcGIS Server функционирует с той же самой скоростью обработки информации и отрисовки, что и ArcGIS ArcMap. Начиная с версии 9.3.1, скорость (и качество) отрисовки увеличена в несколько (4-5) раз. Но все равно, не стоит ждать от сервера того, что он через секунду выдаст клиенту карту, которая обычно рисуется в окне ArcMap в течение минуты. Хотя сам сервер должен выдавать эту карту клиенту именно в течение 1-2 секунд, и этого можно и нужно добиться. Вопрос – как? Существует несколько нехитрых правил, которые помогают сделать это. Самое важное – снять лишнюю нагрузку с процессора. Этому помогает:

  • использование ограничения на отображение слоев карты в зависимости от масштаба
  • использование простых (не многослойных) условных знаков
  • использование аннотаций вместо надписей (процессор не должен выбирать место для аннотации, оно уже зафиксировано)
  • минимализация использования зависимости условных знаков от параметра, а если это требуется, то желательно в качестве параметра использовать целое число и строить индекс для этого параметра
  • использование данных в той же проекции, что и проекция вида
  • использование в качестве источника данных ArcSDE
  • , и так далее.

Все это очень важно для работы с динамическими картами (сервисами), которые каждый раз строятся по запросу клиента. Кардинально решить проблему производительности помогает предварительное кэширование карты – построение заранее подготовленных «картинок», которые затем мгновенно предоставляются клиенту по его запросу в зависимости от установленного масштаба и используемой части карты. При этом процессор не загружается задачами построения карты. Атрибутивные данные в этом случае продолжают храниться в базе геоданных, и все выборки, получение информации об объектах происходят в обычном режиме. Но как быть, если данные обновились, и это должно привести к изменению графики – формы объекта или условного знака? Тут кэш уже не проходит. Выход – в использовании в web-приложении двух сервисов: кэшированного, отображающего неизменяемые данные, и динамического, отображающего оперативную информацию. Вроде бы, все просто, но голова сильно пригодится. Так что повторю известную мысль: «самое главное звено любой системы – человек».

Это очень дорого. Да, ArcGIS Server недешев. В принципе, простую информационную систему можно сделать и на основе бесплатных ArcGIS Explorer или ArcReader, которые будут получать данные из файлов, но производительность и удобство таких систем будут далеки от желаемого. А, значит, через некоторое время ваши сотрудники прекратят ими пользоваться, ведь возвращаться хочется только туда, где было хорошо. Если вы собираетесь строить систему лишь для 10 клиентов, то ArcGIS Server, действительно, довольно дорог. С другой стороны, если этим 10 специалистам требуется одновременное редактирование одних и тех же слоев электронной карты, и средняя зарплата этих работников составляет 20 тысяч рублей в месяц, то закупка ArcGIS Server Basic Workgroup окупится менее чем через 3 месяца (без ArcGIS Server пока один редактирует, другие пьют чай и получают за это зарплату). А если вы строите систему, которая будет использоваться десятками или сотнями специалистов, то значительная сумма, потраченная на программное обеспечение, в пересчете на каждого человека уже не будет выглядеть столь существенной. Не забывайте, что ArcGIS Server лицензируется не на клиентские подключения, а на ядра процессоров сервера. Также не забывайте, что если вы планируете использовать ArcGIS Server только на своем предприятии, то на этапе тестирования и разработки вы можете оформить подписку EDN (ESRI Developer Network – Программа поддержки разработчиков), которая, во-первых, стоит значительно дешевле и, во-вторых, позволит определиться с вариантом поставки, который вам действительно нужен.

Вариант Workgroup – это тот же Enterprise, только маленький. Это и правда, и нет. Действительно, Workgroup – это «обрезанный» Enterprise. Но обрезан он не только по объему хранимых данных и количеству пользователей базы геоданных. Обрезан он и функционально. Во-первых, это список СУБД, которые могут использоваться для хранения информации. Хотя для небольшой организации или отдела, где нет выделенного администратора БД, использование простого в управлении MS SQL Express из Server Workgroup, возможно, будет не проигрышем, а благом. Во-вторых, в Server Workgroup невозможно создавать и использовать приложения для мобильных клиентов (для Windows Mobile). В-третьих, в Server Workgroup отсутствует полноценный сервер ArcSDE и соответствующий инструментарий, например, для загрузки и управления данными из командной строки. В-четвертых, Server Workgroup требует установки всех компонентов сервера на одном физическом компьютере не более чем с четырьмя ядрами процессоров, что накладывает ограничение на нагрузочную способность системы.

ServerAdvanced нужен только для редактирования. Для редактирования нужен только ServerAdvanced. Вторая часть утверждения почти верна. Действительно, только лицензия ArcGIS Server Advanced позволяет создавать web-приложения, в которых возможно изменять объекты (см. лицензионное соглашение). Редактирование с помощью ArcGIS Server Advanced обеспечить просто, но в стандартный шаблон включено только простое редактирование. Создавать и исправлять на карте точки, линии, полигоны, изменять их атрибуты – это приложения на основе базового шаблона могут обеспечить, и очень неплохо. Но вот осуществлять топологическое редактирование, например, изменять границу двух полигонов одновременно стандартное web-приложение не умеет. Правда для решения этой задачи можно привлечь программистов, но, скорее всего, производительность такого приложения будет очень невысокой, и оно будет сильно загружать сервер. Следует также отметить, что правильная работа стандартного «редактирующего» приложения требует запуска отдельного серверного процесса для каждого подключенного клиента, а это 100-300 мегабайт памяти и определенные ресурсы процессора. К тому же, само количество таких процессов на одном физическом Windows сервере не может превышать 100-150 (ограничение операционной системы). Так что следует хорошо подумать, прежде чем строить на ArcGIS Server систему, предназначенную, в первую очередь, для редактирования данных. Может быть, в вашем случае лучше использовать настольные приложения ArcGIS?

Вот для чего точно требуется ArcGIS Server Advanced, так это для полноценной серверной геообработки и для подключения дополнительных расширений, таких как 3D Extension и Spatial Extension. Геообработка уровня ArcView доступна уже на уровне ArcGIS Server Standard, но часто этих функций бывает недостаточно, да и инструментарий дополнительно подключаемых к Server Standard модулей Network Extension и Data Interoperability тоже не всегда может удовлетворить запросы взыскательного пользователя.

Вместо заключения

ArcGIS Server позволяет строить удобные, красивые, производительные системы. Это программное обеспечение активно развивается, расширяется функциональность базовой системы, растет круг разработчиков и примеров разработок, расширяются возможности программирования. Тем не менее, хочется еще раз повторить очень важную мысль: «Главный элемент любой ГИС – это специалист». Соответственно, все, что очень не хочется делать, в итоге и не будет сделано, а что хочется – обязательно получится.

И не забывайте, что ДАТА+ и наши партнеры накопили большой опыт по разработке и внедрению проектов на базе серверных технологий ESRI. Если вы столкнулись с трудностями или просто не знаете с чего начать, обращайтесь, мы постараемся вам помочь.