|
Актуальность работы
На заре развития Интернет создание сайта реализовывалось только с помощью HTML верстки, а его поддержание представляло кропотливую задачу для программистов и редакторов. Любые изменения сайта не обходились без участия программиста в этом процессе. Существовала проблема обновления дублируемой информации на разных страницах сайта. Кроме того, информация не была четко структурирована. Для того, чтобы убрать роль программиста из цикла поддержания сайта и решить проблему с обновлением дублируемой информации, разработчики стали использовать системы управления содержимым сайта. CMS – Content Management System (система управления содержимым) представляет собой программный комплекс для управления наполнением информационного ресурса. Частным случаем такого рода систем является система управления сайтами. Она позволяет редактору сайта сэкономить время работы, избавляя его от необходимости программировать. В систему управления сайтом может быть заложена функция генерации сайта, его дизайна и модулей на основе уже существующих шаблонов и компонентов системы. Система управления сайтом исполняет роль системы массового обслуживания – через интерфейс CMS пользователь получает доступ к сгенерированным страницам сайта. На сайте могут присутствовать интерактивные функции, такие как бронирование билетов, поиск по карте – в этом случае в CMS интегрируются компоненты сторонних Интернет-систем. Некоторые из современных CMS многомодульны и имеют огромное число настроек, не относящихся непосредственно к содержимому сайта. Потребность в большом числе сложных настроек испытывает программист, но не редактор сайта. Многомодульность усложняет саму систему и затрудняет работу редактора. Первым недостатком сложных систем является жесткие требования к дизайну сайта, что не позволяет творчески подойти к процессу создания дизайна сайта профессионалу. Вторым недостатком является малое количество полезной для пользователя эксплуатационной документации. Поэтому пользователь вынужден обращаться к разработчикам CMS для получения помощи. Третьим и наиболее значительным недостатком является универсальность таких систем, что приводит к трудностям в решениях специфических задач. Простые системы управления разнообразны, но в них отсутствуют многие полезные функции сложных систем, необходимые для кэширования сайта, поисковой оптимизации, Интернет-коммерции. Удобные системы управления, в которых реализованы такие функции имеют высокую стоимость. В настоящее время на рынке наблюдается увеличение доли продуктов с открытым исходным кодом (Open Source). Это связано с большей вовлечённостью энтузиастов в создание компьютерных программ, используемых в промышленности. Существуют отделы в крупных коммерческих фирмах занимающихся разработкой Open Source продуктов. Как показывает опыт, использование программ с открытым исходным кодом экономически выгодно, а их доработка становится возможной. На данный момент, актуальной является разработка системы с открытым кодом, включающей в себя все необходимые функции сложной системы, являющейся удобной в эксплуатации и имеющей подробную документацию.
Требования к современной CMS
При выборе CMS из большого числа систем управления содержимым сайта пользователи исходят из следующих критериев: 1. Open Source 2. Наличие справочной системы 3. Возможность смены типа базы данных 4. Поддержка Web 2.0
Современная система управления сайтом должна предусматривать следующие возможности: 1. Управление группам и ролями пользователей. 2. Назначения прав доступа пользователей к содержимому. 3. Совместная работа над содержимым. 4. Контроль версий содержимого. 5. Управление типами содержимого. 6. Комментирование содержимого. 7. Публикация / сокрытие содержимого. 8. Поддержка таксономии. 9. Управление иерархией разделов сайта. 10. Модульность системы. 11. Разделения содержимого на структуру и представление. 12. Гибкая смена шаблонов представления содержимого. 13. Кэширование страниц. 14. Представление пути к странице в формате удобном для человека. 15. Визуальный редактор ввода HTML. 16. Экспорт данных в RSS формате. 17. Поддержка многоязычности. 18. Обновление системы. 19. Протоколирование действий пользователей. В CMS предполагаются следующие модули: 1. Регистрация / авторизация пользователей. 2. Форма обратной связи. 3. Web журнал. 4. Форум. 5. Опрос посетителей. 6. Гостевая книга. 7. Часто задаваемые вопросы. 8. Каталог товаров. 9. Интернет магазин. 10. Фото галерея. 11. Файловый архив. 12. Библиотека. 13. Поиск по сайту. 14. Генерация карты сайта. 15. Просмотр статистики посещений. 16. Модуль рассылки писем. 17. Общение между пользователями в пределах сайта.
Классификация систем управления содержимым сайта
Очевидно, что не все системы удовлетворяют вышеприведенным требованиям. Одни системы универсальны, другие – узконаправленны. Существующие CMS можно классифицировать по областям их применения.
1. Порталы. Используются для информационных ресурсов, основной целью ставят максимальное упрощение публикации статей и новостей. Могут включать в себя нижеследующие типы CMS, как самостоятельные модули. Примеры: AngelineCMS, Bes-cms, CoolPHP, CPG-Nuke, Drupal, e107, eNvolution, ezContents, eZ Publish, Geeklog, ilyaCMS, Jetbox One, LDU, LIMB CMS, Mambo, MD-Pro, myPHPNuke, Ovidentia, Phase CMS, PHP-Nuke, PHP-Fusion, Postnuke, Props, phpwcms, phpWebSite, phpWebThings, PHPX, RUNCMS, SiDv, SmallNuke, sPaiZ-Nuke, Spip, TikiWiki, Vortex Portal, Webinsta CMS, WebZE, Xaraya, xNuke, XOOPS. 2. Движки без SQL. Данное ответвление в разработке CMS развито наиболее слабо, так как использование в качестве хранилища информации файлов, вместо таблиц базы данных, сопряжено с множеством не решаемых проблем. Примеры: Cute News, DeeLight CMS, Progressive, SAPID. 3. Блог – это сайт, на котором находятся личные заметки автора. В основном, заметками являются ссылки на сайты, которые кажутся владельцу ресурса наиболее интересными, и комментарии к ним. Блог может содержать не только ссылки, но и просто электронный дневник пользователя CMS. Примеры: b2evolution, bBlog, BLOG:CMS, MyPHPblog, Nucleus, pLog, pMachine Free, Serendipity, Textpattern, WordPress, XHP. 4. Форумы – это инструмент для общения на сайте. Сообщения в форуме в чем-то похожи на почтовые – каждое из них имеет автора, тему и собственно содержание. Принципиальное свойство форума заключается в том, что сообщения в нем объединены в треды (от англ. Thread – «нить»). Примеры: FUDforum, openBB, Phorum, phpBB, PunBB, W-Agora, XMB, Zorum, ExBB, IPB, vBulletin. 5. Магазины. К магазинам, можно отнести любой сайт, с которого можно заказать какой-либо товар. В данном случае в определение “товара” может входить абсолютно всё, включая время доступа в Интернет, минуты сотовой связи. Примеры: MyMarket, osc2nuke, osCommerce, Zen Cart. 6. Групповая работа (Groupware) – комплекс программного обеспечения позволяющий организовать работу предприятия, отношения с клиентами и заказчиками в Интернете. Обычно представляет закрытую полностью или частично часть сайта с возможностью отслеживать сроки выполнения поставленных задач, распределению ролей и временных нормативов. Возможно, выносить вопросы на обсуждения и решения вышестоящего руководства. Примеры: dotProject, eGroupWare, MoreGroupware, phpCollab, PHProjekt. 7. Обучение (e-Learning) – дистанционная форма обучения с использованием сети Интернет. Онлайновая форма обучения уже не один год является «маяком», на который ориентируются образовательные системы разных стран мира, переживающие сложный процесс реформирования. Процесс их модернизации все больше связан с реализацией задач информатизации, учитывая все возрастающую роль информационных и Интернет-технологий в современном обществе и бизнесе. Примеры: Atutor, Claroline, LogiCampus, Moodle, Segue, Site@School. 8. Wiki движки. Веб-сайт, структуру и содержимое пользователи могут сообща изменять с помощью инструментов, предоставляемых самим сайтом. Крупнейший и известнейший вики-сайт — Википедия. Примеры: MediaWiki, TikiWiki, coWiki. 9. Биллинг (Billing). Программное обеспечение, позволяющее провайдерам и реселлерам работать со счетами клиентов. Такие CMS являются неотъемлемой частью крупной системой учёта потребления услуг пользователями. Задача же CMS данной категории – в визуализации информации о предоставленных услугах, подключении новых услуг, изменения текущих параметров, приёме платежей и т.п. Во всех случаях такие системы пишутся своими силами. 10. Администраторская панель хостинга. Такая панель позволяет пользователям хостинг компании управлять размещением сайта в сети. Примеры: Direct Admin, Control Panel.
CMS можно разделить на три типа, по способу работы:
1. Генерация страниц по запросу. Системы такого типа работают на основе связки «Модуль редактирования → База данных → Модуль представления». Модуль представления генерирует страницу с содержанием при запросе на него, на основе информации из базы данных. Информация в базе данных изменяется с помощью модуля редактирования. Страницы заново создаются сервером при каждом запросе, а это создаёт нагрузку на системные ресурсы. Нагрузка может быть многократно снижена при использовании средств кэширования, которые имеются в современных веб-серверах. 2. Генерация страниц при редактировании. Системы этого типа суть программы для редактирования страниц, которые при внесении изменений в содержание сайта создают набор статичных страниц. При таком способе жертвуется интерактивность между посетителем и содержимым сайта. 3. Смешанный тип. Как понятно из названия, сочетает в себе преимущества первых двух. Может быть реализован путём кэширования — модуль представления генерирует страницу один раз, в дальнейшем она в разы быстрее подгружается из кэша. Кэш может обновляться как автоматически, по истечению некоторого срока времени или при внесении изменений в определённые разделы сайта, так и вручную по команде администратора. Другой подход — сохранение определённых информационных блоков на этапе редактирования сайта и сборка страницы из этих блоков при запросе соответствующей страницы пользователем.
По типам распространения CMS можно распределить: 1. CMS с открытым исходным кодом. 2. Проприетарные CMS.
Анализ современных системПо данным исследования корпорации IBM наиболее перспективной системой управления содержимым является Drupal. Остальные же системы не удовлетворяют современным критериям, либо узко специализированы. Рассмотрим преимущества и недостатки системы управления содержимым Drupal. Преимущества: - Продукт с открытым исходным кодом. - Разделение содержимого на логику и представление. - Наличие большое количества модулей к системе. - Управление правами групп пользователей. - Управления типами содержимого.
Недостатки: - Перегруженность системы сложными настройками. - Сложное ядро системы. - Жесткие требования к шаблону дизайна. - Небольшое наличие документации на русском языке. - Несовместимость разных версий системы.
У других систем при анализе недостатков выявляется значительно больше, чем преимуществ, например у системы Mambo отсутствует разделение содержимого на логику и представление. В этой системе невозможно создать новый тип содержимого, очень жесткие требования к шаблону дизайна. Система Wordpress узко специализированна и представляет собой систему для ведения веб-журналов, потому в ряде случаев её использование нецелесообразно.
Разработка системы управления содержимым сайта
Целью магистерской работы является исследование и разработка новых эффективных подходов при проектировании систем управления содержимым сайта. Для реализации этих подходов разрабатывается CMS. Предполагается, что система будет иметь гибкую систему шаблонизации, простой интерфейс, кэширование страниц, человеком понятные пути к страницам, средства поисковой оптимизации, разграничение прав доступа, поддерживать таксономию, многоязычноть. В системе будет жесткое разделение пользователей на редакторов и посетителей сайта, что обусловлено повышенными требованиями к безопасности. При первом запуске CMS пользователь сможет пошагово её настроить, а в процессе работы будут отображаться контекстные подсказки. Используемые технологи: PHP, JavaScript, HTML, CSS. Используемая база данных: MySQL. Используемые компоненты сторонних разработчиков: TinyFCK, phpMeEdit, jsCalendar. На данный момент реализованы следующие функции: 1. Управление иерархией разделов. 2. Управление содержимым страниц. 3. Управлением шаблонами сайта. 4. Управление переменными сайта. 5. Управление содержимым модулей. 6. Поддержка многоязычности. Следует отметить, что разработанный механизм шаблонизации в системе позволяет гибко изменять общий дизайн сайта и его компонентов. На данный момент реализованы следующие модули: 1. Форма регистрации / авторизации. 2. Форма обратной связи. 3. Каталог. 4. Часто задаваемые вопросы. 5. Статьи. В редакторе разделов (рис. 1) пользователь управляет иерархическим меню, наполнением информационных разделов, может назначать разделам шаблоны дизайна, задавать перенаправление на другие разделы.
Рисунок 1 – Редактор разделов.
В редакторе шаблонов (рис. 2) пользователь управляет шаблонами дизайна, которые назначаются разделам в редакторе разделов.
Рисунок 2 – Редактор шаблонов.
В редакторе модулей, пользователь управляет информационным наполнением модулей. На рисунке 3 представлен редактор модуля «Каталог». Рисунок 3 – Редактор модуля «Каталог».
Дальнейшие исследования
В ходе работы над магистерским проектом будут проводиться исследования механизмов шаблонизации в существующих CMS. Будут предложены новые подходы к шаблонизации. Исследоваться будут механизмы кэширования, автоматической поисковой оптимизации, таксономии. Новые модели механизмов будут разработаны на основе существующих. Успешные модели будут внедрены в систему.
|