Игорь Стрельцов, Ст. эксперт DATA+
ArcSDE или Spatial Database Engine — это служебное программное обеспечение для связи ГИС-приложений с системами управления реляционными базами данных (РСУБД). Это программное обеспечение построено на клиент-серверной технологии и предназначено для хранения, управления и быстрого получения пространственных данных из РСУБД, таких как Oracle, Microsoft SQL Server, IBM DB2 и Informix. ArcSDE играет фундаментальную роль как в организации корпоративных многопользовательских ГИС, так и в развертывании распределенных ГИС. ArcSDE — наращиваемое решение, позволяющее легко интегрировать пространственные данные с атрибутивной информацией, имеющейся в организации, и развивать систему от уровня небольших рабочих групп до уровня корпорации.
С использованием ArcSDE ГИС-приложения могут напрямую работать с пространственными данными, хранящимися и управляемыми РСУБД. В качестве клиентов сервера ArcSDE могут выступать как приложения ESRI (ArcInfo, ArcEditor, ArcView, ArcIMS и другие) и ведущие средства САПР (MicroStation и AutoCAD), так и ваши собственные программы или продукты сторонних разработчиков (рис.1). Имея данное решение, вы можете быть уверены, что сможете использовать пространственные данные и картографические программы на любом клиентском месте где угодно в сети.
Рис. 1. Клиентские приложения ArcSDE для РСУБД.
Задачи, решаемые ArcSDE
Необходимость приобретения этого программного продукта диктуется самой жизнью предприятия, развитием его геоинформационной системы. Очень часто пользователи начинают ощущать ограничения, накладываемые существующей системой хранения и использования пространственных данных. В некоторых случаях при проектировании корпоративной ГИС в нее закладывается избыточность функций, которая перестает быть таковой буквально в течение несколько месяцев после ввода системы в эксплуатацию. Итак, сформулируем те условия, при которых приобретение ArcSDE становится необходимостью.
- Хранение очень больших объемов информации.
- Использование «неразрывных» крупномасштабных электронных карт.
- Многопользовательское редактирование одних и тех же классов объектов (слоев электронной карты).
- Использование долговременных сеансов редактирования, версий данных.
- Удаленный доступ к данным (в том числе, их редактирование) по сетям общего пользования.
- Взаимное использование данных ГИС- и САПР- приложениями.
Теперь рассмотрим подробнее, как ArcSDE поможет вам решить эти задачи, а также собственно сущность и преимущества ArcSDE.
Роль ArcSDE в многопользовательской ГИС
ArcSDE обеспечивает для ГИС интерфейс к выбранной РСУБД, а ГИС предоставляет прикладные программы для объектно-ориентированного представления данных. ArcSDE обеспечивает такие возможности в многопользовательском режиме работы, как совместный доступ к данным и управление версиями данных, а ГИС дает инструмент, необходимый для определения схемы базы геоданных, создания и редактирования базы данных и для ее эффективного использования.
С помощью ArcSDE вы можете:
- Управлять вашей базой геоданных, располагаемой в РСУБД по вашему выбору. Вы выбираете базу данных, в которой находится и управляется ваша база геоданных.
- Обеспечивать многим пользователям возможность одновременно вносить изменения и просматривать объекты из базы геоданных. ArcSDE добавляет поддержку длинных транзакций и создание версий для вашей базы геоданных.
- Обслуживать неограниченное число пользователей ArcGIS в сети. Вы можете установить ваш сервер приложений SDE на ту же платформу, на которой работает ваша система РСУБД, за счет чего значительно повысится эффективность работы всей системы.
- Обеспечивать открытый доступ к данным посредством локальных, региональных сетей и Интернета с использованием только протокола TCP/IP. ArcSDE предоставляет быстрый доступ в гетерогенных средах, включающих UNIX и Microsoft Windows платформы.
- Предоставлять доступ к вашей базе геоданных пользователям, работающим как с ArcGIS, так и с ArcIMS, MapObjects, ArcView GIS или с приложениями САПР.
- Разрабатывать совместимые с требованиями OpenGIS приложения, которые могут работать с векторными объектами в базе геоданных.
- Создавать SQL — приложения, которые работают с таблицами или отдельными строками в РСУБД.
- Разрабатывать свои собственные приложения с использованием среды разработки ArcSDE, включающей C API и Java API, а также расширенный SQL API (доступен для ArcSDE for DB2 и ArcSDE for Informix). Разработчики могут использовать MapObjects Professional в среде популярных программных средств: Visual Basic, Visual C++, Delphi и т.д. Приложения также могут создаваться в ArcInfo 8 / ArcEditor 8 /ArcView 8 c использованием Visual Basic, в ArcInfo Workstation с использованием открытой среды разработки (Open Development Environment — ODE) или в ArcView GIS с использованием языка программирования Avenue.
- Встраивать в клиент-серверную систему ArcSDE существующие приложения, добавляя в них функции картографирования и пространственного анализа без обращения к традиционным ГИС-технологиям.
Большие, централизованные и высоко интегрированные пространственные базы данных представляют чрезвычайно большую ценность. Подобно любой реляционной базе данных, ваша база геоданных является сердцем всего того, что делает ваша организация. Открытый доступ к вашей базе геоданных важен по ряду причин.
По мере развития ГИС вашей организации, она будет требовать все больших затрат на структурирование и поддержку базы геоданных. База геоданных может использоваться для целей, которые выходят за круг ее первоначальных задач. Разрешение доступа к вашей базе геоданных является критическим моментом в развитии вашей ГИС. Многие пользователи внутри вашей организации, а также часто и вне ее, по сети Интернет будут иметь возможность доступа к вашей базе данных. Это потребует, чтобы расположение РСУБД было централизовано, база данных управлялась администратором, осуществлялся контроль доступа к данным в вашей базе данных, а также применения широкого спектра эффективных приложений, которые обеспечивают все выгоды от использования ценных ресурсов вашей базы данных.
Вы убедитесь, что, оказывается, у вашей базы данных существует много потенциальных пользователей. Более того, вы можете обнаружить, что некоторые пользователи базы геоданных вообще не применяют эти данные в ГИС-приложениях, они используют их в других прикладных программах.
Хранение данных
База геоданных представляет собой хранилище для ваших пространственных данных внутри РСУБД. Это хранилище содержит векторные данные, растровые данные, таблицы и другие объекты ГИС.
Об этой модели данных вы можете прочитать подробнее в этом выпуске ArcReview в отдельной статье. Хочется отметить, что наиболее полно эту модель данных можно реализовать именно на основе ArcSDE для РСУБД. Этот продукт позволяет хранить как векторную, так и растровую информацию. О векторной информации уже написано достаточно много в вышеупомянутой статье и будет сказано ниже. Остановимся сейчас на растрах.
С помощью продуктов ArcGIS в ArcSDE можно загружать следующие форматы растровых данных: грид ArcInfo/ArcView, TIFF 6.0, формат ERDAS IMAGINE, форматы файлов ERDAS *.lan и *.gis, BIL/BIP/BSQ, BMP, MrSID, JPEG, GIF, ADRG.
Поддержка растровых изображений большого объема
Для обеспечения эффективного доступа и хранения таких данных в базе геоданных, растровые данные автоматически режутся на отдельные фрагменты, располагаемые каскадом, и при этом сжимаются. Этот метод можно использовать, чтобы создавать очень большие растровые наборы данных в базе геоданных. При загрузке растровых данных можно сшивать в мозаику необходимое число таких фрагментов, чтобы обеспечить покрытие требуемой площади.
Когда идет работа с большой растровой базой данных, для минимизации времени ожидания желательно определять отображаемый экстент растрового изображения.
Пирамидные слои
Пирамидные слои используются для ускорения процесса вывода и отображения растровых изображений в тех ситуациях, когда не используется максимальное разрешение в изображении, например, при уменьшении масштаба изображения на экране.
Для хранения растрового набора данных с созданными пирамидными слоями требуется дополнительная память, которая зависит от числа слоев в пирамиде. Обычно затраты памяти составляют около 20% от исходного объема. Однако, выигрыш от создания пирамидных слоев при работе с большими изображениями оказывается неизмеримо большим.
Передача данных
ArcSDE построен на технологии клиент/сервер. Клиентское приложение посылает запрос на сервер. В свою очередь, сервер, получив запрос, формирует ответ на запрос и направляет его клиенту.
Сервер ArcSDE предоставляет пространственные данные, основываясь на высокоэффективном механизме пространственного поиска, который обеспечивает проверку корректности геометрических данных, выполняет работы с картографическими проекциями и работает в разнородной среде аппаратных и сетевых конфигураций. Данные могут доставляться к любому клиенту от любого сервера в любом месте сети.
В типовой конфигурации сервер приложений ArcSDE устанавливается на единую платформу с вашей реляционной базой данных. Сервер приложений ArcSDE выполняет пространственный поиск и отсылает данные, удовлетворяющие условиям поиска, обратно клиенту. Например, наиболее часто выполняемым запросом, который выполняет сервер приложений ArcSDE, является возврат клиенту всех географических объектов в определенном фрагменте карты с отображением результата на экране.
Процесс отбора объектов для передачи пользователю происходит на сервере в несколько этапов. Для хранения объектов в ArcSDE используется сетка пространственного индекса (рис. 2), она как бы «накладывается» на слой объектов, а не «разрезает» эти объекты. На первых этапах поиска происходит выборка с использованием пространственного индекса, что позволяет делать это очень быстро. Лишь на последнем этапе отбора происходит более медленный анализ геометрии выборки и объектов, попадающих в нее. Оптимальный подбор размера ячейки пространственного индекса позволяет значительно увеличить скорость работы системы. Пристальное внимание при работе с ArcSDE необходимо уделить и настройке собственно СУБД, что также при грамотном подходе значительно повышает производительность системы.
Рис. 2. Для хранения объектов в ArcSDE используется сетка пространственного индекса.
ArcSDE посылает данные клиенту, используя технологию «буферизации данных». Сначала собирается определенный объем данных, и только после этого все эти данные посылаются клиентскому приложению (вместо того, чтобы посылать по одной записи по мере выполнения запроса). Обработка и буферизация данных на сервере оказывается более эффективной, нежели пересылка всех данных по сети и принятия решения у клиента, какие данные необходимо еще передать на его рабочую станцию. Это особенно важно, если учесть, что разные приложения одновременно используют тысячи записей в базе данных.
ArcSDE использует принцип совместной обработки, то есть, данные обрабатываются как на стороне клиента, так и на сервере — в зависимости от того, где быстрее. Выполнение некоторых функций не требует связи с сервером. Задачи, которые требуют интенсивной загрузки процессора, такие как оверлейные задачи для полигонов, а также вырезки лучше выполнять в клиентских прикладных программах, чтобы исключить чрезмерные требования к быстродействию сервера и пропускной способности сети.
Здесь следует упомянуть о возможности использования «прямого соединения» — получении клиентом данных из некоторых РСУБД (Oracle и MS SQL) без участия сервера приложений ArcSDE. Это соединение используется только для чтения данных и не требует клиентской лицензии ArcSDE, но оно значительно проигрывает в скорости обработки запросов из-за неучастия в процессе отбора пространственного индекса и сервера ArcSDE.
Безопасность базы геоданных обеспечивается в самой РСУБД, поэтому для доступа к данным требуется обеспечить соединение с сервером РСУБД. Пользователь должен ввести информацию для обеспечения соединения, которая включает имя пользователя и пароль. Эта информация передается на сервер ArcSDE и используется для входа в РСУБД. Если подключение произведено успешно, то пользователь может начать работу с базой геоданных.
Организация удаленного доступа
Как уже было сказано, при использовании ArcSDE для получения информации обязательно наличие только соединения клиента с сервером по протоколу TCP/IP. При удаленном доступе к данным вы можете использовать такие преимущества ArcSDE, как сжатие данных при передаче, буферизация данных, возможность работы не с графической, а с описательной информацией — метаданными. Если вы предполагаете предоставлять данные пользователям вне локальной сети, то в устройстве защиты — брандмауэре — необходимо открыть порт доступа к службе ArcSDE. Работа с аутентификацией в РСУБД (и, возможно, в брандмауэре), а также использование только определенного администратором порта дают достаточно высокий уровень защищенности системы. При необходимости дополнительной защиты, как на стороне клиента, так и на стороне сервера желательно ставить средства шифрования передаваемых данных. На рис. 3 представлена примерная структура системы удаленного доступа к данным на основе ArcSDE.
Рис. 3. Архитектура корпоративной распределенной ГИС на основе ArcSDE.
ArcSDE для покрытий
ArcSDE для покрытий входит в комплект поставки ArcInfo и ArcSDE. Эта программа обеспечивает возможность чтения покрытий, шейп-файлов, слоев ArcInfo LIBRARIAN и слоев ArcStorm через любую сеть с протоколом TCP/IP по интерфейсу ArcSDE, без необходимости непосредственного доступа к файлам с рабочей станции. ArcSDE для покрытий также может предоставлять пользователю атрибутивные данные из РСУБД. ArcSDE для покрытий имеет тот же интерфейс, что и ArcSDE для РСУБД. К нему могут подключаться те же самые клиенты, включая семейство ArcGIS, собственные и САПР-приложения (рис. 4). Этот программный продукт может применяться для обеспечения плавного перехода организации к ArcSDE для РСУБД.
Рис. 4. ArcSDE для покрытий.