Xpoint
   [напомнить пароль]

Создание структурно оптимальной системы управления веб-сайтом

На этапе проектирования интернет сайта всегда встает проблема выбора структуры системы управления наиболее подходящей для данного конкретного сайта. Существует ряд различных свойств системы управления сайтом (СУС), которые так или иначе влияют на производительность и другие немаловажные показатели системы в целом, и с которыми необходимо определиться ещё до начала проектирования.

Пожалуй, одним из основополагающих свойств является тип контента – динамический или статический. Как правило, перед началом проектирования разработчики вынуждены однозначно определиться с этим свойством. Зачастую решение в пользу того или иного типа принять достаточно сложно ввиду наличия определенных достоинств и недостатков у обоих типов:

Динамический

  • Возможность отделение дизайна от программного кода
  • Возможность гибкой настройки структуры сайта
  • Возможность организовывать гибкий поиск по сайту (в том числе и по определенным критериям)
  • Поддержка интерактивного взаимодействия с посетителями
  • Возможность оперативно сменить дизайн всех страниц сайта вне зависимости от их кол-ва и объема

Статический

  • Существенно меньшая нагрузка на серверное оборудование
  • Для отображения сайта необходим минимальный набор прикладного ПО (только web-сервер)
  • Высокая степень мобильности (легко перенести с одного сервера на другой)

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

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

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

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

На рисунке 1 изображена предлагаемая авторами модель СУС. Она основывается на генерации статических страниц на основе данных находящихся в БД и подстановочных html-шаблонов и состоит из трех основных функциональных модулей:
I. Модуль управления содержимым
II. Модуль управления содержимым с расширенными возможностями (административная часть)
III. Модуль генерации страниц.
Все перечисленные модули работают с общей базой данных.

ris1
Рисунок 1. Инфологическая модель СУС.

Как видно из рисунка 1, для управления сайтом используется 2 вида интерфейса: обычный и расширенный. Расширенный интерфейс включает в себя доступ ко всем функциям управления сайтом и предназначен исключительно для главного администратора. Обычный же модуль является урезанной версией полного и предназначен для работы исключительно с содержимым сайта – его страницами. При этом права доступа к тем или иным страницам через обычный интерфейс определяются главным администратором через расширенный интерфейс. На деле это выглядит как создание пользователя для входа в обычный интерфейс с атрибутами логином и паролем и закрепление за ним прав на изменение тех или иных страниц или разделов сайта.

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

Оба модуля управления работают напрямую с БД.

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

В процессе работы модуль генерации использует данные из двух источников: базы данных сайта и подстановочных html-шаблонов. Задача модуля заключается в генерации полностью готовых для просмотра через браузеры html-страниц из БД (структура сайта и текст страниц) и html-шаблонов, являющихся внешним представлением (дизайном) страниц. При этом данные из БД подставляются в определенные места html-шаблонов, отмеченные специальными текстовыми маркерами. Полученные страницы сохраняются в виде структуры папок, соответствующей структуре сайта, определенной главным администратором. На каждой из страниц за счёт гиперссылок автоматически предусматривается логическая связь между вышестоящими разделами и другими страницами сайта. Также реализованы ссылки на основные разделы сайта в виде меню навигации.

В разработанной модели СУС удалось сочетать практически все основные достоинства динамического и статического типов контента перечисленные в таблице 1. Кроме того, в предложенной модели появился ряд достоинств, ранее не присущих ни одной одному из существующих типов. Так, ввиду того что структура хранения данных в модели построена таким образом, что данные хранятся как в базе данных так и в виде статических файлов, мы можем говорить о наличии встроенной системы резервного хранения данных. Следовательно, в случае потери данных в одном из источников хранения информация может быть целиком восстановлена из другого. Благодаря тому что полученная система дублирования данных неразрывно связана с ядром СУС (то есть по сути она запускается при любом изменении в БД сайта), также появилась возможность предусмотреть функцию аварийного отката. Так, если при перегенерации раздела или сайта целиком система обнаруживает сбой и с целью сохранения целостности данных генерация раздела приостанавливается, и страницы которые уже были сгенерированы в данном разделе заменяются на предыдущие версии.

Ещё одним достоинством системы является повышенная надежность. Дело в том, что при отображении сайта не задействовано никакого прикладного ПО (например, PHP и MySQL) кроме web-сервера, что существенно снижает вероятность возникновения ошибок при отображении сайта по причине чрезмерной нагрузки или неисправности того или иного ПО. Другими словами, выход из строя MySQL сервера или PHP интерпретатора никак не повлияет на работоспособность сайта для пользователя, это лишь временно заблокирует возможность внесения изменений через административный интерфейс.

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

Powered by POEM™ Engine Copyright © 2002-2005