Руководство пользователя программного модуля «Аудит и репликация» и

advertisement
Руководство пользователя программного модуля «Аудит и репликация» и
программного модуля «Разграничения доступа по территории».
Программный модуль, работающий под управлением ГИС ИНГЕО 4.1 предназначен
для ведения распределенных баз данных и ограничения прав доступа по территории и
обеспечивает выполнение следующих функций
1)
Отслеживание изменений, произошедших в графической и семантической базе данных
ГИС «Ингео» и их просмотр.
2)
OFF-line репликация (экспорт-импорт) произошедших изменений в базы данных,
расположенных на других серверах.
3)
Репликация (экспорт-импорт) выбранных пользователем данных с помощью файлов
обменного формата XML с возможностью устранения повторяемости в идентификаторах
объектов (слияние баз данных).
4)
Настройка параметров (слоев, видов изменений и групп пользователей), для которых
записываются изменения.
5)
Настройку прав доступа пользователей и групп пользователей к различным районам
территории.
В комплект поставки входят
1) Обменный файл программного модуля аудит и репликация.inm
2) Компонент auutils.ocx
3) Настоящее руководство пользователя.
4) Обменный файл программного модуля права доступа по территории.inm.
Для подключения программного модуля аудита и репликации к ГИС необходимо
 Зарегистрировать ActiveX компоненты, выполнив в Windows
regsvr32 путь_к_файлу_auutils.ocx
 Импортировать программный модуль “аудит и репликация.inm” на уровне “Программные
модули базы данных»
 Запустить программный модуль “аудит и репликация.inm” для всех пользователей (в версии
Ингео выше 4.3. воспользоваться функцией автозапуска модуля и отключить для
пользователей, не имеющих привилегии администратора, возможность запуска/остановки
этого модуля).
После подключения модуля к ГИС в меню “Сервис” добавляется пункт “Аудит” с
четырьмя подпунктами (рис 1).
Рисунок 1. Пункт меню «Аудит»
Важное замечание Основными недостатками модуля являются
1) отсутствие механизма ручного исправления коллизий при импорте при одновременном
изменении объекта в базе источнике и приемнике.
2) Нет отслеживания изменений по обновлению семантических данных, связанных с
отсутствием такого сообщения в API ГИС «Ингео».
В случае хранения семантических данных MS SQL эти недостатки исправляются при
использовании специализированного модуля для MS SQL.
Контроль слоев
Позволяет администратору настроить параметры записываемых изменений по каждому из
слоев. После выбора этого пункта меню появляется диалоговая форма (рис 2), с помощью
которой пользователь может добавить слой на контроль, изменить операции контролируемые
для данного слоя или убрать слой с контроля.
 При нажатии кнопки “Добавить” вызывается диалоговая форма в которой необходимо
выбрать слой, группу пользователей и установить флажки на операции, которые
пользователь хочет поставить на контроль.
 При нажатии кнопки “Изменить” вызывается аналогичная диалоговая форма, в
которой возможно изменить лишь набор контролируемых операций.
 При нажатии кнопки “Удалить” слой убирается с контроля.
 При нажатии кнопки “Добавить все” вызывается диалоговая форма, в которой
необходимо выбрать лишь группу пользователей и набор контролируемых операций.
 При нажатии кнопки “Удалить все” ВСЕ слои убираются с контроля.
Рисунок 2. Контроль слоев…
Работа аудита
При первом запуске модуль «аудит» добавляет в базу данных ГИС семантические
таблицы audit и sekret заданной структуры.
Таблица sekret содержит идентификаторы слоев, поставленных на контроль и их
параметры. Таблица audit содержит сведения о проведенных операциях над объектами слоев,
поставленных на контроль. Структуру таблиц легко узнать, просмотрев комментарии к тексту
программного модуля.
Модуль «аудит», в фоновом режиме перехватывает сообщения ГИС о
создании/изменении/удалении объекта и в случае, если он принадлежит слою, поставленному
на контроль, в таблицу audit добавляется запись с фактом изменения.
Примечание (для программиста).
Вся логика записи информации аудита, импорта-экспорта находится в программном
модуле (скрипте) и доступна для изменения. Компонент auutils.ocx вызывается из скрипта как
COM-объект, в основном, для реализации интерфейсных форм.
Следующие переменные в тексте программы audit программного модуля haudit влияют
на работу модуля.
1) DeleteExistRow (по умолчанию true) - регулирует, удаляются ли из таблицы аудита
предыдущие сведения об объекте при добавлении новой записи (нового состояния) (другими
словами, в таблице audit для каждого объекта ГИС существует всего одна запись,
характеризующая факт последнего изменения). Если Вы используете аудит только для
копирования между базами данных, то рекомендуем Вам оставить DeleteExistRow=true для
предотвращения чрезмерного разрастания таблицы audit и ускорения импорта/экспорта.
2) AllowAudit – разрешает/запрещает аудит
Просмотр таблицы аудита
После выбора этого пункта меню вызывается окно (рис 3), в котором отображаются
статистика изменений объектов ГИС с информацией по каждому объекту. Здесь же можно
удалить записи в таблице, которые старше выбираемой пользователем даты. ВНИМАНИЕ!
Операция удаления безвозвратно удаляет информацию об изменениях объектов ГИС до
указанной даты! Мы рекомендуем очищать таблицу после того, как вы удостоверились, что
результаты предыдущего экспорта до указанной даты все изменения успешно реплицировались
в другие базы данных.
Рисунок 3. Просмотр таблицы аудита
Экспорт в XML
Производит экспорт изменений объектов в выбираемый пользователем файл XMLформата.
Вы можете настроить следующие параметры
1) Имя файла экспорта
2) необходимо ли экспортировать семантические данные и топологические связи.
3) Вид экспорта. Если выбрано «из таблицы аудита», то экспортируются объекты с
которыми происходили изменения за указанный «период времени для аудита» и
идентификаторы которых записаны в таблице аудита. Иначе просто производится
экспорт выбранной части данных (объекты всех слоев/ объекты текущей карты/
объекты текущего слоя) в обменный файл.
4) Область экспорта - вся территория/ видимая область/ внутри выделенного объекта
(не используется, если выбран вид экспорта «из таблицы аудита»).
5) Дату, начиная с которой необходимо экспортировать изменения (не используется,
если выбран вид экспорта, отличный от «из таблицы аудита»)
6) Что будет использоваться при импорте в качестве идентификаторов полей –
заголовки полей или их названия. Используйте «Заголовки полей», если вы
производите обмен между семантическими базами данных разных типов (например,
Paradox и MS SQL), и которые были скопированы с помощью программы
IngeoCopyDB.
В результирующий файл записываются экспортированные объекты.
Программа ведет log-файл произошедших операций экспорта (log.txt)
Импорт из XML
Импорт из выбираемого пользователем файла XML формата. Выбранный файл должен
быть при этом, результатом предыдущей операции, то есть должен обладать определенной
структурой.
1)
2)
3)
4)
5)
6)
При импорте пользователь указывает
Имя файла импорта
Необходимо ли импортировать семантические данные объектов (иначе обновляется
только графическая часть).
Необходимо ли импортировать топологические связи.
Необходимо ли отключить запись изменений (аудит) на время импорта.
Вид импорта (объекты всех слоев/ объекты текущей карты/ объекты текущего слоя).
Действие программы при совпадении идентификаторов объектов в базе данных и
импортируемом файле.
 Если выбрано «переписывается (импортируется) новое состояние», то состояние
существующего объекта обновляется по информации из импортируемого объекта (в
случае, если импортируемый и существующий объект принадлежат одному слою).
 Если выбрано «Остается существующее в БД состояние», то существующий в БД объект
не изменяется (информация из файла импорта не используется).
 Если выбрано «Создаются новые идентификаторы для импортируемых», то создается
копия объекта с новым идентификатором на основе импортируемого объекта. Эта
опция позволяет Вам избавиться от случая некорректной работы на нескольких
серверах с двумя и более базами данных с одинаковыми идентификаторами (база
данных переписывалась с сервера на сервер «напрямую», а не через файл обменного
формата). При такой организации сгенерированные внутри ГИС идентификаторы
объектов являются неуникальными и поэтому невозможно без использования данной
программы стандартными средствами ГИС (например, через обменный формат Ингео)
«соединить» две базы данных. Однако этой функцией надо пользоваться только для
единовременного слияния двух баз и не использовать повторно (иначе при экспорте-
импорте модуль «не сможет найти» уже скопированные данные и Вы, в лучшем случае,
получите несколько полностью совпадающих объектов с разными идентификаторами).
1)
2)
3)
4)
5)
6)
При экспорте-импорте данных приняты следующие соглашения.
Структура системных объектов (слои, стили, таблицы), а также содержимое
справочников
не переносится в обменный файл. Если вам они необходимы,
используйте импорт-экспорт с помощью обменного файла Ингео.
Если в базе данных – «приемнике» нет слоя, стиля или таблицы с указанным в обменном
файле идентификатором, то соответствующий объект, форма или семантическая запись не
импортируется.
При импорте семантических данных в качестве идентификаторов полей используются их
имена или заголовки, в зависимости от опций экспорта. Если таблице базы данных
«приемника» нет поля с заданным именем (заголовком), то значения этого поля не
копируются. Значения полей, которые не присутствуют в файле импорта, не
переписываются, поэтому Вы можете безболезненно добавлять новые поля в
семантические таблицы БД «приемника» и вносить в них значения.
При импорте нового состояния графических форм объекта сохраняются существующие
формы только тех стилей, которые не совпадают со стилями форм импортируемых
объектов (??? надо сделать опционально, плохо получается при ручном удалении форм в
БД «источнике»). Поэтому Вы можете безболезненно добавлять к объектам
собственные формы созданных Вами стилей в графической БД «приемнике».
При импорте топологических связей не проверяется наличие топологического отношения
в базе данных приемника.
В настоящей реализации при импорте данных не анализируется информация из таблицы
аудита "приемника" данных и не выдается никаких предупреждений в случае, если
импортируемый объект был изменен.
Работа с модулем права доступа по территории
Модуль «права доступа по территории» предназначен для запрещения прав доступа на
изменение объектов (разграничение ответственности) к тем или иным районам территории. В
качестве границ районов используются выбранного Вами слоя ГИС.
Модуль «права доступа по территории» не имеет интерфейса, и Вам придется выполнить
первоначальную настройку до запуска модуля непосредственно в тексте программы (в
последующих версиях программы мы сделаем настройку через внешний файл).
Для этого войдите внутрь программного модуля и в функции Module_StartComplete
присвойте переменной aSekretLayerID значение идентификатора слоя, объекты которого будут
использоваться в качестве границ запрещения доступа (слоя разграничения прав). Например
aSekretLayerID="0001000010DB" 'административные районы города
После этого запустите модуль. В указанный слой добавится таблица grantgraphics с отношением
«один ко многим».
Добавьте в эту таблицу записи для каждого из объектов слоя разграничения прав.
Каждая запись обозначает пользователя или группу, для которых запрещен доступ на
изменение объектов слоев, заданных в поле Id_Layer, внутри границы текущего объекта слоя
разграничения прав.
Таблица grantgraphics содержит следующие поля
 "Id_Layer" - идентификатор слоя, или идентификатор карты, для которого запрещен доступ,
если в поле задано значение Null или пустая строка, то доступ запрещается для всех слоев
 "Id_operation" - маска для кодов операций, для которых запрещается доступ 1-вставка, 2изменение, 4-удаление (7-все операции)
 "ID_roles" -имя пользователя или наименование роли (группы) пользователей, для которых
запрещаются права.
После запуска модуля после каждого изменения объектов пользователем вызываются
функции (триггеры) отклика на сообщение, в котором

вычисляется, внутри какого объекта из слоя разграничения прав произошло изменение;

анализируется на основе семантических данных таблицы grantgraphics, имеет ли данный
пользователь права на изменение объектов внутри этих границ;

в случае отсутствия прав на изменение выводится сообщение «У вас нет прав на
изменение объектов внутри заданной территории» и изменения отменяются, иначе изменения
применяются.
Download