experience the next
 
Главная  > Журнал «Experience the Next»  > Статьи из журнала

Импорт и экспорт баз данных в системе «Интеллект»

24.10.2006

Часто в момент инсталляции системы безопасности у организации-заказчика уже существует собственная база данных (БД) по персоналу - например, в отделе кадров. После инсталляции информация о принимаемых на работу сотрудниках, как правило, вводится через кадровую систему. Таким образом, встает вопрос о передаче данных из одной базы в другую, а также о периодической синхронизации этих баз. Для его решения используются модули импорта и экспорта данных. Об их реализации в комплексе безопасности «Интеллект» производства компании ITV мы и расскажем в этой статье.

Необходимость в наличии модуля импорта данных в системе «Интеллект» возникла при инсталляции комплекса на крупном предприятии с большим количеством сотрудников около двух с половиной лет назад. Предприятие имело свою базу данных по персоналу. Разумеется, о том чтобы внести все сведения о сотрудниках в БД «Интеллекта» вручную не могло быть и речи - во-первых, это очень трудоемкий и долгий процесс, во-вторых, он создает вероятность возникновения ошибок ввода. Для переноса информации из базы данных предприятия в базу данных «Интеллекта» и был разработан модуль импорта DBImport.

Остановимся на его устройстве несколько подробнее. Помимо переноса всех данных из одной базы в другую в его задачи входит синхронизация баз: через определенные промежутки времени (то есть по расписанию) в «Интеллект» импортируются все изменения в БД персонала - сведения о приеме и увольнении новых сотрудников, переводе сотрудников в другие отделы, а также обо всех изменениях в их личных данных. Синхронизацию можно производить как по расписанию так и по запросу пользователя. Импортировать можно как данные отдельных сотрудников, так и целых отделов предприятия.

DBImport представляет собой объект «Интеллекта». Он создается и настраивается в разделе «Оборудование». Модуль позволяет настраивать следующие параметры: источник данных, в качестве которого выбирается любой источник данных ADO (ActiveX Data Objects), а также время, в которое осуществляется ежедневная синхронизация данных (ее можно производить и несколько раз в день) Для обеспечения синхронизации необходимо сконфигурировать файл DB_Import_.ini, в котором хранится вся информация о конфигурации запросов к внешней БД (здесь N -идентификатор модуля в системе «Интеллект»). Файл DB_Import_.ini состоит из нескольких секций, в каждой из которых задается SQL-запрос и соответствие между полями объектов «Интеллекта» и результатами запроса (номерами полей в запросе). Таким образом, можно создавать сразу несколько модулей импорта при использовании нескольких внешних источников.

Например, в одном из крупных аэропортов Москвы имеется две базы данных: одна содержит информацию о сотрудниках, вторая - об автомобилях, принадлежащих организации. В комплексе безопасности «Интеллект», установленном в аэропорте, используются два модуля импорта, где в качестве источников данных выступают указанные БД.

Следует сказать несколько слов о совместимости DBImport с разными БД. Стандартными базами данных, с которыми работает «Интеллект», являются MS SQL Server и MS Access. Конечно, после соответствующей настройки, можно использовать любую внешнюю БД, имеющую свой драйвер для подключения. Также можно использовать промежуточную базу данных (например SQL), через которую будет передаваться информация от собственной БД предприятия в БД «Интеллекта». Для использования промежуточной базы есть и еще одна существенная причина: далеко не всегда руководство организации-заказчика может дать специалистам, которые будут настраивать систему безопасности, доступ к структуре собственной БД. В этом случае промежуточная БД служит еще и для сохранения конфиденциальности информации предприятия.

Возникает резонный вопрос: почему импорт не осуществляется средствами самой системы управления базами данных (СУБД)? То есть не является ли модуль импорта лишним элементом? Ответ на этот вопрос связан с одной технической особенностью «Интеллекта». Дело в том, что после инсталляции системы безопасности на предприятии вся информация о сотрудниках хранится в оперативной памяти ядра «Интеллекта» - это необходимо для работы систем контроля доступа, модулей службы пропускного режима и учета рабочего времени. Модуль импорта информирует ядро обо всех изменениях во внешней БД, а оно, в свою очередь, обновляет внутреннюю БД и информацию в оперативной памяти.

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

Перейдем теперь к процедуре экспорта данных из системы «Интеллект» во внешнюю базу данных, не касаясь пока самого модуля экспорта. Для чего это может понадобиться? Например, для того, чтобы авто матически получать информацию о происходящих событиях и сохранять ее во внутренней базе данных предприятия. Рассмотрим использование экспорта данных на примере обработки информации о нарушениях. Предположим, что в организации имеется внутренняя база данных по персоналу. Нужно, чтобы информация обо всех нарушениях внутреннего режима поступала в эту базу. Как известно, «Интеллект» имеет собственный язык скриптов, при помощи которого можно настроить реакцию системы на определенные события. Таким образом, можно создать процедуру, которая сделает ввод информации о нарушениях максимально простым: например, сотрудник охраны вводит код нарушения (попытка выноса ценностей через проходную, опоздание на работу и т.д.) и идентификационный номер сотрудника, после чего данные о нарушении автоматически поступают во внутреннюю БД, а затем экспортируются во внешнюю.

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

Все описанные действия, касающиеся экспорта данных, можно осуществлять с помощью внутренних средств СУБД. Никакое согласование с оперативной памятью ядра при этом не требуется. Собственно модуль экспорта (DBExport) в «Интеллекте» нужен для выполнения только одной задачи - экспорта фотографий сотрудников из модуля «Служба пропускного режима» во внешнюю базу данных и удаления их оттуда в случае увольнения сотрудника. Написание отдельного модуля для этой простой процедуры потребовалось потому, что в модуле «Служба пропускного режима» фотографии хранятся не в базе данных, а в отдельном файле. DBExport создается и настраивается аналогично модулю DBimport, поэтому подробно останавливаться на его техническом устройстве мы не будем.

В заключение отметим, что на данный момент недостатком обоих модулей является необходимость создания специального файла конфигурации вручную. Специалистами компании ITV ведется разработка графического интерфейса для настройки модулей импорта и экспорта данных. Этот интерфейс избавит от необходимости самостоятельного создания конфигурационного файла и облегчит работу неподготовленных пользователей с интегрированной системой безопасности «Интеллект».

Алексей Шилкин


Полезные материалы