Е.А. Арсирий, П.С. Винин
Сравнительный анализ систем управления контентом
В статье приведен сравнительный анализ систем управления контентом (Сontent management system — CMS) широко используемых веб-разработчиками в настоящее время. Рассмотрены существующие среды для разработки таких систем CMF (Сontent management framework) и способы их разработки. Построена система классификации CMS по выбранным критериям. Выбор критериев классификации обоснован.
Ключевые слова: CMF, software framework, API, CMS, Drupal, Joomla, WordPress.
In the given paper the technique of definition of cost of designing and/or advancement of remote information system on the basis of intellectual analysis of data. As a mechanism of intellectual analysis of data an artificial neuron network is utillized. A neuron network is designed by the package of Neuro Pro on the basis of expert estimations, got as a result of the conducted questionnaire.
Keywords: CMF, software framework, API, CMS, Drupal, Joomla, WordPress.
I. ВВЕДЕНИЕ
С появлением новых информационных технологий наблюдается постоянный рост требований к интерактивности и удобствам пользования веб-сайтов (юзабилити). На смену сайтам-страничкам и сайтам-визиткам приходят так называемые «управляемые» сайты, когда пользователю предоставляют возможность редактировать структуру сайта независимо от его наполнения, размещать новый контент (информацию), не прибегая к помощи разработчика, управлять содержимым — любым информационно значимым наполнением информационного ресурса (например, веб-сайта) — текстовые описания, графика, мультимедиа, новости компании, специальные предложения или акции, каталог продукции или услуг компании и прочее. Претерпевает большие изменения и интернет-торговля. Сайты-каталоги (веб-витрины), интернет-магазины с традиционными корзиной покупок и формой оформления заказа on-line вытесняют полноценные CRM системы (Customer Relationship Management - управление взаимоотношениями с клиентами) на современных Интернет ресурсах. Для таких систем характерна работа каждым клиентом индивидуально. Это и «Личные корзины», позволяющие набирать товары, которые вы покупали ранее, «История покупок», ведущаяся с начала вашей регистрации в Интернет-магазине, «Система накопительных скидок», «Система поддержки нескольких адресов доставки» и т.д.
В настоящее время в сети появляется все больше всевозможных «on-line» сервисов таких как произвести оплату кредитной картой on-line, оплатить услуги доступа Интернет, пополнить счет на мобильном телефоне, сделать электронную фотографию, смонтировать видео-ролик и т.д. Все перечисленное приводит к тому что современные веб-разработки это полноценные программные продукты (дистанционные информационные системы), требующие для своего создания полноценной программной среды или программного фреймворка.
II/ Программная Среда для разработки веб приложений
Программный фреймворк (англ. software framework) — программная среда, позволяющая строить сложные программные приложения используя представленный единый программный интерфейс или API (application programm interface), облегчающая разработку и объединение разных компонентов большого программного проекта, включающая вспомогательные программы, библиотеки кода, язык сценариев и другое программное обеспечение. Отличие программного фреймворка от библиотеки:
в программном фреймворке выполняется код написанный для него, а не исполняется один из скриптов подключенной библиотеки. Также, в отличие от библиотеки, которая объединяет в себе набор близкой функциональности, фреймворк содержит в себе большое число разных по тематике библиотек. При этом использование единого API позволяет безболезненно развивать фреймворк и использовать собственные расширения в будущих проектах.
Для создания крупных проектов используют один или несколько software framework's исходя из нужд проекта.
Переход к веб разработкам, актуальность на рынке прогр продуктов как результат появления ООП и CMF... В понятии CMF выделить не CM а F! Перенести определение CMS после определения CMF. Провести связь.
В сегодняшние дни скорость при создании программного продукта важна не меньша качества работы. Оперативность появления на рынке и реакция на изменения имеют высокую стоимость в данной сфере. Соответственно разработчики в целях оптимизации своей работы предпочитают использовать готовые наработки прошлых проектов, чем писать каждый раз один и тот же код для множества проектов. Поэтому разработки отдельных ведущих специалистов объединяются что дает так называемый Content Management Framework (CMF) — каркасная система для управления содержимым. CMF — это инструментарий для создания CMS — систем управления содержимым, а также веб приложений вообще. Ряд CMS, предоставляющих API для расширения своей функциональности, претендуют на звание CMF. К примерам CMF, также являющимися готовыми CMS, можно отнести такие системы, как Plone, MODx, Drupal, TYPO3, Typolight, UMI.CMS, OPENKit.
По языкам программирования CMS присутствуют практически во всех, поддерживаемых ООП и не только: Java, PHP, Python, Ruby, Perl, JavaScript и другие. Как правило, на основе CMF создаются CMS — готовые системы управления содержимым, а те, в свою очередь, служат основой для создания полноценных сайтов.
Среди бесплатных software framework's существует множество систем, имеющих характерные особенности CMF, вот наиболее популярные из них: Zend Framework, CakePHP, Symphony, CodeIgniter, YII.
Данные системы ориентированы на профессиональных разработчиков. Как правило, такие системы предоставляют практически неограниченный набор возможностей для программиста, облегчая процесс разработки сайта и расширения его функционала в будущем, за что, впрочем, приходится платить необходимостью более глубокого ознакомления с системой. Некоторые из приведенных выше CMF одновременно обладают свойствами CMS. Постараемся выделить бесплатные системы, совмещающие в себе свойства CMS и CMF. Данные системы могут быть отнесены как к классу систем управления содержимым, так и каркасных систем. Другими словами, данные системы являются в достаточной степени расширяемыми и настраиваемыми, чтобы на их основе можно было создать программный продукт с произвольным набором возможностей, но с другой стороны, данные системы могут быть рассмотрены и как дистрибутивы, для установки и использования которых не требуются глубокие познания в программировании. Среди наиболее популярных можно выделить следующие: TYPO3, MODx, Drupal. C помощью этих систем чаще всего создаются дистанционные программные продукты. Грамотно созданные классы и функции можно использовать во всех проектах, и расширять имеющийся API бесконечно. Собственно и сами системы управления содержимым, создающиеся на основе СMF претерпели колоссальные изменения. Сегодня система управления содержимым (англ. Content management system, CMS) — компьютерная программа или система, используемая для обеспечения и организации совместного процесса создания, редактирования и управления текстовых и мультимедиа документов (содержимое или контента). Обычно это содержимое рассматривается как неструктурированные данные предметной задачи в противоположность структурированным данным, обычно находящимися под управлением СУБД. Такая система не нуждается в профессиональном разработчике для поддержки и расширения функциональности. Появилась новая задача — оперативное добавление и управление информацией. Появилась новый вид деятельности контент-менеджер, -обозначает род профессиональной деятельности — редактор сайта. При эта работа требует минимальных знаний языков разработки и разметки страниц. Большая часть современных систем управления содержимым реализуется с помощью визуального (WYSIWYG) редактора — программы, которая создаёт HTML-код из специальной упрощённой разметки, позволяющей пользователю проще форматировать текст. Сегодняшний принцип работы CMS: генерация страниц по запросу. Системы такого типа работают на основе связки «Модуль редактирования → База данных → Модуль представления». Модуль представления генерирует страницу с содержанием при запросе на него, на основе информации из базы данных. Информация в базе данных изменяется с помощью модуля редактирования. Страницы заново создаются сервером при каждом запросе, что в свою очередь создаёт дополнительную нагрузку на системные ресурсы. Нагрузка может быть многократно снижена при использовании средств кэширования, которые имеются в современных веб-серверах. Ранее используемый способ - генерация страниц при редактировании. Системы этого типа суть программы для редактирования страниц, которые при внесении изменений в содержание сайта создают набор статических страниц. При таком способе в жертву приносится интерактивность между посетителем и содержимым сайта. Современный способ, сочитает в себе преимущества первых двух. Он может быть реализован путём кэширования — модуль представления генерирует страницу один раз, в дальнейшем она в несколько раз быстрее подгружается из кэша. Кэш может обновляться как автоматически, по истечении некоторого срока времени или при внесении изменений в определённые разделы сайта, так и вручную по команде администратора. Другой подход — сохранение определённых информационных блоков на этапе редактирования сайта и сборка страницы из этих блоков при запросе соответствующей страницы пользователем. Сейчас существует множество готовых систем управления содержимым сайта, в том числе и бесплатных. Тем не менее наличие проприетарных CMS все еще актуально.
III сравнительный анализ популярных CMS
Drupal, Joomla и WordPress — бесплатные системы управления, на основе которых можно создавать функциональные и легко управляемые сайты без серьезных финансовых затрат. Попробуем провести анализ и сравнить эти системы между собой. Мы выбрали наиболее важные аспекты, которые скорее всего заинтересуют разработчиков, планирующих построить программный продукт на базе cms/cmf решений.
Для лучшего понимания предметной области, а также для установления порядка была создана такая методика, как классификация. Классификация — это разделение общего множества на частные по выбранным критериям, то есть попросту деление на группы по общим признакам. Классификация требуется и в области систем управления, где она должна установить четкие разграничения между системами. Классификация по степени открытости : все продукты можно разделить на две группы. В первую группу следует отнести все открытые продукты, во вторую — остальные (к остальным относятся коммерческие/проприетарные и бесплатно распространяемые продукты).
Теперь выделим наиболее важные для разработчика и пользователя критерии и оценим их по 10ти бальной шкале для каждой из трех популярных систем.
Критерии:
Таблица 1. Сравнительный анализ бесплатных CMS наиболее популярные в современном интернет сообществе.
Drupal
Joomla
WordPress
Сейчас целый ряд крупных корпоративных сайтов компаний с мировыми именами работает на Drupal, поэтому у разработчиков к безопасности серьезное отношение.
Исправить безопасность на высоком уровне, о чем свидетельствуют имена крупных сайтов...
Оценка 10
Безопасность самого проекта находится на высоком уровне. Что же касается безопасности сторонних расширений, то тут все не так гладко. Действительно сильных расширений мало, но они есть.
Однако разработчиков меньше и проверенность
Оценка 8
WordPress, посравнению сдругими бесплатными движками является довольно хорошо защищённой платформой. Но существуют уязвимости, которые могут повлиять на безопасность WordPress любой версии.
Найти конкретные уязвимости
Оценка 6
Версии выходят регулярно. Выпущена 6-я версия. Предыдущая 5-я версия по сравнению с 4.7 выглядит хорошим эволюционным этапом. Новые версии подолгу тестируются. Ядро стабильное. Ошибки в востребованных модулях обычно исправляются оперативно.
С наличием новых версий у Joomla стабильная постоянность. Версию 1.0.13 можно смело считать очень-очень стабильной и безопасной. Новые версии выходят нерегулярно, но со временем максимально дорабатываются.
Хотя официально и заявлено, что версии WordPress будут выходить по графику, на самом деле этого не происходит. Если обнаруживается какая-либо серьезная «дыра», то разработчики опреративно выпускают обновление, поэтому график версий сбивается.
10
9
5
Несмотря на то, что русское сообщество занимается переводом документации на Drupal, белых пятен еще много. Ситуация отчасти компенсируется самописными статьями и руководствами. Документация на модули по большей части не переведена.
Русскоязычной документации много. Причем она не ограничивается переводом официальной помощи, а также снабжена большими библиотеками авторских статей.
WordPress обладает очень большой документацией , но только на английском языке. Составлена она грамотно и практически не требует особого знания языка. Документация построена таким образом, что позволяет довольно быстро найти нужный ответ.
9
10
8
Русское сообщество развивается, причем достаточно бурно, поскольку в последнее время о Drupal много говорят в русском интернете. Есть люди разбирающиеся в архитектуре. Широкая поддержка на форуме. В целом сообщество открытое и дружелюбное.
Существует два различных сообщества, ведущих свои форумы и сайты поддержки. Наличие конкуренции подталкивает команды к качеству разработки.
У русского WordPress'а есть два официальных сайта. Поддержка пользователей осуществляется через форумы добровольцамими. Существует много блогов, где их авторы выкладывают и делятся самыми разными находками и решениями по WordPress
10
8
10
Широкий выбор всевозможных решений от механического до аналитического филтра посетителей.
Борьба со спамом в интернете на данный момент ведется только в одном месте— комментарии к публикациям.
Широкий выбор всевозможных средств борьбы. Установка большинства плагинов антиспама очень проста, зачатую достаточно только его активировать в админ-панели (например, популярная SpamKarma). В целом же плагинов для антиспама больше семидесяти.
10
6
9
Базовый пакет Drupal содержит достаточно функциональный форум, который подойдет для организации небольших сообществ. Для организации больших сообществ он тоже, впрочем, подойдет— на форуме drupal.org сейчас более 320 000 сообщений.
Есть модераторы, группы пользователей с разными правами доступа, извещения по email, аватары, подписи, RSS. Преимущество встроенного форума— единая база пользователей, которую используют остальные части сайта. Есть возможность интеграции с PHPBB.
Вместе с Joomla не поставляется компонента форума, однако на данный момент самым оптимальным вариантом создания встроенного форума является FireBoard и его русская редакция от Adeptus'а. Что же касается интеграций— они существуют. Самой распространенной является связка Joomla-SMF, под которую есть не одна интеграция, даже коммерческая.
Для WordPress'а разработан и рекомендуется форум BBPress (есть и руссификация), который полностью интегрируется в блог. Правда, возможности у этого форум более чем скромные. На официальном сайте WordPress'а используется именно этот форум. Также существуют плагины, которые позволяют частично интегрировать некоторые популярные форумы в блог. Для этого требуются хорошие знания программирования, и при этом, все равно стопроцентной интеграции не получится— все-таки это разные системы.
10
7
7
В Drupal можно встроить TinyMCE или FCKEditor. И тот и другой гибко настраиваются. Оба являются мощными средствами. В TinyMCE, например, можно работать с таблицами, добавляя и удаляя строки и столбы и объединяя ячейки, может фильтровать скопированные из Ворда тексты от избыточных тегов.
Таковых под нее множество: в основном это портированные и самые распространенные редакторы. Однако самым удобным и хорошим из бесплатных является редактор JCE, разработанный специально для Joomla (а изначально еще для Mambo, тогда он назывался MosCE), способный составить очень хорошую альтернативу платному WysiwygPro.
Стандартно в WordPress'е используется немного урезанный TinyMCE и простой текстовый редактор (переключение между ними «на лету»). Нужно отметить, что в WordPress'е есть возможность сторонним плагинам добавлять кнопки в редактор. Таким образом можно например получить функции для добавления видео, аудио и т.д.
10
10
10
Поддерживается изменение размеров картинки при загрузке и генерация изображений preview.
Существует три типа расширений - компонент, модули и мамботы. Причем каждый тип расширений позволяет решать свои типы задач, что позволяет добавлять фактически любой новый функционал не залезая в "ядро". (extensions.joomla.org).
В WordPress'е вполне удобно можно добавлять картинки в редактор. Автоматически будет сделана миниатюра. То есть расчет на то, чтобы с этой задачей справился неопытный пользователь.
9
10
8
Движок шаблонов— сильная сторона Drupal. Этот компонент добротно спроектирован, поэтому разобраться с интеграцией своих шаблонов сможет начинающий PHP-программист. Вообще Drupal предоставляет целый букет возможностей по управлению темами: можно настраивать цвета разных элементов прямо из админ интерфейса.
Joomla ветки 1.0.х не поддерживает шаблоны. Конечно, в ней есть общий и большой шаблон, позволяющий на PHP создавать вполне замысловатые структуры общей структуры сайта и расположения модулей, но вот шаблонизации отдельных элементов нет, и все ограничивается примением CSS
Для WordPress'а созданы тысячи шаблонов и многие из них выполнены на очень хорошем дизайнерском уровне. Устройство WordPress таково, что под него несложно переделать, скажем, html-шаблон. В шаблонах испольуются обычные PHP-функции, поэтому никаких сложностей с изучением т.н. языков шаблонов нет. По созданию шаблонов существует довольно много статей, даже есть он-лайн генератор. Готовые шаблоны достаточно загрузить в отдельный каталог и после этого в админ-панели выбрать понравившийся. Существует также возможность переключать шаблоны и посетителями.
10
5
9
Сейчас в официальном репозитории хранится под тысячу бесплатных модулей. Среди прочих есть решение для электронной коммерции, CRM-система, wiki-движок. Еще отмечу модули Views и CCK, которые дают Друпалу полное право именоваться CMF, а не CMS. CCK (Content Construction Kit), к примеру, позволяет при помощи графического интерфейса описывать объекты предметной области в базе данных и сразу же создавать формы для управления ими.
Их существует несколько видов, есть специальная система установки, позволяющая при помощи xml-файла описывать все действия необходимые для совершения при создании записи о расширении (например, SQL-запросы, копируемые файлы или действия выполняемые сразу после установки, которые нельзя выполнить автоматически).
WordPress можно расширить за счет плагинов— это различные php-скрипты, которые автоматически подключаются к основному «ядру». Таким образом можно не просто добавить нужную функциональность, но и изменить уже существующую. Плагинов для WordPress написано несколько тысяч (только на одном wp-plugins.net— 2568, но думаю, что целом цифру можно удвоить), поэтому можно найти плагин практически под любые нужды.
10
9
10
В Drupal это называется «блоки». Их можно располагать в разных областях страниц в зависимости от возможностей шаблона. В каждой области блоки можно сортировать для управления порядком вывода. Изначально областей пять— шапка, центральная, левая и правая колонки, подвал. Блоки можно показывать не на всех страницах.
Отсутствует.
Полноценная поддержка виджетов появилась только в версии 2.2. До этого нужно было устанавливать отдельный плагин. Внутренняя реализация виджетов такова, что с их можно использовать для вывода какого-либо плагина или своей функции.
10
0
7
Друпал популярен в мире, поэтому все инновационные решения быстро реализуются. В базовом пакете есть возможность ведения блога посредствам блогового клиента. Есть модуль, пингующий специальные каталоги Drupal-сайтов.
Joomla это CMS, и говорить о внедрении таких вещей можно только на уровне сторонних компонентов.
Трекбаки, пинги поддерживаются уже давно. Причем для их использования не нужно вообще никаких дополнительных действий: все работает на уровне «движка». Что касается XML-RPC, то WordPress поддерживает сразу несколько API, поэтому добавлять/редактировать записи в WordPress можно с многих программ блог-клиентов или он-лайн, например с помощью Google-Docs.
WordPress полностью поддерживает RSS и Atom. Можно подписаться на последние записи блога, определенной рубрики, комментарии или все комментарии. С помощью отдельного плагина можно сделать автоматическую переадресацию RSS-ленты блога на feedburner.com.
10
4
8
Drupal работает на UTF-8. Каких-то забытых строковых функций, не работающих с UTF-8 я не замечал. Некоторые хостеры по старинке отдают страницы в cp1251, но это легко чиниться. Проблемы с MySQL тоже обычно решаются одной строчкой кода.
Все проблемы с русской версий в кодировке CP1251 уже давно решены и на не слишком высоких версиях MySQL проблем почти не вызывают, нужно лишь почитать документацию. Система сама выбирает нужную конфигурацию подключения в зависимости от версии MySQL. С аяксом все сложно
В самом WordPress'е есть возможность установить любую кодировку. Главное, чтобы кодировка базы данных совпадала с кодировкой блога. Правда, начиная с версии 2.1 WordPress должен работать в UTF-8. Это напрямую связано с использованием AJAX. Поэтому для русскоязычных пользователей основная проблема состоит только в том, что на серверах часто стоит CP1251. Сейчас можно довольно уверенно сказать, что особых проблем с кодировками в WordPress'е нет.
9
9
10
Комментарии в блогах могут быть и «плоскими» («flat») и древовидными («treaded»). Всё это находится в базовом пакете. Извещения по email делаются внешним модулем.
Компонентов комментариев много. Стабильных решений не много, ожидается jComments от русского разработчика, которая все поставит на свои места.
Для любой записи можно разрешить или запретить комментирование. При помощи отдельных плагинов можно сделать древовидные комментарии, а также разбить отображение комментариев по страницам. Есть также плагин (работает на AJAX), который позволяет в течение некоторого времени редактировать посетителю свой комментарий.
8
7
10
Для Друпала написано много разных конвертеров, в основном связанных с форумными миграциями. Любые RSS потоки. Экспорта в RDF или CSV, XML и SQL.
Не предусмотрен. Исключительно sql запросами.
WordPress позволяет экспортировать записи и комментарии блога в XML-файл. Можно экспортировать записи отдельного автора. Для импорта записей в WordPress можно воспользоваться 9 способами. Также в RSS и свой XML-формат.
10
6
8
IV Анализ полученных результатов:
Помимо того, что drupal является CMS он одновременно является платформой для разработки нового функционала и предусматривает легкую адаптацию под уже созданный функционал. Следовательно является CMF. Drupal (друпал)— система управления сайтом (CMS), написанная на языке PHP и использующая в качестве хранилища данных реляционную базу данных (поддерживаются MySQL, PostgreSQL и другие). Drupal является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями энтузиастов со всего мира.
Drupal открытая система, позволяющая легко и непринужденно расширять возможности, имеющая большой репозитарий созданного специалистами функционала, масштабируемая для построения любого ресурса. Рекомендована лучшими специалистами в области разработки и сборки полномасштабных сайтов.
Вместо таблицы построить график