===== Какую задачу решает Артонит? ===== Если не сформулировать задачу, то нельзя подготовить и решение. Основная задача формулируется так: необходимо обеспечить проход только разрешенных идентификаторов. Это - главная задача. Дополнительные задачи: - ведение журнала событий как основа для отчетов. - обеспечить работу системы в условиях нестабильных линий связи. Всё. На этом задача СКУД заканчивается. ==== Идентификаторы или люди? ==== Этот вопрос периодически муссируется в околотехнических кругах, и никогда не получает однозначного ответа. Дело в том, что нет способа однозначно идентифицировать конкретного человека. В помощью технических средств можно идентифицировать некие признаки этого человека. Какие именно? - признаки, присвоенные этому человеку искусственно. Например, человеку выдается какое-либо устройство, которое и определяет этого человека. Для определенности и краткости далее будем подразумевать карту RFID (хотя могут быть и другие варианты: ключ TouchMemory, штрих-код, пин-код). В контексте рассматриваемых задач нет разницы в конкретному виде идентификатора. Главное, что при чтении этого идентификатора мы получим набор данных, однозначно связанные с этим идентификатором. И уже после определения идентификатора может быть установлена связь с конкретным человеком. Вопросы, связанные с заменой, дублированием, подменой идентификаторов здесь не рассматриваются. - признаки, присущие человеку, и определяемые техническими средствами. Тут речь идет о различных биометрических системах: отпечаток пальца, тембр голоса, радужная оболочка глаз и т.п. Ключевым в этом вопросе является фраза "определяемые техническими средствами". В результате определения признаков человека эти технические средства формируют какой-либо набор данных, описывающий эти признаки. Работая с электроникой, мы будем иметь дело только с наборами данных (кодом, шаблоном, маской... названий может быть много), которые можно получить с помощью электроники и вычислительной техники. ==== Чем решать задачу? ==== Вариант 1: контроллер с подключенным оборудованием. Вариант 2: компьютер в режиме он-лайн. ==== Как решить задачу? Структура Артонит.==== В основе ПО Артонит 10 лежит база данных СКУД. База данных работает под СУБД FireBird. Файл с базой данных называется ShieldPro.gdb. {{ :ten:ase_color_schema.png?direct&400 |}} ===== Очередь как основа программного обеспечения Артонит 10. ===== Артонит 10 реализует метод последовательной загрузки и удаления номеров идентификаторов в контроллеры. По мере того, как оператор добавляет или удаляет пользователей системы возникает необходимость записать или удалить идентификаторы в контроллеры. В Артонит 10 все действия оператора выглядят как набор последовательных действий: загрузить идентификатор, удалить идентификатор. В базе данных формируется очередь идентификаторов и признак действия: записать идентификатор в контроллер или удалить идентификатор из контроллера. {{ :ten:cardindev.png?direct&600 |}} Пояснения таблицы. ^Название колонки^Пояснение^ |ID_CARDINDEV|Номер записи в таблице. При вставке каждой записи формируется новый ID.| |ID_DB|Идентификатор базы данных. Везде равен 1.| |ID_CARD|Машиночитаемый номер карты. Для карт RFID именно он будет загружен в базу данных.| |DEVIDX|Атавизм, не используется.| |ID_DEV|Ссылка на ID точки прохода, кода надо загрузить идентификатор.| |OPERATION|1 - загрузить карту, 2 - удалить карту.| |ATTEMPTS|Счетчик количества произведенных попыток выполнения операции. При каждой попытке выполнить операцию счетчик увеличивается на 1.| |ID_PEP|ID пользователя, которому принадлежит карта.| |TIME_STAMP|Время записи строки в таблицу| |ID_CARDTYPE|Тип идентификатора. Более детаельно см. [[ten:card_type|типы идентификаторов]].| |FROMUSER|Автор записи.| ===== Обработка очереди. Запись и удаление карт в контроллеры. АСервер.===== Очередь карт обрабатывает служба AServerSVC.exe, называемая далее АСервер. Алгоритм обработки очереди приведен на расположенном ниже рисунке. {{ :ten:алгоритм_записи_карты_в_контроллеры.png?direct&400 |}} Следует обратить внимание на следующие особенности: - Весь обмен записывается в лог-файл формата AServerSvc_<Год>_<Месяц>_<Дата>.log (например, AServerSvc_2019_06_03.log). Если в процессе обмена были ошибки, то они будут видны и в лог-файле. - При удалении код карты отсутствует в таблице cardidx, поэтому при успешном удалении обращения к таблице cardidx не происходит. Контрольная точка: при штатной работе системы очередь должна быть пустой!!! ==== Заполнение очереди CARDINDEV. ==== В очередь CARDINDEV попадают все изменения таблицы CARDIDX. Если в таблицу CARDIDX данные добавляются, то и в таблицу CARDINDEV добавляется номер карты с признаком "Записать идентификатор". Если из таблицы CARDIDX данные удаляются, то в таблицу CARDINDEV добавляется номер карты с признаком "Удалить идентификатор". Т.о., таблица CARDINDEV фиксируется все изменения в таблице CARDIDX. ==== Формирование таблицы CARDIDX ==== Очередь заполняется по мере того, как оператор СКУД выдает новые карты или меняет категории доступа. Когда карта получает новую категорию доступа, то в очереди появляются строки с командами для записи карты в указанные точки прохода. Когда карту удаляют, то в очереди появляются строки с командами для удаления номера карты из точек прохода, гда эта карта могла ходить ранее. Когда у карты меняют категорию доступа, то в очереди появляются строки с командами для удаления из тех точек прохода, куда ходить уже нельзя, и строки с командами для записи в те точки прохода, куда разрешили ходить. Связью карта - категории доступа управляет оператор СКУД через приложения СКУД. Результатом работы оператора СКУД является очередь на последовательное запись и удаление номеров карт в точки прохода. ====== Архитектура Артонит 10. ====== В таблице представлены основные элементы системы и указаны места их расположения. ^№ п/п^Уровень^Система^Контроль^Управление^ |1|Уровень приложений|{{ :ten:ase_soft.jpg?nolink&200 |}}|Лог-файлы в рабочем каталоге\\ C:\ProgramData\CardSoft\DuoSE\Access.|Настройка пути к базе данных в ini-файлах. Файлы находятся в папке C:\ProgramData\CardSoft\DuoSE\Access| |2|База данных|{{ :ten:p_22.png?nolink&100 |}}|{{ :ten:p_26.png?nolink&200 |}}|Скрипты для обслуживания базы данных| |3|Системный приложений|{{ :ten:p_21.png?nolink&100 |}}|{{ :ten:p_29.png?nolink&200 |}}|{{ :ten:p_25.png?nolink&200 |}}| |4|Транспортный приложений|{{ :ten:p_20.png?nolink&200 |}}|{{ :ten:p_27.png?nolink&200 |}}|{{ :ten:p_24.png?nolink&200 |}}| |5|Аппаратный приложений|{{ :ten:p_1.png?nolink&200 |}}|{{ :ten:p_23.png?nolink&200 |}}|{{ :ten:p_28.png?nolink&200 |}}| ==== Контроль контроллеров. ==== Основной инструмент контроля оборудования - приложение Шэлт Контрол C:\Program Files (x86)\CardSoft\DuoSE\Access\SheltControl.exe.\\ Механизм подключения Шэлт Контрол к базе данных и транспортным серверам полностью совпадает с механизмом подключения АСервера.\\ {{:ten:p_8.png?nolink&400 |}} {{:ten:p_11.png?nolink&400|}} === Контроль очереди на загрузку и удаление === Основной инструмент контроля очереди команд - ASCfg C:\Program Files (x86)\CardSoft\DuoSE\Access\ASCfg.exe.\\ Приложение позволяет: - просматривать очередь, - загружать повторно карты с превышением количества попыток записи.\\ {{:ten:p_10.png?nolink&400|}} {{:ten:p_12-0.png?nolink&400|}} {{:ten:p_12-1.png?nolink&400|}}