Работа ГИС в сети

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

- внесение изменений в базу данных со стороны нескольких клиентов может привести к нарушению целостности базы данных;

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

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

- создание новых объектов требует генерации уникальных идентификаторов независимо от того, какой клиент инициировал создание объекта.

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

В операционной системе Windows для использования технологии "клиент/сервер" удобнее всего использовать штатный для этой операционной системы механизм DCOM (Distributed Component Object Model), являющийся сетевым расширением технологии COM (Component Object Model). Приложение, построенное в соответствии с принципами COM, предоставляет доступ к своим функциям в виде набора интерфейсов (интерфейсом в COM называется таблица, содержащая адреса функций). DCOM позволяет общаться приложениям не только в пределах одного компьютера, но и в пределах локальной компьютерной сети.

Общая структура сервера данных ГИС и схема взаимодействия клиентов с сервером приведена на рис.4.

Рис.4

Контекст связи предназначен для обеспечения взаимодействия клиента с сервером и хранения информации, специфичной для конкретного клиента (рис.5).

Рис. 5

Диспетчер вызовов обеспечивает синхронизацию вызовов функций сервера со стороны клиентов (постановку в очередь одновременных вызовов со стороны нескольких клиентов).

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

Подсистема блокировок предназначена для предотвращения одновременного внесения изменений в один объект со стороны нескольких клиентов (рис.6).

Рис. 6

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

- один из клиентов посылает на сервер запрос на внесение изменений в общие данные (рис. 7а);

- сервер производит необходимые изменения в данных (рис. 7б);

- после внесения изменений сервер формирует пакет оповещений (протокол изменений) и помещает копию пакета в очередь оповещений каждого контекста связи (рис. 7в);

- сервер оповещает каждого клиента о поступлении оповещений посредством функций интерфейса взаимодействия с клиентом (рис. 7г);

- каждый клиент получает от сервера пакеты оповещений, хранящиеся в очереди оповещения в контексте связи (при получении пакетов оповещений сервер автоматически удаляет их из очереди) (рис. 7д);

- каждый клиент обрабатывает полученные оповещения, приводя в актуальное состояние свои оперативные данные (рис. 7е).

 

Рис. 7

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