Библиотека


Разработка автоматизированных средств эффективной разработки и поддержки web-сайтов

Авторы: Кушнир А.Ю., Костин В.И.

Источник: «Інформатика та комп'ютерні технології» (ІКТ 2007)./ Матеріали III всеукраїнської науково-технічної конференції студентів, аспірантів та молодих вчених — ДонНТУ, Донецьк, 2007.


С каждым годом Интернет все более прочно занимает место одного из самых главных источников информации, поскольку он представляет собой огромную сеть, объединяющую людей во всем мире. Эта сеть дает возможность обмена идеями, опытом, создания новых идей, являющихся результатом совместной работы людей. В основном все взаимодействие и обмен происходит посредством сайтов.

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

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

Сайт можно условно разделить на две части. В первую часть входит вся информация, которая не нуждается в постоянном обновлении. Это сама структура сайта, его каркас, дизайн сайта. И вторая часть, в которую входят данные, нуждающиеся в постоянном обновлении, такие как содержимое новостей, отзывы пользователей в форумах и т.д. [3].

Данная концепция разделения совсем не является новой и была уже несколько раз успешно реализована. Одним из ярких примеров этого является применение языка XML при создании динамических web-сайтов, что позволяет отделить оформление сайта от собственно информации, необходимой пользователю [1].

Разрабатываемое средство является попыткой реализации концепции по отделению структуры сайта от информации этого сайта. Рабочим именем технологии является HSQLT (Hypertext Structured Query Language Technology).

Технология является более, чем реализацией концепции разделения содержимого сайта на логические части. Она предоставляет возможность разработчикам создать свой подход при разработке сайта.

На низком уровне рассмотрения разрабатываемая технология дает возможности:
  • непосредственного обращения к базам данных из документа посредством SQL-запросов (разделение сайта на логические части);
  • создания собственных тегов разработчика (обобщение сходных частей кода);
На более высоком уровне рассмотрения эта технология позволяет разработчикам и модераторам:
  • возможность структурировать содержимое сайта в соответствии с подходом при разработке;
  • возможность мыслить на более высоком уровне, тем самым увеличивая скорость разработки и ее сложность;
Разработчики могут использовать возможность структурировать содержимое сайта по-разному. Во-первых, можно придерживаться стандартной концепции разделения структуры и информации. При этом, в структуру включается вся сервисная информация, которую пользователь в первоначальном виде не видит, а видит ее интерпретации, например тег center. Сам тег пользователь не видит, а видит только объекты, размещенные по центру.

Можно развить эту концепцию, то есть повысить уровень абстрагирования. Разделим логическое содержимое сайта на следующие части. Первая часть — это структура, в которой указывается какие объекты, и где их размещать. Вторая — информация, которую размещать. Третья — информация об оформлении, о том, как размещать. При таком подходе к разработке разработчикам придется ответить на вопросы: «Где размещать? Как размещать? Что размещать?». Все три вида информации хранятся в разных местах, таким образом, предоставляя возможность изменять один из них, не затрагивая другие.

Рассмотрим подход по отделению информации об оформлении от остальных частей логической структуры. Допустим на сайте необходимо реализовать около сотни различный видов оформления текста: цвета, размеры, шрифты, выравнивания и др. Довольно накладно каждый раз указывать все атрибуты оформления текста при написании сайта. Но технология HSQLT дает возможность создать теги для каждого вида текста, при этом обобщив все общие атрибуты и вынеся необходимые параметры в качестве атрибутов разработанного тега. Предположим, что есть пять видов оформления текста. Пусть все эти пять видов имеет такие общие атрибуты: жирный, курсив, размер 20 пунктов, выравнивание слева. Эти пять видов отличаются между собой только цветами шрифта. Создается тег, включающий все необходимые атрибуты (жирный, курсив, размер 20 пунктов, выравнивание слева), как встроенные, имеющий один параметр — цвет. Это один из путей достижения обобщения. Оно предоставляет возможность разрабатывать сайт на более высоком логическом уровне, думать на уровне объектов, а не специфики реализации.

Все возможности обобщения, создания новых тегов и структурирования реализуются посредством ссылок на внешнюю, по отношению к коду, информацию. Эта информация хранится в базах данных. Технология HSQLT дает возможность обращаться к данным в БД прямо из кода, посредством запросов SQL.

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

Для реализации этой концепции было создано решение на платформе Microsoft Visual C++ 2005, состоящее из двух проектов. Первым проектом является непосредственно интерпретатор кода. Некая абстрактная машина, входными данными к которой является код в формате HSQL, а выходными код в формате HTML. Вторым проектом является редактор кода HSQL, позволяющий автоматически интерпретировать этот код.

Рассмотрим реализацию интерпретатора и реализацию идей технологии HSQLT — язык HSQL. Текст в формате HSQL представляет собой текст HTML, в который вставлены HSQL-теги обращения к базам данных и теги, определенные в библиотеках тегов. Библиотека тегов представляет собой базу данных, в которой описаны имена тегов, их атрибуты, а также тексты замен тегов интерпретатором со спецификацией мест вставки значений атрибутов. Структура библиотечной базы данных приведена на рисунке 1.

Структура библиотечной базы данных

Рис. 1 — Структура библиотечной базы данных

Один файл кода HSQL может подключать любое количество библиотечных баз данных, а также обращаться к любому количеству баз данных произвольной структуры. Принцип работы интерпретатора изображен на рисунке 2.

Схема работы интерпретатора

Рис. 2 — Схема работы интерпретатора

Рассмотрим работу интерпретатора. При интерпретации, когда интерпретатор встречает тег обращению к полю базы данных (<:fieldquery db=”{метка базы данных}” sql=”{SQL-инструкция}”:>), он, во-первых, открывает соединение с базой данных. При этом используются драйвера ODBC, COM, объектная модель ADO. После этого, используя открытое соединение, интерпретатор посылает базе данных SQL-запрос и она на него отвечает. Получаем от базы данных ответ. Ответ не обязательно представляет собой текст в формате HTML. Интерпретатором этот ответ расценивается как текст в формате HSQL, поэтому он опять посылается на интерпретацию. Если в нем имеются теги обращения к базам данных, то они также будут обработаны таким же образом. Этот процесс рекурсивен, с возможной бесконечной глубиной рекурсии. После достижения дна, то есть когда больше нет обращений к БД и тегов пользователя, полученный текст вставляется в начальный код вместо тега обращения к БД. Результатом такого запроса является значение только одного поля. Для получения и вывода таблицы используется тег tablequery, который имеет много дополнительных параметров, определяющих формат отображения таблицы на HTML-странице.

При встрече интерпретатором нестандартного (не fieldquery и tablequery) тега HSQL, он ищет его в библиотечных базах данных. Если находит, то берет значения его атрибутов и подставляет их в места, определенные в поле отображений данного тега в текст этого же поля. Результат этих действий также рассматривается интерпретатором как текст в формате HSQL и также будет рекурсивно интерпретироваться.

Логика интерпретатора помещена в dll-библиотеку, таким образом он разработан только для ОС Windows. Разработка велась в ОС Windows Vista Ultimate. Тестирование здесь же, а также в ОС Windows XP Professional SP2.

Таким образом, была достигнута основная цель проекта, а именно: создать расширяемую и гибкую концепцию структурирования сайтов при их создании и сопровождении, а также создать ее эффективную реализацию.

Список литературы

  1. Солтер, Николас А., Клепер, Скотт Дж. С++ для профессионалов.: Пер. с англ. — М.: ООО «И. Д. Вильямс», 2006. — 912 с.
  2. Грегори, Кейт Использование Visual C++ .NET Специальное издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2002. — 784 с.
  3. Коггзолл, Джон PHP 5. Полное руководство.: Пер. с англ. - М.: Издательский дом «Вильямс», 2006. — 752 с.