Раздел 4. Системы управления контентом
Рынок систем категории CMS (content management system) достаточно бурно развивается, но единых стандартов в этой области, в том числе на терминологию, еще нет. Английское слово content означает «нечто, содержащееся внутри» и применительно к письменным работам обычно входит в словосочетание table of contents — содержание, перечень разделов (скажем, книги). Отличительная черта контента состоит в том, что он конструируется из отдельных кусочков. Однако при переводе термина content на русский язык произошел забавный казус. Дело в том, что английский вариант этого слова означает «содержание» только в тех случаях, когда ударение ставится на его первый слог. В противном же случае (а мы обычно так и произносим) слово content является глаголом со значением «удовлетворять».
История управления контентом началась с управления документами в традиционном смысле этого слова, т.е. текстовыми файлами. По мере развития понятия «документ», системы управления документами стали называть системами управления контентом. Считается, что это позволяет подчеркнуть способность таких систем управлять информацией независимо от формы ее представления, а также отделить информацию-контент от документа-формы. Однако абстрактно управлять информацией невозможно — она обязательно должна быть представлена в какой-либо форме. Пытаясь управлять контентом, мы неизбежно приходим к управлению документами. Системы управления контентом, действительно, «научились» разделять управление документами (хранение, изменение и т.п.) и их представление конечному пользователю. Но они все-таки управляют документами в какой-то форме, а не информацией.
Само понятие «управление контентом» первоначально прочно ассоциировалось с процессом публикации и обновления информации на Web-сайтах — требовалась технология, позволяющая следить за ее актуальностью. Поэтому в качестве синонима content management часто используют термин Web content management. Применительно к организациям, оперирующим огромным количеством информации, уместно говорить уже о системах управления информационными ресурсами предприятия (enterprise content management, ECM). В результате термин content management расширился: им стали обозначать управление не только информацией на сайте, но и всеми разрозненными и разнообразными фрагментами корпоративной информации. Есть и другие определения. Скажем, в энциклопедии Wikipedia системой управления контентом названа система, применяемая для организации и упрощения совместного создания содержимого.
Функции систем управления контентом можно разделить на несколько основных категорий.
Создание— предоставление авторам удобных и привычных средств создания контента.
Управление— хранение контента в едином репозитории. Это позволяет следить за версиями документов, контролировать, кто и когда их изменял, убеждаться, что каждый пользователь может изменить только тот раздел, за который он отвечает. Кроме того, обеспечивается интеграция с существующими информационными источниками и ИТ-системами. CMS поддерживает контроль за рабочим потоком документов, т.е. контроль за процессом их одобрения. Короче говоря, управление контентом включает в себя хранение, отслеживание версий, контроль за доступом, интеграцию с другими информационными системами и управление потоком документов.
Публикация— автоматическое размещение контента на терминале пользователя. Соответствующие инструменты автоматически «подгоняют» внешний вид страницы к дизайну всего сайта.
Представление— дополнительные функции, позволяющие улучшить форму представления данных; например, можно строить навигацию по структуре репозитория.
CMS-системы управляют небольшими взаимосвязанными единицами информации, и в данном контексте документ приобретает смысл гипертекста. Поскольку CMS-системы управляют информацией, а у информации есть свой жизненный цикл, то, естественно, эти системы должны иметь адекватные средства управления контентом на каждом из этапов его жизни (создание, модификация, публикация, передача в архив и т.д.).
Среди CMS-систем часто выделяют так называемые каркасы (content management framework, CMF) — инструментарии для создания системы. Естественным расширением CMS стали ECM-системы, которые управляют всей разрозненной информацией предприятия, взаимодействуя с другими приложениями, такими как ERP и CRM.
Объектная модель
Объектная модель представления данных оперирует такими понятиями, как класс и объект. Классы определяют структуру данных и представляют собой набор атрибутов (текстовая строка, целое число, изображение и т.д.). Представители класса (объекты) имеют определенную структуру и могут содержать другие объекты, образуя произвольную иерархическую структуру. Объекты могут наследовать свойства, содержание и поведение объектов, которые в них содержатся.
Примерами объектов служат документы, картинки, папки и учетные записи пользователей. Класс контента не хранит в себе реальных данных — такую информацию содержат объекты (экземпляры класса). Определив один класс, можно создать множество его представителей (контент объектов).
В CMS-системах данные обычно хранятся в реляционной или объектной базе данных. В первом случае объектная модель данных отображается на реляционную модель базы данных. Связи между объектами создаются, например, с помощью таблиц вида id, from object, from object version, to object.
Среди объектно-ориентированных CMS-систем можно встретить каркасы. Классический пример — Zope CMF. Вообще, Zope — ведущий свободно распространяемый сервер приложений, специализирующийся на управлении контентом в порталах и пользовательских - приложений. На основе этого сервера приложений построен каркас управления контентом Zope CMF, с помощью которого, в свою очередь, создан целый ряд CMS-систем, в частности, Plone.
Еще одна очень распространенная CMS этого класса — eZ Publish. Ее относят и к каркасам, и к ECM. Системы семейства eZ базируются на свободно распространяемом продукте eZ Publish. Наличие двух лицензий — GPL и профессиональной — позволяет создавать коммерческие продукты на основе каркаса eZ Publish, обеспечивая этой системе поддержку как сообщества Open Source, так и профессиональных разработчиков.
К этому классу можно отнести и систему APC ActionApps, которая позволяет зарегистрированным пользователям обновлять контент их сайта с помощью только браузера. Особенность этой системы состоит в том, что она имеет настраиваемый вывод. APC ActionApps интегрируется в существующие системы, позволяя упростить структуру и автоматизировать работу сложных порталов и Web-сайтов. Кроме того, механизм content pooling и наличие инструментов редактирования делают эту систему подходящей для распределенных команд, совместно подготавливающих публикацию контента.
Microsoft Content Management Server (MCMS) представляет собой систему управления Web-контентом, которая дает возможность создавать, развертывать и поддерживать динамично меняющиеся Web-сайты. Благодаря тесной интеграции с Visual Studio .NET и поддержке функций управления исходными кодами, MCMS позволяет разработчикам создавать сайты, которые потом могут управляться и поддерживаться как ИТ-специалистами, так и бизнес-пользователями. Первые могут централизованно управлять брэндингом, рабочим потоком документов и безопасностью, тогда как вторые — создавать собственный контент, управлять им и публиковать его, используя знакомые приложения, такие как Word или Internet Explorer.
Объектная модель поддерживает разработку в среде Visual Studio .Net и .Net Framework. Возможно объединение через Microsoft Solutions for Internet Business (MSIB) Content Connector с сервером Microsoft Commerce Server для создания решений в области электронной коммерции.
Как правило, системы, основанные на объектно-ориентированной модели данных, наиболее функциональные, гибкие, но, в то же время, и наиболее сложные.
Сетевая модель
Данная модель представления данных опирается на теорию графов: структура информации представляется в виде узлов с помеченными связями между ними. Фундаментом системы может служить как сетевая, так и традиционная реляционная СУБД, на которую отображена сетевая модель описания данных. В реляционных таблицах хранится информация об узлах, их атрибутах и связях между ними. Связь отличается от атрибута тем, что в ней хранится ссылка на другой узел, а в атрибуте — собственно значение. Для извлечения данных из направленного графа обычно используются рекурсивные процедуры обработки, такие как составление списков узлов, определение атрибутов узла по атрибутам родителя и др.
Пример системы такого типа — Communiware. Эта система представляет собой инструментарий нового поколения для создания вертикальных Web-сайтов и порталов.
Модульная модель
В подобных системах контент разделен на отдельные модули по типам содержимого. Структура данных зависит от модуля, и вся работа с контентом сосредоточена внутри модуля. Модули независимы и полностью отвечают за работу с документами данного типа. Документы описываются с помощью фиксированного набора характеристик — типы документов строго фиксированы. Расширять функциональность можно за счет добавления нового модуля, замены или редактирования существующего кода. Чаще всего нет никакой системы связей между документами разных модулей и между документами одного и того же модуля. Стандартный набор типов контента (модулей) таков: ссылки, статьи, файлы, новости, разделы, форум.
У модульных CMS-систем есть один общий недостаток — строго фиксированная в пределах модуля структура содержимого. Однако для расширения их функциональности можно воспользоваться внешними модулями, которых в Сети немало. Очевидное преимущество этих систем — возможность получения почти полностью готового к использованию портала за короткое время.
CMS-системы
Рассмотрим следующие CMS-системы: eZ Publish , APC ActionApps, Mambo и др. Каждая из них позиционируется разработчиками как система для создания любого сайта (от корпоративного портала до домашней странички) и управления его содержимым. Система eZ Publish предназначена также для создания и управления содержимым Internet-магазина, новостного сайта, фотогалереи или форума. APC ActionApps имеет уникальное свойство добавления динамических разделов на существующем сайте и способна управлять содержимым многих сайтов. Но все-таки правильнее говорить, что CMS-системы предназначены для создания, модификации, публикации и обмена информацией.
Прежде чем начать использование какой-либо CMS необходимо определиться, с какими типами контента вы хотите работать — будут ли на вашем сайте статьи, фильмы, новости, форумы и т.п. Обычно CMS-системы поставляются с некоторым количеством готовых к работе встроенных типов контента, а часть из них позволяют редактировать встроенные типы контента или создавать новые (eZ Publish, APC ActionApps). Но есть и системы, в которых все типы контента строго фиксированы (Xoops, Mambo).
Каждому пользователю системы должна быть приписана какая-то роль, в соответствии с которой он сможет выполнять определенные действия. При этом, пользователи могут объединяться в различные группы с назначенными правами. Некоторые системы позволяют создавать новые группы и устанавливать им права, отличные от прав существующих групп (eZ Publish, ActionApps, Xoops), и это свойство иногда оказывается очень полезным.
Выбирая CMS-систему, всегда хочется получить максимум функциональности при минимуме затрат, да и на поддержку хочется тратить как можно меньше времени и усилий. Чтобы хоть как-то приблизится к этому идеалу, нужно для начала определить необходимый минимум задач, которые должна решать система. При создании, документ наделяется набором характеристик, определяющих текущий этап его жизненного цикла, поэтому стоит обратить внимание на следующее: насколько гибка структура контента конкретной системы, насколько прост процесс создания контента, как он упорядочивается, как происходит управление рабочим потоком документов и возможно ли использование контента совместно с другими информационными системами.
Преимущества систем с гибкой структурой контента очевидны. Они позволяют по мере надобности расширять и добавлять новые типы контента средствами самих систем, не занимаясь, например, поиском на стороне подходящей функциональности. С другой стороны, при наличии множества свободно распространяемых модулей (типов контента) можно работать и с системами, имеющими фиксированную структуру контента. Однако в этом случае нужно быть готовым покопаться в коде, поскольку реализация некоторых модулей может оказаться неполной.
Основной инструмент создания контента для CMS-систем — Web-браузер. Некоторые системы позволяют использовать также автономного клиента (например, ActionApps) или Windows-клиента. При создании контента важно, насколько прост и интуитивно понятен такой процесс. С этой точки зрения стоит разобраться, какие возможности разметки документов предоставляет конкретный CMS-инструментарий. Нужно выяснить, имеет ли она встроенные, специфичные только для нее, средства разметки или можно пользоваться стандартными средствами типа HTML; создается контент с помощью обычных HTML-форм или встроенных редакторов наподобие WordPad и т.п.
eZ Publish, Mambo и ActionApps предлагают использовать HTML для разметки документов, в то время как Xoops располагает и собственными средствами разметки. Применять для упрощения создания контента встроенный текстовый редактор, похожий на Word Pad, можно лишь в Mambo. Чаще всего документы создаются с помощью средств, привычных для их авторов, и хранятся в виде файлов на локальных машинах, поэтому при внесении документа в систему управления содержимым полезно иметь возможность загрузки файлов с локальной машины. Среди рассматриваемых CMS-систем этим свойством в полной мере не обладает ни одна. В Mambo и ActionApps можно загружать на сервер текстовые файлы и рисунки некоторых форматов, а в Xoops и eZ Publish — только рисунки.
Следующий важный момент — каталогизация и упорядочивание контента. В eZ Publish весь контент сайта представляется в виде дерева узлов (узлы — это инкапсуляции контент-объектов). Упорядочивание контента внутри дерева производится с помощью контейнеров (папок), под которые помещаются соответствующие объекты (как в файловой системе). Для задания местоположения объекта (определения узлов, которые с ним ассоциируются) используется свойство location. С его помощью при создании или редактировании объекта можно определить, где дополнительно будет отображаться объект кроме места его создания. В добавлении к иерархической структуре, дерево контент-узлов может быть разделено на логические разделы (секции).
Для упорядочивания контента в ActionApps используется расширяемая система категорий: в системе изначально имеется набор категорий, а администратор может их изменять или добавлять собственные. Для этого служит специальный встроенный редактор, который позволяет моделировать иерархическую структуру (в категории может быть одна или несколько подкатегорий). В Mambo и Xoops тоже применяются системы категорий, но поскольку эти продукты построены по модульному принципу, наличие или отсутствие системы категорий зависит от модуля. Скажем, для модуля «статьи» существуют категории, а для модуля «форум» — нет. Но какую бы категорию в модуле «статьи» вы ни создали, структура документов в ней будет такой же, как и во всех других категориях данного модуля, — деление на категории чисто смысловое. Если в модуле используется система категорий, можно создавать новые категории, удалять или менять тип доступа для существующих.
Механизм каталогизации eZ Publish кажется более функциональным и развитым, но слишком сложным для понимания. Применение же для этих целей категорий, как в остальных системах, гораздо более привычно и понятно, но не позволяет решить, например, проблему отображения документа одновременно в двух категориях.
В eZ Publish и ActionApps реализована поддержка национальных алфавитов. Администраторский интерфейс ActionApps настраивается на несколько языков. Каждая версия контента может существовать на разных языках, но при работе с русским языком порой возникают небольшие проблемы. Дело в том, что в коде этих систем прописана кодировка ISO-8859-1, и для создания документов на русском языке ее приходится менять на KOI8-R или WIN-1251. В системах Mambo и Xoops поддержка русского языка вполне удовлетворительна, но в сами эти системы поддержка многоязычности не входит. В Mambo язык вообще зашит в код системы, а переводы применимы только к тому, что хранится в базе данных, поэтому все равно приходится искать непереведенные фразы и изменять их самостоятельно. Русскоязычному пользователю удобнее работать с Xoops, но надо подготовиться к тому, что с появлением новых, непереведенных, модулей в системе будут возникать слова на английском языке.
Теперь обратим внимание на то, как CMS-системы управляют потоком документов, позволяют ли они создавать различные версии одного документа и дают ли возможность администраторам следить за процессом публикации документов.
Реальный контент eZ Publish, который хранится внутри контент-объектов, может существовать в одной или нескольких версиях. Каждый раз, когда контент редактируется, создается его новая версия, а старая остается нетронутой. Эта система версий позволяет пользователям возвращать/отменять изменения, а чтобы предотвратить переполнение базы данных старыми неиспользуемыми версиями, администратор может установить ограничение на количество версий для контент-класса. Собственно версия документа в eZ Publish описывается с помощью следующих характеристик: номер версии, статус документа (черновик, опубликованный, архивный), язык, создатель, дата изменения. Автоматически контролируется авторство документов: нельзя редактировать чужие документы, можно только создавать их копии и редактировать их. Контролируется и статус документа; несколько версий документа нельзя опубликовать одновременно, поскольку статус опубликованной имеет только одна из них. Существует возможность создавать для разных языков разные версии документа. Документы со статусом «архивные» нельзя редактировать и публиковать (для редактирования создается их копия — черновик).
В системе ActionApps поддерживается основной процесс одобрения: автор документа имеет право на его публикацию. Отличие от eZ Publish состоит в том, что документ публикуется сразу после его добавления в систему. При этом статус документа ActionApps может изменяться следующим образом: активный (active), ожидающий рассмотрения (pending), устаревший (expired), в процессе написания (hold bin), ожидающий удаления (trash bin). Каждый документ, будучи создан, сразу становится активным (публикуется). Потом его можно переместить в другую категорию, но для этого необходимо иметь хотя бы права редактора слайса. Понятие версии документа в ActionApps не применяется, впрочем, как и в Xoops, и в Mambo.
В системах Xoops и Mambo нет общей системы категорий и унифицированного способа описания документов. Описание зависит от модуля (тип контента), к которому принадлежит документ. Но таких понятий, как версия документа, нет. В Xoops не применяется и понятие статуса документа, но некоторые документы (в зависимости от модуля) можно заносить в архив. В системе Mambo документ имеет статус опубликованного, архивного, одобренного или находящегося в процессе редактирования. Архивные статьи можно редактировать.
Немаловажно, как рассматриваемые системы используют контент совместно с другими информационными системами. Самые развитые возможности в этом плане имеет ActionApps: обеспечивается обмен информацией внутри самой системы и с другими сайтами APC ActionApps (в терминах данной системы такое свойство называется content pooling). Обмен информацией осуществляют редакторы или администратор. Также поддерживаются отображение категорий и полей для общего контента, импорт и экспорт контента из других баз данных. Все это впечатляюще, но сложновато. Наконец, ActionApps (как и eZ Publish и Xoops) поддерживает использование заголовков RSS.
При создании документа, он наделяется набором характеристик (статус, автор, дата устаревания и т.п.), соответствующих текущему этапу его жизненного цикла. Затем документ может быть модифицирован, как и его описание, с помощью средств CMS. Если автор документа не обладает достаточными правами, документ проходит процесс одобрения и после этого может быть опубликован. При определенных условиях (например, была установлена дата устаревания документа или его редко читают) документ может быть занесен в архив. Вообще говоря, такие документы заносятся в архив для облегчения и ускорения доступа к актуальным документам, но некоторые системы (например, Mambo) просто дублируют информацию в архив. Архивные документы хранятся отдельно, но могут быть прочитаны и отредактированы (это зависит от системы). Как архивные, так и актуальные документы можно экспортировать на другие сайты, в другие информационные системы, конвертировать в другие форматы и т.п.
Коммерческие системы
Рассматриваемые продукты нацелены преимущественно на решение проблем предприятий, поэтому могут быть классифицированы как ECM-системы. Поскольку эти системы — коммерческие, не всегда можно выяснить, какие модели данных используются при их построении. Кроме того, ECM в принципе сложно классифицировать по предложенному нами сценарию, поскольку они, как правило, состоят из наборов различных сервисов и приложений, каждое из которых может использовать свою модель данных.
Documentum
Documentum — ведущий поставщик программного обеспечения для интегрированного управления документами и контентом. В области управления документами его ближайшими соперниками являются Open Text, IBM и FileNet, а в сфере управления контентом — Vignette, Stellent и Interwoven.
В области управления документами решения от Documentum наиболее надежны благодаря возможностям репликации контента и управления им на очень высоком уровне детализации (для переиспользования и перенацеливания), а также поддержке преобразований сложно структурированных документов, расширяемости репозитория и поддержке XML. Реализация Collaboration Edition в Documentum 5 и приобретение этой компанией eRoom заставило считать Documentum прямым конкурентом Open Text и Interwoven. Важные достоинства Documentum состоят в глубоком знании процессов управления потоком документов, контроля версий и управления архивами. Однако решения Documentum могут оказаться менее эффективными, чем некоторые решения-конкуренты, при обработке представления документов на больших Web-сайтах.
Система Documentum имеет объектно-реляционную архитектуру (т.е. объектная модель данных отображается на реляционную базу данных), поэтому в нашей классификации может быть отнесена к объектным CMS-системам.
IBM
Система IBM Content Manager позволяет организациям получать, хранить, управлять и распространять все формы цифрового контента, включая отсканированные текстовые документы, XML, HTML и мультимедиа. Недавно IBM перепроектировала данный программный продукт, усовершенствовав его, добавив в него функции управления документами, в том числе возможности контроля версий и поддержки ODMA. Это позволило позиционировать Content Manager как полное интегрированное решение для управления документами, предназначенное для потребителей, которые хотят пользоваться универсальным продуктом одного поставщика.
Другой ключевой момент — WCM-возможности. Корпорация анонсировала объединение Content Manager с WebSphere Portal, который обеспечивает возможности публикации в Web. Теперь Content Manager будет представлять собой репозиторий для WebSphere-портала. Content Manager также объединен с WebSphere Portal с помощью портлетов, позволяющих пользователю получать доступ к контенту всех типов. После приобретения компании Tarian Software, поставщика решений для управления записями, IBM расширила спектр своего ECM-инструментария за счет средств управления жизненным циклом контента.
Модель данных Content Manager — объектно-ориентированная.
Open Text
Open Text Livelink — это документо-ориентированный продукт, который кроме сервисов управления документами предоставляет мощный набор инструментов для совместной работы, включая групповые расписания, календари и возможности управления процессом работ. Livelink поддерживает Java, ActiveX, PDF и HTML. Эта система была разработана для корпоративных intranet-сред, не поддерживает интеграцию с репозиториями Microsoft Exchange, а ее интеграция с Lotus Notes/Domino возможна только в одном направлении. Livelink поддерживает поисковые запросы на естественном языке и кластеризацию результатов по темам, средства управления потоком документов и модули взаимодействия в режиме реального времени.
Архитектура системы — модульная, что позволяет отнести Open Text Livelink к системам модульного типа.
Interwoven
Interwoven — один из ведущих поставщиков средств WCM. Платформа для управления контентом Interwoven нацелена на крупные компании из списка Fortune и организации, нуждающиеся в контроле за критически важными бизнес-процессами. Платформа управляет всеми формами контента на протяжении всего его жизненного цикла. Ядро Interwoven состоит из модулей TeamSite (управление контентом), MetaTagger (категоризация) и OpenDeploy (распространение контента). Дополнительные компоненты позволяют разрабатывать разнообразные Web-службы. Система имеет «гибридную» архитектуру, что означает возможность хранения контента как в базах данных, так и в файловой системе. При этом используется объектная модель данных.
ЗАДАНИЕ для самостоятельной РАБОТЫ
Решение данной задачи оформить в виде текста на листах формата А4, дополненных презентацией в программе PowerPoint.