Диссертация (Методы и инструменты декларативного программирования динамических Web-узлов и приложений), страница 9
Описание файла
Файл "Диссертация" внутри архива находится в папке "Методы и инструменты декларативного программирования динамических Web-узлов и приложений". PDF-файл из архива "Методы и инструменты декларативного программирования динамических Web-узлов и приложений", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "диссертации и авторефераты" в общих файлах, а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.
Просмотр PDF-файла онлайн
Текст 9 страницы из PDF
Разумеется, заявленные приоритеты могут противоречить друг другу, поэтому основной задачей ставитсяпоиск необходимого оптимума между ними.Разрабатываемая методика построена по принципу постепенной доработки и модификации базовых сущностей, придании им дополнительных свойств, атрибутов.Основными сущностями методики являются: модель, локация, набор, блок.
По названиям наиболее значимых сущностей методика получила название BlockSet (блоки набор) [91, 93]. В BlockSet модель описывает основную структуру проекта. Локация представляет собой динамическую страницу и описывает её поведение. Наборявляется непосредственной составляющей модели и локации, содержит коллекциюданных различного типа. Блок — часть набора, поле данных определённого типа.У всех сущностей (кроме модели) имеется большое число модификаторов — атрибутов, которые задают определённую логику работы.
Важным свойством методикиявляется её самодостаточность, то есть оперируя лишь описанными выше сущностями становится возможным реализация проекта начального уровня. Однако, грамотное оперирование атрибутами-модификаторами даёт возможность реализовать узкоспециализированный функционал. Так, наглядно демонстрируется принцип «от простого к сложному» [97].Дляформализацииметодикипредметно-ориентированногопредлагаетсядекларативногоразработкаязыкавысокоуровневогомоделированияповедениясерверной стороны. Язык получил название BlockSet Modeling Language (моделирующий язык BlockSet) или BML [94]. Он основан на XML-подобном синтаксисе, аего структура исполняется на серверной стороне с помощью интерпретатора [98],взаимодействующего с Web-сервером.На рис.
2.1 представлена расширенная иерархическая модель в объёмном виде накоторой показано место методики BlockSet и языка BML в сфере Web-разработки.Нижние два уровня остаются такими же, как в упомянутой ранее модели (рис. 1.1).Уровни, отмеченные оттенками пурпурного цвета, являются непосредственными частями BlockSet и занимают смежные позиции с существующими технологиями.
Так,на представленной схеме язык BML находится на уровне фреймворков, однако фреймворком не является. Тем не менее, по всем трём характеристикам, которые описывает предыдущая модель — скорость разработки, гибкость, системные требования —предметно-ориентированный язык BML закономерно располагается именно на этомуровне [88].44Рисунок 2.1. Место методики BlockSet и языка BML в сфере Web-разработкиМетодика BlockSet следует парадигме MVC или Model-View-Controller (модельпредставление-контроллер). Уровни модели и контроллера строятся в языке BML, ароль представления играет шаблонизатор, получающий сгенерированные данные инакладывающий их на определённый шаблон.
Шаблон представляет собой страницу на языке HTML с простейшими алгоритмическими структурами и специальнымивставками, вместо которых будут подставлены данные в процессе генерации документа. Работа интерпретатора делится на два этапа: непосредственная интерпретацияструктур BML и передача выходных данных шаблонизатору. Именно по этой причинешаблоны и язык BML расположены на одном уровне [87].Уровнем выше наряду с системами управления контентом расположен специализированный визуальный редактор, позволяющий наглядным образом с помощью компонентов пользовательского интерфейса строить конструкции языка BML, а такжекорректные шаблоны HTML, задавать стили CSS, составлять интерактивные алгоритмы JavaScript.
По сути, визуальный редактор генерирует шаблоны для сервернойстороны, а также целиком отвечает за разработку клиентской части. Часть функцийпо разработке клиентской части выполняют и системы управления контентом, какправило, имеющие в своём арсенале простейший визуальный редактор HTML/CSS.Стоит оговориться, что визуальный редактор BlockSet не предназначен для управления содержимым. Он лишь предоставляет эргономичный интерфейс, в котором со-45четается необходимый функционал для генерации динамических структур BML иклиентской части.
Правильно построеный проект сам берёт на себя роль системыуправления контентом и в целом представляет собой динамический Web-ресурс свозможностью разграничения прав доступа к своему содержимому. Именно поэтомузаконченный проект находится на самой вершине и также делит место на этом уровненаравне с системами управления контентом.Права доступа назначаются на локации, наборы и блоки [90].
Правами обладаютгруппы или пользователи. Права на набор и блок задаются с помощью блока соответствующего типа. Каждый пользователь может состоять в нескольких группах.Права групп могут быть системными (событийными) и назначаться в зависимостиот определённых событий (например, если пользователь не авторизован, система емуприсвоит группу «гость»).Рисунок 2.2.
Интеллект-карта языка BMLДля наглядности представления методики и языка, была разработана упрощённаяинтеллект-карта (рис. 2.2). На ней показаны базовые сущности языка и основные ихсвойства. С целью упрощения, на интеллект-карте не показаны индивидуальные свойства для каждого типа блока, однако её цель – дать общее представление о методикеи связях её компонентов друг с другом.2.2Разработка компоненты «Модель»С помощью модели (элемент Model) определяется структура данных, и устанавливаются отношения объектов проекта между собой.
Структурой данных проектаBlockSet является набор, содержащий в себе блоки и другие, вложенные наборы.46Все наборы, используемые в проекте, необходимо описать в модели. Единственнымдочерним элементом модели является набор, в то время как блок является единственным дочерним элементом набора. Именно в модели для всех блоков устанавливаетсятип данных. Атрибуты блоков, отвечающих за права доступа [85], а также некоторыедругие, в силу своей специфики задаются только в модели. Большинство остальныхатрибутов для наборов и блоков могут быть переопределены в локациях.
Спецификация предписывает уникальность сущности модели, т.е. невозможность присутствиядругих моделей в одном и том же проекте. В текущей версии языка у модели отсутствуют собственные атрибуты. Модель соответствует одноименной компоненте впарадигме MVC — в ней задаётся общая структура данных и глобальные правилаих обработки. Важно отметить тот факт, что модель данных загружается при старте работы интерпретатора, таким образом, в процессе обработки входящих запросовинтерпретатор «осведомлен» обо всех возможностях загружаемой локации.2.3Разработка компоненты «Локация»Локация или расположение (элемент Location) представляет собой динамическуюстраницу, описывающую индивидуальную логику работы. У локации, как и у модели,прямыми потомками могут быть только наборы. Большинство атрибутов у наборови блоков, присутствующих в модели, могут быть переопределены в локации, либоопределены вновь.
Существуют также атрибуты, характерные только для локации. Тоесть локация задаёт уточняющие свойства обработки тех или иных данных. Исходяиз этого, можно утверждать, что локации в парадигме MVC соответствуют контроллерам.Локация идентифицируется шаблоном адреса. Шаблон адреса представляет собойчасть URI, идентифицирующую путь, и содержащую динамические вставки, на место которых подставляются данные определённого типа, фигурирующие в генерациидинамической страницы. Шаблон адреса динамической страницы задаётся атрибутомbase (базовый адрес). Допустимо указывать несколько шаблонов в атрибуте, разделивих запятой.Интерпретатор находит нужную локацию по двум алгоритмам на выбор.
Первыйалгоритм заключается в том, что все документы языка BML считываются по именифайла в алфавитном порядке, в них ищется сначала модель, затем первая локация,шаблон которой совпадает с текущим путем, указанным пользовательском URL. Если исходный путь в URL совпадает с шаблоном локации, исполняется логика работы47этой локации.
Дальнейшая обработка оставшихся локаций интерпретатором не производится.Второй алгоритм отличается от первого тем, что сначала считывается значениеатрибута base у каждой из локаций, затем, в случае возникновения противоречий, вычисляется количество всех возможных комбинаций подстановок шаблона. Например,если на месте динамической вставки ожидается число (например, год), а у другой локации точно такой же шаблон, но в этой же динамической вставке ожидается строка(например, имя пользователя), то выполнится локация с меньшим количеством комбинаций, т.е.