Изучение методов конструирования сайтов. Создание системы конструирования сайтов любой сложности.
План:
- Введение
- Актуальность
- Общие понятия о CMS
- Обзор CMS-систем
- Основные нерешенные проблемы и перечень решаемых в работе задач
- Основаня часть
- О методах конструирования сайтов
- Механизм работы CMS системы при создании сайта и методы его совершенствования
- Механизм работы CMS системы при обращении пользователя и методы его совершенствования
- Заключение
- Выводы и перспектива исследования в данном направлении
- Литература
I Введение
1. Актуальность
Данная работа посвящена одному из самых насущных вопросов Интернет - вопросу создания сайтов. Этот вопрос был актуален в Интернет c момента его создания. Рассмотрим эволюцию методов создания сайтов:
I этап - HTML-редакторы. На заре Интернета, все сайты состояли из статических html-страниц. Чтобы поменять информацию на таком сайте нужно было исправлять код соответствующей html-страницы. Первой попыткой автоматизировать этот процесс было создание html-редакторов. С помощью такого редактора, пользователь, не знающий html мог создавать html-страницы и вносить изменения в уже существующие.
II этап - Динамические сайты. C появлением серверных языков CGI-программирования (в частности Perl), совершенствовались и подходы к управлению наполнением сайтов. Perl формирует html-страницу, при обращении к ней пользователя. Таким образом, стало возможным хранить информацию, размещенную на сайте в базах данных (которые по началу представляли собой текстовые файлы). При обращении к странице информация извлекается из базы данных и генерируется html-страница. Для изменения информации в базе данных используется специальные административные страницы, доступ к которым ограничен. Такие сайты, информация на которых может динамически изменяться (в зависимости от состояния базы данных) называются динамическими.
III этап - CMS (Content Management System). Создание динамических сайтов - трудоемкий процесс, поэтому в данный момент в Интернет большой популярностью пользуются так называемые CMS-системы (CMS - система управления наполнением сайта). Они позволяют быстро и без особых затрат создавать сложные динамические сайты.
Рассмотрим подробнее CMS-системы и проведем их сравнительный анализ.
(наверх)
2. Общие понятия о CMS
Идея CMS-системы состоит в том, чтобы строить сайт из типовых блоков, таких как лента новостей, голосование, фото-галерея, гостевая книга и др. Набор блоков у каждой CMS-системы свой, его содержание обычно определяется так, чтобы блоков было достаточно для построения вэб-сайта средней сложности общего назначения. Каждый блок имеет незначительные возможности подстройки внешнего вида. Обычно CMS-система предоставляет возможность добавлять новые блоки, которые должны быть написаны определенным образом. Что касается дизайна сайта, то обычно предоставляется возможность выбирать дизайн сайта из нескольких вариантов и настраивать местоположение динамических блоков.
(наверх)
3. Обзор CMS систем
На сегодняшний день в Интернете существует огромное количество различных CMS-систем. Классифицировать их можно по огромному числу признаков, таких как сложность создаваемых сайтов, гибкость системы при создании сайта, стоимость продукта, и т.д.
Поскольку данная работа направлена на исследование методов конструирования сайтов, то целесообразно будет классифицировать CMS-системы по их функциональным качествам, внутренней организации:
- Однопользовательская CMS-система. Такая система предназначена для создания одного сайта. Фактически CMS-система ничего не создает, она сама является сайтом, который настраивается под нужды пользователя.
Этапы создания сайта:
- Разработка прототипа сайта, определение и подключение необходимых динамических блоков.
- Настройка параметров сайта. На этом этапе задаются такие параметры сайта, как название сайта, e-mail администратора и др. Задается логотип сайта, выбирается цветовая гамма. Задаются пользователи, которым разрешено работать с системой и их права.
- Наполнение сайта содержимым. На этом этапе созданный сайт наполняется необходимой информацией.
CMS-системы такого типа бывают как коммерческими, так и бесплатными.
Примеры CMS-системы: runCMS, PHPNuke и др.
- Многопользовательская CMS-система. Система предназначена для создания множества сайтов. Однако такая CMS-система тоже не создает сайты. Сайты не могут функционировать отдельно от системы. Функциональность сайтов обеспечивает ядро системы. В БД такой системы хранятся сведения о структуре и содержимом созданных сайтов.
Обычно системы такого типа предоставляют пользователям больший набор динамических блоков, нежели многопользовательские системы. По желанию заказчика администраторы системы могут создавать необходимые динамические блоки, которые затем сохраняются в хранилище блоков.
Преимуществом такой системы, также является и то, что пользователю не нужно заботиться о хостинге, настройках БД и пр.
Этапы создания сайтов:
- Разработка прототипа сайта. Выбор шаблонного дизайна сайта. Дизайн выбирается из специальной библиотеки дизайнов. Создать свой дизайн невозможно. Если возникает необходимость создания собственного дизайна, то это можно сделать только с помощью администрации системы.
- Постраничное создание сайта с использование доступных динамических блоков. Создание сайта производится по схеме "что видишь - то и получаешь" - т.е. создавая страницу, пользователь видит её в таком виде, в каком она будет представлена на сайте.
- Задание параметров сайта.
- Наполнение сайта содержимым.
CMS-системы такого типа обычно являются коммерческими.
Примеры: e-gloryon, narod.ru и др.
- Специализированная CMS-система. Это система, которая создается для решения определенного типа задач, например, создания сайтов знакомств или Интернет-магазинов. Поскольку такие CMS-системы не универсальны, то в дальнейшем детально рассматриваться они не будут.
Примеры: mamba.ru и др.
(наверх)
4. Основные нерешенные проблемы и перечень решаемых в работе задач
Из основных недостатков CMS-систем можно выделить следующие:
- Шаблонный дизайн и расположение элементов сайта. Большинство популярных CMS-систем не позволяют создавать сайты с индивидуальным дизайном.
- Невозможность добавления собственных динамических блоков. Эта черта присуща многопользовательским CMS-системам, в которые добавлять динамические блоки может только администрация сайта. В однопользовательские же системы можно добавлять динамические блоки самостоятельно, однако нет никакого инструментария для их создания. Кроме того, в однопользовательских системах нет глобального хранилища блоков, в котором хранились бы все блоки, написанные для данной CMS-системы.
- Не универсальность CMS-систем. Из-за ограниченного набора числа динамических блоков и невозможности простого создания собственных динамических блоков CMS-системы не способны создавать сайты любой сложности.
- Невозможность созданного сайта, работать отдельно от CMS-системы. Особенно остро эта проблема стоит для многопользовательских CMS-систем, поскольку создав сайт в такой системе, уже невозможно будет в дальнейшем перенести его, например на другую CMS-систему.
- Один интерфейс для настройки сайта и наполнения его информацией. Обычно в CMS-системах интерфейс настройки динамических блоков и интерфейс обновления сайта совмещены. Это осложняет механизм разделения прав пользователей, а также нагружает пользователя избыточной информацией.
- Большая нагрузка на сервер при работе CMS-системы из-за отсутствия механизмов кэширования. Этому вопросу посвящена научная статья в разделе Электронная библиотека.
Направление данной работы - изучение методов конструирования сайтов, методов оптимизации быстродействия CMS-систем за счет кэширования. На основе сделанных исследований планируется создание системы конструирования сайтов любой сложности, лишенной недостатков существующих CMS-систем.
(наверх)
II Основаня часть
1. О методах конструирования сайтов
За время проведения исследований не удалось обнаружить ни одного источника, содержащего общие методы создания (конструирования) сайтов. Также не удалось обнаружить источники с методами построения CMS-систем или хотя бы документацию, содержащую описание строения определенной CMS-системы. Это, скорее всего обусловлено тем, что несмотря на открытый код однопользовательских CMS-систем, авторам не выгодно публиковать статьи о строении своей CMS-системы. Код и строение коммерческих CMS-систем вообще не подлежит опубликованию, по понятным причинам.
Начать теоретический анализ следует с рассмотрения строения динамического сайта.
Публичная часть сайта - набор html-страниц (возможно автоматически сгенерированных) доступная любому пользователю, посетившему сайт.
Интерфейс администрирования сайта - набор страниц, использующийся для изменения публичной части сайта. К администраторскому интерфейсу имеет доступ ограниченное число пользователей, имеющих достаточно полномочий для внесения изменений в информацию, представленную на сайте.
CMS-системы используются для создания динамических сайтов. Однопользовательские CMS-системы сами являются динамическими сайтами и задача пользователя - настроить CMS-систему под свои нужды. Обычно в таких системах интерфейс администрирования и интерфейс создания (настройки) модулей сайта объединены.
(наверх)
2. Механизм работы CMS системы при создании сайта и методы его совершенствования
Создание сайта с помощью CMS можно разбить на следующие этапы:
- Проектирование прототипа сайта. На этом этапе создается прототип будущего сайта. Определяется какая информация будет представлена на сайте и в какой форме. Создается макет дизайна сайта.
- Установка и настройка необходимых динамических блоков CMS-системы.
- Задание параметров сайта, таких как название сайта, e-mail администратора и др. Установка логотипа сайта, выбор цветовой гаммы. Задание пользователей, которым разрешено работать с системой и их права.
- Наполнение сайта информацией и последующая работа с сайтом (обновление).
Рассмотрим теперь поэтапно какие изменения нужно внести в создание сайта для его оптимизации:
- Проектирование больших сайтов - трудоемкий процесс. Он похож на процесс проектирования программных продуктов. Можно выделить следующие его этапы:
- Формирование технического задания.
- Определение структуры меню и разделов сайта.
- Определение необходимых блоков, для обеспечения функциональности сайта.
- Формирования списка шаблонов страниц с указанием динамических блоков, расположенных на них.
CMS-системы не предоставляют никаких средств, для проектирования макета сайта. Обычно проектирование выполняется вручную либо вообще не выполняется в принципе. Во втором случае при создании сайта разработчик будет вынужден постоянно корректировать техническое задание по мере создания сайта и после создания сайта.
- Принцип строения сайта из динамических блоков наиболее перспективный принцип. Он изначально заложен в идею серверных языков CGI-программирования. Однако в CMS-системах существует ряд нерешенных проблем:
-
Проблема размещения блоков на странице (проблема шаблонов страниц).
Есть множество методов представления шаблонов страниц. Самый простой и наглядный способ - html-шаблоны с указанием мест для вставки динамических блоков. При таком методе есть возможность создавать индивидуальный дизайн для сайта, однако большинство CMS-систем не позволяет вручную редактировать шаблоны.
В последнее время появляются новые методы строения шаблонов на основе XML и подобных языков. Их основным плюсом является возможность отделить содержимое сайта от дизайна и как следствие - возможность простой смены дизайна сайта. Минус такого подхода в сложности понимания и создания таких шаблонов.
-
Отсутствие глобального хранилища блоков.
Однопользовательские CMS-системы имеют ограниченное количество типовых блоков. Большинство из них имеет возможность присоединять новые блоки, создавать свои собственные блоки. Однако, CMS-системы не предоставляют возможности публиковать свои блоки в глобальные хранилища блоков и при необходимости загружать блоки из глобального хранилища. Это существенно снижает функциональность CMS-систем.
-
Неотделимость созданного сайта от CMS-системы.
Вариантом решения этой проблемы является создание системы конструирования сайтов, которая позволит созданному сайту работать отдельно от CMS. Такая система фактически будет генерировать код динамического сайта.
- Этап задания параметров сайта является достаточно простым этапом. Однако ему обязательно должен предшествовать этап проектирования, на котором параметры сайта определяются.
Явным недостатком CMS-систем является конечное, заданное разработчиками CMS, число параметров сайта. Разработчик сайта не может создавать свои собственные параметры и в дальнейшем работать с ними.
- Основной проблемой этапа наполнения информацией и обновления сайта является проблема неотделимости интерфейса администрирования от интерфейса создания сайта.
На рисунке представлен фрагмент интерфейса создания/администрирования сайта CMS-системы PHPNuke. Этот интерфейс имеет избыточную функциональность. Рядовому пользователю, обновляющему ленту новостей не нужно иметь возможность настройки динамических модулей сайта и тем более настройки параметров БД сайта.
Кроме того большинство CMS-систем не позволяют разграничить права пользователей при доступе к динамическим блокам.
(наверх)
3. Механизм работы CMS системы при обращении пользователя и методы его совершенствования
Рассмотрим механизм работы CMS-системы, при обращении к ней пользователя.
- Запрос пользователя на получение HTML-страницы.
- Выборка информации о динамических блоках на странице.
- Генерация страницы и отдача её пользователю.
Основной проблемой CMS-систем при отдаче пользователю страницы сайта является низкое быстродействие. Это происходит из-за отсутствия механизмов кэширования страниц. Рассмотрим идею механизма кэширования.
На схеме представлен механизм отдачи динамической страницы пользователю:
- Запрос пользователя на получение страницы.
- Поскольку страница динамическая, то её нужно сгенерировать. Поэтому HTTP-сервер делает запрос к серверному языку CGI-программирования на генерацию страницы или частей страницы.
- Серверный ЯП делает запрос к СУБД для выборки данных, представленных на странице.
- Ответ от СУБД.
- Передача HTTP-серверу сгенерированной страницы.
- Отдача страницы пользователю.
На схеме предоставлен механизм отдачи статической html-страницы пользователю:
- Запрос пользователя на получение страницы.
- Отдача страницы пользователю.
Из схем видно, что отдача статической html-странице занимает намного меньше времени. Идея механизмов кэширования в том, чтобы заменить часть динамического сайта статическими html-страницами. При изменении информации на сайте эти страницы будут каждый раз создаваться заново.
В качестве примера, можно привести такой динамический блок, как лента новостей. Состояние ленты новостей меняется достаточно редко, не чаще одного, двух раз в день, если сайт носит общий характер и не является новостным. Поэтому такой блок лучше представить в виде статической html-страницы, которая будут генерироваться при изменении информации о новостях.
На сайтах с большой посещаемостью кэширование иногда является необходимым условием, поскольку без него существенно возрастает нагрузка на сервер.
Кэшированию посвящена научная статья в разделе Электронная библиотека.
(наверх)
III Заключение
1. Выводы и перспектива исследования в данном направлении
В результате проделанной работы удалось обнаружить много проблем в строении современных CMS-систем. Не уделяется должного внимания удобству работы пользователя с системой, нагрузке на сервер.
Цель дипломной работы - формализация методов конструирования сайтов, разработка методов кэширования в CMS-системах, создание системы конструирования сайтов любой сложности лишенной всех названных недостатков.
(наверх)
2. Литература
- Все системы управления сайтами России и СНГ - http://cmslist.ru/
- Роман Базаров, Журнал СИО, Содержательная часть - http://www.cio-world.ru/offline/2004/30/36368/
- Официальный сайт поддержки CMS-системы RunCMS в России - http://www.ruscms.ru/
- Томсон А. Разработка WEB-приложений на PHP и MySQL. - М.: ДиаСофт, 2003. - 655 c.
(наверх)
|