Разделение данных и их представления
Одним из преимуществ использования CMS является структурирование информации и разделение содержимого и его представления (данных и дизайна).
Разделение содержимого и его представления предоставляет гарантию сохранения внешнего вида – при разделении информации и ее представления оператор вводит значение каждого атрибута в отдельное поле и может быть уверен, что оно отобразиться в нужном месте, как определено в настройках отображения.
Разделение содержимого и его представления предоставляет возможность применения дополнительного сервиса – когда атрибуты хранятся отдельно, с ними можно выполнять дополнительные операции. Если автор статьи хранится как отдельное поле, то очень легко просмотреть все статьи данного автора. Если имя автора хранится в тексте статьи, то формирование списка статей автора является отдельной ручной операцией.
Разделение содержимого и его представления предоставляет возможность интеграции с внешними системами – быстрый экспорт новостей или товаров для обмена с другими ресурсами – сайтами, внутренними системами и т.д.
Разделение содержимого и его представления позволяет снизить стоимость смены дизайна – для изменения внешнего вида сайта нет необходимости в ручной переработке каждого документа. Изменяются только шаблоны отображения и вся информация может быть быстро представлена в другом виде.
Разделение содержимого и его представления предоставляет возможность использования одной информации в разных дизайнах – это особенно используется последнее время при создании информационных систем холдингов, когда вся информация хранится в центральной системе, но может быть показана, как на сайте холдинга, так и на сайте отдельного предприятия, но в разных дизайнах.
Исходя из вышесказанного можно сформулировать основные задачи, которые решает CMS (система управления содержимым сайта):
– публикация информации нетехническим специалистом;
– поисковые возможности;
– дополнительные сервисы – публикация отзывов, работа с платежными системами и т.д.;
– управление пользователями сайта и административной системы;
– динамическое макетирование;
– высокая скорость обработки информации.
Существующие решения CMS
CMS – один из наиболее конкурентных рынков приложений сегодня. В мире существует несколько тысяч или десятков тысяч подобных приложений. Основными классами таких приложений являются:
-системы с закрытым исходным кодом;
-системы с открытым исходным кодом.
Существует множество приложений с закрытым исходным кодом от крупных производителей, в основном предназначенных для крупных предприятий и организаций.
Наиболее известными приложениями такого класса являются Microsoft Content Management Server, Documentum, Plumtree Portal, IBM WebSphere Portal.
Стоимость внедрения проектов на базе данных решений высока. Поэтому сфера их применения узкая и ограничивается в основном созданием интернет-решений для крупных предприятий.
Другим достаточно большим классом являются системы с открытым исходным кодом (Open Source). Преимуществами таких систем является доступность, наличие исходного кода, возможность локализации. Однако их использование связано со следующими проблемами:
-отсутствие техподдержки – системы предлагаются в основном без технической поддержки и все проблемы, связанные с использованием таких систем разработчик должен решать самостоятельно.
-узкая сфера применения – чаще всего продукт явился побочным результатом решения одной из собственных задач.
Наиболее известными примерами таких систем являются OpenCMS, PhpNuke, Drupal, Joomla, Wordpress, MaxyStore и т.д.
Классификация CMS
За несколько лет системы управления содержимым веб-ресурсов значительно усовершенствовались. Классифицируем CMS по областям применения:
1) Порталы. Используются для информационных ресурсов, основной целью ставят максимальное упрощение публикации статей и новостей. Могут включать в себя нижеперечисленные типы CMS как самостоятельные модули. Наиболее известные представители данного класса: AngelineCMS, Bes-cms, CoolPHP, CPG-Nuke, вебZE, Xaraya, xNuke, XOOPS и др.
2) Движки без SQL. Это ответвление в разработке CMS развито относительно слабо, так как использование в качестве хранилища информации файлов вместо таблиц базы данных сопряжено с множеством труднорешаемых проблем. Достоинство этих 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) Магазины. К магазинам отнесем любой сайт, с которого можно заказать какой-либо товар. В данном случае в определение «товара» может входить абсолютно все, включая время доступа в Интернет, минуты сотовой связи. CMS, позволяющие создать виртуальный магазин: MyMarket, osc2nuke, osCommerce, Zen Cart.
6) Групповая работа (Groupware) – комплекс программного обеспечения, позволяющий организовать работу предприятия, отношения с клиентами и заказчиками в Интернете. Обычно представляет собой полностью или частично закрытую часть сайта с возможностью отслеживать сроки выполнения поставленных задач, распределение ролей и временных нормативов. Иногда можно выносить вопросы на обсуждения и решения вышестоящего руководства. Как правило, пользуются следующими CMS: dotProject, eGroupWare, MoreGroupware, phpCollab, PHProjekt.
7) Обучение (e-Learning) – дистанционная форма обучения с использованием Интернета. Главным стратегическим направлением является быстрое обновление знаний и эффективное использование информации.
Таких систем немного: ATutor, Claroline, LogiCampus, Moodle, Segue, Site@School.
8) Базы знаний (KnowledgeBase) позволяют накапливать опыт множества разработчиков. Каждая такая база знаний имеет свою специфичную структуру, поэтому никаких общих решений на данный момент не предложено. Самая известная из существующих баз знаний – RFC – запрос на комментирование. Обычно описание работы с каким-либо протоколом и т.п.
9) Биллинг (Billing). Программное обеспечение, позволяющее провайдерам и реселлерам работать со счетами клиентов. Такие CMS являются неотъемлемой частью крупной системы учета потребления услуг пользователями. Задача же CMS данной категории – в отображении информации о предоставленных услугах, подключении новых услуг, изменении текущих параметров, приеме платежей и т.п. Часто такие системы пишутся своими силами. Пример такой системы - биллинг-панель RuWEB. В ней создано огромное количество тарифных планов, позволяющих платить только за те параметры хостинга (трафик, место на жестком диске, MySQL, PHP, Perl…), которые используются в полном объеме.
10) Администраторская панель хостинга. К этому классу относятся такие продукты, как Direct Admin и Control Panel.