СПОСОБ ОБРАБОТКИ ЗАПРОСОВ ПОЛЬЗОВАТЕЛЕЙ РАСПРЕДЕЛЁННОЙ ИНФОРМАЦИОННОЙ СИСТЕМЫ
METHOD OF PROCESSING USER REQUESTS BY DISTRIBUTED INFORMATION SYSTEM

Изобретение относится к вычислительной технике и может быть использовано при создании и совершенствовании систем управления базами данных (СУБД) и распределенных информационных систем.
Известен способ актуализации информации в базах данных объектов управления автоматизированной системы управления, позволяющий снизить время обмена информацией и предоставляющий возможность передачи изменений и дополнений, произошедших в базах данных, пользователям в режиме реального времени (патент на изобретение РФ №2409841, 20.04.2009).
Недостатком данного способа являются значительные временные ресурсы для обмена информацией из-за выполнения большого числа операций, необходимых для обработки запросов пользователей, и пересылки служебной информации по каналам связи для актуализации информации в базах данных, а также в способе не предусматривается организация доступа к данным конфиденциального характера санкционированных пользователей и отказ доступа несанкционированным.
Наиболее близким по технической сущности и выполняемым функциям аналогом (прототипом) к заявляемому является «Способ обеспечения доступа к данным в системе управления базами данных «Линтер-ВС»» (изобретение РФ №2130643, 21.10.1998), заключающийся в том, что запоминают заранее присвоенные каждому пользователю базы данных сигнал индивидуального идентификатора и сигнал ранга допуска к БД, направляют сигнал запроса с его идентификатором и описаниями запрашиваемых данных в ядро СУБД, считывают ранг допуска пользователя по его идентификатору, содержащемуся в запросе, считывают в ядро СУБД по содержащимся в запросе описаниям запрашиваемых данных из БД сигналы, соответствующие сигналам меток этих данных, характеризующим уровень доступа к разделам и подразделам, к данным, а также к действиям, которые пользователям можно совершать над этими данными, и сравнивают их с рангом допуска пользователя, и в случае, если ранг допуска пользователя не ниже уровня доступа к разделу БД, содержащему запрашиваемые данные, открывают канал связи с БД, формируют сигналы ссылок на запрошенные данные на основании их описаний в запросе, производят разделение сигнала запроса на отдельные действия, при выполнении которых осуществляют их регистрацию в ядре СУБД, ответ на запрос формируют в ядре СУБД с использованием результатов выполнения действий над ссылками на запрошенные данные, считывают данные в ядро СУБД, а оттуда - к пользователю.
Недостатками способа-прототипа являются: значительные временные ресурсы на обмен информацией из-за того, что не учитывается возможный распределенный характер информационной системы и запросы на поиск и на обновление данных обрабатываются по одному и тому же алгоритму, а также из-за отсутствия возможности передачи пользователям изменений в базах данных распределенной информационной системы в режиме реального времени.
Задачей изобретения является разработка способа обработки запросов пользователей распределенной информационной системы, позволяющего расширить возможности способа-прототипа, а также снизить временные ресурсы на обмен информацией за счет обработки в СУБД с помощью сводной базы данных запросов на обновления в удаленных базах данных распределенной информационной системы и за счет обеспечения возможности передавать пользователям изменения в базах данных в режиме реального времени.
Эта задача решается тем, что запоминают заранее присвоенные каждому пользователю базы данных сигнал индивидуального идентификатора и сигнал ранга допуска к базе данных, формируют сигнал запроса пользователя, содержащий сигнал индивидуального идентификатора этого пользователя и сигналы описания запрашиваемых данных, передают сформированный сигнал запроса пользователя в ядро системы управления базами данных, считывают сигнал ранга допуска к базе данных по сигналу индивидуального идентификатора, считывают из базы данных в ядро системы управления базами данных по содержащимся в сигнале запроса пользователя сигналам описания запрашиваемых данных сигналы, соответствующие сигналам меток этих данных, характеризующим сигналы уровня доступа к разделам, подразделам базы данных, к данным, а также к действиям, которые пользователь может совершать над ними, сравнивают сигналы уровня доступа с сигналом ранга допуска к базе данных, в случае, если сигнал ранга допуска к базе данных не ниже сигнала уровня доступа к разделу базы данных, содержащему запрашиваемые данные, разрешают выдачу сигналов данных по каналу связи из базы данных, согласно изобретению способ дополнен следующими действиями: в распределенной информационной системе формируют сводную базу данных, хранящую все изменения удаленных баз данных, при этом эти изменения записываются со своими метками по уровню доступа и хранятся во внутренней таблице со своими идентификаторами; как только в сводной базе данных появляется новая запись, для пользователей, работающих в режиме реального времени, формируют и передают сообщение об изменениях в удаленных базах данных распределенной информационной системы; записывают служебную информацию в файл журнала о пришедшем запросе; сравнивают служебную информацию пришедшего запроса с остальными записями файла журнала перед сравнением сигнала уровня доступа с сигналом ранга допуска к базе данных в ядре системы управления базами данных; если есть полное совпадение служебной информации пришедшего запроса с уже имеющейся в файле журнала служебной информацией, то запрос характеризуется как запрос на обновление, и в этом случае считывают сигналы, соответствующие меткам данных, из сводной БД, считывают данные для ответа ядру системы управления базами данных из сводной базы данных.
Таким образом, снижаются временные ресурсы на обмен информацией за счет обеспечения возможности передачи изменений в базах данных распределенной информационной системы в режиме реального времени и отсутствия необходимости искать и считывать обновления в удаленных базах данных распределенной информационной системы, затрачивая время на передачу информации по каналам связи.
Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленного способа обработки запросов пользователей распределенной информационной системы, отсутствуют. Следовательно, заявленное изобретение соответствует условию патентоспособности «новизна».
Результаты поиска известных решений в данной и смежных областях техники с целью выявления признаков, совпадающих с отличительными от прототипа признаками заявленного способа, показали, что они не следуют явным образом из уровня техники. Из уровня техники также не выявлена известность влияния предусматриваемых существенными признаками заявленного изобретения преобразований на решение задачи изобретения. Следовательно, заявленное изобретение соответствует условию патентоспособности «изобретательский уровень».
«Промышленная применимость» способа обусловлена наличием развитой современной элементной базы, на основе которой могут быть выполнены устройства, реализующие данный способ с достижением указанного в изобретении назначения.
Заявленный способ поясняется чертежами, на которых показано:
фиг. 1 - структурная схема обработки запросов пользователей распределенной информационной системы;
фиг. 2 - график оценки длительности времени, необходимого для обработки запросов конечных пользователей распределенной информационной системы.
Заявленный способ поясняется структурной схемой обработки запросов пользователей распределенной информационной системы (фиг. 1).
В изобретении пользователи появляются в системе после процесса присвоения индивидуального идентификатора этому пользователю (далее идентификатор пользователя).
Все обращения пользователей, формирующих запросы к БД распределенной информационной системы (блок 2), передаются в СУБД (блок 3). При обращении к БД пользователь формирует сигнал запроса, который будет содержать в себе и информацию о характере данного запроса: запрос на поиск или на обновление, а также информацию о желании пользователя получать все интересующие его изменения в базах данных в режиме реального времени.
На протяжении всей работы распределенной информационной системы именно в ней происходит формирование сводной базы данных (блок 4), хранящей все изменения удаленных баз данных. Как только в сводной базе данных появляется новая запись, для пользователей, работающих в режиме реального времени, формируется и передается сообщение об изменениях в базах данных распределенной информационной системы (блок 4).
В СУБД происходит первичная обработка запроса (блок 5): сформированный сигнал запроса передается в ядро системы управления базами данных, считывается сигнал ранга допуска к базе данных по его сигналу индивидуального идентификатора, содержащемуся в сигнале запроса пользователя. В свой файл журнала СУБД записывает служебную информацию о пришедшем запросе (блок 6). Под служебной информацией в изобретении понимается вид совершаемой пользователем операции (вставка, выборка, обновление, удаление), имя таблицы с запрашиваемыми данными, номер столбца и значения в нем.
СУБД, входящая в состав распределенной информационной системы, сравнивает сделанную запись в файл журнала о пришедшем запросе с остальными записями в этом же файле (блок 7). Если есть полное совпадение служебной информации пришедшего запроса с уже имеющейся в файле журнала СУБД информацией, то запрос характеризуется как запрос на обновление и СУБД обращается к сводной базе данных (блок 8), хранящей все изменения, происходящие в базах данных распределенной информационной системы, и развернутой в постоянной памяти на той же ЭВМ, что и СУБД, или к удаленным БД (блок 9), находит по содержащимся в поступившем запросе сигналам описания запрашиваемых данных сигналы меток этих данных и считывает их для дальнейшего сравнения. Эти сигналы меток характеризуют сигналы уровней доступа к соответствующим разделам и подразделам БД, где хранятся запрашиваемые данные, сигналы уровней доступа к самим этим данным и сигналы уровней доступа для действий, возможных для выполнения над этими данными. Все эти сигналы уровней доступа записываются в ядро СУБД, в его память на все время обработки поступившего запроса. Затем ядро СУБД производит сравнение ранга допуска пользователя, направившего запрос, с сигналом уровня доступа к тому разделу БД, где хранятся запрашиваемые данные (блок 10). Если этот сигнал ранга допуска к базе данных по меньшей мере не ниже, чем сигнал уровня доступа к разделам с запрашиваемыми данными, ядро СУБД направляет соответствующую команду на мультиплексор или иное средство, обеспечивающее открытие канала связи для считывания данных из БД (блок 13). Тем самым создается возможность для последующей пересылки данных из БД в ядро СУБД.
После выполнения всех требуемых действий (групп действий) над сигналами ссылок на запрашиваемые данные, на основании результатов их выполнения ядро СУБД формирует в своей рабочей памяти сигнал ответа на поступивший сигнал запроса (блок 14 и передает сформированный ответ пользователю системы (блок 15).
Если после сравнения ранга допуска пользователя с метками данных уровень допуска пользователя оказывается ниже, то пользователю формируется (блок 11) и передается в качестве ответа на его запрос отказ (блок 12).
При этом удаленные базы данных при зафиксированных в них изменениях формируют пакет с необходимой служебной информацией об этих изменениях и передают через СУБД в сводную базу данных, куда они записываются со своими метками по уровню доступа и хранятся во внутренней таблице со своими идентификаторами. Таким образом, если пользователь системы посылал запросы на обновление с требованием обработки в режиме реального времени, то после соответствующих проверок его сигнала запроса, он будет также оповещен через СУБД о произошедших изменениях в удаленных БД.
Для того чтобы определить характер запроса в СУБД, ведется файл журнала для фиксации хода выполнения транзакций в базах данных. Журнал содержит записи о транзакциях и его функции заключаются не только в восстановлении, но и сборе сведений о текущей производительности, накопления контрольной информации и т.д. (Базы данных. Проектирование, реализация и сопровождение. Теория и практика. Т. Конноли, К. Бегг, А. Страчан. Второе издание. Изд. дом «Вильямс». Москва. Санкт-Петербург. Киев. 2000. Стр. 627).
В предлагаемом способе вся служебная информация и действия по запросу будут записаны в журнал. По добавлению новой записи в журнал, она будет сравниваться с уже имеющимися записями и, если записи будут совпадать, то запрос будет определен как запрос на обновление.
Формирование и отправка через СУБД информационных пакетов в сводную базу данных и, впоследствии, после записи в сводную базу данных соответствующей информации отправка сообщения об изменениях пользователям происходит с помощью триггеров и команды «notify».
Триггеры определяют действия, которые база данных должна выполнить в случае наступления некоторых событий, относящихся к базе данных. Выполнение триггеров происходит прозрачно для пользователя. Триггеры выполняются базой данных с те моменты, когда над ее конкретными таблицами выполняются конкретные типы команд манипулирования данными. (Oracle Database 10g. Полный справочник. Кевин Луни. Изд. «Лори», 2004, стр. 570-573). Для сводной базы данных это вставка, для других баз данных распределенной информационной системы это команда обновления.
Блок сводной базы данных предлагается организовать по технологиям современных баз данных. В сводной базе данных будут созданы такие структуры, как таблицы и индексы. Экземпляр сводной базы данных будет включать в свой состав память, называемую глобальной областью системы (System Global Area, SGA), и фоновые процессы, осуществляющие взаимодействие между SGA и файлами базы данных на дисках. Главной структурой сводной базы данных будут являться таблицы. В сводной базе данных предлагается использовать индексно-организованные таблицы, данные которой хранятся в индексной структуре, что позволяет отсортировать их внутри структуры (Oracle Database 10g. Полный справочник. Кевин Луни. Изд. «Лори», 2004, стр. 5).
Сигналы, соответствующие меткам данных, и сами БД хранятся в основной памяти ЭВМ, на которой они развернуты. Поэтому считывание сигналов, соответствующих меткам данных, и самих данных из БД организовано как считывание из основной памяти ЭВМ. Основную память образуют запоминающие устройства с произвольным доступом. Такие запоминающие устройства образованы как массив ячеек, а «произвольный доступ» означает, что обращение к любой ячейке занимает одно и то же время и может производиться в произвольной последовательности. Каждая ячейка содержит фиксированное число запоминающих элементов и имеет уникальный адрес, позволяющий различать ячейки при обращении к ним для выполнения операций записи и считывания (Б.Я. Цилькер, С.А. Орлов. Организация ЭВМ и систем. Питер. 2004. Стр. 203).
Таким же образом происходит и запись информации в файл журнала СУБД, который также хранится в основной памяти ЭВМ.
Для настройки доступа к таблицам сводной базы данных поддерживаются битовые индексы. Они используются в ситуациях, когда данные загружаются в пакетном режиме. (Oracle Database 10g. Полный справочник. Кевин Луни. Изд. «Лори»,2004, стр. 7).
Заявленный способ обработки запросов пользователей распределенной информационной системы обеспечивает возможность обработки запросов на обновление в режиме реального времени, снижает время обработки запросов на обновление, тем самым снижая общее время обмена информацией в системе.
Поскольку оценка временных ресурсов на обработку запросов пользователей и временные ресурсы на передачу внесенных изменений и дополнений в удаленных базах данных (время обмена информацией) непосредственно связаны со временем, необходимым для обработки того количества всех отдельных операций, которое нужно для выполнения запроса, достижение технического результата по снижению временных ресурсов на обмен информацией (передачи изменений и дополнений в базах данных общей информации конечным пользователям распределенной информационной системы специализированного назначения) может быть представлено в виде графика (фиг. 2) сравнения результатов времени обмена информацией заявленного и известного способа обработки данных в зависимости от доли запросов на обновления, требующих для их обработки, согласно заявленному способу значительно меньшее время для поиска нужной информации, соответственно, меньшего времени на их обработку, от общей доли всех поступающих от клиентского блока запросов для их дальнейшей обработки.
Достоверность теоретических предложений проверялась с помощью имитационных моделей системы-прототипа и системы, реализующей заявленный способ обработки запросов пользователей распределенной информационной системы специализированного назначения.
Моделирование выполнялось на основе теории массового обслуживания на базе языка моделирования GPSS. Эксперимент проводился в программной среде GPSS World.
Условиями эксперимента являлись следующие исходные данные:
1) количество узлов с базами данных n=300;
2) загрузка СУБД обработкой запросов на обновление A=0,3, где A=λ⋅τ, при этом λ - интенсивность поступления запросов на обновления, а τ - среднее время обработки запросов на обновления;
3) загрузка СУБД обработкой поисковых запросов A=0,015, где A=λ⋅τ, при этом λ - интенсивность поступления поисковых запросов, а τ - среднее время обработки поисковых запросов;
4) соотношение между затратами времени на обработку поискового запроса и запроса на обновление γ=3.
Сравнение результатов эксперимента, приведенное на фиг. 2, показывает, что применение предлагаемого способа дает существенный выигрыш снижению временных ресурсов на обмен информацией (в зависимости от доли запросов на обновления от общего количества всех поступающих от пользователей системы запросов) по сравнению со способом-прототипом.