Development of associative-protected map database management system in a distributed computing environment

Research article
DOI:
https://doi.org/10.60797/IRJ.2025.154.89
Issue: № 4 (154), 2025
Suggested:
29.01.2025
Accepted:
21.03.2025
Published:
17.04.2025
107
4
XML
PDF

Abstract

The article describes the development and testing of a cluster system for managing association-protected cartographic databases. The main attention is paid to the issues of improving the performance of query processing and ensuring the security of spatial data. The proposed system architecture includes a modular structure consisting of a server component, client interface and assistant processes, which allows to implement effective load balancing and data protection. Experimental studies have shown that the use of auxiliary processes reduces query processing time by 40% on average. The results demonstrate the promising application of distributed solutions for managing large-scale geoinformation arrays in conditions of high requirements to information security.

1. Введение

Картографические базы данных играют ключевую роль в различных сферах современной жизни, выступая важным инструментом для обработки и представления пространственной информации. Стремительное развитие технологий, связанных с обработкой картографических данных и предоставлением цифровых карт пользователям, диктует необходимость совершенствования систем управления пространственными базами данных. В условиях возрастающих требований к информационной безопасности картографическая информация должна быть защищена от несанкционированного доступа. Современные системы управления базами данных (СУБД) часто включают встроенные механизмы защиты данных, среди которых можно выделить такие решения, как Oracle, Microsoft SQL Server, Sybase Adaptive Server и Gupta SQLBase Treasury Edition. Эти СУБД являются универсальными, однако создание специализированных систем управления, ориентированных на работу с защищёнными картографическими данными, способно значительно повысить эффективность управления за счёт повышения быстродействия и обеспечения необходимого уровня защиты.

Стеганография, наука о скрытом внедрении информации в носители данных таким образом, чтобы сам факт внедрения оставался незаметным, в последние годы привлекает всё большее внимание специалистов в области защиты информации. Особенно актуален подход, известный как ассоциативная стеганография, который по своей природе фокусируется на анализе и обработке изображений сцен.

Теория и практика ассоциативной стеганографии подробно представлены в работах

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

На базе ассоциативного подхода защиты были разработаны системы управления защищенными картографическими базами данных

. Вполне закономерен вопрос — почему именно картографическими? Дело в том, что из-за избыточного объема передаваемых стегосообщений применение предлагаемого способа к текстам значительных размеров технически затруднительно. Например, если для сокрытия 1 байта размер контейнера задать равным 936 бит, то объем исходных данных возрастет в 117 раз. В тематической картографии ситуация иная. Данные на таких картах не столь объемны, поэтому использование предлагаемого подхода не вызывает «подавляющих» технических трудностей. Тем не менее ассоциативный подход защиты применим в любой предметной области, такая адаптация стала еще более возможной благодаря разработанному декоратору StegoStream
, который обеспечивает взаимодействие с адаптерами потоков и потоками с опорными хранилищами.

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

В современном мире карты используются практически во всех аспектах человеческой деятельности: от отображения месторождений полезных ископаемых до политических карт или схем размещения секретных объектов. Некоторые данные на таких картах могут быть конфиденциальными, включая типы объектов, их координаты и числовые характеристики. Особенно важным аспектом защиты данных на тематических картах, где тип объектов заранее известен, является сохранение в тайне их точного местоположения. Например, местоположение ракетных пусковых установок или шахт часто является секретной информацией, составляющей военную тайну. Хотя общее знание об их существовании может быть доступно, точные координаты остаются строго засекреченными, чтобы предотвратить доступ к этим данным. Для достижения этого требуется разработка и внедрение надёжных механизмов защиты, способных затруднить несанкционированное получение таких данных.

Картографические данные характеризуются высокой стоимостью их создания, что обусловлено сложностью и длительностью соответствующих работ. Например, проекты, связанные с поиском новых месторождений полезных ископаемых, отличаются высокой степенью риска и значительными финансовыми затратами, а сроки их реализации могут достигать 10–15 лет. В связи с этим актуализируется вопрос охраны авторских прав на цифровые карты. Кроме того, часть информации, связанной с государственным земельным кадастром, носит закрытый характер, что регламентируется федеральным законодательством Российской Федерации. Аналогичным образом, данные, содержащиеся в цифровых картах военного назначения, недоступны для общего пользования. Коммерческая информация, используемая геоинформационными системами (ГИС)

и представляющая ценность для организаций, также требует ограничения доступа с целью защиты от несанкционированного использования.

Пространственные объекты реального мира, представляемые в ГИС, подразделяются на четыре основные категории: точки, линии, области и поверхности. В рамках большинства задач ГИС для моделирования используются три типа: точки, линии и области. Эти объекты позволяют отразить основные природные и социальные феномены.

Точечные объекты представляют собой объекты, занимающие лишь одну точку пространства. Их считают дискретными, поскольку в каждый момент времени они находятся в фиксированной пространственной координате, не обладая протяжённостью, шириной или длиной. Примером таких объектов могут служить деревья, здания или перекрёстки дорог. Визуализация таких объектов как точек зависит от масштаба наблюдения, который задаёт рамки их представления.

Линейные объекты в координатном пространстве считаются одномерными. Они включают дороги, реки, границы, изгороди и другие протяжённые и узкие элементы. Хотя некоторые из них, такие как политические границы, физически неосязаемы и не имеют ширины, их пространственное положение может быть точно определено. Для описания местоположения линейного объекта в пространстве необходимо знать как минимум две точки — начальную и конечную. Чем сложнее форма линии, тем больше точек требуется для её детального описания.

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

Таким образом, представление пространственных объектов в картографических данных требует учёта их геометрических характеристик и особенностей моделирования, что играет важную роль в эффективном использовании данных для анализа и принятия решений

.

2. Формирование ЗКБД

Для формирования ЗКБД тематические слои карты кластеризуются. Величины шага локальной и глобальной координатных сеток и размеры кластера задаются:

-    погрешностью определения координат точечных объектов;

-    числом градаций (значений кодов) объектов и их координат;

-    максимальными значениями координат (x и y) картографируемого массива.

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

Перед кластеризацией картографические объекты необходимо привязать к узлам координатной сетки с фиксированным шагом. Для этого выполняются следующие процедуры:

1. Получают координаты объектов в требуемой картографической проекции.

2. Округляют полученные координаты узловых точек картографических объектов до ближайших координат узлов заданной координатной сетки.

Для реализации первой процедуры можно провести векторизацию по растровой подложке с использованием ГИС MapInfo Professional. Это позволит получить пространственные характеристики объектов в необходимой картографической проекции и в удобном формате для обработки и хранения в БД. В среде MapInfo векторизация выполняется ручным способом. Поэтому проведение векторизации в ГИС MapInfo Professional растровой карты, состоящей преимущественно из криволинейных объектов, ручным способом затруднительно. В этом случае целесообразно использовать программные средства автоматизации этого процесса.

Свободно распространяемые программные продукты для векторизации: AutoTrace, Potrace, Ras2Vec, Image2XAML, WinTopo Freeware, RasVector.

При выполнении второй процедуры координаты узловых точек векторизованных объектов округляются до координат ближайших узлов заданной сетки. Назовем этот процесс нормализацией векторных данных. Нормализацию точечных объектов покажем на следующем примере.

Пусть координаты (x, y) двух точек в метрах — (12,3; 23,6) и (37,4; 47,8) соответственно. При шаге координатной сетки 2 метра координаты точек будут округлены до (12; 24) и (38; 48) — рис. 1. Если точечный объект расположен в центре ячейки координатной сетки, то максимальная погрешность нормализации по расстоянию при таком округлении составит   метров (по координате — 1 метр). По такому же принципу можно проводить нормализацию узловых точек линейных и площадных объектов.

При необходимости сохранения аффинности преобразований, в ходе нормализации векторных данных надо осуществить привязку всех узловых точек векторизованных объектов к координатной сетке таким образом, чтобы соблюдались определяющие свойства этого преобразования:

- прямая переходит в прямую;

- в каждую точку нового пространства отображается одна и только одна точка исходного.

Ячейки координатной сетки

Рисунок 1 - Ячейки координатной сетки

В результате нормализации формируется векторная модель хранения данных. Первое свойство заведомо соблюдается. Поэтому нормализацию надо выполнять из условий соблюдения второго свойства и минимизации погрешности преобразования.

ЗКБД формируется по схеме рисунка 2.  На рисунке:

1. Таблица Themes — привязывает к кодам тематических слоев уникальные идентификаторы.

2. Таблица Frames — хранит информацию о расположении фрагментов относительно глобальной координатной сетки тематического слоя. Здесь x и y — глобальные координаты левого нижнего угла фрагментов (по глобальной координатной сетке слоя).

3. Таблицы Points и node — хранят информацию о расположении точечных, линейных и площадных объектов относительно локальной координатной сетки фрагментов соответственно.

Схема ЗКБД

Рисунок 2 - Схема ЗКБД

Атрибуты x и y в таблице Points и node предназначены для указания координат точечного объекта и координаты узловых точек объектов.

Перед шифрованием картографической базы данных выполняются следующие процедуры:

1. Определяется число точечных объектов (img) в самом насыщенном этими объектами фрагменте среди всех тематических слоев. Каждый фрагмент в таблице Points дополняется пустыми точечными объектами до величины img.

2. Определяется число линейных и площадных объектов (img) в самом насыщенном этими объектами фрагменте среди всех тематических слоев. Каждый фрагмент в таблице Line_Area дополняется пустыми линейными объектами до величины img.

Далее определяется число узловых точек (img) в самом насыщенном этими точками линейном (площадном) объекте среди всех тематических слоев. Каждый непустой линейный (площадной) объект дополняется несущественными узловыми точками до величины img. Каждый пустой линейный (площадной) объект составляется из  img узловых точек, в котором соотношение существенных и несущественных узлов случайно.

Общее замечание по процедурам: коды пустых точечных, линейных и площадных объектов данного тематического слоя выбираются случайным образом на множестве кодов объектов соответствующего типа, не задействованных в этом слое. Аналогично для несущественных узловых точек линейных и площадных объектов — их коды выбираются случайным образом из незадействованных кодов узловых точек объектов соответствующего типа на данном тематическом слое. Места локализации пустых точечных объектов и несущественных узловых точек линейных и площадных объектов во фрагментах определяются случайно.

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

После выполнения процедур, описанных выше, картографическая БД шифруется. Шифрованию подвергаются данные по атрибутам:

- code_theme (таблицы Layer);

- x, y (таблицы Frame);

- code_obj, x, y (таблицы Points);

- code_obj (таблицы Lines_Area);

- id_node, x, y (таблицы Node).

Эта предлагаемая структура базы данных отличается от структуры, предложенной посредством введения новой таблицы (Node), чтобы сохранить координаты узлов площадных объектов вместо сохранения их в одном поле. Действительно, сохранение информации о всех узлов объекта в одном поле нарушает первую нормальную форму реляционных БД, что приводит к не нормализованной базы данных. Этот дефект приведет к существенной проблемой в операциях базы данных для поиска и извлечения данных. В другой стороны, шифрование поле (id_node) таблицы (Node), которое является индексом в таблице, делает ненужным перемешать порядку узлов площадного объекта.

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

Первый вариант расшифрования

Рисунок 3 - Первый вариант расшифрования

Второй вариант расшифрования

Рисунок 4 - Второй вариант расшифрования

Перед формированием ЗКБД исходные тематические слои карты кластеризуются (разбиваются на кластеры-фрагменты). Алгоритм формирования фрагментов:

1. На карте случайным образом выбирается линейный (площадной) объект, не содержащийся ни в одном из уже сформированных фрагментов.

2. Находится фрагмент, который покрывает выбранный объект полностью. Если таких фрагментов окажется несколько, то выбирается любой из них. Нижние левые углы фрагментов-кандидатов привязываются к глобальной координатной сетке.

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

4. Если на карте имеются линейные (площадные) объекты, не вошедшие ни в один из фрагментов, то переходим к шагу 1, иначе – к следующему шагу.

5. Если на карте имеются точечные объекты, не вошедшие ни в один из фрагментов, то переходим к следующему шагу, иначе завершаем алгоритм.

6. На карте случайным образом выбирается точечный объект, не содержащийся ни в одном из уже сформированных фрагментов.

7. Создается фрагмент с определенным номером, координаты левого нижнего угла которого совпадают с координатами левого угла ячейки глобальной координатной сетки, где расположен выбранный объект. К фрагменту относят все покрываемые им объекты, за исключением тех, которые содержатся в уже имеющихся фрагментах. Переходим к шагу 5.

В качестве примера на рисунке 5 демонстрируется участок тематического слоя карты с двумя сформированными фрагментами.

Демонстрационный участок тематического слоя карты

Рисунок 5 - Демонстрационный участок тематического слоя карты

3. Программный проект системы управления ЗКБД

Система состоит из 4 самостоятельных модулей: GISDBManager, GISServer, GISClient, GISAssistant. На рисунке 6 показаны основные компоненты системы и связи между ними в сетевой среде.

Все модули системы являются объектно-ориентированными. Система состоит из множества баз данных, работающих под управлением системы баз данных MySQL

:

1. GIS Main DB — главная (серверная) база данных системы управления.

2. GIS data DBi, i∈1..n — часть главной базы данных, где n – число вспомогательных модулей сервера (помощников).

3. User DBi, i∈1..k — база данных пользователя.

Схема компонентов системы в рабочей среде

Рисунок 6 - Схема компонентов системы в рабочей среде

Далее рассмотрим механизм работы системы.

Модуль «GIS-Client» формирует запрос Q и отправляет его на сервер (рис. 7).

Схема отправки запроса на сервер

Рисунок 7 - Схема отправки запроса на сервер

После получения запроса сервер выполняет следующие действия:

- сохраняет запрос в своей локальной базе данных;

- сообщает клиенту статус обработки запроса;

- отправляет запрос в виде подзадач Qi помощникам (рис. 8).

Процесс отправки запросов помощникам

Рисунок 8 - Процесс отправки запросов помощникам

После получения подзадач Qi от сервера каждый помощник ставит подзадачу в очередь на выполнение. Когда необходимо выполнить подзадачи (Qi) помощник (Hi) выполняет следующие действия:

- сохраняет запрос в своей локальной базе данных;

- обрабатывает запрос и получает соответствующие данные от его локальной базы данных и записывает эти данные в базе данных клиента;

- если работа выполнена без ошибок, помощник посылает уведомление о готовности результатов серверу (рис. 9), в противном случае он посылает уведомление об ошибке.

Возврат ответов от помощников к серверу

Рисунок 9 - Возврат ответов от помощников к серверу

После получения уведомления о готовности результатов от помощника сервер выполняет следующие действия:

- сохраняет результат выполнения подзадачи в своей локальной базе данных;

- если результат выполнения подзадачи с ошибкой, то сервер сообщает клиенту об этой ошибке и посылает уведомление помощникам, чтобы отменить соответствующие подзадачи;

- если результаты выполнения всех подзадач без ошибок, то результирующие данные, с уведомлением об их готовности, передаются клиенту.

На стороне клиента отображаются результаты обработки запроса или сообщение об ошибке.

Картографические данные хранятся на сервере и передаются по сети в сокрытом виде. Сокрытие данных происходит с помощью секретного ключа, известного только санкционированному пользователю.

Клиентский компонент является частью системы, который запрашивает картографические данные, помощники отвечают за доставку этих данных в клиентскую базу данных. Серверный компонент играет роль главного компонента системы, который организует эти операции между клиентами и помощниками.

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

4. Реализация компонентов системы управления

Предлагаемая система управления разработана под управлением операционной системы Windows Server

с помощью среды разработки Microsoft Visual Studio.

Для соединения клиента с сервером и передачи данных по сети модули системы используют набор протоколов TCP/IP. В соответствии с сетевой моделью TCP/IP эти модули принадлежат к прикладному уровню. Все соединения между модулями двунаправленны (рис. 10). Каждый канал связи имеет две конечные точки, которые называются сокетами.

Соединение между модулями

Рисунок 10 - Соединение между модулями

На стороне сервера создаются два независимых сокета, которые работают в пассивном (слушающем) режиме. Они несут ответственность за прием запросов на соединение от удаленных процессов. Один — особенный «сокет» для процессов типа (GIS-Client), другой — для процессов типа (GIS-Assistant). Для подключения к серверу клиентские и вспомогательные процессы (GIS-Client, GIS-Assistant) должны заранее знать сетевой адрес и номер порта сокета сервера. В ходе обработки запросов сервер создает и запускает несколько потоков. Работа системы происходит в многозадачном режиме.

На стороне сервера:

- одновременное подключение с несколькими клиентами и помощниками;

- получать запросы от клиентов и уведомления от помощников.

На стороне помощника:

- принимать и получать уведомления и запросы от сервера;

- обрабатывать запросы и передавать результирующие отношения к клиентам.

Для подключения к серверу баз данных MySQL, используются стандартные динамически подключаемые библиотеки, которые поставляются с сервером MySQL.

Функции модуля GISDBManager (рис. 11):

- импорт файлов MapInfo (MIF/MID)

в картографическую БД формата СУБД MySQL;

- подключение к картографической базе данных с указанием параметров: имя хоста, имя пользователя и пароль;

- распределение базы данных по узлам вычислительного кластера;

- сокрытие и раскрытие базы данных с использованием алгоритма маскирования;

- экспорт картографической базы данных к файлам формата MIF/MID

(рис. 12).

Главное окно модуля GISDBManager

Рисунок 11 - Главное окно модуля GISDBManager

Окно импортирования файлов MIF/MID

Рисунок 12 - Окно импортирования файлов MIF/MID

Модуль GISServer выполняет роль посредника между клиентами (GISClient) и помощниками (GISAssistant). На рисунке 13 показывается главное меню этого модуля.

Основные функции модуля следующие:

- получение и принятие запросов на подключение от клиентов;

- получение запросов от подключенных клиентов;

- распределение полученных запросов помощникам;

- мониторинг состояния клиентов и помощников;

- мониторинг процессов выполнения запросов в узлах помощника.

Объект assistantManager, который является экземпляром класса CConnManagerAssistant, несет ответственность за управление связей с помощниками. assistantManager создает сокет для прослушивания сетевых запросов на подключение от помощников. Этому сокету присваивается специализированной номер порта, который определяется администратором системы и сохраняется в файле конфигурации GISServer.ini. По умолчанию номер порта равен 10001.

Когда клиент формирует запрос, он отправляет его на сервер, где запрос сохраняется в локальной базе данных. После этого клиент получает уведомление о статусе обработки запроса. Затем сервер разделяет запрос на несколько подзадач и распределяет их между помощниками. Каждая подзадача ставится в очередь на выполнение, после чего помощник сохраняет ее в своей локальной базе данных. В ходе обработки помощник извлекает необходимые данные и сохраняет их в клиентской базе данных. После успешного выполнения подзадачи он отправляет серверу уведомление о готовности результата. Если же при обработке произошла ошибка, серверу передается соответствующее уведомление. Когда сервер получает уведомления от всех помощников, он анализирует их состояние. Если все подзадачи выполнены корректно, клиенту отправляются окончательные результаты обработки. Если хотя бы одна из подзадач завершилась с ошибкой, сервер уведомляет клиента о сбое и отменяет соответствующие операции. Управление подключениями помощников осуществляется специальным объектом assistantManager, который представляет собой экземпляр класса CConnManagerAssistant. Для динамического управления соединениями assistantManager ведет список всех активных подключений помощников. Когда новый помощник подключается к серверу, он регистрируется в системе и получает доступ к обработке поступающих задач. После завершения всех вычислений помощник передает результаты на сервер, который завершает выполнение запроса. Таким образом, GISServer организует распределение клиентских запросов по нескольким узлам помощников, что позволяет эффективно управлять вычислительными ресурсами и ускорять обработку данных за счет параллельного выполнения задач.

Главное окно модуля GISServer

Рисунок 13 - Главное окно модуля GISServer

Объект assistantManager содержит динамический список всех текущих подключений.

При получении нового запроса на подключение от помощника (An) assistantManager выполняет следующие действия:

- принимает запрос на подключение;

- создает сокет Sn, связанный с удаленными «сокетами» помощника;

- создает новый экземпляр Xn класса CConnectionAssistant и сохранят его в списке подключений;

- порождается поток ППn, который будет продолжать обслуживать клиента по сети через сокет Sn;

- отображение статуса помощника в окне.

Модуль GISClient (рис. 14) представляет модуль клиента. Любой клиент подключается к серверу с помощью этого модуля. Экземпляров этого модуля столько, сколько клиентов в сети.

С помощью этой программы клиент может:

- подключиться к серверу;

- генерировать запросы к картографической базе данных;

- отправить запросы серверу;

- просматривать результаты обработки запросов.

Главное окно модуля GISClient

Рисунок 14 - Главное окно модуля GISClient

Подключение к серверу осуществляется через объект conn класса CConnectionClient. С помощью этого объекта клиент пытается установить соединение с соответствующим объектом связи на сервере. Адрес сокета сервера извлекается из конфигурационного файла GISClient.ini. Этот запрос позволяет клиенту получать информацию об объектах ГИС, которые содержаться в карте. Картографические объекты должны удовлетворять следующим условиям:

- объект полностью входит в кластер;

- код объекта находится в заданным пользователем диапазоне;

- в столбце semantic_mid таблицы line_area_semantics должны быть указаны семантические характеристики, которые включают: тип объекта (например, «дорога», «река», «здание»); дополнительные атрибуты, такие как категория дороги (автомобильная, железная), назначение здания (жилое, промышленное), гидрологические характеристики водного объекта и др.; кодовые обозначения, соответствующие классификации картографического слоя​.

Пользователь должен определить в диалоговом окне на рисунке 15:

- координаты углов рамки: (x1,y1) и (x2,y2) в метрах;

- границы диапазона кодов объекта: (сode1, сode2). Эти коды должны находиться в пределах диапазона (000~999);

- тип объекта.

Все значения (x1, y1, x2, y2, сode1, сode2) передаются на сервер в сокрытом виде.

Диалоговое окно задания запроса

Рисунок 15 - Диалоговое окно задания запроса

В процессе обработки запроса сервер отправляет клиенту соответствующее уведомление о результате выполнения операции (рис. 16). Данное уведомление может содержать информацию об успешном завершении запроса или сообщать о возникновении ошибки. Такое взаимодействие обеспечивает оперативную обратную связь между клиентом и сервером, позволяя пользователю своевременно получать информацию о статусе выполнения запроса и предпринимать необходимые действия в случае возникновения сбоев или ошибок.
Вкладка Data

Рисунок 16 - Вкладка Data

Число экземпляров модуля GISAssistant определяются администратором. По приказу сервера модуль GISAssistant обрабатывает запрос клиента. Между модулем GISAssistant и модулем клиента GISClient нет прямой связи, они косвенно связаны через сервер.

В этом модуле работают два независимых параллельных потока — ПС и ПВ, где:

- ПС — поток связи с сервером;

- ПВ — поток выполнения подзадач.

Эти потоки определены в классе CConnectionAssistant, которые реализуются экземпляром conn. Создается клиентский сокет, посредством которого модуль помощника пытается установить соединение с сервером. Адрес сокета извлекается из конфигурационного файла GISAssistant.ini. Для успешного завершения соединения необходимо следующее:

- сервер должен быть запущен и находиться в режиме ожидания запросов на соединение от помощников;

- должен быть указан адрес сокета;

- не существует каких-либо преград для взаимодействия модулей по сети.

Алгоритм работы между сервером и помощниками:

- сервер отправляет подзадачу модулю GISAssistant;

- поток ПС после получения подзадачи помещает подзадачу в очередь на исполнение;

- поток ПВ по готовности обрабатывает ждущую подзадачу;

- поток связи реагирует на изменение статуса подзадачи, сообщив серверу о готовности подзадачи.

На рисунке 17 показана многопоточная структура рабочих процессов модулей системы.

Многопоточная структура рабочих процессов модулей системы

Рисунок 17 - Многопоточная структура рабочих процессов модулей системы

5. Тестирование разработанной системы

Тестирование операций с защищённой картографической базой данных проводилось в вычислительной среде, состоящей из четырёх узлов с идентичной производительностью. Каждое устройство было оснащено двухъядерным процессором Intel(R) Core(TM)2 CPU с тактовой частотой 1,87 ГГц и двухканальной оперативной памятью объёмом 3 Гб. Связь между узлами осуществлялась через сеть, построенную на основе технологии Gigabit Ethernet, обеспечивающей скорость передачи данных до 1000 Мб/с. Для управления сетевым взаимодействием использовался 16-портовый коммутатор D-LINK DGS-1016D.

Для тестирования был использован открытый набор данных геоинформационных систем

. В него входили данные четырёх регионов Российской Федерации: Кемеровской и Новосибирской областей, Алтайского края и Республики Алтай. Из общего объёма данных для работы были выбраны четыре слоя: ecoregions, hydro-a, oopt и settlements. Данный набор был открыт в среде ГИС MapInfo и экспортирован в файлы формата MIF/MID.

На серверной машине был запущен модуль GISDBManager, через который в процессе импорта загружались данные из файлов формата MIF/MID (рис. 13). После этого содержимое выбранных картографических слоёв сохранялось в глобальной базе данных в таблицах gisdb и Russia. Из-за большого количества объектов в каждом слое было установлено ограничение на их максимальное количество, равное 250. Данное ограничение позволило оптимизировать процесс обработки и хранения информации (табл. 1).

Таблица 1 - Количество объектов на слоях

Слой

Количество объектов

001

ecoregions

250

002

hydro-a

250

003

oopt

3

004

settlements

250

Максимальное количество узлов на объект = 165

Общее число узлов = 10485

Окно импортирования файлов MIF/MID

Рисунок 18 - Окно импортирования файлов MIF/MID

Для проведения эксперимента с серверной базой данных использовался клиентский узел, с которого через модуль пользователя GISClient формировались SQL-запросы. Основной задачей запроса было извлечение всех данных карты (Russia) из серверной базы данных, после чего проводились замеры времени обработки каждого запроса. Эксперимент состоял из четырёх этапов, различающихся конфигурацией вычислительной среды и распределением нагрузки между узлами.

На первом этапе эксперимента оба модуля, GISServer и GISClient, размещались на одном узле, работающем в одноузловом режиме без участия вспомогательных процессов (рис. 19). Такая конфигурация позволила оценить производительность системы в условиях минимальной параллельной обработки.

Во втором этапе использовалась та же вычислительная среда с одной машиной, однако серверная программа была дополнена двумя процессами-помощниками, которые распределяли нагрузку при выполнении запросов клиента (рис. 20). Это обеспечивало моделирование ограниченной параллельной обработки запросов.

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

Четвёртый этап включал распределённую обработку запросов (рис. 22). Серверный модуль был дополнен двумя процессами-помощниками, запущенными на двух подчинённых узлах. Клиентский модуль выполнялся на удалённой машине. Глобальная база данных распределялась между помощниками с использованием диалогового интерфейса модуля GISDBManager. Такая конфигурация позволила оценить эффективность распределённой архитектуры при выполнении сложных запросов в многопользовательской среде.

Конфигурация модулей в эксперименте 1

Рисунок 19 - Конфигурация модулей в эксперименте 1

Конфигурация модулей в эксперименте 2

Рисунок 20 - Конфигурация модулей в эксперименте 2

Конфигурация модулей в эксперименте 3

Рисунок 21 - Конфигурация модулей в эксперименте 3

Конфигурация модулей в эксперименте 4

Рисунок 22 - Конфигурация модулей в эксперименте 4

В таблице 2 даны времена выполнения серверного модуля обработки селективного пользовательского запроса на различных конфигурациях модулей.

Таблица 2 - Время выполнения запросов в каждом эксперименте

Опыт

Результаты эксперимента 1 (сек.)

Результаты эксперимента 2 (сек.)

Результаты эксперимента 3 (сек.)

Результаты эксперимента 4 (сек.)

1

297

183

269

164

2

301

185

274

170

3

295

180

251

155

Среднее время

298

183

265

163

Полученные результаты показывают, что вторая и четвёртая конфигурации системы по сравнению с первой и третьей конфигурациями системы приводят к уменьшению времени обработки пользовательских запросов в среднем на 40%.

В конфигурации с одной серверной машиной время, необходимое для обработки запроса, является суммой трех значений (рис. 23): T1 = TQ + TN + TS, где TQ — время расчета результирующего отношения на серверной машине, TN — время доставки результирующего отношения на клиентскую машину по сети, TS — время, необходимое для сохранения результирующего отношения в базе данных клиентской машины.

В конфигурации модулей с двумя помощниками (рис. 24) время обработки запроса: T2 = max(TQ1,TQ2) + (TN1+TN2) + (TS1+TS2) существенно ниже, чем в конфигурации с одной серверной машиной. Это достигается благодаря разделению картографической базы данных на два участка, к которым обработку селективного запроса можно проводить параллельно.

Время (T1) обработки запроса

Рисунок 23 - Время (T1) обработки запроса

Время (T2) обработки запроса

Рисунок 24 - Время (T2) обработки запроса

6. Заключение

Проведённые исследования подтвердили, что разработанная кластерная система управления ассоциативно-защищёнными картографическими базами данных обеспечивает значительное повышение эффективности обработки запросов. Применение вспомогательных процессов позволило сократить среднее время выполнения операций на 40%, что демонстрирует перспективность использования распределённых архитектур для работы с масштабными геоинформационными массивами. Кроме того, система успешно обеспечивает надёжную защиту данных, что особенно важно в условиях современных требований информационной безопасности.

Дальнейшее развитие системы предусматривает использование методов нейросетевой обработки для анализа и оптимизации пространственных данных

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

В будущем также планируется масштабирование экспериментов с увеличением объёмов данных и числом вспомогательных процессов, а также анализ метрик линейного ускорения и масштабирования. Эти улучшения создадут основу для использования системы в широком спектре прикладных задач, включая гражданские, коммерческие и оборонные приложения. Особое внимание будет уделено интеграции технологий аддитивного производства, таких как FDM-печать, для создания новых инструментов управления пространственными данными

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

Таким образом, разработанная система представляет собой гибкую и масштабируемую платформу, способную адаптироваться к современным требованиям обработки пространственных данных и безопасности. Её дальнейшее развитие будет способствовать расширению областей применения

, повышению эффективности работы с геоинформацией и внедрению передовых методов обработки данных.

Article metrics

Views:107
Downloads:4
Views
Total:
Views:107