Научная статья на тему 'Smarty-объекты: вариант использования гетерогенных источников в ситуационно-ориентированных базах данных'

Smarty-объекты: вариант использования гетерогенных источников в ситуационно-ориентированных базах данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
282
61
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РНР. / ВЕБ-ПРИЛОЖЕНИЕ / БАЗА ДАННЫХ / ДИНАМИЧЕСКАЯ МОДЕЛЬ / WEB-APPLICATION / DYNAMIC MODEL / NOSQL / JSON / SMARTY

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гусаренко А. С., Миронов В. В.

В рамках ранее разработанной концепции модели DOM-элементов в составе динамической модели ситуационно-ориен­тированной базы данных предлагается динамическая модель более высокого уровня абстракции, предусматривающей графические и текстовые средства спецификации источников данных на основе JSON. Описывается способ спецификации JSON источников с помощью, JSON-элементов, ассоциированных с состояниями динамической модели, который регламентирует заполнение Smarty-объекта и/или Smarty-массива JSON-контентом из специфицированных источников, когда родительское состояние становится текущим. Предлагается реализация модели на платформе PHP с использованием tpl-шаблонов Smarty.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Smarty-objects: use case of heterogeneous sources in situationally-oriented databases

As part of the previously developed concept model DOM-elements in the dynamic model of situational-oriented database dynamic model proposed higher level of abstraction providing for visual and text tools specifications of data sources based on JSON. Specifications describes a method using JSON sources, JSON-elements associated with the states of the dynamic model, which regulates the filling Smarty-object and/or Smarty-array by JSON-content of the specified source when the parent state becomes the current state. It is proposed to implement the model on the platform PHP using tpl-templates of Smarty.

Текст научной работы на тему «Smarty-объекты: вариант использования гетерогенных источников в ситуационно-ориентированных базах данных»

ISSN 1992-6502 (P ri nt)_

2014. Т. 18, № 3 (63). С. 242-252.

Ъыьмт QjrAQnQj

ISSN 2225-2789 (Online) http://journal.ugatu.ac.ru

УДК 004.65

Smarty-объекты: вариант использования гетерогенных

источников в ситуационно-ориентированных базах данных

1 2 а. с. Гусаренко , в. в. Миронов

1 [email protected], 2 [email protected] ФГБОУ ВПО «Уфимский государственный авиационный технический университет» (УГАТУ) Поступила в редакцию 16 апреля 2014 г.

Аннотация. В рамках ранее разработанной концепции модели DOM-элементов в составе динамической модели ситуационно-ориентированной базы данных предлагается динамическая модель более высокого уровня абстракции, предусматривающая графические и текстовые средства спецификации источников данных на основе JSON. Описывается способ спецификации JSON источников с помощью JSON-элементов, ассоциированных с состояниями динамической модели, которые регламентируют заполнение Smarty-объекта и/или Smarty-массива JSON-контентом, когда родительское состояние становится текущим. Предлагается реализация модели на платформе PHP с использованием tpl-шаблонов Smarty.

Ключевые слова: веб-приложение; база данных; динамическая модель; NoSQL; JSON; Smarty; РНР.

Развивая концепцию ситуационно-ориентированных баз данных (СОБД), предложенную в работах [1-6], необходимо отметить, что в основу NoSQL баз данных [7-14] входят различные виды источников [2-6]. Текущее положение дел таково, что базы данных имеют в своей структуре источники JSON-типа, представляющие собой массив или объект данных и не только использующиеся для информационного обмена между сервером и клиентом веб-приложения, но и служащие основой баз данных. Такой формат является дополнительным способом хранения данных на сервере, с его помощью можно описывать объекты и сложные иерархические структуры данных, но СОБД в своем наборе инструментов пока не имеет осязаемого подхода к подключению и обработке источников данного типа, а также алгоритмов, лингвистического обеспечения и встроенных средств вывода контента пользователю [3].

В работах [3-5] рассматривались различные аспекты использования источников XML и отображения динамического контента с помощью XSLT, но не рассматривались вопросы, связанные с JSON и Smarty как платформы СОБД. Это привело к тому, что сейчас нет специальных

Работа поддержана грантом РФФИ 10-07-00167-а.

видов обеспечения для СОБД по работе с указанной функциональностью [3].

Если в базах данных XML для отображения контента используется технология XSLT-шаб-лонизации, то для JSON-источников эту роль может взять на себя набравший популярность шаблонизатор Smarty. Компилирующий обработчик шаблонов Smarty имеет базовые и расширенные возможности по отображению таких структур данных как массивы и объекты, создание шаблонов имеет структуру, подобную PHP-программе, также как в JSON описание данных похоже на описание на JavaScript-программы.

В данной статье рассматриваются вопросы автоматического формирования контента из ассоциированных JSON-объектов и JSON-мас-сивов в состояниях динамической модели СОБД, а также спецификации отображения с помощью Smarty в модели веб-приложения

[7-10].

1. ВВОДНЫЕ ЗАМЕЧАНИЯ

Данная статья является развитием работ по созданию инструментальных, лингвистических средств СОБД [3], в которых были разработаны средства спецификации динамических DOM-объектов. В данном случае возникает задача автоматического создания Smarty-объектов и заполнения их контентом из JSON-источников.

ОЭ S0

•—fldQl J1 type="json" path = "JSON/J1.json" ■—gra J2 type="json" path = "JSON/J2.json"

ЩЭ M

-SD S1 —ВШр S2

■—jjson J3 type="json" path = "JSON/J3.json" ^-Па A1 pass = "2" S2 S1

—Й30Э J4 type="json" path = "JSON/J4.json" ^QJ] A2 pass = "2"

Рис. 1. Диаграмма динамической модели со спецификацией JSON-документов

Для создания и обработки новых источников требуется прилагать значительные усилия, особенно в условиях, когда JSON-источник имеет сложную иерархическую структуру, а СОБД не имеет реализованных методов и подходов к их обработке. Требуется предусмотреть в модели специальные элементы, специфицирующие новый тип источника - документы JSON (smt, рис. 1), в процессе интерпретации декодируемые и загружаемые в объекты / массивы Smarty. Для использования результирующего объекта / массива в состояниях модели также требуется предусмотреть элементы шаблонов tpl. Для перехвата результата, вывода компиляции шаблона также требуются атрибуты, указывающие тип ресурса, шаблона вместе с путем и названием шаблона. В соответствии с предлагаемым подходом в модели к состояниям привязываются Smarty-элементы. Элементы Smarty-объектов создаются, когда состояние, к которому они привязаны, становится текущим. Известный подход, в сравнении с предлагаемым, основан на спецификации шаблона и программировании функций по обработке JSON-источников в программе или подпрограмме. Ручной метод не позволяет использовать модель для повышения уровня абстракции при использовании типовых операций соединения, извлечения и фильтрации данных при обработке JSON-источников и вывода результата с помощью шаблонов tpl. В этих условиях логично оснастить этими функциями модель СОБД. В предлагаемом подходе: • у элементов-состояний динамической модели предусмотрены дочерние Smarty-элементы, дочерние элементы-источники которых указывают на загружаемые JSON-данные,

а дочерние элементы-приемники мый JSON-результат;

на сохраняе-

• в ходе интерпретации динамической модели интерпретатором происходит автоматическое порождение Smarty-объектов для текущих состояний модели и загрузка JSON-данных с указанным преобразованием.

GD S0

—ЕЭа A0 pass = "2" •—ЕЗЭ A1 pass = "1" —Щ> Sm0 ~ЛЗЗ A2 pass = "1" —ГЦЬ m

-SD S1

•—БаЗ A3 pass = "1" —ГШ* Sm1 ran A4 pass = "1" ШВ D1

^-GD S2

•—A5 pass = "1" —Sm2

—БаЗ A6 pass = "1"

wflom d2

Рис. 2. Диаграмма динамической модели, с состояниями которой ассоциированы Smarty-объекты

Smarty-объекты. Объекты Smarty (рис. 2) порождаются в ходе интерпретации модели и имеют описание на языке программирования, заполняются JSON-данными, а затем используются в шаблонах tpl. Объект Smarty является основой для формирования результирующего объекта на основе информации из JSON-источника. Результирующий документ рис. 3 формируется на основе извлечения и фильтрации документа источника, по отношению к результирующему источнику документ источника является дочерним.

Smarty-массивы. Вторая особенность, которой обладает Smarty, - возможность спецификации ассоциативных массивов. И поэтому результирующий документ представляет собой содержимое слияния двух и более ассоциативных массивов JSON-данных. При этом определенные данные извлекаются, фильтруются в соответствии с условиями, заданными в модели.

Использование JSON-массивов и объектов обеспечивается языковыми средствами [3], и вполне оправданы, так как имеются реализованные средства кодирования/декодирования JSON в объекты и массивы.

json Документ источника

jsOn Результирующий источник ^-Корень

Извлечение -Фильтрация-1 Очистка

(jSon Результирующий документ '-Корень

Результирующие объекты/массивы

L

-Y-

Родительские источники для результирующего документа

Рис. 3. Формирование Smarty-объекта на основе информации из JSON-источников данных

Диаграмма модели на рис. 2 предусматривает использование в состояниях динамические DOM-объекты [7-10] и Smarty-объекты. Динамические DOM-объекты предусматривают автоматическую загрузку данных XML-происхож-дения и облегчают задание спецификаций по обработке таких данных, но не решают задачу использования JSON-содержимого источников в ситуациях приложения. Таким образом, необходим инструментарий, встроенный в интерпретатор динамической модели [2], реализующий функциональность автоматической загрузки и обработки в состояниях динамической модели JSON-контента наряду с реализованным подходом в работах [3, 4] по обработке XML-источ-ников данных.

2. КОНЦЕПЦИЯ 8МЛЯТУ-ОБЪЕКТОВ

8шаг1у-элементы. Для того чтобы в ходе интерпретации автоматически создавались Smarty-объекты, в которые загружаются JSON-данные, ассоциированные с состояниями модели, необходимо предусмотреть в модели Smarty-и JSON-элементы. Элементы JSON [13] описывают источник данных, принимаемый к обработке. Для обработки заданных в состояниях данных предусмотрим в модели Smarty-эле-менты и вложенные в них источники данных. В соответствии с этими спецификациями добавим в интерпретатор функциональность по созданию Smarty-объектов, что позволит создавать эти объекты, когда родительские состояния становятся текущими, и удалять их, когда состояние перестает быть текущим. Это позволит снизить трудоемкость подготовки Smarty-объектов и массивов при обработке JSON, а также задавать типовые операции преобразования JSON-данных. Пример спецификации приведен на рис. 4.

£tä> S ^^mb S1

X1 type = "json" path="J1"

^^ S2

D1 type = "array" path="J2"

^^m» S3

F1 type = "func" path="J3"

Рис. 4. Диаграмма динамической модели, в которой заданы Smarty-объекты с помощью Smarty-элементов

Для спецификаций Smarty-объектов предусмотрен специальный символ , обозначающий в графической нотации модели описание объекта; в нем задается имя объекта и требующийся шаблон для отображения результата.

В описание источника , ранее введенное для источников динамических DOM-объектов [4-6], добавим конструкции задания типа источника type="json" и type="array", а также ссылки path, по которому интерпретатор извлекает требующийся контент.

Дальнейшая реализация идеи по сокращению трудоемкости требует последующего исследования вопросов по обеспечению источников данных.

JSON-контент в Smarty-объектах. Подключение JSON-источников наряду с XML-контентом актуально, если рассматривать эту задачу исходя из того, что в сравнении с XML JSON имеет более компактную форму записи при обмене результатами выполнения HTTP-запроса с использованием объекта XmlHttp-Request, используемого для реализации технологии AJAX. Это может быть массив или объект в памяти, который загружается через объект XmlHttpRequest. В случае если мы используем JSON-контент с сервера, требуется спецификация пути, по которому находится файл. В таких

условиях СОБД требуется инструментарий, позволяющий обрабатывать и отображать JSON-документы, находящиеся как в оперативной, так и во внешней памяти.

3. ПРИМЕР ИСПОЛЬЗОВАНИЯ 8МЛЯТУ-ОБЪЕКТОВ

Чтобы проиллюстрировать предлагаемую концепцию в качестве практического примера использования Smarty-объектов, рассмотрим пример решения задачи с использованием JSON, аналогичный тому, что приводился в работе [2] для задачи отображения сведений о студентах, предметах и сдачах с помощью динамических DOM-объектов [15-25].

Исходные данные. Пусть данные о студентах, предметах и сдачах хранятся в файлах JSON: studjson, predm.json, sdachajson, которые расположены в папке JSON сервера СОБД. На рис. 5 представлены концептуальные модели этих документов и тестовые экземпляры их содержимого. Документ studjson (рис. 5, а) в корневом объекте «Студенты» может содержать несколько вложенных экземпляров объекта «студент» с атрибутами «код» (код студента)

и «фио» (фамилия, имя, отчество студента), причем атрибут «код» является идентификатором. Экземпляр этого документа (рис. 5, а) содержит сведения о трех студентах: Иванове, Петрове и Сидорове. Аналогичным образом JSON-документ predm.json (рис. 5, б) в корневом объекте «Предметы» может содержать несколько вложенных экземпляров объекта «предмет» с атрибутами «код» (код предмета) и «назв» (название предмета), причем атрибут «код» является идентификатором. Модель экземпляра этого документа [26-28] (рис. 5, б) содержит сведения о предметах «теория систем», «матлогика» и «криптография». Документ sdachajson (рис. 5, в) в корневом объекте «Сдачи» может содержать несколько вложенных экземпляров объекта «сдача», соответствующих сдачам определенным студентом определенного предмета, с атрибутами «кодСт» (код студента), «кодПр» (код предмета) и «оценка» (оценка студента по предмету), причем пара атрибутов «кодСт, кодПр» является составным идентификатором. Модель [29-39] экземпляра этого документа (рис. 5, в) содержит сведения о пяти сдачах: трех сдачах Иванова и двух Петрова (Сидоров не сдал ни одного предмета).

json)

Студенты студент

Предметы

^—I

-@attributes

-код = "э01" -спец = "АСУ" '-группа = "01"

-код = "э01" —фио = "Иванов" спец = "АСУ" группа = "01"

-@attributes

-код = "э02" -спец = "ПИ" группа = "02"

код = "э02" —фио = "Петров" спец = "ПИ" группа = "02"

-@aШibutes

-код = "э03" -спец = "АСУ" группа = "03"

•—код = "э03" '--фио = "Сидоров" спец = "АСУ" группа = "03"

предмет

'-сдача

-@aШibutes -код = "р01" -цикл = "ОНД" спец = "АСУ" код = "р01"

-назв = "Теория систем" цикл = "ОНД" спец = "АСУ"

-@aШibutes -код = "р02" -цикл = "СД" спец = "АСУ" код = "р02" назв = "Матлогика" цикл = "СД" спец = "АСУ"

-@attпbutes -код = "р03" -цикл = "СД" спец = "ПИ" код = "р03"

назв = "Криптография"

цикл = "СД" спец = "ПИ"

-@attributes [-кодСт = "э01" кодПр = "р01" кодСт = "э01" кодПр = "р01" --оценка = "5" -@attributes [-кодСт = "э01" кодПр = "р02" кодСт = "э01" кодПр = "р02" —оценка = "4" -@attributes I—кодСт = "э01" кодПр = "р03"

кодСт = "э01" кодПр = "р03" оценка = "5"

-@attributes кодСт = "э02" кодПр = "р01" -кодСт = "э02" -кодПр = "р01" оценка = "4" @attributes кодСт = "э02" кодПр = "р02" -кодСт = "э02" ■—кодПр = "р02" оценка = "3"

а б в

Рис. 5. Данные для формирования Smarty-объекта на основе тестовых экземпляров ^О^объектов

Рис. 6. Примеры экранных форм, сформированных на основе тестовых сведений из ^О^источника с помощью Smarty-объекта

Интерфейс пользователя. В рассматриваемом примере пользователю отображаются сведения из сформированного Smarty-объекта на основе JSON-данных. Начальное состояние отображает форму запроса выбранного студента, для которого с помощью Smarty-объекта запрашиваются данные по всем сдачам. Результат выбора выводится в браузер. На рис. 6 приведены примеры форм, которые генерируются в результате выбора студента (в данном случае выбран студент Иванов, который имеет по результатам выбора 3 сдачи с полученными оценками по «теории систем», «матлогике» и «криптографии»). Первая форма рис. 6 демонстрирует список студентов в ситуации «СписокСтудентов», имеющихся в JSON-файле, вторая форма появляется в результате нажатия кнопки «Выбрать студента» в ситуации «ВыбранСтудент». Возврат к предыдущей ситуации происходит при нажатии кнопки к «К списку студентов». Кнопки «К предметам» на обеих формах предусмотрены для перехода к выбору предметов и запроса сведений из JSON-источника для вывода количества сдач по выбранному предмету. Аналогичные формы предусмотрены и для ситуаций

«СписокПредметов» и «ВыбранПредмет». Для выбора одного из предметов предусмотрены «радиокнопки». Задача данного интерфейса -отправка пользователю соответствующей формы в каждой из ситуаций, а также представление данных соединения сведений из JSON-источников.

Динамическая модель. Основой приложения служит модель нового уровня абстракции, которая оснащена новыми элементами и атрибутами. Динамическая модель данного приложения применительно к XML рассматривалась в работах [2-6]. Основными отличительными признаками модели веб-приложения в данной работе является задание документов JSON с помощью элементов "doc". Введены новые спецификации шаблонов типа tpl для отображения Smarty-объектов. Примеры данных средств приведены на рис. 7 в состоянии «Студенты-Предметы». Конструкция, обозначаемая символом ЧЕ?, указывает интерпретатору, что шаблон, запрашиваемый в подсостоянии «Выбран-Студент» субмодели «Студенты», требует вывода Smarty-объекта «УспеваемостьСтудента» с помощью tpl-шаблона «УспеваемостьСтуден-

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

та», который находится на внешней памяти в папке шаблонов Smarty TPL/uspevstud.tpl. У каждого Smarty-объекта могут быть один или несколько вложенных JSON-источников, кроме того, они могут быть различного происхождения. Для этого был введен тип данных type, в котором указывается, откуда может быть принят к обработке контент. Самым распространенным типом данных источника, используемого в приложении, является массив (в модели он обозначается как array). Для приемника контента (символ ) предусмотрен новый метод вывода данных (method = "tpl"). Метод вывода tpl предполагает вывод Smarty-объекта с помощью компилируемого шаблона tpl.

Модель контента для загрузки Smarty-объекта. Контент, загружаемый в Smarty-объект, формируется на основе данных JSON-источников. Пример такой модели данных представлен на рис. 8. Сведения для загрузки

в Smarty-объект «СписокСтудентов» по студентам выбираются из документа doc «СписокСтудентов» по ссылке path="JSON/stud.json". Сведения для загрузки в Smarty-Объект «Список-Предметов» по студентам выбираются из документа doc «СписокПредметов» по ссылке path="JSON/predm.json". Для формирования результирующего контента (рис. 8, в, г) сведения о выбранном студенте извлекаются по кодам студента и предмета.

По этим же кодам выбираются сведения по сдачам: «ФИО студента», «специальность», «группа», «оценка» для ситуации «ВыбранСту-дент» (рис. 8, а, б). Что же касается ситуации «ВыбранПредмет», выбираются дополнительные сведения: «название», «цикл», «специальность». Ключевые элементы могут быть перенесены в JSON-массив атрибутов, обозначаемый как @attributes, в этом случае выбор может быть произведен по атрибутам [15-18], более детально это отображено на (рис. 5, а, б, в).

flta Студенты-Предметы

■—АПНЯ СписокСтудентов path = "JSON/stud.json"

■—АПНД СписокПредметов path = "JSON/predm.json"

■—АПНЯ Успеваемость path = "JSON/sdacha.json"

■—ДЯ СписокСтудентов path = "TPL/stud.tpl"

■—ДЯ УспеваемостьСтудента path = "TPL/uspevstud.tpl"

■—flPH СписокПредметов path = "TPL/predm.tpl"

■—ДРИ УспеваемостьПоПредмету path = "TPL/uspevpredm.tpl"

—ГДУ Студенты-Предметы

ЩЗ Студенты

СписокСтудентов —СШ^ СписокСтудентов

■—СП СписокСтудентов type = "array"

—ШЭ Echo pass = "2" method = "tpl" tpl = "СписокСтудентов" —ПШР ВыбранСтудент

'—pin УспеваемостьСтудента

caption = "Успеваемость студента" L-QB ВыбранСтудент

—Fiii кодСт mode = "prolog"

'—CH кодСт method = "post" ^—ТГШ* УспеваемостьСтудента

—GZX СдачиСтудента mcrLib = "Источники'

—US® Echo pass = "2" method = "tpl"

tpl = "УспеваемостьСтудента" '-"ЕИр СписокСтудентов

'—Q33 Студенты caption = "К студентам"

ЩА Студенты-Предметы ЯГа Студенты

ГТП Студенты pass = "2" kjjs^ Echo method = "label" value = "Студенты" —ВИр Предметы

'—[Am Предметы caption = "К предметам" kfdQV Студенты

Предметы ГТП Предметы pass = "2" kjjs^ Echo method = "label" value = "Предметы" —ВИр Студенты

'—[bin Студенты caption = "К студентам" —Тдр Предметы Ш0 Предметы

СписокПредметов —ГШ* СписокПредметов

■—^ СписокПредметов type = "array"

—US® Echo pass = "2" method = "tpl" tpl = "СписокПредметов" ВИр ВыбранПредмет

—[ЦП УспеваемостьПоПредмету

caption = "Успеваемость по предмету" ВыбранПредмет

кодПр mode = "prolog"

кодПр method = "post" —УспеваемостьПоПредмету

■—ДЯ СдачиПредмета mcrLib = "Источники"

'—Ш» Echo pass = "2" method = "tpl"

tpl = "УспеваемостьПоПредмету" ^-ВШр СписокПредметов

'—|3tn Предметы caption = "К предметам"

Рис. 7. Динамическая модель веб-приложения, оснащенная JSON-источниками и Smarty-объектами

Использование tpl-шаблонов для отображения контента Smarty-объекта. Суть использования tpl-шаблонов заключается в формировании Smarty-объекта, наполнении его актуальным контентом. В ситуации, когда все процедуры обработки завершены, происходит вывод контента в браузер клиента путем рендеринга объекта в шаблоне tpl. Шаблон tpl содержит спецификации на языке программирования PHP. В модели вместо XSLT-конструкции stylesheet используется Smarty-конструкция tpl, задающая имя шаблона для отображения контента.

В рассматриваемом примере в исходном состоянии отображается список студентов, среди которых выбирается нужный студент для получения детальных сведений по сдачам и предметам. Список студентов сформирован на основе документа ^с:СписокСтудентов. Для исходной ситуации «Студенты» предусмотрен шаблон tpl:СписокСтудентов. Шаблон компилируется, отображая каждого студента, концептуальная модель компиляции шаблона tpl: СписокСту-дентов приведен на рис. 9, а.

При выполнении каждой итерации цикла FOREACH шаблона добавляется элемент INPUT, который содержит идентификационные сведения каждого студента. Элемент INPUT имеет тип type="radio", что отображается браузером в виде набора «радиокнопок» для выбора одного из студентов и кнопки BUTTON для перехода в следующее состояние «ВыбранСту-дент», отражающее сведения об успеваемости выбранного студента. Для этой ситуации предусмотрен шаблон tpl:УспеваемостьСтудента, отображающий содержимое Smarty-объекта по выбранному студенту.

Концептуальная модель компиляции шаблона приведена на рис. 9, б. Результат компиляции второго шаблона «УспеваемостьСтудента» представляет собой список из элементов разметки LI сдач по каждому предмету.

ЗАКЛЮЧЕНИЕ

В данной статье рассмотрена задача использования JSON-контента в ситуационно-ориентированных базах данных, а также введены в динамическую модель конструкции, необходимые для обработки формирования JSON-контента.

студент

код = "att: кодСт" — фио спец группа cf> сдача

■ кодСт

■ кодПр

0

оценка > предмет

код > назв I цикл спец

предмет

■ код = "ай:кодПр"--

■ назв • цикл »спец

'—несдача

©

I кодПр— кодСт

iоценка А »студент V I код - J i фио »спец ► группа

(¡son)

студент

код ="в01" —фио = "Иванов" спец = "АСУ" группа = "01" сдача -кодСт = "в01" -кодПр = "р01" -оценка = "5" -предмет

предмет

-код ="p01"

-назв = "Теория систем" -цикл = "ОНД" -спец = "АСУ"

сдача

кодСт = "s01" кодПр = "p02" —оценка = "4" предмет

сдача

код = "p02" -назв = "Матлогика" -цикл = "СД" спец = "АСУ"

кодСт = "s01" кодПр = "p03" —оценка = "5" предмет

код = "p03"

назв = "Криптография" цикл = "СД" '-спец = "ПИ"

код = "р01"

назв = "Теория систем" цикл = "ОНД" спец = "АСУ" —сдача

кодСт = "s01" кодПр = "p01" оценка = "5" '—студент

-код = "s01" -фио = "Иванов" спец = "АСУ" -группа = "01"

сдача

кодСт = "s02" -кодПр = "p01" оценка = "4" -студент

код = "s02" фио = "Петров" спец = "ПИ" группа = "02"

а, б в г

Рис. 8. Контент 8тайу-объекта, сформированный на основе сведений о студентах, предметах

и сдачах из 180М-источников

d>

-SPAN Студенты -BUTTON К предметам

-BR -FORM

— name = "backpredmet" —type = "submit" —value = "К предметам"

— method = "post" —action = "index.php"

Студенты

FOREACH}

—from = "$stud_outputV--'"' — item = "students" ■—TFOREACH)

—from = "$students.student" — item = "student" PUT {$student.fio}

QpD«-

дф_

—©attributes

код = "801 "ж., спец = "АСУ" группа= "01" код = "$01" фио = "Иванов" спец = "АСУ" группа = "01"

— name = "codSt" —type = "radio" —value = "{$student.code}"

>-0 [ 1 ] checked = "checked"

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

—BR

—BUTTON Выбрать студента

tname = "backpredmet" type = "submit"

SPAN Студенты =ORM

студент ■

■— method = "post"

action = "index.php" — BUTTON К предметам

■— name = "student" —type = "submit" —value = "К предметам"

OREACH}

from = "$stud_output" ./ — item = "item" k

= "{$fio}"--- успеваемость:

L = "{$item.name}"--- ••..........

"{$item.ocenka}" -----------------

BUTTON К списку студентов

tname = "back" type = "submit"

код = "эН:кодСт" фио спец группа сдача

кодСт кодПр оценка предмет

■ код

■ назв > цикл

спец

{F

а б

Рис. 9. Концептуальные модели компиляции шаблона ТРЬ отправляемого в браузер на основе тестовых 180К-сведений из 8тайу-объекта: а - формирование списка студентов; б - формирование

списка сдач выбранного студента

Сформирована концепция, суть которой заключается в использовании 8тайу-объектов для отображения 180К-результата выполнения функций. Примеры, приведенные и используемые в модели, рассмотрены без учета конкретной реализации на серверной платформе.

Предложено привязывать 8таГу-объекты к состояниям динамической модели, при этом их создание в ходе интерпретации производится автоматически, осуществляется загрузка, фильтрация и очищение, а также слияние с учетом заданных условий. Конечный 180К-результат отображается с помощью заранее подготовленного шаблона 1р1.

Основные отличительные признаки концепции:

1) элементы состояния динамической модели ситуационно-ориентированной базы данных содержат ассоциированные с ними 8тайу-объекты, специфицируемые с помощью введенных в данной работе 8таГу-элементов;

2) в процессе интерпретации динамической модели объекты создаются автоматически, загружаются 180К-контентом, затем в соответствии с заданными условиями обработки формируется результирующий контент;

3) в динамической модели предусмотрены средства для подключения и обработки JSON-контента в ситуационно-ориентированной базе данных.

Применение этой концепции позволит разработчику проектировать приложения без тру-демкого программирования, подключая в состояниях динамической модели JSON-источники и специфицируя для них условия обработки для получения результирующего контента.

Дальнейшее развитие данного направления связано с разработкой программной реализации на платформе HSMI.

СПИСОК ЛИТЕРАТУРЫ

1. Strauch C., Kriha W. NoSQL databases [Электронный ресурс]. URL: http://www.christof-strauch.de/nosqldbs. pdf (дата обращения 07.11.2012). [ C. Strauch and W. Kriha (2012, Nov. 11). NoSQL databases [Online]. Available: http://www.christof-strauch.de/ nosqldbs.pdf ]

2. Миронов В. В., Гусаренко А. С. Ситуационно-ориентированные базы данных: концепция управления XML-данными на основе динамических DOM-объектов // Вестник УГАТУ. 2012. Т. 16, № 3 (48). С. 159-172. [ V. V. Mironov, A. S. Gusarenko, "Situationally-oriented databases: the concept of managing XML-data based on dynamic

DOM-objects" (in Russian), in Vestnik UGATU, vol. 16, no. 3 (48), pp. 159-172, 2012. ]

3. Миронов В. В., Гусаренко А. С. Динамические DOM-объекты в ситуационно-ориентированных базах данных: лингвистическое и алгоритмическое обеспечение источников данных // Вестник УГАТУ. 2012. Т. 16, № 6 (51). С. 167176. [ V. V. Mironov, A. S. Gusarenko, "Dynamic DOM-objects in situationally-oriented databases: lingware and knoware of data sources" (in Russian), in Vestnik UGATU, vol. 16, no. 6 (51), pp. 167-176, 2012. ]

4. Гусаренко А. С. Обработка XML-документов в ситуационно-ориентированных базах данных на основе динамических DOM-объектов: автор. дис. ... канд. техн. наук / Уфимск. гос. авиац. техн. ун-т. Уфа, 2013 [ A. S. Gusarenko, Handling XML-documents in situationally-oriented databases based on dynamic DOM-objects, (in Russian), thesis abstract for the degree of candidate of technical sciences, UGATU, 2013. ]

5. Гусаренко А. С., Миронов В. В., Алгоритмическое и лингвистическое обеспечение ситуационно-ориентированных баз данных на основе динамических DOM-объектов // Информационные и инфоком-муникационные технологии: сб. науч. тр. 8-й всерос. зимн. шк.-сем. аспирантов и молодых ученых. Уфа: УГАТУ, 2013. Т. 1. С. 119-122. [ V. V. Mironov and A. S. Gusarenko, "Algorithmic and and linguistic support of situationally-oriented databases based on dynamic DOM-objects" in Proc. 8th Workshop of winter school postgraduates and young researchers, Ufa: UGATU, 2013, vol. 1, pp. 119-122. ]

6. Гусаренко А. С., Миронов В. В., Профилирование алгоритма ситуационно-ориентированной базы данных на основе динамических DOM-объектов // Информационные и инфо-коммуникационные технологии: сб. науч. тр. 8-й всерос. зимн. шк.-сем. аспирантов и молодых ученых. Уфа: УГАТУ, 2013. Т. 1. С. 115-118. [ V. V. Mironov and A. S. Gusarenko, "Profiling algorithm of situationally-oriented database based on dynamic DOM-objects" in Proc. 8th Workshop of winter school postgraduates and young researchers, Ufa: UGATU, 2013, vol. 1, pp. 115-118. ]

7. Канашин В. В., Миронов В. В. Иерархические вид-жеты: опыт применения в веб-приложении на основе ситуационно-ориентированной базы данных // Вестник УГАТУ. 2013. Т. 18, № 2 (63). С. 185-196. [ V. V. Mironov, V. V. Kanashin, "Hierarchical widgets: experience of use in the web application on the basis of situation-oriented database," Vestnik UGATU, vol. 18, no. 2 (63), pp. 185-196, 2014. ]

8. Канашин В. В., Миронов В. В. Иерархические вид-жеты: организация интерфейса пользователя в веб-приложениях на основе ситуационно-ориентированных баз данных // Вестник УГАТУ. 2013. Т. 17, № 2 (55). С. 138149. [ V. V. Mironov, V. V. Kanashin, "Hierarchical widgets: user interface organization in web applications on the basis of situation-oriented databases," Vestnik UGATU, vol. 17, no. 2 (55), pp. 138-149, 2013. ]

9. Канашин В. В., Миронов В. В. Иерархические вид-жеты: ввод и контроль данных пользователя в веб-приложениях на основе ситуационно-ориентированных баз данных // Вестник УГАТУ. 2013. Т. 17, № 5 (58). С. 166176. [ V. V. Mironov, V. V. Kanashin, "Hierarchical widgets: input and control of the user data in web applications on the basis of situation-oriented databases," Vestnik UGATU, vol. 17, no. 5 (58), pp. 166-176, 2013. ]

10. Канашин В. В., Миронов В. В. Иерархические виджеты: алгоритмы контроля данных пользователя в веб-приложениях на основе ситуационно-ориентированных баз данных // Вестник УГАТУ. 2014. Т. 18, № 1 (62). С. 204213. [ V. V. Mironov, V. V. Kanashin, "Hierarchical widgets: user data control algorithms in web applications on the basis of situation-oriented data-bases," Vestnik UGATU, vol. 18, no. 1 (62), pp. 204-213, 2014. ]

11. Макарова Е. С., Миронов В. В. Проектирование концептуальной модели данных для задач Web-OLAP на основе ситуационно-ориентированной базы данных // Вестник УГАТУ. 2012. Т. 16, № 6 (51). С. 177-188. [ E. S. Makarova and V. V. Mironov, "Web OLAP conceptual data model design on the basis of situation-oriented database," (in Russian), Vestnik UGATU, vol. 16, no. 6 (51), pp. 177188, 2012. ]

12. Макарова Е. С., Миронов В. В. Функции аналитики в веб-приложениях на основе ситуационно-ориентированных баз данных // Вестник УГАТУ. 2013. Т. 17, № 5 (58). С. 150-165. [ E. S. Makarova and V. V. Mironov, "Analytical functions in web applications based on situation-oriented databases," (in Russian), Vestnik UGATU, vol. 17, no. 5 (58), pp. 150-165, 2013. ]

13. Миронов В. В., Юсупова Н. И., Шакирова Г. Р. Ситуационно-ориентированные базы данных: концепция, архитектура, XML-реализация // Вестник УГАТУ. 2010. Т. 14, № 2 (37). С. 233-244. [ V. V. Mironov, N. I. Yusupova, and G. R. Shakirova, "Situation-oriented databases: concept, architecture, XML realization," (in Russian), Vestnik UGATU, vol. 14, no. 4 (39), pp. 200-209, 2010. ]

14. Миронов В. В., Юсупова Н. И., Шакирова Г. Р. Ситуационно-ориентированные базы данных: внешние представления на основе XSL // Вестник УГАТУ. 2010. Т. 14, № 4 (39). С. 200-209. [ V. V. Mironov, N. I. Yusupova, and G. R. Shakirova, "Situation-oriented databases: external view in the basis of XSL," (in Russian), Vestnik UGATU, vol. 14, no. 2 (37), pp. 233-244, 2010. ]

15. Миронов В. В., Маликова К. Э. Интернет-приложения на основе встроенных динамических моделей: идея, концепция, безопасность // Вестник УГАТУ.

2009. Т. 13, № 2 (35). С. 167-179. [ V. V. Mironov and K. E. Malikova, "Internet applications based on embedded dynamic models: idea, concept," (in Russian), Vestnik UGATU, vol. 13, no. 2 (35), pp. 167-179, 2009. ]

16. Миронов В. В., Маликова К. Э. Интернет-приложения на основе встроенных динамических моделей: архитектура, структура данных, интерпретация // Вестник УГАТУ. 2010. Т. 14, № 1 (36). С. 154-163. [ V. V. Mironov and K. E. Malikova, "Internet applications based on embedded dynamic models: architecture, data structure, interpretation," (in Russian), Vestnik UGATU, vol. 14, no. 1 (36), pp. 154-163, 2010. ]

17. Миронов В. В., Маликова К. Э. Интернет-приложения на основе встроенных динамических моделей: элементы управления пользовательского интерфейса // Вестник УГАТУ. 2010. Т. 14, № 5 (40). С. 170-175. [ V. V. Mironov and K. E. Malikova, "Internet applications based on embedded dynamic models: user interface controls," (in Russian), Vestnik UGATU, vol. 14, no. 5 (40), pp. 170-175,

2010. ]

18. He W., Zhai J. Application of the indent conversion based on XML and DOM // Paper presented at the Proceedings - 2013 International Conference on Computational and Information Sciences, ICCIS'2013, P. 411-413. [ W. He and

J. Zhai, "Application of the indent conversion based on XML and DOM," Paper presented at the Proceedings - 2013 International Conference on Computational and Information Sciences (ICCIS'2013), vol. 1, pp. 411-413, 2013. ]

19. Leveraging spatial join for robust tuple extraction from web pages / Han, W. et al. // Information Sciences, (10 March 2014) 2014. V. 261, P. 132-148. [ W. Han, et al., "Leveraging spatial join for robust tuple extraction from web pages", Information Sciences, vol. 261, pp. 132-148, 2014. ]

20. Pokorny J. New database architectures: Steps towards big data processing // Proceedings of the IADIS International Conference Intelligent Systems and Agents 2013 ECDM' 2013, (Prague, Czech Republic, 22-24 July, 2013). Prague, Czech Republic, 2013. P. 3-10. [ J. Pokorny, "New database architectures: Steps towards big data processing," in Proc. IADIS International Conference Intelligent Systems and Agents (ECDM' 2013), Prague, Czech Republic, pp. 3-10, 2013. ]

21. Kaur K., Rani R. Modeling and querying data in NoSQL databases // Proc. of IEEE Int. Conf. on Big Data 2013 (Santa Clara, CA, United States, 6- October 2013). Santa Clara, United States, 2013. P. 1-7. [ K. Kaur and R. Rani, "Modeling and querying data in NoSQL databases," in Proc. of IEEE Int. Conf. on Big Data 2013, Santa Clara, United States, pp. 1-7, 2013. ]

22. Static and dynamic semantics of NoSQL languages / Benzaken, V. et al. // 40th Annual ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages POPL' 2013 (Rome, 23 through 25 January 2013) 2013. C. 101-113. [ V. Benzaken, et al., "Static and dynamic semantics of NoSQL languages," (in English), in Proc. 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL' 2013), pp. 101-113, Rome, Italy, 2013. ]

23. Design and evaluation of lifelog mashup platform with NoSQL database / K. Takahashi et al. // Proc. of 15th Int. Conf. Information Integration and Web-Based Applications and Services, iiWAS'2013 (Vienna, Austria, 2-4 Dec., 2013) C. 133-139. [ K. Takahashi, et al., "Design and evaluation of lifelog mashup platform with NoSQL database", (in English), in Proc. 15th Int. Conference on Information Integration and Web-Based Applications and Services (iiWAS -2013), pp. 133139, Vienna, Austria, 2013. ]

24. Kobayashi N., Ishii M., Takahashi S., Mochizuki Y., Matsushima A., Toyoda T. Semantic-JSON: a lightweight web service interface for Semantic Web contents integrating multiple life science databases // Nucleic Acids Research. 2011. T. 39. C. W533-W540. [ N. Kobayashi, M. Ishii, S. Takahashi, Y. Mochizuki, A. Matsushima, T. Toyoda, "Semantic-JSON: a lightweight web service interface for Semantic Web contents integrating multiple life science databases," Nucleic Acids Research., vol. 39, pp. W533-W540, 2011. ]

25. O'Connor B. D., Merriman B., Nelson S. F. SeqWare Query Engine: storing and searching sequence data in the cloud // Bmc Bioinformatics. 2010. T. 11. C. 9. [ B. D. O'Connor, B. Merriman, S. F. Nelson, "SeqWare Query Engine: storing and searching sequence data in the cloud," in Bmc Bioinformatics, vol. 11, P. 9, 2010. ]

26. Sladic G., Milosavljevic B., Konjovic Z., Vidakovic M. Access Control Framework for XML Document Collections // Computer Science and Information Systems. 2011. T. 8, № 3. C. 591-609. [ G. Sladic, B. Milosavljevic, Z. Konjovic, M. Vidakovic, "Access control framework for XML document collections" (in English), Computer Science and Information Systems, vol. 8, no. 3, pp. 591-609, 2011. ]

27. Sudarsan R., Gray J. Metamodel search: Using XPath to search domain-specific models // Journal of Research and Practice in Information Technology. 2006. T. 38, № 4. C. 337351. [ R. Sudarsan, J. Gray, "Metamodel search: Using XPath to search domain-specific models," J. Research and Practice in Information Technology, vol. 38, no. 4, pp. 337-351, 2006. ]

28. Tang N., Yu J. X., Wong K. F., Li J. X. Fast XML structural join algorithms by partitioning // Journal of Research and Practice in Information Technology. 2008. T. 40, № 1. C. 33-53. [ N. Tang, J. X. Yu, K. F. Wong, J. X. Li, "Fast XML structural join algorithms by partitioning," J. Research and Practice in Information Technology, vol. 40, no. 1, pp. 33-53, 2008. ]

29. Chen Y. J., Huck G., On the evaluation of path-oriented queries in document databases // Database and Expert Systems Applications. 2001. T. 2113. C. 953-962. [ Y. J. Chen, G. Huck, "On the evaluation of path-oriented queries in document databases," Database and Expert Systems Applications, vol. 2113, pp. 953-962, 2001. ]

30. Dekeyser S., Hidders J., Paredaens J. A transaction model for XML databases // World Wide Web-Internet and Web Information Systems. 2004. T. 7, № 1. C. 29-57. [ S. Dekeyser, J. Hidders, J. Paredaens, "A transaction model for XML databases," World Wide Web-Internet and Web Information Systems, vol. 7, no. 1, pp. 29-57, 2004. ]

31. Herskovits E. H., Chen R. Integrating data-mining support into a brain-image database using open-source components // Advances in Medical Sciences. 2008. T. 53, № 2. C. 172-181. [ E. H. Herskovits, R. Chen, "Integrating Data-Mining Support into a Brain-Image Database Using Open-Source Components," Advances in Medical Sciences, vol. 53, no. 2, pp. 172-181, 2008. ]

32. Jea K. F., Chang T. P., Chen S. Y. A semantic-based protocol for concurrency control in DOM database systems // Journal of Information Science and Engineering. 2009. T. 25, № 5. C. 1617-1639. [ K. F. Jea, T. P. Chang, S. Y. Chen, "A semantic-based protocol for concurrency control in DOM database systems," J. Information Science and Engineering, vol. 25, no. 5, pp. 1617-1639, 2009. ]

33. Kudrass T., Conrad M., Management of XML documents in object-relational databases // Xml-Based Data Management and Multimedia Engineering-Edbt 2002 Workshops. 2002. T. 2490. C. 210-227. [ T. Kudrass, M. Conrad, "Management of XML documents in object-relational databases," in Xml-Based Data Management and Multimedia Engineering-Edbt 2002 Workshops, vol. 2490, pp. 210-227, 2002. ]

34. Nassis V., Dillon T. S., Rajagopalapillai R., Rahayu W. An XML document warehouse model // Database Systems for Advanced Applications: Proceedings. 2006. T. 3882. C. 513529. [ V. Nassis, T. S. Dillon, R. Rajagopalapillai, W. Rahayu, "An XML document warehouse model," in Database Systems for Advanced Applications, Proceedings, vol. 3882, pp. 513529, 2006. ]

35. Batory D. Multilevel models in model-driven engineering, product lines, and metaprogramming // IBM Systems Journal. 2006. T. 45, № 3. C. 527-539. [ D. Batory, "Multilevel models in model-driven engineering, product lines, and metaprogramming," IBM Systems Journal, vol. 45, no. 3, pp. 527-539, 2006. ]

36. Dejanovic I., Milosavljevic G., Perisic B., Tumbas M. A. Domain-specific language for defining static structure of database applications // Computer Science and Information Systems. 2010. T. 7, № 3. C. 409-440. [ I. Dejanovic, G. Milosavljevic, B. Perisic, M. A. Tumbas, "Do-

main-Specific Language for Defining Static Structure of Database Applications," in Computer Science and Information Systems, vol. 7, no. 3, pp. 409-440, 2010. ]

37. Djukic V., Lukovic I., Popovic A., Ivancevic V. Model execution: an approach based on extending domain-specific modeling with action reports // Computer Science and Information Systems. 2013. T. 10, № 4. C. 1585-1620. [ V. Djukic, I. Lukovic, A. Popovic, V. Ivancevic, "Model Execution: An Approach based on extending Domain-Specific Modeling with Action Reports," Computer Science and Information Systems, vol. 10, no. 4, pp. 1585-1620, 2013. ]

38. Panach J. I., Juristo N., Pastor O. Including Functional Usability Features in a Model-Driven Development Method // Computer Science and Information Systems. 2013. T. 10, № 3. C. 999-1024. [ J. I. Panach, N. Juristo, O. Pastor, "Usability Features in a Model-Driven Development Method," Computer Science and Information Systems, vol. 10, no. 3, pp. 999-1024, 2013. ]

39. Strosnider J. K., Nandi P., Kumaran S., Ghosh S., Arsanjani A. Model-driven synthesis of SOA solutions // IBM Systems Journal. 2008. T. 47, № 3. C. 415-432. [ J. K. Strosnider, P. Nandi, S. Kumaran, S. Ghosh, A. Arsanjani, "Model-driven synthesis of SOA solutions" (in English), in Ibm Systems Journal, vol. 47, no. 3, pp. 415-432, 2008. ]

ОБ АВТОРАХ

ГУСАРЕНКО Артем Сергеевич, acc. каф. автоматизированных систем управления. Канд. техн. наук (УГАТУ, 2013). Дипл. информатик-экономист (УГАТУ, 2010). Иссл. в обл. иерархических моделей и ситуационного управления.

МИРОНОВ Валерий Викторович, проф. каф. автоматизированных систем управления. Дипл. радиофизик (Воро-нежск. гос. ун-т, 1975). Д-р техн. наук по упр. в техн. системах (УГАТУ, 1995). Иссл. в обл. иерархических моделей и ситуационного управления.

METADATA

Title: Smarty-objects: use case of heterogeneous sources in

situation-oriented databases. Authors: A. S. Gusarenko1, V. V. Mironov2 Affiliation:

Ufa State Aviation Technical University (UGATU), Russia. Email: 1 [email protected], 2 [email protected]. Language: Russian.

Source: Vestnik UGATU (scientific journal of Ufa State Aviation Technical University), vol. 18, no. 3 (64), pp. 242-252, 2014. ISSN 2225-2789 (Online), ISSN 1992-6502 (Print). Abstract: As part of the previously developed concept model DOM-elements in the dynamic model of situational-oriented database dynamic model proposed higher level of abstraction providing for visual and text tools specifications of data sources based on JSON. Specifications describes a method using JSON sources, JSON-elements associated with the states of the dynamic model, which regulates the filling Smarty-object and/or Smarty-array by JSON-content of the specified source when the parent state becomes the current state. It is proposed to implement the model on the platform PHP using tpl-templates of Smarty.

Key words: Web-application; dynamic model; NoSQL; JSON; Smarty; PHP.

About authors:

GUSARENKO, Artem Sergeevich, Cand. of Tech. Sci. (USATU, 2013), Dept. of Automated Systems., Grad. informatic-economist (USATU, 2010).

MIRONOV, Valeriy Viktorovich, Prof., Dept. of Automated Systems. Dipl. Radiophysicist (Voronezh State Univ., 1975). Cand. of Tech. Sci. (USATU, 1978), Dr. of Tech. Sci. (USATU, 1995).

i Надоели баннеры? Вы всегда можете отключить рекламу.