Что такое CMF, CMS. Сравнительный анализ популярных CMS для разработки сайтов.



УДК:

Арсирий Е.А.

Винин П.С.

Одесский национальный политехнический Университет

адрес: пр-т Шевченко, 1а.

Индекс 65000?

Резюме: В данной статье приводятся основные требования к созданию CMF, описываются технологии использующиеся сегодня при создании CMS. Проводится сравнение основных популярных систем CMS использующихся при создании сайтов.

Keywords: CMS - CMF - Drupal - software framework - Application Programming Interface,API - 1,

Введение

     С появлением новых информационных технологий наблюдается  постоянный рост требований к интерактивности и удобствам  пользования веб-сайтов (юзабилити). На смену сайтам-страничкам и сайтам-визиткам приходят так называемые «управляемые» сайты, когда пользователю предоставляют возможность редактировать структуру сайта независимо от его наполнения, размещать новый контент (информацию), не прибегая к помощи разработчика, управлять содержимым — любым информационно значимым наполнением информационного ресурса (например, веб-сайта) — тексты, графика, мультимедиа — вся информация, которую пользователь может выгрузить: новости компании, специальные предложения или акции, каталог продукции или услуг компании и прочее. Претерпевает большие изменения и интернет-торговля. Сайты-каталоги (веб-витрины), интернет-магазины с традиционными корзиной покупок и формой оформления заказа on-line вытесняют полноценные CRM системы (Customer Relationship Management - управление взаимоотношениями с клиентами) на современных Интернет ресурсах.

Постановка задачи

Для таких систем характерна работа каждым клиентом индивидуально. Это и «Личные корзины», позволяющие набирать товары, которые вы покупали ранее, «История покупок», ведущаяся с начала вашей регистрации в Интернет-магазине, «Система накопительных скидок», «Система поддержки нескольких адресов доставки» и т.д. В настоящее время в сети появляется все больше всевозможных «on-line» сервисов таких как произвести оплату кредитной картой on-line, оплатить услуги доступа Интернет, пополнить счет на мобильном телефоне, сделать электронную фотографию, смонтировать видео-ролик и т.д. Все перечисленное приводит к тому что современные веб-разработки это полноценные программные продукты (дистанционные информационные системы), требующие для своего создания полноценную программную среду или Программный фреймворк (англ. software framework) — программная среда, позволяющая строить сложные приложения используя заранее представленный единый интерфейс или API.(Интерфейс прикладного программирования (англ. Application Programming Interface, API — набор готовых констант, структур и функций, используемых при программировании пользовательских приложений и обеспечивающих правильное взаимодействие между пользовательским приложением и операционной системой. ) Программный фреймворк может включать вспомогательные программы, библиотеки кода, язык сценариев и другое программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта. Общее отличие от библиотеки в том, что выполняет код написанный для него, а не исполняется сам. Пример программного каркаса — CMF (Content Management Framework), а пример библиотеки — модуль электронной почты. Также, в отличие от библиотеки, которая объединяет в себе набор близкой функциональности, фреймворк содержит в себе большое число разных по тематике библиотек. При этом использование единого API позволяет безболезненно развивать фреймворк и использовать собственные расширения в будущих проектах. Программисты каждой компании сами решают писать ли собственный движок для управления содержимым или использовать готовые решения. Для создания собственных готовых решений используют один или несколько software framework's исходя из нужд проекта. В сегодняшние дни скорость при создании программного продукта важна не меньша качества работы. Оперативность появления на рынке и реакция на изменения имеют высокую стоимость в данной сфере. Соответственно легче использовать готовые наработки чем писать каждый раз один и тот же функционал для проектов. Поэтому разработки отдельных ведущих специалистов объединяются что дает так называемый Content Management Framework (CMF) — каркасная система для управления содержимым. CMF — это инструментарий для создания систем управления содержимым, а также веб приложений вообще. Ряд 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. Данные системы ориентированы на профессиональных разработчиков, и обычно представляют собой набор библиотек, объединенных общей парадигмой. Как правило, такие системы предоставляют практически неограниченный набор возможностей для программиста, облегчая процесс разработки сайта и расширения его функционала в будущем, за что, впрочем, приходится платить необходимостью более глубокого ознакомления с системой.

Таблица 1. Бесплатные SF имеющие характерные особенности CMF

Название  

Платформа  

Поддерживаемые БД  

Текущая версия  

Лицензия  

Zend Framework

PHP 5

MySQL, Oracle, PostgreSQL, MS SQL, SQLite

1.9.2

BSD

CakePHP

PHP 4/5

PostgreSQL, MySQL, SQLite

1.2.3.8166

MIT

Symfony

PHP 5

MySQL, Oracle, PostgreSQL, MS SQL, SQLite

1.1

MIT

CodeIgniter

PHP 4/5

MySQL, Oracle, PostgreSQL, MS SQL, SQLite

1.7.1

BSD

YII

PHP 5

MySQL, MS SQL, SQLite

1.1.x

BSD

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

Таблица 2. Бесплатные системы, совмещающие в себе свойства CMS и CMF

Название

Платформа

Поддерживаемые БД  

Текущая версия  

Лицензия  

TYPO3

PHP

MySQL,PostgreSQL

4.2.6

GPL

MODx

PHP

MySQL

0.9.6.3

GPL

Drupal

PHP

MySQL,PostgreSQL

6.13

GPL

 

 

 

C помощью этих систем чаще всего создаются дистанционные программные продукты. Для их создания всего используются языки PHP — Cake, Zend, Xevian. В сегодняшние дни скорость при создании сайта важна не меньша качества работы. Оперативность появления на рынке и реакция на изменения имеют высокую стоимость в данной сфере. Соответственно легче использовать готовые наработки чем писать каждый раз один и тот же функционал для проектов. Грамотно созданные классы и функции можно использовать во всех проектах, и расширять имеющийся API бесконечно. Собственно и сами системы управления содержимым, создающиеся на основе SMF претерпели колоссальные изменения. Сегодня систе́ма управле́ния содержи́мым/конте́нтом (англ. Content management system, CMS) — компьютерная программа или система, используемая для обеспечения и организации совместного процесса создания, редактирования и управления текстовых и мультимедиа документов (содержимое или контента). Обычно это содержимое рассматривается как неструктурированные данные предметной задачи в противоположность структурированным данным, обычно находящимися под управлением СУБД. Такая система не нуждается в профессиональном разработчике для поддержки и расширения функциональности. Появилась новая задача — оперативное добавление и управление информацией. Появилась новый вид деятельности контент-менеджер, -обозначает род профессиональной деятельности — редактор сайта. При эта работа требует минимальных знаний языков разработки и разметки страниц. Большая часть современных систем управления содержимым реализуется с помощью визуального (WYSIWYG) редактора — программы, которая создаёт HTML-код из специальной упрощённой разметки, позволяющей пользователю проще форматировать текст.

Сегодняшний принцип работы CMS: генерация страниц по запросу. Системы такого типа работают на основе связки «Модуль редактирования → База данных → Модуль представления». Модуль представления генерирует страницу с содержанием при запросе на него, на основе информации из базы данных. Информация в базе данных изменяется с помощью модуля редактирования. Страницы заново создаются сервером при каждом запросе, что в свою очередь создаёт дополнительную нагрузку на системные ресурсы. Нагрузка может быть многократно снижена при использовании средств кэширования, которые имеются в современных веб-серверах. Ранее используемый способ - генерация страниц при редактировании. Системы этого типа суть программы для редактирования страниц, которые при внесении изменений в содержание сайта создают набор статических страниц. При таком способе в жертву приносится интерактивность между посетителем и содержимым сайта.

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

Сейчас существует множество готовых систем управления содержимым сайта, в том числе и бесплатных. Тем не менее наличие проприетарных CMS все еще актуально.

Drupal, Joomla и WordPress — бесплатные системы управления, на основе которых можно создавать функциональные и легко управляемые сайты без серьезных финансовых затрат. Попробуем провести анализ и сравнить эти системы между собой. Мы выбрали наиболее важные аспекты, которые скорее всего заинтересуют разработчиков, планирующих построить программный продукт на базе cms/cmf решений.

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

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

Теперь выделим наиболее важные для разработчика и пользователя критерии и оценим их по 10ти бальной шкале для каждой из трех популярных систем