Доклады БГУИР
2014 № 6 (84)
УДК 004.822:514
АППАРАТНО-ПРОГРАММНАЯ ПОДДЕРЖКА МЕТОДА ОБРАБОТКИ ДАННЫХ И ЗНАНИЙ В ИНТЕРНЕТЕ С ЭЛЕМЕНТАМИ ШИФРОВАНИЯ
В.А. ВИШНЯКОВ, Д.С. БОРОДАЕНКО
Минский институт управления Лазо, 12, Минск, 220012, Беларусь
ЕПАМ, Радиальная, 40, Минск, 220070, Беларусь
Поступила в редакцию 18 марта 2014
Модификация алгоритма динамического преобразования RDF-запросов в методе отображения реляционных структур данных на модель RDF позволяет поддерживать шифрование путем использования операций объединения для кодирования запросов с неоднородным отображением на реляционную модель. Предложены два варианта поддержки модифицированного метода. При небольших объемах запросов пользователей (до десятка тысяч) представлена программная реализация, описанная в терминах классов. Для больших объемов запросов пользователей (десятки и сотни тысяч) - рассмотрена аппаратная реализация подключения к Web-серверу специализированного процессора на основе ПЛИС.
Ключевые слова: обработка данных и знаний, аппаратно-программная поддержка, ПЛИС, спецпроцессор, шифрование.
Введение
Для обработки данных и знаний в интернете широко используется модель данных RDF, которая опирается на следующие ключевые понятия [1]: графовая структура данных, словарь идентификаторов URIref, типы данных, литералы, факты, правила логического следования. Технологии RDF поддерживает представление знаний в Web-пространстве для автоматической обработки. Огромное количество накопленной информации, хранимой в интернете (в том числе и закрытой), представлено в реляционных базах данных (БД), быстрый доступ к которым семантическими средствами затруднен. Среди препятствий на пути массового внедрения RDF в Web: необходимость переноса уже накопленной информации на модель знаний RDF и невысокая производительность семантических систем при обработке больших объемов RDF информации. Перспективным подходом к решению обоих препятствий является интеграция RDF и реляционных баз данных [1] с эффективной программной или аппаратной поддержкой.
Методика эксперимента
Для отображения на структуру RDF и обеспечивается обработка RDF-запросов на доступ и обновление реляционных данных, используется модель адаптации реляционных данных, представленная в виде двойки [2]: {M, N}, где M - отображения реляционной модели данных на модель RDF, позволяющие создавать утверждения RDF на основе значений полей записей реляционных таблиц (реляционная таблица соответствует классу RDF-ресурсов, запись - RDF-ресурсу, значение первичного ключа - субъекту, имя поля - предикату, значение - объекту утверждения RDF); N - единое пространство имен (первичных ключей) для всех RDF-ресурсов, отображенных из записей реляционных таблиц, а также RDF-ресурсов, описываемых утверждениями, хранимыми в таблице триплетов, что позволит вносить в нее утверждения, использующие в позициях субъекта, предиката и объекта любые RDF-ресурсы. Обработка RDF-запросов определяется тройкой [2]: {Aq, An, P}, где: Aq - алгоритм
преобразования запросов к данным RDF в запросы SQL; An - алгоритм обновления реляционных данных по запросу RDF; R — разбор и преобразование RDF-запросов и команд обновления данных в запросы и команды к реляционной СУБД на стандартном языке SQL.
По мере востребованности в конкретных приложениях от системы хранения RDF-данных также может потребоваться поддержка дополнительных возможностей. Набор алгоритмов, входящих в метод, обеспечивает поддержку следующих расширений:
- реификация (представление в виде самостоятельных ресурсов) утверждений RDF, что позволяет составлять утверждения об экземпляре утверждений [3];
- применение правил логического вывода при преобразовании RDF-запросов для учета в результатах выполнения запросов отношений подкласс-суперкласс, заданных предикатом rdfs:sub Class Of (так вышеупомянутое создание единого пространства имен равносильно включению всех отображаемых классов ресурсов RDF на суперкласс; rdfs: Resource;
- применение правил логического вывода для учета подотношений, определенных при помощи предиката rdfs: sub Property Of, указывающего, что все утверждения, верные для подотношения, также верны и для базового отношения;
- применение правил логического вывода для учета транзитивных отношений, входящих в класс предикатов owl'TransitiveProperty (примером практического применения транзитивного отношения может быть выборка всех комментариев к заданному сообщению вне зависимости от уровня вложенности).
В работе [3] представлена структура разработанного метода семантического доступа к данным на основе отображения реляционных БД на модель данных RDF. Суть метода заключается в интеграции новой модели адаптации реляционных данных. Для реализации обработки разработаны новые алгоритмы преобразования запросов к данным RDF в запросы SQL и обновления реляционных данных по запросу RDF. Следует отметить, что существующие системы хранения RDF-данных ограничиваются применением правил логического вывода на уровне приложения, что упрощает реализацию таких систем, но существенно снижает производительность обработки запросов.
Разработанный метод семантического доступа, в отличие от аналогов, использует реализацию логического вывода на уровне хранимых процедур реляционной СУБД. Механизм хранимых процедур позволяет в процессе обновления данных создавать и поддерживать вспомогательные структуры, обеспечивающие выборку данных с учетом всех заданных правил логического вывода посредством одного запроса SQL. Наиболее известный пример такой структуры - транзитивное замыкание, сводящее проверку истинности транзитивного отношения до одной операции выборки.
Модель адаптации реляционных данных не накладывает дополнительных ограничений на используемую схему реляционной базы данных сверх ограничений стандарта SQL. Любая таблица Т в первой нормальной форме может быть отображена для доступа при помощи RDF-запросов. Таким образом, любая существующая база данных может быть адаптирована для доступа через RDF, не теряя при этом обратной совместимости с существующими SQL-запросами.
Процесс адаптации включает добавление в базу данных атрибутов, внешних ключей, таблиц и хранимых процедур, необходимых для преобразования запросов RDF и поддержки дополнительных возможностей, предлагаемых разработанной системой, таких как реификация утверждений и логический вывод на правилах для rdfs:sub Class Of rdfs: sub Property Of и owhTransitiveProperty [4]. Разработанная модель подробно описана в [2].
Алгоритм преобразования RDF-запроса в запрос SQL. Приведенное в работе [3] описание отображаемых реляционных данных и средств логического вывода позволяет задать следующие входные данные алгоритма:
- набор отображений М = (Mrel,Mottr,Msub,Mtrans>, где Mrel : Р^R, Mattr : Р ^Ф,
Mslj, : Р ^S, M^ans : Р ^ T; P - множество отображенных отношений RDF, R - множество
реляционных таблиц, Ф - множество реляционных атрибутов, S ^ Р - подмножество отношений RDF, для которых заданы подотношения, T ^ R - множество транзитивных замыканий;
- графовый шаблон Y = (Ymífe,= N^Q, где П, N и Q - основной, отрицательный и необязательный графовые шаблоны соответственно, такие что П, N и Q не имеют общих дуг и при этом П, n^N и n^Q образуют связные графы;
- глобальное условие фильтрации F £ F и локальные условия F : Y^cs ^ F, где F -
множество всех условий над литералами, формируемыми в синтаксисе языка запросов Squish.
Результатом алгоритма является выражение реляционного соединения F и условие W, готовые для включения в разделы FROM и WHERE запроса на языке SQL соответственно. Помимо вышеуказанных входных данных и результатов, в описании алгоритма также используются следующие обозначения: id(r) - первичный ключ таблицы r £ R; p(n) -
значение id(Resource) для фиксированной (не являющейся переменной) вершины n £YKOífa,
если такое значение известно во время трансляции запроса.
Алгоритм преобразования разделен на следующие шаги.
1. Пометить каждый связный компонент П, N и Q разными цветами К. такими что
^Ц^-Ж, KN:Nmcks^K, KQ-.amcks^K, K(n) = Kn(n)^KN(n)^KQ(n).
Используется двухпроходный алгоритм разметки связных компонентов [3], модифицированный для исключения вершин, присутствующих в П , из списков соседей, используемых при разметке N и Q. Данная модификация гарантирует, что части N и Q, связанные только через вершину, входящую в П , будут помечены разными цветами.
2. Отобразить каждую дугу c = (s,p,o)£Y^,s на реляционную модель данных в
соответствии с M: определить отображение MpO : Yara х YBafes ^ ^ такое что
Mpr (c, s) = id(Mrel (p)) , Mpo (c, o) = Mattr (p); заменить каждую дугу с неотображенным предикатом на ее реификацию и отобразить утверждения реификации в соответствии с M; для каждой дуги, предикат которой является подотношением, добавить дугу, отображенную на соответствующий атрибут различения подотношений. Для каждой вершины n £Y mdes, найти
смежные дуги Y"nodes = {(s, p, o) | n £ {s, o}} и определить ее режим связывания
Pnd : Ynodes N Q} такой что Pnode (n) = maX(Parc (c) Vc £ Y^e) , где Parc(c) 0тражает,
который из графовых шаблонов {П, N, Q} содержит дугу с, а оператор max использует порядок следования П > N > Q.
3. Отобразить каждую вершину в f на набор псевдонимов таблиц а £ А в соответствии с алгоритмом, описанным на рис. 1. Указанный алгоритм определяет отображение Са : YMrs. —> А, связывающее каждую дугу в f с псевдонимом, и набор
отображений A = (ArehAnode,Ap,Afl!ter), где Arel:A^R, Amck: А
Ар : А —> {П, N, Q}, Afilter : А —> F, которые задают таблицу, вершину, режим связывания и
условие фильтрации для каждого псевдонима.
4. Определить связки В: Ynodes —» В, где В = { {{а, /') \а <еА, / £Ф}}, отображающие вершины графового шаблона на наборы пар псевдонимов таблиц и атрибутов, таких что
(а, /) £ В(п) Эс £ : Са (с) = а,МР2 (с, п) = /.
Преобразовать графовый шаблон Y в граф реляционного запроса Q = (А,./), где вершины А - определенные выше псевдонимы таблиц, а грани J = {(¿j, b2,n) | b =(a, f )£ B(n),b2 =(a,f )£ B(n),a = a } - условия реляционного соединения. Связать фиксированные (не являющиеся переменными) вершины графового шаблона со значениями в соответствии с алгоритмом, представленным в [3]. Составить список связанных вершин G (Z YWes., такой что
n<=G on<=Fg v3(¿l3¿2,«)£ Jv3b е В(п)3ае А: b е Afilter(a).
5. Вычислить для графа реляционого запроса Q упорядоченное связное минимальное покрытие P деревьями с непересекающимися множествами граней, такое что Ур е P
У] = {ЪД, bj 2, n. >е Pi Ук = <ЪН, bk2, щ >е р: К(щ.) n K(nk ) (n.) = ß„ock (щ ) = ßto (р ),
начинающееся с P такого что ß (р) = П (из определений графа Y и шага 4 алгоритма
следует, что р - единственное такое дерево и что оно покрывает все условия соединения
<Ъ, Ъг, «> е J такие что ß«^ (n) = П).
6. Записать р в виде корневого внутреннего соединения. Записать остальные деревья из P, имеющие не менее одной грани, в виде подзапросов. Сформировать выражение F как операцию левостороннего внешнего соединения р со всеми подзапросами, а также с псевдонимами таблиц, представляющими вырожденные деревья из P, состоящие из одной вершины. Для каждого P такого что (р) = П, найти связку Ъ = <a, f> е р такую что
a е P ор и добавить в W условие (b IS NULL). Для каждой несвязанной вершины « е G такой что <a, f> е B(n) л a е р, добавить в W условие (b IS NOT NULL), если ßKoafe (n) = П, либо условие (b IS NULL), если ßKoafe (n) = П. Добавить в W глобальное условие Fg .
Для поддержки шифрования адаптируется модуль хранения RDF к более широком спектру проблемных областей. В этом случае алгоритм преобразования запросов модифицируется добавлением операций объединения для кодирования запросов с неоднородным отображением на реляционную модель. Конфигурирование реляционной схемы приводится к более общему виду, включая поддержку композитных ключей и более гибкие хранимые процедуры для логического вывода и реификации утверждений.
Результаты и их обсуждение
Программная реализация. Разработка архитектуры программной реализации велась с использованием UML [5] языка графического описания для объектного моделирования в области разработки ПО. Язык UML уже более 10 лет является стандартом де-факто в области проектирования ПО. Структура разработанной программной системы хранения и доступа к RDF-данным Graffiti представлена в виде диаграммы классов на рис. 1. Приведем описание основных классов разработанной системы. Высокоуровневая структура разработанной программной системы хранения и доступа к RDF-данным Graffiti представлена в виде диаграммы классов: RdfConfig - конфигурация отображения RDF; Store - реализация прикладного программного интерфейса выполнения запросов; SquishQuery, SquishSelect, SquishAssert - разбор запросов и команд обновления, SqlMapper, SqlExpression, SqlNodeBinding реализуют преобразование запроса в SQL. В класс RdfConfig записывается конфигурация отображения RDF, описанная в [2]. Помимо хранения списка пространств имен, используемых для сокращения идентификаторов URIref, и отображения отношений RDF на таблицы и поля реляционной схемы данных, данный класс также предоставляет ряд сопутствующих служебных функций, таких как преобразование идентификаторов URIref из сокращенной формы в полную и обратно. Класс Store обеспечивает прикладной программный интерфейс, позволяющий внешним приложениям выполнять RDF-запросы. При инициализации экземпляру класса передаются в качестве входных параметров открытое соединение с реляционной СУБД и содержимое конфигурационного файла, достаточное для формирования экземпляра класса RdfConfig.
Таким образом, реализация класса не привязана ни к соединению к СУБД, ни к конкретной конфигурации отображения RDF, что позволяет свободно рекомбинировать разные СУБД и разные схемы отображения без изменения реализации класса Store. Синтаксис языков запросов Squish и SQL реализован классом SquishQuery и его подклассами SquishSelect, реализующим разбор запроса на извлечение данных, и SquishAssert, реализующим разбор и выполнение запроса на обновление данных. Оба подкласса используют алгоритм преобразования графовых шаблонов RDF в условия выборки данных на языке SQL, реализованный в классе SqlMapper.
Рис. 1. Диаграмма классов разработанной системы хранения данных
Методы класса SqlMapper, представленные в данной последовательности, соответствуют шагам алгоритма преобразования запроса, описанного выше. Алгоритм преобразования запроса достаточно сложен и вычислительно емок и может оказывать влияние на производительность всей системы. Чтобы компенсировать потенциальные потери производительности, разработанная система хранения RDF-данных поддерживает внутренний кэш преобразованных запросов и позволяет использовать параметризованные запросы, которые увеличивают частоту попадания в кэш, защищают приложение от атак класса «SQL injection» (вставка в запросы пользовательского SQL-кода вместо данных).
Аппаратная реализация. Для решения задач отображения реляционных БД на модель RDF с поддержкой шифрования предлагается вычислительная платформа, как аппаратный ускоритель к Web-серверу для обработки знаний в реальном времени. Аппаратный ускоритель -это специализированный процессор, реализующий модифицируемый алгоритм преобразования запросов на доступ к RDF в запросы SQL, который подключается к серверу через высокоскоростной интерфейс. Основные требования, которые предъявляются к такой реализации: аппаратный ускоритель должен быть специализирован под решение сложной вычислительной задачи для достижения максимальной производительности; возможность изменения алгоритма обработки без переделки спецпроцессора; спецпроцессор должен иметь высокоскоростной интерфейс для обмена с сервером. Спецпроцессор может быть реализован на ПЛИС, что позволит изменить алгоритм обработки данных путем коррекции последовательности, загружаемой в интегральную схему. Имеется большое количество плат для создания прототипов устройств на базе ПЛИС, которые могут быть использованы как спецпроцессор, однако они обладают избыточностью. В качестве ПЛИС для спецпроцессора можно рекомендовать кристалл XC3S 400 Spartac III Xilins [6], который выбран из соображений максимальной емкости (400000 логических вентилей). Требованиям интерфейса для обмена данными с сервером удовлетворяет USB 2.0 (до 480Мб/с). Для хранения корректируемой последовательности будет использоваться постоянное запоминающее устройство (ПЗУ), последовательность заносится в него через интерфейс JTAG, что позволит конфигурировать спецпроцессор из сервера. Задача шифрования передаваемых данных (криптографические алгоритмы реализуются на ПЛИС, которая включена в состав платформы.
Схема обработки RDF-знаний с аппаратной поддержкой приведена на рис. 2. Данная схема -наиболее универсальный вариант развертывания, предполагающий разделение системы между максимально возможным числом серверов и процессов. Такое разделение позволяет оптимизировать масштабируемость отдельных компонентов системы, но не является обязательным.
Рис. 2. Схема обработки RDF-знаний с аппаратной поддержкой Заключение
В результате выполненной разработки для метода обработки данных и знаний в интернете с поддержкой шифрования [2] предложено два варианта поддержки. Это может быть программная реализация, а для обслуживания большого количества пользователей (десятки, сотни тысяч) и аппаратная. Высокоуровневая структура разработанной программной системы хранения и доступа к RDF-данным Graffiti представлена в виде диаграммы классов. Для решения задач отображения реляционных БД на модель RDF с поддержкой шифрования предлагается вычислительная платформа (спецпроцессор на базе ПЛИС), как аппаратный ускоритель к Web-серверу для обработки знаний в реальном времени.
HARD- AND SOFTWARE SUPPORT OF DATA AND KNOWLEDGE PROCESSING METHOD WITH CIPHERING ELEMENTS FOR INTERNET
V.A. VISHNIAKOV, D.S. BORODAENKO
Abstract
The algorithm modification of dynamic transformation RDF queries in method for mapping relational DB to the RDF model allows to support the ciphering by the way of unity operations for queries coding with inhomogeneous mapping on relational model. Two variants of method of mapping relational DB to the RDF model are proposed. The software realization for medium volume of user queries (until ten thousand) in class terms is proposed. The hardware realization of this method for large volume of user queries (tens and hundreds of thousands) by including to web-server the special processor on PLIS is proposed.
Список литературы
1. Berners-Lee T., Hendler J., Lassila O. II Scientific American. May, 2001. P. 28-37.
2. Вишняков В.А., Бородаенко Д.С. // Докл. БГУИР. 2013. № 8 (62). С. 89-94.
3. Бородаенко Д.С. // Докл. БГУИР. 2010. № 2 (48). С. 84-89.
4. Brickley D. RDF Vocabulary Description Language 1.0.
5. ФаулерМ. UML основы. СПб, 2005.
6. КузелинМ.О., Кнышев Д.А., Зотов В.Ю. Современные системы ПЛИС фирмы Xilins. М., 2004.