Smallworld GIS в лесном хозяйстве и радиоэкологии


Smallworld GIS в лесном хозяйстве и радиоэкологии
Богомолов В.В. , Ена Л.М., Гаврилов В.А., Полупан А.В. Украинский научно-исследовательский институт лесного хозяйства и агролесомелиорации им. Г.Н. Высоцкого

Smallworld GIS появилась на рынке сравнительно недавно - первая инсталляция системы была произведена в 1990 году. К настоящему времени Smallworld GIS завоевала прочные позиции на рынке и активно используется предприятиями газо-, нефте-, энерго- и водоснабжения, телекоммуникационными предприятиями и службами муниципального управления.

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

Во-первых, можно было разработать собственную ГИС на таких языках программирования как C или Pascal. В 1994 году это было оправдано, так как рынок ГИС в странах СНГ был представлен очень слабо. Но в силу разных причин эта попытка не принесла желаемого эффекта, хотя и привела к созданию собственной программы топологической коррекции цифровой модели местности.

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

Разработка методик для решения задач ведения лесного хозяйства в условиях радиоактивного загрязнения происходила параллельно с выбором подхода к отображению этих методик в информационной системе. Ясно было только то, что основной частью системы будет таксационная база данных (БД), которая ведется в Леспроекте Украины. Анализ состояния этой БД показал, что она лишена возможности интеграции с современными коммерческими системами. Нужно было выбрать такую ГИС, которую можно было бы быстро адаптировать под методические разработки, которые ведутся на научных станциях УкрНИИЛХА. Но, прежде всего, такая система должна дать возможность реконструкции таксационной БД на основе фундаментальных принципов создания и построения баз данных.

После анализа современных тенденций развития геоинформационных систем и их воплощения в практических реализациях выбор пал на разработку британской фирмы Smallworld Systems Ltd. Smallworld GIS.

В чем же состоят особенности системы Smallworld GIS? Общая архитектура системы изображена на рисунке 1. В Smallworld GIS нет привычной модульной структуры, присутствующих в аналогичных продуктах - это в полном смысле интегрированная среда, называемая разработчиками "географической операционной системой" (GOS) и включающая следующие программные компоненты: Архитектура системы Smallworld GIS 3
Рисунок 1. Архитектура системы Smallworld GIS 3

Ниже мы остановимся на некоторых компонентах системы Smallworld GIS, а также рассмотрим, какие преимущества дает эта система в качестве системы управления базами данных.

Язык программирования
Язык программирования Magik ближе всего стоит к языку Smalltalk. В нем реализованы все парадигмы объектно-ориентированного подхода: инкапсуляция, класс, полиморфизм, множественное наследование. Разработана обширная библиотека классов и методов. В версии продукта 2.2 имеется около 700 классов и 30000 методов. Class Browser позволяет ориентироваться в классах и методах системы и дает доступ к их исходным текстам и комментариям. Magik предоставляет удобные средства сопряжения с внешними программами и системами (Alient Co-Processor interface, ACP). При этом Smallworld GIS может выступать как в качестве клиента, так и сервера.

База данных Smallworld GIS
База данных Smallworld GIS построена по реляционному принципу. Основной ее особенностью является отсутствие разграничения атрибутивной и графической ее частей. Каждый объект реального мира (запись таблицы) может иметь как физическое (имеются в виду числовые и текстовые характеристики), так и геометрическое представление.

Физические типы данных ничем не отличаются от типов данных, характерных для других СУБД. Допустимы целочисленные типы (ds_byte, ds_int, ds_uint), типы с плавающей точкой (ds_float, ds_double), строковые типы (ds_char), логический тип (ds_bool), типы для записи времени (ds_time, ds_date). Можно также задавать собственные типы данных, которые формируются на основе перечисленных физических типов. Сюда входят и диапазоны значений для численных типов, и перечисления для строкового типа. Для перечислимого типа можно сформировать произвольное количество доменов. Домен в данном случае означает подмножество из списка всех значений, которые допустимы для данного перечислимого типа. Домены обычно формируются, если значения из одного перечислимого типа отображаются на другой (mapping). Например, отображение списка сортиментов древесины на список древесных пород можно выразить в виде доменов перечислимого типа «сортимент». Тогда каждый такой домен будет списком сортиментов, которые можно получить из данной древесной породы.

Геометрическое поле может принимать значение любого из следующих типов: Векторные объекты (point, chain, area) могут вступать друг с другом в структурно-топологические взаимоотношения. Это происходит благодаря тому, что они представлены с помощью топологических элементов: node (узел), link (звено) или polygon (полигон). Если группа объектов имеет общие топологические элементы, то говорят, что они находятся в одном многообразии (manifold). Например, все участки автомобильных дорог могут входить в одно многообразие, а участки железных дорог – в другое. Поскольку они не имеют общих топологических элементов, проследовать с железной дороги на автодорогу нельзя, хотя они и имеют точки пересечения на поверхности земли (мосты, тоннели и переезды).

Допускается множественность как физических, так и геометрических полей. Поддерживаются первичные ключи и индексы, которые могут быть сформированы из произвольного подмножества физических полей таблицы. Количество индексных выражений не ограничивается. Запросы к БД, в том числе пространственные, производятся единообразно с помощью предикатов. Определение пространственного положения объекта производится с помощью присвоения ему квадратонического индекса.

Поддерживаются также вычисляемые поля, которые представляют собой код на языке Magik, возвращающий значение одного из физических типов данных.

Предусмотрена поддержка триггеров (хранимых процедур). Помимо обычных триггеров на добавление, удаление и обновление записи возможны триггеры на обновление значения поля, а для геометрических полей добавляются еще и триггеры на их присоединение (attach) и отсоединение (detach). Все триггеры реализуются с помощью программного кода, в котором задаются действия, сопровождаемые ту или иную операцию с данными.

В число средств для администрирования БД входят:
1. Поддержка параллелизма за счет выполнения длительных транзакций (long transactions). Для выполнения длительных транзакций введено понятие «альтернатива», которая представляет собой некий дубль состояния БД на определенный период времени. Таких альтернатив может быть множество, причем каждая из них в свою очередь может порождать другую группу альтернатив. Таким образом, альтернативы могут образовывать древовидную структуру. В каждой альтернативе одновременно может работать только один пользователь. Множество альтернатив обеспечивают множественный доступ к БД. Каждое изменение БД в пределах одной альтернативы фиксируется как отдельная транзакция (lightweight transaction) с возможностью отката и возобновления (undo, redo) на произвольное число шагов. Размер БД не увеличивается пропорционально количеству альтернатив, поскольку в отдельной альтернативе хранятся только изменения по отношению к родительской альтернативе. Чтобы получить актуальное состояние БД, нужно произвести слияние изменений, произведенных в каждой дочерней альтернативе, в самую «верхнюю» альтернативу, которая является общим предком по отношению к другим. При этом между разными альтернативами могут возникать конфликты, связанные с изменением одной и той же записи разными пользователями. Разрешение конфликтов производится с помощью менеджера конфликтов (Conflict Manager), который предоставляет возможность администратору БД выбрать правильное изменение.

2. Управление версиями. В любой момент времени можно зафиксировать состояние БД или создать ее версию. Этот механизм очень полезен во время пробных изменений БД, а также может быть использован для отслеживания временной динамики изменения данных без существенного увеличения их объема. Например, в БД лесоустройства с помощью версий можно фиксировать состояние лесного фонда за каждый год, затем анализировать динамику его изменения во времени. Это один из немаловажных доводов в пользу перехода БД лесоустройства на платформу Smallworld GIS, поскольку сейчас анализ лесохозяйственной деятельности за длительный период времени невозможен.

3. Кэширование. Необходимость в кэшировании возникает на участках коммуникационной сети с пониженной пропускной способностью. В этих случаях на труднодоступном участке сети организуют кэш-сервер, на котором помещают часть базы данных, которая здесь больше всего используется. Если возникает необходимость в данных, которых нет в кэшированной части, то происходит их подкачка из основного сервера БД.

4. Фрагментация.

5. Репликация.

CASE-tool – инструмент для проектирования баз данных, схожий со многими современными CASE-средствами. Оно дает возможность отображать сущности (таблицы) и связи между ними в виде сетевых диаграмм. Основные типы поддерживаемых связей – 1:0, 0:n, 1:n, m:n, join via, geometrical. Кроме того, предоставляется интерфейс для определения свойств полей таблицы, существует возможность формировать ее индексные выражения, проектировать интерфейс редактора записи таблицы. Здесь же можно определять пользовательские типы хранимых данных, задавать топологические взаимоотношения между геометрическими полями. Проект базы данных автоматически компилируется в программный код.

ACE (Application Control Environment) управление средой пользователя – компонент, который дает возможность оптимальной настройки функций и интерфейса Smallworld GIS на специфику приложения, а также особенности работы отдельных пользователей. ACE служит для определения видов доступа (видимость, доступность для выбора, доступность для редактирования), диапазонов масштабов при визуализации, списков вызываемых из меню функций, «горячих» клавиш и системных значений "по умолчанию" для каждого пользователя в рамках проекта.

Стилевая система (Style System) – это совокупность функций, с помощью которой можно назначать для каждого геометрического поля стандартный и "выделенный" способ отображения при различных диапазонах масштаба визуализации. Стилевая система предоставляет специальный интерфейс для генерации необходимого стиля из набора образцов. Если стандартных образцов оказывается недостаточно, то имеется возможность расширить их набор с помощью программного кода на языке Magik. Таким образом можно создать любой требуемый стиль, сколь бы сложен он ни был. С помощью стилевой системы Smallworld GIS было разработано большинство способов отображения точечных, линейных (дороги, границы выделов, границы зон с разной категорией защитности лесов) объектов и выделов в соответствии с разным тематическим содержанием (план насаждений, план запроектированных мероприятий).

Многослойное клиент - серверное решение
Рисунок 2. Многослойное клиент - серверное решение

Взаимодействие приложения Smallworld с собственными и внешними базами данных происходит по технологии SOC-SOM (Spatial Object Controller, Spatial Object Manager). Благодаря этой технологии разработчик приложения может обращаться к нескольким БД без выполнения операций connect и disconnect. Кроме того, достигается одинаковый способ восприятия данных вне зависимости от источника данных. Таким образом обеспечивается доступ к большинству коммерческих СУБД (Oracle, Informix, DB2, Sybase, MS SQL Server).

Технология «тонкого» клиента позволяет осуществлять доступ к базе данных и объектам системы Smallworld GIS из приложений, разработанных в таких системах программирования как Visual Basic, Java, Delphi, C++ (см. рис.1 и рис. 2) . Это становится достижимым благодаря использованию таких популярных сейчас протоколов, как COM и CORBA.

В течение года с помощью Smallworld GIS в УкрНИИЛХА были выполнены следующие разработки:


на главную страницу
Last updated 15th April, 2000
Copyright © Olga Blinkova. При цитировании ссылка на источник обязательна
1