Степанов Виктор - сайт магистра


Раздел "Автореферат"

Изучение методов конструирования сайтов. Создание системы конструирования сайтов любой сложности.


План:

  1. Введение
    1. Актуальность
    2. Общие понятия о CMS
    3. Обзор CMS-систем
    4. Основные нерешенные проблемы и перечень решаемых в работе задач
  2. Основаня часть
    1. О методах конструирования сайтов
    2. Механизм работы CMS системы при создании сайта и методы его совершенствования
    3. Механизм работы CMS системы при обращении пользователя и методы его совершенствования
  3. Заключение
    1. Выводы и перспектива исследования в данном направлении
    2. Литература


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-системы по их функциональным качествам, внутренней организации:

  1. Однопользовательская CMS-система. Такая система предназначена для создания одного сайта. Фактически CMS-система ничего не создает, она сама является сайтом, который настраивается под нужды пользователя.
    Этапы создания сайта:
    - Разработка прототипа сайта, определение и подключение необходимых динамических блоков.
    - Настройка параметров сайта. На этом этапе задаются такие параметры сайта, как название сайта, e-mail администратора и др. Задается логотип сайта, выбирается цветовая гамма. Задаются пользователи, которым разрешено работать с системой и их права.
    - Наполнение сайта содержимым. На этом этапе созданный сайт наполняется необходимой информацией.
    CMS-системы такого типа бывают как коммерческими, так и бесплатными.
    Примеры CMS-системы: runCMS, PHPNuke и др.

  2. Многопользовательская CMS-система. Система предназначена для создания множества сайтов. Однако такая CMS-система тоже не создает сайты. Сайты не могут функционировать отдельно от системы. Функциональность сайтов обеспечивает ядро системы. В БД такой системы хранятся сведения о структуре и содержимом созданных сайтов.
    Обычно системы такого типа предоставляют пользователям больший набор динамических блоков, нежели многопользовательские системы. По желанию заказчика администраторы системы могут создавать необходимые динамические блоки, которые затем сохраняются в хранилище блоков.
    Преимуществом такой системы, также является и то, что пользователю не нужно заботиться о хостинге, настройках БД и пр.
    Этапы создания сайтов:
    - Разработка прототипа сайта. Выбор шаблонного дизайна сайта. Дизайн выбирается из специальной библиотеки дизайнов. Создать свой дизайн невозможно. Если возникает необходимость создания собственного дизайна, то это можно сделать только с помощью администрации системы.
    - Постраничное создание сайта с использование доступных динамических блоков. Создание сайта производится по схеме "что видишь - то и получаешь" - т.е. создавая страницу, пользователь видит её в таком виде, в каком она будет представлена на сайте.
    - Задание параметров сайта.
    - Наполнение сайта содержимым.
    CMS-системы такого типа обычно являются коммерческими.
    Примеры: e-gloryon, narod.ru и др.

  3. Специализированная 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 можно разбить на следующие этапы:

  1. Проектирование прототипа сайта. На этом этапе создается прототип будущего сайта. Определяется какая информация будет представлена на сайте и в какой форме. Создается макет дизайна сайта.
  2. Установка и настройка необходимых динамических блоков CMS-системы.

  3. Задание параметров сайта, таких как название сайта, e-mail администратора и др. Установка логотипа сайта, выбор цветовой гаммы. Задание пользователей, которым разрешено работать с системой и их права.
  4. Наполнение сайта информацией и последующая работа с сайтом (обновление).

Рассмотрим теперь поэтапно какие изменения нужно внести в создание сайта для его оптимизации:

  1. Проектирование больших сайтов - трудоемкий процесс. Он похож на процесс проектирования программных продуктов. Можно выделить следующие его этапы:
    • Формирование технического задания.
    • Определение структуры меню и разделов сайта.
    • Определение необходимых блоков, для обеспечения функциональности сайта.
    • Формирования списка шаблонов страниц с указанием динамических блоков, расположенных на них.
    CMS-системы не предоставляют никаких средств, для проектирования макета сайта. Обычно проектирование выполняется вручную либо вообще не выполняется в принципе. Во втором случае при создании сайта разработчик будет вынужден постоянно корректировать техническое задание по мере создания сайта и после создания сайта.
  2. Принцип строения сайта из динамических блоков наиболее перспективный принцип. Он изначально заложен в идею серверных языков CGI-программирования. Однако в CMS-системах существует ряд нерешенных проблем:
    • Проблема размещения блоков на странице (проблема шаблонов страниц).
      Есть множество методов представления шаблонов страниц. Самый простой и наглядный способ - html-шаблоны с указанием мест для вставки динамических блоков. При таком методе есть возможность создавать индивидуальный дизайн для сайта, однако большинство CMS-систем не позволяет вручную редактировать шаблоны.
      В последнее время появляются новые методы строения шаблонов на основе XML и подобных языков. Их основным плюсом является возможность отделить содержимое сайта от дизайна и как следствие - возможность простой смены дизайна сайта. Минус такого подхода в сложности понимания и создания таких шаблонов.
    • Отсутствие глобального хранилища блоков.
      Однопользовательские CMS-системы имеют ограниченное количество типовых блоков. Большинство из них имеет возможность присоединять новые блоки, создавать свои собственные блоки. Однако, CMS-системы не предоставляют возможности публиковать свои блоки в глобальные хранилища блоков и при необходимости загружать блоки из глобального хранилища. Это существенно снижает функциональность CMS-систем.
    • Неотделимость созданного сайта от CMS-системы.
      Вариантом решения этой проблемы является создание системы конструирования сайтов, которая позволит созданному сайту работать отдельно от CMS. Такая система фактически будет генерировать код динамического сайта.
  3. Этап задания параметров сайта является достаточно простым этапом. Однако ему обязательно должен предшествовать этап проектирования, на котором параметры сайта определяются. Явным недостатком CMS-систем является конечное, заданное разработчиками CMS, число параметров сайта. Разработчик сайта не может создавать свои собственные параметры и в дальнейшем работать с ними.
  4. Основной проблемой этапа наполнения информацией и обновления сайта является проблема неотделимости интерфейса администрирования от интерфейса создания сайта.

    На рисунке представлен фрагмент интерфейса создания/администрирования сайта CMS-системы PHPNuke. Этот интерфейс имеет избыточную функциональность. Рядовому пользователю, обновляющему ленту новостей не нужно иметь возможность настройки динамических модулей сайта и тем более настройки параметров БД сайта.
    Кроме того большинство CMS-систем не позволяют разграничить права пользователей при доступе к динамическим блокам.
(наверх)

3. Механизм работы CMS системы при обращении пользователя и методы его совершенствования

Рассмотрим механизм работы CMS-системы, при обращении к ней пользователя.


  1. Запрос пользователя на получение HTML-страницы.
  2. Выборка информации о динамических блоках на странице.
  3. Генерация страницы и отдача её пользователю.

Основной проблемой CMS-систем при отдаче пользователю страницы сайта является низкое быстродействие. Это происходит из-за отсутствия механизмов кэширования страниц. Рассмотрим идею механизма кэширования.


На схеме представлен механизм отдачи динамической страницы пользователю:

  1. Запрос пользователя на получение страницы.
  2. Поскольку страница динамическая, то её нужно сгенерировать. Поэтому HTTP-сервер делает запрос к серверному языку CGI-программирования на генерацию страницы или частей страницы.
  3. Серверный ЯП делает запрос к СУБД для выборки данных, представленных на странице.
  4. Ответ от СУБД.
  5. Передача HTTP-серверу сгенерированной страницы.
  6. Отдача страницы пользователю.

На схеме предоставлен механизм отдачи статической html-страницы пользователю:

  1. Запрос пользователя на получение страницы.
  2. Отдача страницы пользователю.

Из схем видно, что отдача статической html-странице занимает намного меньше времени. Идея механизмов кэширования в том, чтобы заменить часть динамического сайта статическими html-страницами. При изменении информации на сайте эти страницы будут каждый раз создаваться заново.

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

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

Кэшированию посвящена научная статья в разделе Электронная библиотека.

(наверх)

III Заключение



1. Выводы и перспектива исследования в данном направлении

В результате проделанной работы удалось обнаружить много проблем в строении современных CMS-систем. Не уделяется должного внимания удобству работы пользователя с системой, нагрузке на сервер.

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

(наверх)

2. Литература


  1. Все системы управления сайтами России и СНГ - http://cmslist.ru/
  2. Роман Базаров, Журнал СИО, Содержательная часть - http://www.cio-world.ru/offline/2004/30/36368/
  3. Официальный сайт поддержки CMS-системы RunCMS в России - http://www.ruscms.ru/
  4. Томсон А. Разработка WEB-приложений на PHP и MySQL. - М.: ДиаСофт, 2003. - 655 c.
(наверх)
Copyright Stepanov Victor