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

Е.А. Арсирий, П.С. Винин
 
Сравнительный анализ систем управления контентом
В статье приведен сравнительный анализ систем управления контентом (С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. Безопасность — защита от взлома, стабиль­ность работы проекта.
  2. Версии — наличие обновлений, их регуляр­ность, стабильность и проверенность вре­менем.
  3. Наличие документации, в том числе русскоязычной.
  4. Русское комьюнити/поддержка — наличие со­общества, возможность вступления, ква­лификация и активность участников
  5. Борьба со спамом — защита проекта от все­возможного спама
  6. Интеграция с другими проектами — java, flash, форум, чат и тд.
  7. Визуальный редактор — минимальный порог вхождения для управления и поддержки данной системы.
  8. Работа с изображениями — встроенные сред­ства для обработки изображений и работы с ними.
  9. Шаблоны оформления — наличие базы ди­зайнов и тем для проекта
  10. Расширенная функциональность (плагины) — объем и качество существующих нарабо­ток ведущих специалистов, расширяющих или изменяющих функциональность проекта.
  11. Виджеты/блоки — возможность проекта вы­делять отдельные составляющие в блоки и работа с ними.
  12. Современные технологии: трекбаки, пинги, XML-RPC, RSS
  13. Кодировки — возможность работы с разными кодировками и наиболее популярной сего­дня UTF-8
  14. Комментирование — работа с комменатирия­ми, уровни доступа и управляемость дан­ного функционала.
  15. Экспорт/импорт данных - управление по­токами информации входящей и выходя­щей из проекта.

Таблица 1. Сравнительный анализ бесплатных CMS наиболее популярные в современном интернет сообществе.

 

Drupal

Joomla

WordPress

  1. Безопасность

Сейчас целый ряд крупных корпоративных сайтов компа­ний с мировыми именами ра­ботает на Drupal, поэтому у разработчиков к безопасности серьезное отношение.
Исправить безопасность на высоком уровне, о чем свидетельствуют имена крупных сайтов...
Оценка 10

Безопасность самого проекта нахо­дится на вы­соком уровне. Что же касает­ся безопасности сторонних расширений, то тут все не так глад­ко. Действительно сильных расши­рений мало, но они есть.
Однако разработчиков меньше и проверенность
 
Оценка 8

WordPress, посравнению сдруги­ми бесплатными движками являет­ся довольно хорошо защищённой платформой. Но существуют уяз­вимости, которые могут повлиять на безопасность WordPress любой версии.
Найти конкретные уязвимости
Оценка 6

 

 

 

  1. Версии

Версии выходят регулярно. Выпущена 6-я версия. Пре­дыдущая 5-я версия по срав­нению с 4.7 выглядит хоро­шим эволюционным этапом. Новые версии подолгу тести­руются. Ядро стабильное. Ошибки в востребованных модулях обычно исправляют­ся оперативно.

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

Хотя официально и заявлено, что версии WordPress будут выходить по графику, на самом деле этого не происходит. Если обнаруживается какая-либо серьезная «дыра», то разработчики опреративно выпус­кают обновление, поэтому график версий сбива­ется.

10

9

5

  1. Русская документация

Несмотря на то, что русское сообщество занимается пере­водом документации на Drupal, белых пятен еще много. Ситуация отчасти компенсируется самописны­ми статьями и руководства­ми. Документация на модули по большей части не переве­дена.

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

WordPress обладает очень большой документацией , но только на ан­глийском языке. Составлена она грамотно и практически не требует особого знания языка. Документа­ция построена таким об­разом, что позволяет довольно быстро найти нужный ответ.

9

10

8

  1. Русское комьюнити/поддержка

Русское сообщество развива­ется, причем достаточно бур­но, поскольку в последнее время о Drupal много говорят в русском интернете. Есть люди разбирающиеся в архи­тектуре. Широкая поддержка на форуме. В целом сообще­ство открытое и дружелюб­ное.

Существует два различных сообще­ства, ведущих свои форумы и сайты поддержки. Наличие конку­ренции подталкивает команды к качеству разработки.

У русского WordPress'а есть два официальных сайта. Поддержка пользователей осуществляется че­рез форумы добровольцами­ми. Су­ществует много блогов, где их ав­торы выкладывают и делятся самы­ми разны­ми находками и ре­шениями по WordPress

10

8

10

  1. Борьба со спамом

Широкий выбор всевозмож­ных решений от механическо­го до аналитического филтра посетителей.

Борьба со спамом в интернете на данный момент ве­дется только в одном ме­сте— комментарии к пуб­ликациям.

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

10

6

9

  1. Интеграция с форумом

Базовый пакет Drupal содер­жит достаточно функциональ­ный форум, который подойдет для организации небольших сообществ. Для организации больших сооб­ществ он тоже, впрочем, подойдет— на фо­руме drupal.org сейчас более 320 000 сообщений.
Есть модераторы, группы пользователей с разными пра­вами доступа, извещения по email, аватары, подписи, RSS. Преимущество встроен­ного форума— единая база поль­зователей, которую использу­ют остальные части сайта. Есть возможность ин­теграции с PHPBB.

Вместе с Joomla не поставляется компонента форума, однако на дан­ный момент самым оптимальным вари­антом создания встроенно­го форума является FireBoard и его русская ре­дакция от Adeptus'а. Что же касается интеграций— они су­ществуют. Самой распространен­ной является связка Joomla-SMF, под которую есть не одна интегра­ция, даже коммерческая.

Для WordPress'а разработан и реко­мендуется форум BBPress (есть и руссификация), который полно­стью интегрируется в блог. Правда, возможности у этого форум более чем скромные. На официальном сайте WordPress'а используется именно этот форум. Также суще­ствуют плагины, которые позволя­ют частично интегрировать некото­рые популярные форумы в блог. Для этого требуются хорошие зна­ния программирования, и при этом, все равно стопроцентной интегра­ции не получится— все-таки это разные системы.

10

7

7

  1. Визуальный редактор

В Drupal можно встроить TinyMCE или FCKEditor. И тот и другой гибко настраива­ются. Оба являются мощ­ными средствами. В TinyMCE, например, можно работать с таблицами, добав­ляя и удаляя строки и столбы и объединяя ячейки, может фильтровать скопированные из Ворда тек­сты от избыточ­ных тегов.

Таковых под нее множество: в основном это портированные и са­мые распространенные редакторы. Од­нако самым удобным и хо­рошим из бесплатных яв­ляется редактор JCE, разра­ботанный специально для Joomla (а изначально еще для Mambo, тогда он назывался MosCE), способный составить очень хорошую альтернативу плат­ному WysiwygPro.

Стандартно в WordPress'е исполь­зуется немного урезанный TinyMCE и простой текстовый ре­дактор (переключение между ними «на лету»). Нужно отметить, что в WordPress'е есть возможность сто­ронним плагинам добавлять кноп­ки в редактор. Таким образом мож­но например получить функции для добавления видео, аудио и т.д.

10

10

10

  1. Работа с изображениями

Поддерживается изменение размеров картинки при за­грузке и генерация изображе­ний preview.

Существует три типа расширений - компонент, модули и мамботы. Причем каждый тип расширений позволяет решать свои типы задач, что позволяет добавлять фактиче­ски лю­бой новый функционал не залезая в "ядро". (extensions.joomla.org).

В WordPress'е вполне удобно мож­но добавлять картинки в редактор. Автоматически будет сделана ми­ниатюра. То есть расчет на то, что­бы с этой задачей справился неопытный пользователь.

9

10

8

  1. Шаблоны оформления

Движок шаблонов— сильная сторона Drupal. Этот компо­нент добротно спроектиро­ван, поэтому разобраться с инте­грацией своих шаблонов смо­жет начинающий PHP-про­граммист. Вообще Drupal предоставляет целый букет возможностей по управле­нию темами: можно настраи­вать цвета разных элементов пря­мо из админ интерфейса.

Joomla ветки 1.0.х не поддерживает шаблоны. Конечно, в ней есть об­щий и большой шаблон, позволяю­щий на PHP со­здавать вполне за­мысловатые структуры общей структуры сайта и располо­жения модулей, но вот шаблонизации отдельных элементов нет, и все ограничивается примением CSS

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

10

5

9

  1. Расширенная функциональность (плагины)

Сейчас в официальном репо­зитории хранится под тысячу бесплатных модулей. Среди прочих есть решение для электронной коммерции, CRM-система, wiki-движок. Еще отмечу модули Views и CCK, которые дают Друпалу полное право именоваться CMF, а не CMS. CCK (Content Construction Kit), к примеру, позволяет при по­мощи графи­ческого интер­фейса описы­вать объекты предметной об­ласти в базе данных и сразу же создавать формы для управления ими.

Их существует несколько видов, есть специальная си­стема установ­ки, позволяющая при помощи xml-файла описывать все действия необходимые для соверше­ния при создании записи о расширении (например, SQL-запросы, копируе­мые файлы или действия выполняе­мые сразу после установ­ки, которые нельзя вы­полнить авто­матически).

WordPress можно расширить за счет плагинов— это различные php-скрипты, которые автоматиче­ски подключаются к основному «ядру». Таким образом можно не просто добавить нужную функцио­нальность, но и изменить уже су­ществующую. Плагинов для WordPress написано несколько ты­сяч (только на одном wp-plugins.net— 2568, но думаю, что целом цифру можно удвоить), поэтому можно найти плагин прак­тически под любые нужды.

10

9

10

  1. Виджеты/блоки

В Drupal это называется «бло­ки». Их можно распола­гать в разных областях стра­ниц в за­висимости от воз­можностей шаблона. В каж­дой области блоки можно сортировать для управления порядком вывода. Изначаль­но областей пять— шапка, центральная, левая и правая колонки, подвал. Бло­ки мож­но показывать не на всех страницах.

Отсутствует.

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

10

0

7

  1. Современные «фишки»: трекбаки, пинги, XML-RPC, RSS

Друпал популярен в мире, поэтому все инновационные решения быстро реализуют­ся. В базовом пакете есть воз­можность ведения блога по­средствам блогового кли­ента. Есть модуль, пингую­щий спе­циальные каталоги Drupal-сайтов.

Joomla это CMS, и говорить о вне­дрении таких вещей можно только на уровне сторонних компонентов.

Трекбаки, пинги поддерживаются уже давно. Причем для их исполь­зования не нужно вообще никаких дополнительных действий: все ра­ботает на уровне «движка». Что ка­сается XML-RPC, то WordPress поддерживает сразу несколько API, поэтому добавлять/редактировать записи в WordPress можно с мно­гих программ блог-клиентов или он-лайн, например с помощью Google-Docs.
WordPress полностью поддержива­ет RSS и Atom. Можно подписаться на последние записи блога, опреде­ленной рубрики, комментарии или все комментарии. С помощью отдельного плагина можно сделать автоматическую переадресацию RSS-ленты блога на feedburner.com.

10

4

8

  1. Кодировки

Drupal работает на UTF-8. Ка­ких-то забытых строковых функций, не работающих с UTF-8 я не замечал. Некото­рые хостеры по старинке отдают страницы в cp1251, но это легко чиниться. Проблемы с MySQL тоже обычно реша­ются одной строчкой кода.

Все проблемы с русской версий в кодировке CP1251 уже давно реше­ны и на не слишком высоких верси­ях MySQL проблем почти не вызы­вают, нужно лишь по­читать доку­ментацию. Си­стема сама выбирает нуж­ную конфигурацию подключе­ния в зависимости от версии MySQL. С аяксом все сложно

В самом WordPress'е есть возмож­ность установить любую кодиров­ку. Главное, что­бы кодировка базы данных совпадала с кодировкой блога. Правда, начиная с версии 2.1 WordPress должен работать в UTF-8. Это напрямую связано с ис­пользованием AJAX. Поэтому для русскоязычных пользователей основная проблема состоит только в том, что на серверах часто стоит CP1251. Сейчас можно довольно уверенно сказать, что особых проблем с кодировками в WordPress'е нет.

9

9

10

  1. Комментирование

Комментарии в блогах могут быть и «плоскими» («flat») и древовидными («treaded»). Всё это находится в базовом пакете. Извещения по email делаются внешним модулем.

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

Для любой записи можно разре­шить или запретить комментирова­ние. При помощи отдельных пла­гинов можно сделать древовидные комментарии, а также разбить отображение комментариев по страницам. Есть также плагин (ра­ботает на AJAX), который позволя­ет в течение некоторого времени редактировать посетителю свой комментарий.

8

7

10

  1. Экспорт/импорт данных

Для Друпала написано много разных конвертеров, в основ­ном связанных с форумными миграциями. Любые 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 открытая система, позволяющая легко и не­принужденно расширять возможности, имеющая большой репозитарий созданного специалистами функционала, масштабируемая для построения любого ресурса. Рекомендована лучшими специа­листами в области разработки и сборки полно­масштабных сайтов.
 
Вместо таблицы построить график