Концепция ECM (enterprise content management). Функции ECM. Жизненный цикл ECM
Enterprise Content Management (ECM) — управление корпоративным содержанием, управление корпоративными информационными ресурсами. Под термином ECM подразумеваются технологии, используемые для сбора, управления, накопления, хранения и доставки информации всем пользователям организации.
Будем придерживаться следующей классификации и перечня функций систем управления контентом.
Функции систем управления контентом структурированы согласно жизненному циклу системы. Сначала администратор предоставляет доступ к системе различным пользователям, затем создается контент, и, наконец, он публикуется. На рисунке 4 представлены категории функций систем управления в виде UML-диаграммы: пунктирная линия со стрелкой обозначает зависимости между пакетами функций, например, механизм публикации зависит от механизма управления контентом, сплошная линия с ромбом на конце означает композицию, так пакет Управление Контентом (в котором, кстати, сосредоточена основная часть требований) содержит два подпакета Создание Окружения и Создание Контента. Первый – Создание Окружения соответствует настройке системы на определенный поток работ (менеджер создает поток работ, а также все типы данных и схемы их метаописаний). На втором этапе (пакет Создание Контента) пользователи начинают работать с контентом, согласно установленному потоку работ. Пакет Управление Пользователями описывает процесс управления группами, отдельными пользователями, а также назначение пользователям прав на выполнение определенных операций. Рассматривается возможность пользователя делегировать свои права. Пакет Публикация определяет требования к процессу публикации на основе механизма шаблонов. Пакет Представление определяет требования к полученному представлению информации. В данную спецификацию не включены требования, которые автоматически подразумеваются или являются общими для систем подобного класса (Общие функции), например, то, чтобы сгенерированный HTML был "правильным" и требования к производительности и защищенности, а также дополнительные требования (Дополнительные функции), которые часто предъявляют к системам управления контентом, например, наличие форумов и конференций (они могут быть реализованы “поверх” систем управления контентом). Пакеты этих требований выделены серым цветом.
Рисунок 2.4. Классификация функций систем управления контентом.
В мире существует множество систем управления контентом. Условно можно выделить три основных класса подобных приложений. Это системы крупных производителей, например, Microsoft Content Management Server, системы с открытым исходным кодом, например, RedHat CMS и OpenCMS, и разработки небольших компаний, которые применяются на нескольких проектах, созданных непосредственно компанией-разработчиком (более 80% всех систем управления контентом). Ниже мы более подробно рассмотрим функции систем управления контентом, входящих в каждый пакет требований, а также реализацию этих функций в двух наиболее известных и старейших системах, написанных на языке Java. Это – система управления контентом Red Hat (бывшая ArsDigita) и система управления контентом OpenCms (существует русскоязычный сайт для поддержки этой системы, http://www.opencms.ru). Эти системы были отобраны по следующим критериям. Во-первых, они достаточно технологичны: платформа J2EE довольно продвинута и содержит множество стандартных сервисов, например, поддержки транзакций, доступа к базам данных, глобализации приложений и так далее. Во-вторых, в отличие от продуктов Microsoft они распространяются бесплатно, поэтому каждый может скачать и установить их. Если рассматриваемая функция отсутствует у обеих систем или реализована недостаточно хорошо, то будет рассматриваться ее реализация в других системах, например, в Microsoft Content Management Server.
Создание окружения
На первом этапе необходимо создать все типы контента и схемы их метаописаний, а также настроить систему на определенный поток работ (если система поддерживает создание потоков работ, а не использует единственный встроенный). Понятие типа контента аналогично понятию класса, а элементы контента представляют собой набор экземпляров таких “классов”. Типами контента являются, например, текст и изображение; экземпляром контента конкретный документ или картинка. Часто в системах управления контентом, написанных на языке Java, тип контента – это класс Java, который инкапсулирует все остальные типы. Это решение используется и в RedHat CMS и в OpenCms.
Кроме поддержки непосредственно создания типов контента, система управления контентом должна предоставлять и некоторые дополнительные возможности, например, задание ограничений на информацию и ее проверка до опубликования. Данная возможность очень важна – например, бывали случаи, когда электронные магазины из-за ошибок администраторов выкладывали свои товары по смешным ценам. В системах управления контентомRedHat и OpenCMS для этого придется задать ограничения на поля классов, представляющих типы контента. Кроме этого,система должна предоставлять возможность интернационализации и локализацииконтента, а также сама отвечать требованиям интернационализации и локализации.
Многоязычность должна поддерживаться как на уровне административного интерфейса системы, так и на уровне самих Web-приложений, работающих под управлением системы управления контентом. Для этого система должна предоставлять соответствующие функции и структуры данных. В системе управления контентомRedHat встроенная локализация отсутствует. Напротив, в системе управления контентомOpenCMS можно выбирать различные языки представления (пока только немецкий и английский).
Рисунок 2.5. Рабочий процесс в Microsoft Content<BR/> Management Server.
Следующая важная возможность – хранение информации о версии контента. Это позволяет задать номер версии любых операций изменения контента и при необходимости восстановить его. В любой момент можно отказаться от изменений и, практически в режиме реального времени, откатиться на одну из предыдущих зафиксированных версий. Строгий контроль версий необходим для определения ответственности отдельных лиц, а также для резервного и аварийного восстановления системы. Система управления контентомRedHat для каждого элемента контента хранит все его версии, и вся работа ведется с последней версией (latest). Кроме того, существует и текущая (live) версия, которая видна пользователям сайта. Система управления контентом OpenCMS может хранить все версии элементов контента, и при желании можно вернуться к любой из них.
Кроме управления контентом, система должна предоставлять возможность создавать метаданные о нем. Метаданные – это сведения о данных, свойства данных. Примером метаданных служат ключевые (характерные) слова документов, предназначенные для поисковых или отчетных систем. Системы управления контентом, рассматриваемые в данном обзоре, не поддерживают метаданные, хотя можно специально ввести дополнительные типы контента, представляющие собой метаданные. В Microsoft Content Management Server для каждого элемента контента можно задать набор свойств, и использовать последний для различных целей, например, для поиска данных или разбиения элементов контента на различные категории.
Одной из важнейших возможностей, которые должна предоставлять система управления контентом, является поддержка рабочих процессов (workflow). Рабочий процесс(workflow) – это набор методов и технологий для автоматизации бизнес-процесса в целом или его части посредством документов, когда информация или задания передаются от одного участника к другому для выполнения определенных действий. Сегодня широко применяются автоматизированные системы управления рабочими процессами. Системы управления контентом также поддерживают управление рабочими процессами.
Система управления контентомRedHat позволяет связывать с каждым типом контента рабочий процесс, который тот должен пройти, прежде чем стать видимым пользователям. Каждый процесс в RedHat CMS состоит из набора заданий, между которыми можно задать зависимости (например, чтобы выполнить одно задание, необходимо выполнить несколько предыдущих), и для которых можно назначить конкретных исполнителей. Таким образом, можно создавать собственные рабочие процессы различной степени сложности. Аналогичным образом работает и система управления контентомOpenCMS.
Типичный процесс публикации информации в World Wide Web реализован в Microsoft Content Management Server. Обычным приемом обеспечения оформления информационного наполнения являются шаблоны представления информации. Поэтому первым этапом процесса является создание наборов шаблонов. Типичный шаблон содержит разметку HTML и места, куда в дальнейшем будут вставлены данные (placeholder’ы в терминологии Microsoft). Далее на основе этих шаблонов авторы информационного наполнения создают страницы и представляют их редакторам для одобрения. Редакторы, в свою очередь, могут либо отклонить страницу и вернуть ее автору на доработку, либо одобрить ее и передать модератору сайта. В первом случае процесс повторяется снова, во втором же модератор сайта проверяет расположение страницы на сайте, дату и срок ее публикации. Если все в порядке, страница становится видна пользователям. Несмотря на то, что рабочий процесс в Microsoft Content Management Server фиксирован и не может быть изменен в дальнейшем, подобное решение подходит большинству пользователей, которым необходимо публиковать информацию в World Wide Web.
Создание контента
После того, как все типы контента созданы и рабочие процессы запущены, авторы информационного наполнения начинают создавать, изменять и удалять элементы контента указанного типа. В системе управления контентом RedHat для каждого вновь созданного типа контента необходимо написать собственный код для редактирования и обновления элементов контента данного типа (в терминах RedHat это называется Authoring Kit). Authoring Kit типа контента состоит из набора визуальных компонентов для просмотра и редактирования данных, связанных с элементами этого типа. RedHat CMS уже содержит некоторый набор визуальных компонентов, например, для редактирование текста, выбора изображений, выбора шаблона представления.
Кроме непосредственно редактирования элементов контента, необходимо предусмотреть разбиение контента по категориям или рубрикам. Обычно категории организуются в некоторые иерархические структуры, в узлах которых содержатся элементы контента. Система управления контентомRedHat поддерживает иерархию секция-категория-элемент. Система управления контентомOpenCMS поддерживает группировку элементов содержимого в каналы, но поскольку элементом содержимого является класс, то можно создавать связи между классами, при этом некоторые из них и будут представлять категории.
Рисунки и изображения, а также некоторые другие ресурсы являются важной составляющей каждой информационной системы. И разработчики, и дизайнеры должны знать, как унифицированным способом их использовать. Поэтому система управления контентом должна поддерживать базу (библиотеку) ресурсов для использования в информационных материалах. Работа с изображениями, анимациями и другими подобными ресурсами должна быть понятна пользователю, при этом обычно создается некоторое хранилище ресурсов. Туда могут входить изображения, фильмы, презентации и т.д. Это позволяет более эффективно использовать, разделять и администрировать ресурсы. В системе управления контентомRedHat такая работа с изображениями (и другими мультимедийными ресурсами) отсутствует. Система управления контентомOpenCMS поддерживает галереи ресурсов (например, картинок).
Возможность поиска объектов и их частей также важна для систем управления контентом. Некоторые системы имеют собственные механизмы поиска, другие ведут поиск средствами нижележащих хранилищ данных, которые они используют. Система управления контентом RedHat поддерживает поиск на основе механизма поиска базы данных Oracle. В системе управления контентом OpenCMS поиск основан на Apache Lucene (свободно распространяемая система индексации документов).
Система управления контентом является только одной из множества систем, которые используются на предприятии. Использование системы управления контентом будет успешным, если она будет обмениваться информацией с уже существующими системами. Механизмы этого объединения должны быть основаны на открытом или промышленном стандарте. Контент может подгружаться в базу данных или напрямую отображаться в графических шаблонах в режиме реального времени. Система управления контентомRedHat не поддерживает интеграцию с внешними системами. Единственным способом взаимодействия с внешними системами является взаимодействие на уровне нижележащих хранилищ данных, т.е. загрузка и выгрузка информации непосредственно из реляционного хранилища. В системе управления контентом OpenCMSподдерживается взаимодействие с EJB,где можно использовать Java Connectors. Java Connectors определяет стандартный Connector Service Provider Interface (Интерфейс поставщика услуг коннектора), который, как правило, реализует разработчик корпоративной информационной системы предприятия. Многие производители КИС (BEA, IBM, SAP, iPlanet) представляют адаптеры ресурсов, реализующие Connector SPI для обеспечения взаимодействия управляющих средств контейнера/сервера J2EE с EIS.
Управление пользователями
Управление пользователями включает создание, изменение и удаление учетных записей отдельных пользователей и их групп, а также назначение прав для работы с элементами контента. Важной частью требований является наличие пользовательских профилей (profiles), с помощью которых можно сгенерировать персональное представление информации для каждого пользователя. Полезной является и возможность пользователя делегировать свои права. Это позволяет пользователям переназначать исполнителя конкретной работы и избегать простоев из-за отсутствия отдельного лица.
Системы управления контентом RedHat и OpenCMS управляют учетными записями пользователей на основе собственных групп, не используя существующие идентификационные системы, например, Windows. Аутентификация средствами Windows позволила бы значительно упростить администрирование. При этом система управления контентом могла бы использовать операционную систему локального компьютера или контролера домена для проверки и сопровождения учетной записи пользователя
Представление информации создается на основе данных, а также предпочтений конкретного пользователя. Персонификация достигается путем использование профилей – специальных записей, в которых хранится информация, специфичная для конкретных пользователей. Система управления контентом RedHat не предоставляет возможности хранения персональных данных пользователей (хотя ее можно и реализовать, введя новые типы контента). Система управления контентом OpenCMS допускает создание индивидуального представления контента. Встроенная система администрирования OpenCMS позволяет сохранять связанные с пользователем данные.
Публикация информации
Механизм публикации информации в системе управления контентом отвечает за процесс создания, редактирования и удаления шаблонов страниц, а также за сопоставление типов контента и шаблонов страниц. В состав дополнительных возможностей системы публикации может входить предварительная генерация статической версии сайта. Эта опция очень полезна в случае размещения информационной системы на оборудовании с ограниченными возможностями.
Как уже говорилось, чаще всего для решения проблемы представления в системах управления контентом используется технология шаблонов, определяющих внешний вид страницы. В идеале, разработчику шаблонов не нужно знать никаких технических тонкостей. На ранних этапах существования WWW шаблоны представляли “заготовки” HTML-кода, из которого путем манипуляций в HTML-редакторе получались готовые страницы. Сегодня такими заготовками манипулируют уже не дизайнеры в своих редакторах, а серверные web-приложения. Таким образом, современный шаблон Web-страницы представляет собой блок HTML, который благодаря специальным тегам или внедренным сценариям, облегчает включение динамически сгенерированного содержания на этапе выполнения. При использовании подобных шаблонов программистам необходим некоторый стандартизированный интерфейс для работы с ними – шаблонный движок (в английском языке существует устоявшийся термин – template engine), который может иметь разнообразные дополнительные функции, например, поддерживать кэширование шаблонов, их динамическое обновление и т.д.
Существует большое количество подходов к созданию шаблонов Web-страниц и множество шаблонных движков, написанных на всевозможных языках программирования и предназначенных для использования на различных серверных платформах. Более подробный обзор шаблонных движков и примеры их применения на практике приводятся в (Михеев Петр “Подходы к созданию шаблонов web-страниц в серверных Java-приложениях” Технология клиент-сервер, № 1, 2003).
Система управления контентом RedHat использует XSLT-преобразования на стороне сервера, которые в данном случае и являются шаблонами представления. Сценарий генерации страницы в этом случае описывается следующей схемой: клиент запрашивает требуемую страницу; сервер находит и сериализует в XML все элементы контента, находящиеся на этой странице; сервер находит и применяет соответствующее преобразование к этому документу; результат преобразования (требуемемая страница) возвращается клиенту. В отличии от RedHat CMS, OpenCMS использует Java Server Pages (JSP) и собственные библиотеки тегов для создания шаблонов страниц. Наличие библиотек тегов позволяет организовать работу так, чтобы дизайнеры и программисты могли решать свои задачи практически независимо друг от друга. При этом дизайнеры разрабатывают визуальное представление, используя HTML-, XML- и JSP-теги, а разработчики концентрируют свое внимание на реализации этих тегов, предназначенных, например, для доступа к свойствам элементов контента.
Системы управления контентом определяют будущее сайтостроения. Автоматизируя процесс публикации информации, системы управления контентом упрощают разработку и снижают стоимость поддержки сайтов. Однако многообразие типов представленных на рынке систем такого назначения, широкий спектр решаемых ими задач и не до конца устоявшиеся требования к ним не позволяют пока однозначно определить лидера. Прежде чем сделать выбор, разработчику стоит рассмотреть как можно больше альтернативных систем. Если же случится так, что вы захотите разработать собственную систему, я буду рад, если эта статья хотя бы чуть-чуть поможет вам в этом.