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

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

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

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

Под контентом (дословный перевод английского термина content, означающего содержание, содержимое) понимают информационное наполнение сайта - то есть все типы материалов, которые находятся на сервере: web-страницы, документы, программы, аудио-файлы, фильмы и так далее. Таким образом, управление контентом - это процесс управления подобными материалами. Он включает следующие элементы: размещение материалов на сервере, удаление материалов с сервера, когда в них больше нет необходимости, организацию (реорганизацию) материалов, возможность отслеживать их состояние.

Системы управления контентом (в английском языке существует устоявшийся термин -Content Management Systems или, сокращенно, CMS) - это программные комплексы, автоматизирующие процедуру управления контентом.

Функции систем управления контентом можно разделить на несколько основных категорий:

1. Создание - предоставление авторам удобных и привычных средств создания контента.

2. Управление - хранение контента в едином репозитории. Это позволяет следить за версиями документов, контролировать, кто и когда их изменял, убеждаться, что каждый пользователь может изменить только тот раздел, за который он отвечает. Кроме того, обеспечивается интеграция с существующими информационными источниками и ИТ-системами. СМБ поддерживает контроль над рабочим потоком документов, т.е. контроль за процессом их одобрения. Таким образом, управление контентом включает в себя хранение, отслеживание версий, контроль за доступом, интеграцию с другими информационными системами и управление потоком документов.

3. Публикация - автоматическое размещение контента на терминале пользователя. Соответствующие инструменты автоматически адаптируют внешний вид страницы к дизайну всего сайта.

4. Представление - дополнительные функции, позволяющие улучшить форму представления данных; например, можно строить навигацию по структуре репозитория.

Системы управления контентом делятся на четыре основных категории, которые частично перекрываются:

1. Системы управления исходными кодами традиционно поддерживают управление исходными кодами программ, и часто предоставляют некоторый web-интерфейс, который может использоваться внутри корпоративной сети, а также вне ее для параллельной работы с исходными кодами.

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

3. Системы управления web-контентом представляют собой новую индустрию программных продуктов. Эти системы предназначены для разработки и управления Web-сайтами различной степени сложности. Обычно такие системы поддерживают и некоторый тип управления потоками работ.

4. Системы электронной коммерции - обеспечивают хранение и управление электронными каталогами товаров. По сути, эти системы незначительно отличаются друг от друга. Самое главное отличие этих систем - это люди, которые их используют.

Использование СМБ предоставляет следующие преимущества:

1. Оперативное обновление информации - информацию публикует сотрудник, владеющий информацией, без дополнительных посредников в виде технических специалистов. СМБ предназначены для автоматизации процесс публикации информации на web-сайте, предоставляя пользователям возможность самим публиковать материалы в WWW и определять их визуальное представление, используя для этого стандартные средства, не требующие знания языка ИТМЬ и достаточно сложных для неспециалиста процедур. С помощью СМБ можно, не будучи профессиональным разработчиком, создавать и модифицировать информационное наполнение сайтов.

2. Снижение стоимости поддержки - обновление информации производится самостоятельно, нет необходимости оплачивать труд собственного или внешнего web-мастера. Снижение стоимости происходит за счет снижения потерь времени на поиски документов, пресечения дублирования и ошибок, увеличения скорости связи с партнерами и клиентами.

3. Предоставление дополнительных сервисов пользователю - часть сервисов - поиск, форумы, голосования и т.д., требуют интерактивного взаимодействия с пользователем. Они уже реализованы в рамках CMS.

4. Уменьшение сроков и стоимости разработки - наиболее востребованная функциональность уже реализована в CMS и может быть сразу использована.

5. Повышение качества разработки - при разработке полностью или частично используются готовые модули, которые уже прошли неоднократное тестирование.

6. Снижение стоимости дальнейших модификаций - CMS позволяют разделить данные и их представление. Это позволяет гораздо проще изменить внешний вид сайта, чем в случае со статическим сайтом.

Среди CMS-систем часто выделяют так называемые каркасы (content management framework, CMF) - инструментарии для создания системы.

Разработкой систем управления контентом занимаются многие компании, в том числе IBM, Microsoft, Oracle, Macromedia.

В последнее время начали появляться организации, пытающиеся объединить разработчиков CMS, создать единую информационную среду для потенциальных пользователей подобных систем, продвигать и утверждать единые стандарты. Прежде всего, это ассоциации OSCOM (Open Source Content Management), и CMSWatch.

OSCOM утвердила такие стандарты, как WebDav, RSS, ATOM и JSR-170.

В свою очередь, CMSWatch ежегодно выпускает отчет, включающий в себя обзор рынка CMS-систем, сравнение некоторых из них, описание жизненного цикла контента и управления им в CMS-системах.

Существует классификация CMS, основанная на модели представления данных - объектной, сетевой или модульной.

Объектная модель представления данных оперирует такими понятиями, как класс и объект. Классы определяют структуру данных и представляют собой набор атрибутов (текстовая строка, целое число, изображение и т.д.). Экземпляры класса (объекты) имеют определенную структуру и могут содержать другие объекты, образуя произвольную иерархическую структуру. Объекты могут наследовать свойства, содержание и поведение объектов, которые в них содержатся. Примерами объектов служат документы, картинки, папки и учетные записи пользователей. Класс контента не хранит в себе реальных данных

- такую информацию содержат объекты (экземпляры класса). Определив один класс, можно создать множество его представителей (контент объектов).

В CMS-системах данные обычно хранятся в реляционной или объектной базе данных. В первом случае объектная модель данных отображается на реляционную модель базы данных.

Как правило, системы, основанные на объектно-ориентированной модели данных, наиболее функциональные, гибкие, но, в то же время, и наиболее сложные.

Данная модель представления данных опирается на теорию графов: структура информации представляется в виде узлов с помеченными связями между ними. Фундаментом системы может служить как сетевая, так и традиционная реляционная СУБД, на которую отображена сетевая модель описания данных. В реляционных таблицах хранится информация об узлах, их атрибутах и связях между ними. Связь отличается от атрибута тем, что в ней хранится ссылка на другой узел, а в атрибуте - собственно значение. Для извлечения данных из направленного графа обычно используются рекурсивные процедуры обработки, такие как составление списков узлов, определение атрибутов узла по атрибутам родителя и др.

В подобных системах контент разделен на отдельные модули по типам содержимого. Структура данных зависит от модуля, и вся работа с контентом сосредоточена внутри модуля. Модули независимы и полностью отвечают за работу с документами данного типа. Документы описываются с помощью фиксированного набора характеристик - типы документов строго фиксированы. Расширять функциональность можно за счет добавления нового модуля, замены или редактирования существующего кода. Чаще всего нет никакой системы связей между документами разных модулей и между документами одного и того же модуля. Стандартный набор типов контента (модулей) таков: ссылки, статьи, файлы, новости, разделы, форум.

Несмотря на очевидную ограниченность модели данных, системы на ее основе наиболее популярны благодаря своей простоте. У модульных СМБ-систем есть один общий недостаток - строго фиксированная в пределах модуля структура содержимого. Однако для расширения их функциональности можно воспользоваться внешними модулями, которых в Сети немало. Очевидное преимущество этих систем - возможность получения почти полностью готового к использованию портала за короткое время.

Основная идея систем управления контентом - разделение визуального дизайна сайта и его информационного наполнения. При создании сайта с помощью такой системы разрабатывается набор шаблонов страниц, в которых впоследствии размещается информация. В этом случае роль разработчиков (фактически это группа внедрения) ограничивается только созданием "начальной" информационной системы на основе системы управления контентом, затем пользователи сами публикуют требуемую информацию и определяют ее представление. Управление сайтом сводится к минимуму, -администратору остается только управлять пользователями.

Пользователи СМБ делятся на две группы - создатели шаблонов страниц и авторы контента (информационного наполнения). Таким образом, одна группа пользователей создает структуру и оформление страниц, а другая наполняет его содержанием.

Схема функционирования СМБ

. 7.1. Схема функционирования СМБ

Функции систем управления контентом структурированы согласно жизненному циклу системы.

Сначала группа внедрения разворачивает ядро СМБ и создает в СУБД информационное хранилище контента - БД. Далее администратор предоставляет доступ к системе различным пользователям, затем создается контент, он публикуется, и к нему применяются шаблоны оформления.

На первом этапе необходимо создать все типы контента и схемы их метаописаний, а также настроить систему на определенный поток работ (если система поддерживает создание потоков работ, а не использует единственный встроенный). Понятие типа контента аналогично понятию класса, а элементы контента представляют собой набор экземпляров таких "классов". Типами контента являются, например, текст и изображение; экземпляром контента конкретный документ или картинка.

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

Кроме управления контентом, система должна предоставлять возможность создавать метаданные о нем. Метаданные - это сведения о данных, свойства данных. Примером метаданных служат ключевые (характерные) слова документов, предназначенные для поисковых или отчетных систем. Системы управления контентом, рассматриваемые в данном обзоре, не поддерживают метаданные, хотя можно специально ввести дополнительные типы контента, представляющие собой метаданные.

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

Кроме непосредственно редактирования элементов контента, необходимо предусмотреть разбиение контента по категориям или рубрикам.

В качестве решения проблемы представления в системах управления контентом используется технология шаблонов, определяющих внешний вид страницы. Разработчику шаблонов не нужно знать никаких технических тонкостей. На ранних этапах существования WWW шаблоны представляли "заготовки" HTML-кода, из которого путем манипуляций в HTML-редакторе получались готовые страницы. Сегодня такими заготовками манипулируют уже не дизайнеры в своих редакторах, а серверные web-приложения. Таким образом, современный шаблон Web-страницы представляет собой блок HTML, который благодаря специальным тегам или внедренным сценариям, облегчает включение динамически сгенерированного содержания на этапе выполнения. При использовании подобных шаблонов программистам необходим некоторый стандартизированный интерфейс для работы с ними - шаблонный движок (в английском языке существует устоявшийся термин - template engine), который может иметь разнообразные дополнительные функции, например, поддерживать кэширование шаблонов, их динамическое обновление и т.д.

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

Типичный процесс публикации информации в World Wide Web реализован в Microsoft Content Management Server. Обычным приемом обеспечения оформления информационного наполнения являются шаблоны представления информации. Поэтому первым этапом процесса является создание наборов шаблонов. Типичный шаблон содержит разметку HTML и места, куда в дальнейшем будут вставлены данные (placeholder^ в терминологии Microsoft). Далее на основе этих шаблонов авторы информационного наполнения создают страницы и представляют их редакторам для одобрения. Редакторы, в свою очередь, могут либо отклонить страницу и вернуть ее автору на доработку, либо одобрить ее и передать модератору сайта. В первом случае процесс повторяется снова, во втором же модератор сайта проверяет расположение страницы на сайте, дату и срок ее публикации. Если все в порядке, страница становится видна пользователям. Несмотря на то, что рабочий процесс в Microsoft Content Management Server фиксирован и не может быть изменен в дальнейшем, подобное решение подходит большинству пользователей, которым необходимо публиковать информацию в World Wide Web.

Управление пользователями включает создание, изменение и удаление учетных записей отдельных пользователей и их групп, а также назначение прав для работы с элементами контента. Важной частью требований является наличие пользовательских профилей (profiles), с помощью которых можно сгенерировать персональное представление информации для каждого пользователя. Полезной является и возможность пользователя делегировать свои права. Это позволяет пользователям переназначать исполнителя конкретной работы и избегать простоев из-за отсутствия отдельного лица.

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

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

DotNetNuke

В самом общем виде архитектуру систем управления Web-контентом можно представить следующим образом(7.2).

Архитектура CMS

. 7.2. Архитектура CMS

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

В системе присутствует два хранилища. В первом (обычно реляционная СУБД) хранятся все данные, которые публикуются на сайте. Во втором (обычно файловая система) хранятся элементы представления - шаблоны, графические изображения и т.д.

Получая запрос, сервер приложений обрабатывает его, связываясь с хранилищем данных, в каком бы месте необходимые данные не находились. Клиент лишь получает результат в виде ИТМЬ-файла. Таким образом, сервер приложений является стандартизованной платформой для динамической доставки контента и построения основных приложений. Серверов приложений может быть много, а связь с ними происходит через Web-сервер.

Рассмотрим пример реализации архитектуры системы управления контентом на примере СМБ Б^^Шке 4(73).

Архитектура CMS на примере DNN

. 7.3. Архитектура CMS на примере DNN

Ядро системы управления контентом представляет собой динамический сайт, созданный на языке Visual Basic.NET с использованием технологии ASP.NET 2.0. Поэтому для ее функционирования требуется web-сервер с поддержкой этой технологии. В качестве такого сервера может выступать Microsoft Internet Information Services 5 или 6. В качестве хранилища данных CMS DotNetNuke 4 может использовать файловую систему web-сервера и базу данных под управлением СУБД Microsoft SQL Server. Поддерживаются все варианты поставки этой СУБД и версии 2000/2005. СУБД может функционировать как в операционной системе web-сервера, так и на удаленном компьютере. В первом случае возможно использование бесплатных версий MS SQL Server - Microsoft Desktop Engine и Microsoft SQL Server Express 2005.

В мире существует множество систем управления контентом. Условно можно выделить три основных класса подобных приложений:

1. Системы крупных производителей. Наиболее известными приложениями такого класса являются Microsoft Content Management Server, Documentum, Plumtree Portal, IBM WebSphere Portal и т.д. Стоимость внедрения проектов на базе данных решений составляет от 50 000 у.е. Поэтому сфера их применения очень узкая и ограничивается в основном созданием интранет-решений для крупных предприятий.

2. Системы с открытым исходным кодом, например, RedHat CMS и OpenCMS. Преимуществами таких систем является доступность, наличие исходного кода, возможность локализации. Однако их использование связано с определенного рода проблемами: о Отсутствие техподдержки - системы предлагаются в основном без технической поддержки и все проблемы, связанные с использованием таких систем разработчик должен решать самостоятельно. о Узкая сфера применения - чаще всего продукт явился побочным результатом решения одной из собственных задач.

Очевидно, что подобное решение может хорошо решать задачи создания такого же рода сайтов, но может быть совершенно неприспособленно для решения задач другого плана (электронная коммерция, b2b и т.д.).

3. Разработки небольших компаний, которые применяются на нескольких проектах, созданных непосредственно компанией-разработчиком. их подклассом являются российские разработки. Эти продукты созданы в основном различными web-студиями, имеющими большой опыт в реализации сайтов разных типов. Данные решения занимают промежуточную нишу. Практически все решения являются коммерческими, но с достаточно низкой стоимостью (100-3000$) и могут быть использованы для создания сайтов разных типов.

Net | Введение в технологии создания Интернет-узлов | Zope cmf inetsite