В случае использования общей библиотеки возможно повторное использование одних и тех же изображений, однако, при большом их количестве затруднен поиск, а также удаление ненужных. В случае связывания изображений с конкретным документом, повторного использования нет (для системы одно и то же изображение, присоединенное к двум документам, будет двумя разными), но это упрощает выбор и гарантирует автоматическое удаление изображений одновременно с самим документом.
Системы управления контентом позволяют нетехническому специалисту публиковать информацию на сайте и выполнять простейшие операции по форматированию текста. Выделить текст курсивом на сайте ничем не сложнее, чем выполнить аналогичную операцию в Microsoft Word. И данная возможность во всех системах реализована практически одинаково.
1.3 Разделение данных и их представления
Прежде всего, договоримся об используемой терминологии в применении к CMS:
· Документ (статья) – единица публикуемой информации. Документом может быть одного из типов документов, используемых на сайте – новость, статья, товар и т.д.
· Атрибут – один из признаков документа. Каждый документ обладает набором признаков – атрибутов. Например, для новости атрибутами являются название, автор, аннотация, текст, дата создания.
· Тип документа – обобщенное понятие документов, обладающих одинаковыми характеристиками. Например, «новость». Подразумевается, что ранее было описано, какими атрибутами обладают документы типа «новость» и далее создаем документы этого типа.
· Структурированные данные – представление данных, при котором каждый атрибут документа представлен отдельно и с ним могут выполняться независимые операции.
Как было отмечено ранее, одним из преимуществ использования CMS является структурирование информации и разделение содержимого и его представления (данных и дизайна):
· Разделение содержимого и его представления предоставляет гарантию сохранения внешнего вида – при разделении информации и ее представления оператор вводит значение каждого атрибута в отдельное поле и может быть уверен, что оно отобразиться в нужном месте, как определено в настройках отображения. Например, мы хотим, чтобы имя автора статьи всегда отображалось под названием, было выровнено вправо и выделено жирным шрифтом. Если оператор вводит только значение, то он уверен, что данные будут отображены где нужно и как нужно. Иначе он обязан помнить о принятом стиле и вручную выполнять данное форматирование.
· Разделение содержимого и его представления предоставляет возможность применения дополнительного сервиса – когда атрибуты хранятся отдельно, с ними можно выполнять дополнительные операции. Например, если у нас автор статьи хранится как отдельное поле, то очень легко просмотреть все статьи данного автора. Если имя автора хранится в тексте статьи, то формирование списка статей автора является отдельной ручной операцией.
· Разделение содержимого и его представления предоставляет возможность интеграции с внешними системами – быстрый экспорт новостей или товаров для обмена с другими ресурсами – сайтами, внутренними системами и т.д.
· Разделение содержимого и его представления позволяет снизить стоимость смены дизайна – для изменения внешнего вида сайта нет необходимости в ручной переработке каждого документа. Изменяются только шаблоны отображения и вся информация может быть быстро представлена в другом виде.
· Разделение содержимого и его представления предоставляет возможность использования одной информации в разных дизайнах – это особенно используется последнее время при создании информационных систем холдингов, когда вся информация хранится в центральной системе, но может быть показана, как на сайте холдинга, так и на сайте отдельного предприятия, но в разных дизайнах.
Исходя из вышесказанного сформулируем основные задачи, которые решает CMS (система управления содержимым сайта):
· Публикация информации нетехническим специалистом.
· Разделение данных и их представления.
· Организация совместной работы при публикации информации.
· Поисковые возможности.
· Дополнительные сервисы – форумы, голосования, анкеты и т.д.
1.4 Существующие решенияCMS
CMS – один из наиболее конкурентных рынков приложений сегодня. В миру существует несколько тысяч или десятков тысяч подобных приложений. Выделим основные классы таких приложений:
· Системы с закрытым исходным кодом
· Системы с открытым исходным кодом
Существует множество приложений с закрытым исходным кодом от крупных производителей, в основном предназначенных для крупных предприятий и организаций.
Наиболее известными приложениями такого класса являются Microsoft Content Management Server, Documentum, Plumtree Portal, IBM WebSphere Portal.
Стоимость внедрения проектов на базе данных решений высока. Поэтому сфера их применения узкая и ограничивается в основном созданием интранет-решений для крупных предприятий.
Другим достаточно большим классом являются системы с открытым исходным кодом (OpenSource). Преимуществами таких систем является доступность, наличие исходного кода, возможность локализации. Однако их использование связано со следующими проблемами:
· Отсутствие техподдержки – системы предлагаются в основном без технической поддержки и все проблемы, связанные с использованием таких систем разработчик должен решать самостоятельно.
· Узкая сфера применения – чаще всего продукт явился побочным результатом решения одной из собственных задач.
Например, разработчики создали сайт-сообщество для общения между собой. И далее решение, на котором работает этот сайт, предлагается как CMS.
Очевидно, что подобное решение может хорошо решать задачи создания такого же рода сайтов, но может быть совершенно неприспособленно для решения задач другого плана (электронная коммерция, b2b и т.д.)
Наиболее известными примерами таких систем являются OpenCMS, PhpNuke, PostNuke, Portal Starter Kit и т.д.
За несколько лет системы управления содержимым веб-ресурсов значительно усовершенствовались. Классифицируем CMS по областям применения:
· Порталы. Используются для информационных ресурсов, основной целью ставят максимальное упрощение публикации статей и новостей. Могут включать в себя нижеперечисленные типы CMS как самостоятельные модули. Наиболее известные представители данного класса: AngelineCMS, Bes-cms, CoolPHP, CPG-Nuke, вебZE, Xaraya, xNuke, XOOPS и др.
· Движки без SQL. Это ответвление в разработке CMS развито относительно слабо, так как использование в качестве хранилища информации файлов вместо таблиц базы данных сопряжено с множеством труднорешаемых проблем. Достоинство этих CMS – в доступности для модификации контента и возможности размещения на бесплатных хостингах. Есть несколько реализаций данной идеи: Cute News, DeeLight CMS, Progressive, SAPID.
· Блог. Происходит от англ. weblog. Русский термин – «сетевой дневник» – это сайт, на котором находятся личные заметки автора. В основном заметками являются ссылки на сайты, которые кажутся владельцу ресурса наиболее интересными, и комментарии к ним. Блог может содержать не только ссылки, но и просто электронный дневник пользователя. К этой категории можно отнести следующие CMS: b2evolution, bBlog, BLOG:CMS, MyPHPblog, Nucleus, pLog, pMachine Free, Serendipity, Textpattern, WordPress, XHP.
· Форумы – это инструмент для общения на сайте. Сообщения в форуме в чем-то похожи на почтовые – каждое из них имеет автора, тему и содержание. Но для того, чтобы отправить сообщение в форум, не нужна никакая дополнительная программа – нужно просто заполнить соответствующую форму на сайте. Принципиальное свойство форума заключается в том, что сообщения в нем объединены в треды (от англ. thread – «нить»). Когда вы отвечаете в форуме на чье-то сообщение, ваш ответ будет «привязан» к исходному сообщению. К форумам, достойным внимания, можно причислить FUDforum, openBB, Phorum, phpBB, PunBB, W-Agora, XMB, Zorum, ExBB, IPB, vBulletin.
· Магазины. К магазинам отнесем любой сайт, с которого можно заказать какой-либо товар. В данном случае в определение «товара» может входить абсолютно все, включая время доступа в Интернет, минуты сотовой связи. CMS, позволяющие создать виртуальный магазин: MyMarket, osc2nuke, osCommerce, Zen Cart.
· Групповая работа (Groupware) – комплекс программного обеспечения, позволяющий организовать работу предприятия, отношения с клиентами и заказчиками в Интернете. Обычно представляет собой полностью или частично закрытую часть сайта с возможностью отслеживать сроки выполнения поставленных задач, распределение ролей и временных нормативов. Иногда можно выносить вопросы на обсуждения и решения вышестоящего руководства. Как правило, пользуются следующими CMS: dotProject, eGroupWare, MoreGroupware, phpCollab, PHProjekt.
· Обучение (e-Learning) – дистанционная форма обучения с использованием Интернета. Онлайновая форма обучения уже не один год является «маяком», на который ориентируются образовательные системы разных стран мира. Главным стратегическим направлением является быстрое обновление знаний и эффективное использование информации.
Такихсистемнемного: ATutor, Claroline, LogiCampus, Moodle, Segue, Site@School.
· Базы знаний (KnowledgeBase) позволяют накапливать опыт множества разработчиков. Каждая такая база знаний имеет свою специфичную структуру, поэтому никаких общих решений на данный момент не предложено. Самая известная из существующих баз знаний – RFC [Request For Comment] – запрос на комментирование. Обычно описание работы с каким-либо протоколом и т.п.
· Биллинг (Billing). Программное обеспечение, позволяющее провайдерам и реселлерам работать со счетами клиентов. Такие CMS являются неотъемлемой частью крупной системы учета потребления услуг пользователями. Задача же CMS данной категории – в отображении информации о предоставленных услугах, подключении новых услуг, изменении текущих параметров, приеме платежей и т.п. Часто такие системы пишутся своими силами. Для примера можно привести биллинг-панель RuWEB. В ней создано огромное количество тарифных планов, позволяющих платить только за те параметры хостинга (трафик, место на жестком диске, MySQL, PHP, Perl…), которые используются в полном объеме.