Архитектура и классификация ГИС
Классификация ГИС
Рассматривая современные ГИС, необходимо учитывать, что возможности различных классов этих систем неодинаковы. Можно выделить три группы ГИС. Первые - это мощные, ориентированные на рабочие станции или мощные ПК и сетевую эксплуатацию системы, обрабатывающие колоссальные объемы информации, имеющие разнообразные средства ввода/вывода, имеющие развитые средства документирования, которые позволяют в том числе создавать карты, практически не уступающие тем, которые создаются с использованием традиционных технологий. Яркими представителями этого класса являются ГИС фирм INTERGRAPH, GDS, ESRI. Эти системы имеют универсальный характер, позволяющий применять их в различных отраслях с одинаковым успехом.
Вторую группу составляют настольные геоинформационные системы, которые обладают несколько меньшими возможностями, чем описанные выше системы, и предназначены для решения в первую очередь научных задач, но могут быть использованы и в задачах управления. В этих системах не ставится столь жестких требований к качеству и разнообразию систем визуализации, объемам обрабатываемой информации и ее сохранности. Эти системы доступны большинству коллективов и могут работать в любом малом офисе. Типичными представителями таких систем являются MapInfo, AtlasGis и другие.
Третью группу составляют системы для домашнего и информационно-справочного пользования. Это наиболее закрытые системы, которые либо не допускают вовсе внесения изменений в информацию или допускают незначительное ее изменение, например, редактирование записей в базе данных или внесение новых записей. Это дешевые системы, которые предъявляют очень скромные требования к ПК. Представителями таких систем являются системы фирм Хорис (Санкт-Петербург) или М-City (Москва).
Классифицируя ГИС с точки зрения их проблемной ориентации можно выделить:
· инженерные;
· имущественные, предназначенные для обработки кадастровых данных;
· ГИС для тематического и статистического картографирования, имеющие целью управление природными ресурсами, составление карт по переписям, планирование окружающей среды и др.
В настоящее время существуют трехкомпонентная классификация ГИС по следующим признакам:
1.характеру проблемно-процессорной модели;
2.структуре модели базы данных;
3.особенностям модели интерфейса.
Виды архитектуры ГИС
Классифицировать ГИС можно исходя и из их архитектурных принципов построения. Все ГИС принадлежат к двум типам архитектур: “закрытым” и “открытым”.
Основная привлекательность “закрытых” систем заключается в приверженности принципу “что Вы видите, то Вы и получите”. Основной аргумент их продавцов - чрезвычайно низкая цена. Они не имеют возможностей расширения, у них отсутствуют встроенные языки, не предусмотрено написание приложений, они будут выполнять только то, что выполняют на момент их покупки. Первоначально закрытые системы удовлетворяют покупателя, но если задачи, которые решает пользователь, меняются хотя бы незначительно, то такая система оказывается неспособной их решить. В большинстве случаев закрытые системы вообще невозможно изменить, поэтому они имеют низкие цены и короткий жизненный цикл.
Открытые
системы обычно имеют 70-90% встроенных функций и на
10-30% могут быть достроены самим пользователем при помощи специального
аппарата создания приложений. Термин “открытые системы” означает открытость для
пользователя, легкость приспособления, расширения, изменения, адаптацию к новым
форматам, изменившимся данным, связь между существующими приложениями. Открытые
системы обычно дороги первоначально, но имеют большой жизненный цикл.
Определение концепции системы
При разработке концепции ГИС нужно определиться с принципиальным выбором:
1) взять за основу архитектуру одной из существующих систем и в дальнейшем приступить к её "улучшению", создавая свою версию архитектуры;
2) взяться за разработку принципиально новой архитектуры, не имеющей аналогов.
Оба подхода имеют и достоинства, и недостатки. В первом случае основной причиной неудачи является отсутствие в реализованном продукте технологической новизны в необходимом масштабе. Второй путь позволяет создать, возможно, удивительный продукт, но существует опасность в его самобытности переборщить настолько, что потребителю будет непонятна вся глубина подхода. Только немалые вложения в разъяснения и рекламу способны позволить продукту завоевать рынок. Усложнить дело могут ошибки, связанные отладкой новой технологии. Таким образом, основной недостаток второго пути - прямая противоположность статичности - чрезмерная революционность.
Здравый смысл подсказывает, что целесообразно избрать в качестве руководства к действию "золотую середину", с которой связан эволюционный подход. В соответствии с ним до разработки необходимо проанализировать состояние технологий в предметной области, для которой создаётся ГИС, выявить проблемы, которые требуют своего быстрейшего решения, ознакомиться с существующими архитектурами ГИС, определить их недостатки и разработать новую архитектуру (концепцию) ГИС, избавленную от недостатков, осложняющих эффективное решение наиболее важных проблем предметной области. Следование эволюционному подходу может привести к появлению такого продукта, в котором есть немало новаторских решений, который удобен в работе, позволяет решать задачи предметной области и не слишком шокирует пользователей, имеющих опыт работы с другими геоинформационными системами.
Геоинформатика - весьма молодая область, если учитывать, что первые достаточно серьёзные технологии в этой области появились в последнее десятилетие (однако первые системы, относимые к ГИС, - возникли примерно 25-30 лет назад). Основным недостатком большинства существующих на сегодня инструментальных ГИС является недостаточная продуманность в подходе к формированию цифровой карты как существенно нереляционной модели данных.
Если рассматривать чисто предметный аспект, то, как правило, структура карты представляется линейным списком слоев. Пользователям таких систем достаточно создать один слой и можно сразу приступать к наполнению электронной карты пространственными объектами. Через некоторое время появляется красивая электронная карта участка территории и появляется иллюзия, что работы ведутся в нужном направлении. Лишь по прошествии некоторого времени пользователи начинают понимать, что все созданное является лишь картинкой, не столько подготовленной к автоматизированному анализу, сколько просто копирующей бумажные карты.
Для адекватного отражения объектов реального мира концепции слоев недостаточно - необходим современный объектно-ориентированный подход. При использовании инструментальных ГИС, реализующих такой подход, создание электронных карт начинается с анализа тех объектов реального мира, которые будут присутствовать в электронной карте. По результатам анализа при помощи объектно-ориентированных средств ГИС формируется классификация объектов, и лишь затем начинается наполнение электронной карты экземплярами пространственных объектов.
При проектировании современной инструментальной ГИС необходимо уделить повышенное внимание концепции и процедурам формирования классификатора пространственных объектов.
Для начала вместо термина слой необходимо ввести термин класс пространственных объектов, для которого определяется набор характеристик, присущих всем объектам данного класса. ГИС должна предоставлять пользователям возможность организации перечня всех классов не в виде линейного списка, а в виде множественных пересекающихся иерархий (не иерархии, подобной наследованию классов, а системе иерархий, подобной применяемой в файловой системе - каталоги и ссылки - ярлыки). Данное требование обусловлено тем, что при составлении сложных муниципальных карт, приходится оперировать не десятками, а сотнями и даже тысячами классов пространственных объектов.
Какие категории характеристик должны определяться для класса пространственных объектов? Можно выделить следующие категории характеристик класса "пространственный" объект:
1) способы отображения пространственных объектов данного класса на карте;
2) набор атрибутивных характеристик пространственных объектов данного класса;
3) набор отношений объектов данного класса с объектами других классов.
Способы отображения пространственных объектов одного класса можно представить в виде таблицы стилей. Каждый стиль описывает, каким образом система должна отображать объект на карте. Для описания сложных способов отображения объектов стиль содержит перечень методов отображения, каждый из которых регламентирует отдельные аспекты отображения объекта: как закрашивать площадные участки объекта, как отображать окантовку объекта, надо ли выводить текст вдоль контура объекта, в каком диапазоне масштабов должен применяться данный метод отображения.
Почему необходим список стилей? Не достаточно ли одного стиля? -Недостаточно, поскольку пространственный объект потенциально может находиться в одном из нескольких состояний и тогда может понадобиться возможность визуально отражать на карте текущее состояние объекта. Для этого и пригодится несколько различных стилей, связанных с одним классом пространственных объектов, которыми объект будет изображаться в зависимости от его состояния. Кроме того, инструментальная ГИС должна уметь представлять пространственные объекты, имеющие составную геометрию из нескольких подобъектов. При такой концепции пространственный объект состоит из набора геометрических форм, с каждой из которых связывается свой стиль, которым необходимо отображать данную форму.
Разделение геометрии объекта на относительно независимые формы находит ряд интересных применений: часть форм может использоваться для выполнения аналитических задач, а часть - для оформительских. Прикладные системы могут использовать разные геометрические формы одного объекта для решения разных задач.
Набор атрибутивных характеристик определяет структуру семантических данных, которыми будет обладать каждый объект класса. Поскольку атрибутивная информация вполне хорошо описывается реляционной моделью, то её принято хранить в реляционных таблицах общего назначения. Тогда инструментальная ГИС должна позволять описывать соответствие между декларированными атрибутивными характеристиками класса и физическими столбцами существующих реляционных таблиц. В идеальной ситуации такая ГИС должна предоставлять возможность создания новых таблиц и изменения структуры существующих реляционных таблиц.
Набор отношений описывает все допустимые и запрещённые связи объектов данного класса с объектами других классов. Связи между объектами можно подразделить на две категории: логические и топологические. Отличие топологических связей от логических заключается в том, что при топологической связи контуры связанных объектов имеют общие части - вершины или ребра, лишь при этом условии между объектами может быть установлена топологическая связь. При логических связях фиксируется лишь сам факт того, что объекты как-то связаны между собой, их конкретное содержательное наполнение определяется прикладной геоинформационной системой, построенной на базе инструментальной.
Хранение пространственных данных
Одним из первых встает вопрос об организации хранения и внесения изменений в пространственные данные. Сложность данной проблемы заключается в объемах данных, с которыми придется оперировать; ведь речь идет не о сотне или тысяче пространственных объектов, а о сотнях тысяч и миллионах. Естественно, что нельзя подойди к решению этой проблемы упрощенно: завести линейный список объектов, при запуске программ загружать весь этот список в ОЗУ, а при сохранении записывать список из памяти компьютера на жесткий диск. При недостатке вычислительных ресурсов (производительность процессора, объём оперативной памяти), что всегда имеет место в ГИС, необходимо применить весьма изощрённые структуры данных и реализовать эффективные способы манипулирования большими объёмами данных с учётом их размещения на всех уровнях иерархии компьютерной памяти. Реляционная модель плохо подходит для эффективного манипулирования пространственными данными.
Рассмотрим несколько вариантов организации хранения пространственных данных.
Все пространство картографируемой территории равномерно разбивается на одинаковые прямоугольные сектора (рис.3.1).
Рис.3.1 Разбитие территории на сектора
С каждым сектором связывается блок данных, описывающий границы сектора и хранящий две таблицы объектов (рис.3.2).
Рис.3.2 Связь сектора с блоком данных
Описанная организация хранения данных позволит быстро определить список секторов, для которых необходимо загрузить блоки данных. Недостатком этого подхода является невозможность определения эффективной разбивки территории на сектора при отсутствии информации о том, сколько пространственных объектов будет на карте и где они будут располагаться. Кроме того, предложенная схема снижает свою эффективность при неравномерном распределении (скученности) пространственных объектов.
Для устранения указанных недостатков можно использовать другую организацию хранения данных.
По второй схеме территория не разбивается на одинаковые сектора. В начальном состоянии, когда на карте нет ни одного пространственного объекта, существует всего один сектор, границы которого полностью совпадают с границами территории. С этим сектором связан блок данных, содержащий описание границ сектора и список объектов, границы которых полностью лежат в пределах сектора. По мере добавления объектов в сектор при достижении некоторого критического количества объектов происходит разбиение сектора на четыре одинаковых подсектора. При этом объекты, контуры которых полностью лежат в пределах одного из подсекторов, перемещаются в блок данных этого подсектора. Объекты, лежащие на границах подсекторов, остаются в блоке данных родительского сектора. Применяя описанный механизм к подсекторам, получаем иерархию вложенных секторов, с каждым из которых связано относительно небольшое количество объектов (рис.3.3).
Рис.3.3 Иерархия вложенных секторов
Для определения местонахождения объекта по его номеру необходима таблица, состоящая из двух столбцов: "номер объекта", "номер сектора".
Подход, описанный во втором способе хранения данных, учитывает неравномерность распределения объектов по территории и позволяет хранить объекты относительно небольшими порциями, загружая списки объектов только для нужных секторов. Кроме того, можно составить эффективный алгоритм отбора объектов по заданной прямоугольной области, постепенно отсекая сектора, не содержащие нужную область.
Работа ГИС в сети
Большинство прикладных геоинформационных систем предназначены не для домашнего использования, а для работы в крупных организациях и учреждениях, коллективу которых необходимо оперативно обрабатывать большие объёмы пространственной информации. В такой ситуации инструментальная ГИС должна обеспечивать возможность работы с одним набором геоинформационных данных нескольким пользователям в пределах локальной компьютерной сети. Задачу осложняет тот факт, что необходимо производить не только просмотр информации, но и совместное - часто одновременное - внесение изменений в пространственные данные.
При совместной работе в сети приходится искать решение следующих проблем:
1) внесение изменений в базу данных со стороны нескольких клиентов может привести к нарушению целостности базы данных;
2) для приведения в актуальное состояние информации, размещенной в оперативной памяти клиентской программы, необходимо предусмотреть систему оповещения клиентов об изменениях, вносимых в общие данные со стороны одного из клиентов;
3) необходимо вводить блокировку одновременному изменению одного объекта со стороны нескольких клиентов;
4) создание новых объектов требует генерации уникальных идентификаторов независимо от того, какой клиент инициировал создание объекта.
Решить эти проблемы помогает применение технологии "клиент/сервер". Все перечисленные задачи берет на себя специальное приложение сервера пространственных данных. Клиентские же приложения используют общие данные посредством обращений к приложению сервера.
В операционной системе Windows для использования технологии "клиент/сервер" удобнее всего использовать штатный для этой операционной системы механизм DCOM (Distributed Component Object Model), являющийся сетевым расширением технологии COM (Component Object Model). Приложение, построенное в соответствии с принципами COM, предоставляет доступ к своим функциям в виде набора интерфейсов (интерфейсом в COM называется таблица, содержащая адреса функций). DCOM позволяет общаться приложениям не только в пределах одного компьютера, но и в пределах локальной компьютерной сети.
Общая структура сервера данных ГИС и схема взаимодействия клиентов с сервером приведена на рис.3.4
Рис.3.4
Контекст связи
предназначен для обеспечения взаимодействия клиента с сервером и хранения
информации, специфичной для конкретного клиента.
Рис 3.5
Диспетчер вызовов обеспечивает синхронизацию вызовов функций сервера со стороны клиентов (постановку в очередь одновременных вызовов со стороны нескольких клиентов).
Подсистема управления данными обрабатывает запросы клиентов на получение и внесение изменений в пространственные данные. Подсистема подготовки изменений преобразует высокоуровневые запросы (изменение контура объекта) в низкоуровневые операции изменения физических данных (записать блок данных сектора N) и помещает их во входную очередь подсистемы доступа к физическим данным, которая в фоновом режиме вносит изменения в физические данные.
Подсистема блокировок предназначена для предотвращения одновременного внесения изменений в один объект со стороны нескольких клиентов (рис.3.6).
Рис. 3.6
Подсистема оповещений предназначена для синхронизации оперативных данных, являющихся копией общих данных и используемых в клиентских приложениях для повышения производительности (кэширование). Система оповещений функционирует согласно следующему сценарию:
1) один из клиентов посылает на сервер запрос на внесение изменений в общие данные (рис. 3.7а);
2) сервер производит необходимые изменения в данных (рис. 3.7б);
3) после внесения изменений сервер формирует пакет оповещений (протокол изменений) и помещает копию пакета в очередь оповещений каждого контекста связи (рис. 3.7в);
4) сервер оповещает каждого клиента о поступлении оповещений посредством функций интерфейса взаимодействия с клиентом (рис. 3.7г);
5) каждый клиент получает от сервера пакеты оповещений, хранящиеся в очереди оповещения в контексте связи (при получении пакетов оповещений сервер автоматически удаляет их из очереди) (рис. 3.7д);
6) каждый клиент обрабатывает полученные оповещения, приводя в актуальное состояние свои оперативные данные (рис. 3.7г).
Рис.3.7
Необходимо заметить, что система оповещений может использоваться не только для обновления оперативных данных, но и для нужд администратора геоинформационной системы. Так, например, некоторые оповещения могут иметь управляющий характер и использоваться для автоматического завершения работы всех клиентов, присоединенных в данный момент к серверу данных или же для рассылки визуальных сообщений от администратора к пользователям ГИС.
Распределенные ГИС
При решении геоинформационных задач масштаба города возникает необходимость обеспечить доступ к общим пространственным и семантическим данным разных предприятий и городских служб. Проблема осложняется тем, что изменения, вносимые в общие данные со стороны одной из организаций, должны стать доступными для всех остальных заинтересованных организаций города.
Поскольку маловероятно наличие локальной компьютерной сети между всеми городскими службами разрабатываемая система должна включать функции тиражирования изменений, вносимых в общие данные, между всеми заинтересованными субъектами. Инструментальная ГИС должна обеспечивать процедуру описания структуры распределенных данных (рис.3.8).
После определения структуры распределенных данных в процессе работы с данными программное обеспечение ГИС автоматически формирует пакеты изменений для всех субъектов распределенной системы (рис.3.9а). При помощи специальных утилит ГИС происходит обмен пакетами изменений между субъектами распределенной системы (рис.3.9б).
Одной из
ключевых проблем распределенных систем является генерация уникальных
идентификаторов для новых объектов. Решить эту проблему может помочь
специальный механизм идентификации объектов в распределенной среде. Все
множество идентификаторов разделяется на группы идентификаторов, каждой из
которых присваивается глобальный уникальный идентификатор ГУИД (генерацию таких
идентификаторов обеспечивают штатные функции операционной системы Windows).
Любая база данных ГИС сопровождается таблицей групп идентификаторов,
Рис. 3.8
элементы которых используются в базе данных (рис.3.10а). Идентификаторы объектов состоят из двух частей: индекса группы идентификаторов и номера идентификатора в пределах группы (рис.3.10б). Одна из групп идентификаторов базы данных используется для генерации новых идентификаторов (рис.3.10в). При переполнении номеров идентификаторов в пределах этой группы, система создает новую группу идентификаторов с новым ГУИД и сбрасывает номер объекта в пределах группы в начальное состояние. С этого момента созданная группа используется для генерации новых идентификаторов.
Рис. 3.9
Рис. 3.10
При обмене данными между базами данных все пакеты, предназначенные для обмена информацией, обязательно сопровождаются таблицами групп идентификаторов (рис.3.11а). Эта информация используется утилитами приема обменных данных для корректного преобразования идентификаторов (рис.3.11б), необходимого при переносе из одной базы данных в другую. Описанный подход позволяет применять для идентификации объектов достаточно компактные, но уникальные идентификаторы.
Рис. 3.11
Расширяемость ГИС
Создатели универсальных геоинформационных систем понимают, что на базе их системы будут создаваться крупные прикладные системы, где ГИС будет существовать как одна из многих компонент. Для того, чтобы это было возможно, необходимо заранее продумать, каким образом будущие прикладные системы станут взаимодействовать с проектируемой инструментальной ГИС общего назначения.
Сделать систему открытой и легко адаптируемой к решению прикладных задач можно, применив следующие подходы;
1) механизм встраивания модулей
расширения в ГИС (рис.3.12а);
2) интерфейс прикладного программирования, обеспечивающий доступ к ключевым
функциям и объектам ГИС со стороны внешних приложений (рис.3.12б);
3) набор универсальных элементов
управления (OCX) для встраивания функциональности ГИС в другие приложения
(рис.3.12в);
4) набор элементов ActiveX или классов языка Java для встраивания функций ГИС в
прикладные системы, проектируемые по технологии Internet/Intranet (рис.3.12).
Рис.3.12
Литература: