Образование
Факультет: Вычислительной техники и информатики
Специальность: Программное обеспечение автоматизированных систем
Тема выпускной работы: Повышение эффективности функционирования CMS
Научный руководитель: к.т.н, с.н.с Андрюхин Александр Иванович
Введение
Система управления контентом – это программный комплекс, позволяющий автоматизировать процесс управления как сайтом в целом, так и сущностями в рамках сайта: макетами страниц, шаблонами вывода данных, структурой, информационным наполнением, пользователями и правами доступа, а также по возможности предоставляющий дополнительные сервисы: списки рассылки, ведение статистики, поиск, средства взаимодействия с пользователями и т. д.
Необходимость систем управления начала проявляться в тот момент, когда количество материалов на веб-сайтах начало стремительно расти. Это привело к тому, что традиционные «ручные» технологии создания и поддержки сайтов, когда сайт состоял из статических страниц и набора дополнительных специализированных скриптов, стали не успевать за быстро меняющимися условиями бизнеса. Ввод данных на сайт требовал знания технологий HTML/CSS верстки, изменения структуры сайтов были сопряжены с каскадным изменением большого количества взаимосвязанных страниц. Различные автоматизированные механизмы, вроде гостевых книг и новостных лент, внедренные на сайтах как отдельные скрипты и, как правило, написанные разными специалистами, перестали удовлетворять требованиям безопасности. Поэтому возникла потребность с одной стороны в унификации программных решений, а с другой в разделении дизайна и содержимого на две независимые составляющие.
CMS разделяет сайт на две составляющие: дизайн (внешний вид сайта в целом, отдельных страниц, конкретных блоков информации) и содержимое (контент). Дизайн сайта содержится в шаблонах и изменяется значительно реже, чем контент.
Системы управления контентом решают две основные задачи. С точки зрения пользователей – это инструмент, который позволяет публиковать новости, размещать новые страницы на сайте и производить другие операции над содержимым через удобный интерфейс. При этом пользователь может не владеть технологиями создания сайта, но он обязательно должен понимать, как устроен сайт. С точки зрения разработчиков - это инструмент, который ускоряет создание сложных сайтов, позволяя компоновать решения из готовых блоков, изменяя в определенных пределах логику работы и оформление.
Одними из наиболее распространенных cms, на основе которых можно создавать функциональные и легко управляемые сайты без серьезных финансовых затрат являются Drupal, Joomla,WordPress, TYPO3 а также недавно появившеяся Oxite.
Актуальность:
Ознакомившись с понятием, CMS стало понятно, что в данный момент времени это стремительно развивающаяся область. На данный момент уже очень много сделано в различных CMS, но все же остается еще огромное количество проблем. Из них можно выделить следующие: недостаточный функционал, невозможность работы в кластере, невозможность работы нескольких сайтов одновременно, дыры в безопасности. Таким образом, нужно сказать об актуальности этой отрасти, развивать ее необходимо, причем прямо сейчас. Если качественно решить все изложенные проблемы, то можно получить CMS, которая бы удовлетворяла 50% сайтов которые сейчас находятся в интернете. Программистам не нужно было бы тратить время на написание стандартных кусков сайта такие как авторизация, редактирование информации и т.д. Было бы необходимо разобраться в CMS а дальше же просто отимизировать ее под себя, и то только в тех случаях, где это было бы необходимо. Безусловно невозможно создать CMS которая бы покрывала весь класс задач, но а вот которая покрывает частично – можно, чем и занимаются разработчики со всего мира.
Цели и задачи:
После того как стало понятно что данная тема выпускной работы сейчас очень актуальна, необходимо было приступать к работе. Основные цели и задачи которые возникли, заключались в том, чтоб изучить все наиболее известные CMS, выделить в каждой из них положительные и отрицательные моменты. Оценить возможность решения этих проблем. Потому что не каждую проблему можно решить, не повлияв на другой вопрос. Хорошим примером может послужить CMS 1С-Битрикс в которой содержится огромный функционал, который очень серьезно тормозит производительность сайта. Последним же шагом является построение модели, которая бы решала все возможные задачи.
Предпологаемая научная новизна:
Новизной в проекте является то, что хочется создать такую CMS, которая бы удовлетворяла всем потребностям, на данный момент ни одна CMS таковой не является, кроме того некоторые очень важные проблемы, такие как кластеризация данных, управление несколькими проектами одновременно , даже не пытаются решаться. А это очень важные проблемы и что самое главное список этих проблем очень длинный. Кроме всего прочего хотелось бы обеспечить удобную и безопасную возможность дописания плагинов в проектируемую CMS. Это позволит каждому разработчику добавлять функционал такой, как ему потребуется.
Планируемые практические результаты:
Самой основной задачей хотелось бы придумать такую алгоритмически решаемую модель, которая бы обеспечивала решение всех задач по повышению эффективности сайтов. Придумав и реализовав такую модель, можно было бы ее постепенно наполнять функционалом. Самое главное в такой модели, получить максимально полный функционал, части которого полностью не зависели друг от друга. Таким образом, мы смогли бы настраивать сайт конкретно для нашего приложения, экономив на времени загрузки и обработки страницы, а также на размере сайта. Решив эту проблему а также добавив возможность добавления плагинов, мы получили бы CMS которую может развивать все и каждый. В качестве примера можно обратить внимание на компанию Mozilla Foundation, которая выпустила браузер FireFox. Достоинство этого браузера заключается в том, что каждый добавляет в нее только тот функционал, который необходим. Это в свою очередь обеспечивает оптимальную работу браузера.
Обзор CMS
Drupal:
Drupal представляет собой систему управления сайтом, написанная на языке PHP и использующая в качестве хранилища содержания реляционную базу данных (поддерживаются MySQL, PostgreSQL, а также любые СУБД поддерживаемые библиотекой PEAR). Drupal является свободным программным обеспечением защищённым лицензией GPL и создаётся усилиями энтузиастов со всего мира. Начал разработку голландец Dries Buytaert, который и поныне является руководителем проекта.
Архитектура Drupal позволяет применять его для построения различных типов сайтов — от блогов и форумов, до информационных архивов или сайтов новостей. Функциональность обеспечивается подключаемыми модулями, обращающимися к общему API Drupal. Стандартный набор модулей включает такие функции как новостная лента, блог, форум, загрузка файлов, сборщик новостей, голосования, поиск и др. Дополнительные модули, которые значительно расширяют базовые функции, дотупны на официальном сайте.
Наиболее важные функции предоставляемые модулями входящими в поставку Drupal:
- единая категоризации всех видов содержимого - от форумных сообщений до блогов и новостных статей
- вложенность категорий любой глубины
- поиск по содержимому сайта
- разграничение доступа пользователей к документам (ролевая модель)
- динамическое построение меню
- поддержка XML-форматов
- вывод документов в RDF/RSS
- аггрегация материалов с других сайтов
- BlogAPI для публикации материалов с помощью внешних приложений
- поддержка общей авторизации между сайтами на Drupal ("сайты-партнёры")
- короткие URL
- поддержка сменных тем оформления сайта с предоставлением нескольких готовых вариантов
- поддержка переводов интерфейса сайта на разные языки
- возможность создания сайтов с пересекающимся содержимым (например общей базой пользователей или общими настройками)
- раздельные конфигурации сайта для различных виртуальных хостов (в том числе собственные наборы модулей и тем оформления для каждого подсайта)
- механизм для ограничения нагрузки на сайт (автоматическое отключение при высокой посещаемости части информационных блоков и модулей)
Joomla:
Joomla — система управления содержанием, написанная на языке PHP и использующая в качестве хранилища содержания базу данных MySQL. Joomla является свободным программным обеспечением, защищённым лицензией GPL. Одной из главных особенностей Joomla является относительная простота управления при практически безграничных возможностях и гибкости при изготовлении сайтов.
Joomla является ответвлением широко известной Mambo CMS. Команда независимых разработчиков отделилась от проекта Mambo по причине несогласия в экономической политике. И 16 сентября 2005 года в свет вышла первая версия Joomla, являющаяся по сути переименованной Mambo 4.5.2.3 и включающая в себя исправления найденных на тот момент ошибок и уязвимостей. Разработчики обещают, что к выходу версии 2.0 движок будет полностью переписан и адаптирован под PHP 5.
Joomla включает в себя различные инструменты для изготовления Вебсайта и управления сайтом. Важной особенностью Joomla является минимальный набор инструментов при начальной установке, который обогащается по мере необходимости. Это снижает загромождение административной панели ненужными элементами, а также снижает нагрузку на сервер и экономит место на хостинге.
WordPress:
WordPress — CMS c открытым исходным кодом, распространяемая под GNU GPL. Написан на PHP, в качестве базы данных использует MySQL. Сфера применения — от блогов до достаточно сложных новостных ресурсов. На сегодняшний день Wordpress — самая популярная система для ведения блогов.
Возможности:
- Возможность публикации с помощью сторонних программ и сервисов;
- моментальная публикация;
- простота установки, настройки;
- поддержка веб-стандартов (XHTML, CSS);
- поддержка RSS, Atom, trackback, pingback;
- подключаемые модули (плагины) с уникальной простой системой их взаимодействия с кодом;
- поддержка так называемых «тем», позволяющих легко менять как внешний вид, так и способы вывода данных;
- «темы» реализованы как наборы файлов-шаблонов на php, что положительно сказывается на скорости и гибкости;
- громадные библиотеки «тем» и «плагинов»;
- заложенный потенциал архитектуры позволяет легко реализовывать сложные решения;
- наличие русских (неофициальных) переводов.
TYPO3:
Одним из наиболее мощных представителей CMS с открытым исходным кодом является система TYPO3. Эта система достигла наиболее высокого профессионального уровня, очень универсальна и легко изменяема в зависимости от применения. Разработка TYPO3 начата 1998 году датским программистом Каспером Скархей. Сейчас TYPO3 распространена во всем мире. TYPO3 интенсивно развивается: ежегодно выпускаются 2 новые версии системы, активно работает TYPO3 Ассоциация. Как и многие другие системы с открытым исходным кодом, TYPO3 распространяется под бесплатной лицензией GPL и свободно доступна через интернет.
Основные возможности:
- Редактор текста с форматированием (RTE) и проверка орфографии
- Отмена изменений и история изменений
- Предпросмотр перед публикацией
- Буфер обмена
- Редактирование содержимого из frontend и backend
- Внутренние ссылки (возможны ссылки на уровне элементов содержимого)
- Внутренний поисковый механизм
- Одна инсталляция системы для многих сайтов (с единым деревом страниц)
- Одна инсталляция системы для многих доменов
- Templavoila
- Гибкая система разграничения прав для редакторов сайта
- Динамическое построение меню — текстовых и графических
- Возможность авторизации пользователей через LDAP
- Версионирование
- Рабочие области (workspaces)
- Поддержка WML
- Поддержка XML
- Поддержка импорта и экспорта RSS
- Экспорт в PDF
- Экспорт в статический HTML
- Кэширование страниц
Сравнение CMS
Рассмотрим CMS Drupal, Joomla, Wordpress, TYPO3 по следующим основным характеристикам:
Версии/безопасность:
- Drupal:
Последней является версия 6.6. Все новые версии Drupal долго тестируются перед официальным релизом. Так как CMS имеет стабильное ядро, ошибки в модулях исправляются оперативно, поэтому сейчас целый ряд крупных корпоративных сайтов компаний с мировыми именами работает на Drupal.
- Joomla
Последняя стабильная версия 1.5.8, в которой было исправлено 114 ошибок, в том числе 2 средние ошибки безопасности обнаруженные при тестировании Joomla 1.5.x. Имеются большие проблемы с безопасностью сторонних расширений, которые распространяются бесплатно. Из стабильных расширений можно выделить OpenSEF и MosetsTREE.
- Wordpress:
Текущая версия: 2.6.5. График выпуска версий WordPress очень часто сбивается. Если обнаруживается какая-либо серьезная «дыра», то разработчики опреративно выпускают обновление. За счет оптимизации запросов, скорость работы новых версий значительно выше предыдущих.
- TYPO3:
Текущая стабильная версия 4.2.2. Ежегодно выпускаются две новые версии системы и в отличае от других систем, изменения более радикальны.
Безопасность в Typo3 очень болезненный вопрос для системных админимтраторов, поскольку система требует SafeMode = Off и работающей функции exec. Exec функция нужна для использования ImageMagic, которую уже давно считают за стандарт для хостинговых.
Конфигурация безопасности самой cms описана в документации и включает в себя настройки, которые затрагивают и права доступа к файловой системе, SSL доступ к backend-администрированию, контроль всех действий всех пользователей(logging), обработка ошибок, мощная работа с кешем.
Русская документация:
- Drupal:
Переводом документации по Drupal занимается русское сообщество cms. Также имеются самописные статьи и руководства. Документация на модули по большей части не переведена.
- Joomla
Русскоязычной документации достаточно много. Причем она не ограничивается переводом официальной помощи, а уже приходит к стадии написания авторских статей.
- Wordpress:
WordPress обладает очень большой документацией, но к сожалению она только на английском языке. Документация построена таким образом, что позволяет довольно быстро найти нужный ответ. Практически каждая статья имеет несколько примеров, а также ссылки на смежные вопросы.
- TYPO3:
На данный момент, русская документация по Typo3 является просто переводом английской документации. Есть русскоязычная Wiki, которая по сути представляет собой набор советов. Существует около двух десятков книг по TYPO3, большинство на немецком языке.
Борьба со спамом:
- Drupal:
Предоставляет следующие возможности по борьбе со спамом: графическая или математическая каптча на выбор, анализатор поведения клиентов с отсеиванием ботов. Можно задавать ограничение на количество ссылок в одном сообщении, контролировать флуд, банить ip и вести «черный список» рекламируемых сайтов, а также фильтровать сообщения по подстроке.
- Joomla
В базовой версии отсутствуют возможности по борьбе со спамом.
- Wordpress:
Стандартно в WordPress входит плагин Akismet, который достаточно эффективно борется со спамом. Кроме этого можно создать черный список и фильтры из слов. С их помощью можно просто заблокировать любой комментарий, который содержит запрещенное слово или отправить его на модерацию. Наибольшую же эффективность в борьбе со спамом можно добиться с помощью т.н. капчи — картинки с набором символов. В этом случае ставится полный заслон от автоматических спам-роботов. Установка большинства плагинов антиспама очень проста, зачатую достаточно только его активировать в админ-панели (например, популярная SpamKarma). С помощью специального плагина есть возможность модерировать спам-комментарии. Причем доступны как обычные комментарии, так и пинги и трекбаки. В целом же плагинов для антиспама множество (я насчитал больше семидесяти).
- TYPO3:
Одной строчкой TypoScript в шаблоне подключается система блокирования спам-ботов, собирающих e-mail адреса. Также существуют расширения Captcha, Bad Behavior, SPAM Assassin, Akismet, Spam Detection через mod_security в .htaccess и другие.
Интеграция с форумом:
- Drupal:
Базовый пакет Drupal содержит достаточно функциональный форум, который подойдет для организации небольших сообществ. Для организации больших сообществ он тоже, впрочем, подойдет — на форуме drupal.org сейчас более 320 000 сообщений. Есть модераторы, группы пользователей с разными правами доступа, извещения по email, аватары, подписи, RSS. Преимущество встроенного форума — единая база пользователей, которую используют остальные части сайта. Есть возможность интеграции с PHPBB.
- Joomla
Вместе с Joomla не поставляется компонента форума, однако на данный момент самым оптимальным вариантом создания встроенного форума является FireBoard и его русская редакция от Adeptus'а. Что же касается интеграций — они существуют. Самой распространенной является связка Joomla-SMF, под которую есть не одна интеграция, даже коммерческая.
- Wordpress:
Для WordPress'а разработан и рекомендуется форум BBPress (есть и руссификация), который полностью интегрируется в блог. Правда, возможности у этого форум более чем скромные. На официальном сайте WordPress'а используется именно этот форум. Также существуют плагины, которые позволяют частично интегрировать некоторые популярные форумы в блог. Правда для этого требуются хорошие знания программирования, и при этом, все равно стопроцентной интеграции не получится — все-таки это разные системы.
- TYPO3:
Разработанные чисто для typo3 форумы как расширения: CHC Forum, WEC Discussion Forum, mm forum… Расширения-соединения phpBB, VBulletin c Typo3, а так же инструменты миграции данных из phpBB на более рекомендованый CHC Forum. Расширения-соединения форумов и новостей.
Визуальный редактор:
- Drupal:
В Drupal можно встроить редакторы TinyMCE или FCKEditor, которые гибко настраиваются и являются мощными средствами(например, в TinyMCE можнет работать с таблицами, добавляя и удаляя строки и столбы и объединяя ячейки, «чистить» скопированные из Ворда тексты от избыточных тегов)
- Joomla
Большинство визуальных редакторов - портированные и самые распространенные редакторы. Самым удобным и хорошим из бесплатных является редактор JCE, разработанный специально для Joomla (а изначально еще для Mambo, тогда он назывался MosCE), который является хорошей альтернативой платному WysiwygPro.
- Wordpress:
Стандартно в WordPress'е используется немного урезанный TinyMCE и простой текстовый редактор (переключение между ними «на лету»). При желании можно установить и полную версию TinyMCE, тогда будет доступно три панели кнопок со всем возможностями. Нужно отметить, что в WordPress'е есть возможность сторонним плагинам добавлять кнопки в редактор. Таким образом можно например получить функции для добавления видео, аудио и т.д. В профиле пользователя также можно отключить использование визуального редактора.
- TYPO3:
Встроенным является редактор RTE. Из расширений можно выделить htmlArea RTE, tinyRTE, FCKEditor (пока экспериментальный), TinyMCE и другие.
Шаблоны оформления:
- Drupal:
Движок шаблонов хорошо спроектирован, поэтому разобраться с интеграцией своих шаблонов сможет начинающий PHP-программист. В Drupal имеются большие возможности по управлению темами. Красивых общедоступных шаблонов мало, очень много шаблонов делается под конкретного заказчика.
- Joomla
По сравнению с шаблонами других систем управления сайтом шаблоны Joomla! очень просты по своей структуре, что упрощает процесс их создания и редактирования. Существует 2 вида шаблонов Joomla: шаблоны сайта (Site Template) и шаблоны административной панели (Backend Template). В Joomla есть возможность назначения разным страницам различных шаблонов. Например, имея на сайте раздел статей и магазин, вы можете оформить их как два совершенно различных сайта, всего лишь оперируя шаблонами Joomla. Joomla поддерживает систему модулей. Модули объединяются в позиции, которые уже и подгружаются в нужных местах шаблона. Модули можно привязывать к конкретным страницам (включать и выключать отображение) а так же выводить различными способами по ходу страницы. При помощи манипуляций в шаблоне можно несколькими модулями составить очень красивую главную (или любую другую) страницу, просто выключив компонент работающий там и расположив вместо него модули (например, отображающие новости из разных категорий).
- Wordpress:
Для WordPress'а созданы тысячи шаблонов и многие из них выполнены на очень хорошем дизайнерском уровне. Устройство WordPress таково, что под него несложно переделать, скажем, html-шаблон. В шаблонах испольуются обычные PHP-функции, поэтому никаких сложностей с изучением т.н. языков шаблонов нет. По созданию шаблонов существует довольно много статей, даже есть он-лайн генератор. Готовые шаблоны достаточно загрузить в отдельный каталог и после этого в админ-панели выбрать понравившийся. Существует также возможность переключать шаблоны и посетителями.
- TYPO3:
Стандартное подключение файлов шаблона осуществляется посредством вставки закомментированых указателей в html-шаблон и обращением к ним как к объектам через TypoScript. Существует мощное расширение “TemplaVoila!” для визуального подключения шаблона, разметки объектов по тэгам и обращения к ним через TypoScript.
Расширенная функциональность (плагины) :
- Drupal:
Сейчас в официальном репозитории хранится около тысячу бесплатных модулей. Среди прочих есть решение для электронной коммерции, CRM-система, wiki-движок. Стоит отметить модуль CCK (Content Construction Kit), который позволяет при помощи графического интерфейса описывать объекты предметной области в базе данных и сразу же создавать формы для управления ими.
- Joomla
На официальном сайте(extensions.joomla.org) представлено 4159 расширений. В Joomla существует три вида расширений, есть специальная система их установки, позволяющая при помощи xml-файла описывать все действия необходимые для совершения при создании записи о расширении (например, SQL-запросы, копируемые файлы или действия выполняемые сразу после установки, которые нельзя выполнить автоматически).
- Wordpress:
WordPress можно расширить за счет плагинов — это различные php-скрипты, которые автоматически подключаются к основному «ядру». Таким образом можно не просто добавить нужную функциональность, но и изменить уже существующую. Подключение плагина к WordPress'у осуществляется копированием в специальный каталог и активацией в админ-панели. Некоторые плагины можно настраивать, некоторые нужно прописывать в шаблоне, а некоторые работают полностью автоматически. Плагинов для WordPress написано несколько тысяч, поэтому можно найти плагин практически под любые нужды. Некоторые плагины требуют значительной переделки шаблона.
- TYPO3:
Имеется огромный репозиторий расширений (ок. 2000), документация к самым популярным переведена на русский язык.
Производительность:
Ниже приведено тестирование производительности наиболее используемых cms Joomla 1.5 и Drupal 6.1. Результаты тестирования быстродействия cms приведены на рисунках 1.1и 1.2
Рис. 1.1 Характеристики быстродействия Joomla и Drupal |
Рис. 1.2 Сравнение быстродействия Joomla и Drupal |
Drupal значительно быстрее Joomla во всех четырёх инсталляциях. Скорость загрузки Drupal улучшается на ~74%, при включенном кэше и без установленных модулей. Если же стоят дополнительные модули, то включение кэша улучшит быстродейсвие системы на ~86%. Кэш поможет улучшить быстродейсвие Joomla на ~23% и на ~20% (с дополнительными компонентами).
Далее представлены результаты тестирования производительности рассматриваемых cms на виртуальном веб-сервере. Тестирование проводилось на следующей конфигурации: Architecture: x86 CPU: 3.0Ghz RAM: 512Mb OS: Debian GNU/Linux , kernel 2.6.22-3-686
Для всех cms загружпемая страница содержала меню, форму ввода, текст общим размером 40Кб. Тестирование производилось для 1, 10 и 20 пользователей. Тестирование проводилось для следующих версий: WordPress 2.6, Joomla!: 1.5.2, Typo3: 4.1.6, Drupal:6.2
В таблице 1.2 и на рисунке 1.3 приведены результаты тестирования для 10 пользователей. Результом является скорость загрузки страниц(milliseconds per page request).
Таблица 1.2 Результаты тестирования для 10 пользователей |
Рис. 1.3 Результаты тестирования для 10 пользователей |
В таблице 1.3 и на рисунке 1.4 приведены результаты тестирования для 30 пользователей.
Таблица 1.3 Результаты тестирования для 30 пользователей |
Рис. 1.4 Результаты тестирования для 30 пользователей |
В таблице 1.4 и на рисунке 1.5 приведены результаты тестирования для 50 пользователей.
Таблица 1.4 Результаты тестирования для 50 пользователей |
Рис. 1.5 Результаты тестирования для 50 пользователей |
Drupal использует наиболее эффективный алгоритм кэширования, поэтому эта cms показала лучшие результаты. По сравнению с предыдущими версиями Joomla 1.5 потребляет больше системных ресурсов хостинга: память, запросы к базе, большое количество небольших файлов- на подключение к каждому уходит время и память, а в режиме Legacy (Наследственный) система потребляет еще больше ресурсов чем без него.
В версии 2.6 WordPress разработчики убрали файловый кэш, таким образом потребление памяти значительно возрасло. В WordPress'е загружаются все файлы не зависимо от того, будут ли ни использоваться или нет. То есть сервер вынужден обрабатывать много php-кода вхолостую, что неизбежно приводит к дополнительной нагрузке процессора.
Рис. 1.6 - Логотипы рассматренных CMS (анимация: объем - 115 КБ; размер - 467x350; количество кадров - 10; задержка между кадрами - 80 мс; задержка между последним и первым кадрами - 150 мс; количество циклов повторения - 8.)
Выводы
Typo3 имеет мощную функциональность, расширяемость и гибкость. Огромное количество расширений одно из которых - templavoila следует включить в стандартный пакет интегрировав в ядро. CMS и любое расширение настраивается с помощью TypoScript - встроенным скриптовым-языком, но не процедурным, а по принципу скорее похожим на Windows регистр или на XSLT. Поскольку cms имеет невообразимую гибкость, это же её слабое место: в отличии от других рассмотренных cms она сложна в освоении.
Wordpress - это изначально блоговая CMS сделать на нем какой-то другой тип сайта довольно сложно. Если необходимо сделать профессиональный сайт на CMS, которая стабильно развивается, хорошо поддерживается, постоянно обновляется, обладает сильной модульностью, широким набором дополнений, то из бесплатных cms лучше всего использовать Joomla и Drupal.
Joomla проще и легче в изучении и управлении, но Drupal, хотя и сложнее и не такой красивый, и хотя его немного труднее учить, представляет почти 100% гибкость. Поэтому Adobe избрала Drupal для построения на его основе своих пробных Flex - сайтов.
Несмотря на это, есть сильные стороны у Joomla, которые иногда делают ее более предпочтимой в некоторых случаях. Joomla хороша для корпоративных сайтов и классических порталов. Базовая поставка богата функциональностью. Многие компоненты продаются, что положительно сказывается на их качестве. Drupal же приспособлен под комьюнити-сайты. Есть встроенный форум, комментарии, блоги, модуль для публикации книг. И хотя на обеих CMS можно делать практически любые сайты, в одних случаях системы будут идти разработчикам на встречу, а в других — придется преодолевать множество трудностей.
Одним из существенных недостатков Drupal является слабое использование объектных возможностей PHP: API Drupal практически не использует имеющихся в PHP возможостей ООП. Разработчики аргументируют это слабой реализацией ООП в языке. Объектная модель в Drupal присутствует, но в несколько нетрадиционном для PHP виде. Ввиду активного использования базы данных Drupal может быть слишком тяжёл для ресурсов предоставляемых на дешёвых тарифных планах хостинг-провайдеров, хотя для небольших сайтов с посещаемостью в несколько сотен или тысяч посетителей в сутки этих ресурсов будет достаточно.
Список литературы
- Вандюк Д. Вестгейт М. CMS Drupal: руководство по разработке системы управления сайтом. / Д. Вандюк, М. Вестгейт - М.:Диалектика-Вильямс. 2008. 400с.
- Robert T. - Building Online Communities With Drupal, phpBB, And WordPress. / T. Robert, M. Little, W. Jared - Apress. 2007 375p.
- Мерсер Д. Drupal 6. Создание надежных и полнофункциональных веб-сайтов, блогов, форумов, порталов и сайтов-сообществ. М.:Диалектика-Вильямс. 2009. 272с.
- Норт Б. Joomla! Практическое руководство. - СПб.:Символ-Плюс. 2008. 448c.
- Колисниченко Д. Н. Joomla! 1.5. Руководство пользователя. - М.:Диалектика-Вильямс. 2009. 224c.
- Граф Х. Создание веб-сайтов с помощью Joomla! 1.5. - М.:Диалектика-Вильямс. 2008. 304с.
- Hayder H. WordPress Complete - Packt Publishing Ltd. 2006. 283p.
- Blakeley Silver T. WordPress Theme Design - Packt Publishing Ltd. 2008. 224p.
- Altmann W. TYPO3 - Open Source Press. / W. Altmann, R. Fritz, D. Hinderink 2004. 624p.
- Fritz R. Typo3: Enterprise Content Management / R. Fritz, D. Hinderink, W. Altmann - Packt published. 2005. 595p.
* При написании данного автореферата магистерская работа еще не завершена. Окончательное завершение — 1 декабря 2009 г. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.