Библиографическое описание:

Петухов С. В., Назаров Ф. А. Обзор основных технологий контент-менеджмент системы Adobe Experience Manager // Молодой ученый. — 2016. — №13. — С. 344-348.



В представленной работе рассматриваются основные технологии контент-менеджмент системы Adobe Experience Manager: их возможности и схема взаимодействия. Данные основываются на открытых источниках документации технологий Apache Foundation, а так же официальной документации Adobe Experience Manager.

Ключевые слова: контент-менеджмент система, apache foundation, репозиторий контента, модульное приложение, иерархическое хранилище данных

Введение

Adobe Experience Manager — это веб-ориентированная клиент-серверная система для построения, администрирования и развёртывания коммерческих веб-сайтов и связанных с ними сервисов. Она собирает в себе функционал уровня системы и уровня приложения в один цельный пакет.

К системному функционалу относятся:

– Сервер веб-приложений;

– Фреймворк веб-приложения;

– Репозиторий контента.

1. Компоненты AdobeExperienceManager

1.1 Сервер веб-приложений

AEM может быть развёрнут независимо (система включает в себя встроенный сервер Jetty), либо как веб-приложение в совокупности со сторонними серверами приложений (таких как WebLogic, WebSphere и так далее).

1.2 Фреймворк веб-приложения

Серверные модули, так называемые бандлы, содержат в себе бизнес-логику приложения. Взаимодействие между ними обеспечивает Apache Felix — реализация спецификации модульных приложений OSGi. AEM включает в себя так называемый Sling Web Application фреймворк, который упрощает написание контент-ориентированных RESTful веб-приложений.

1.3 Репозиторий контента

AEM включает в себя JCR — спецификацию типов иерархических баз данных, спроектированную специально для неструктурированных и частично-структурированных данных. Репозиторий хранит не только данные, отображаемые пользователю, но и код приложения, шаблоны и внутренние данные, используемые приложением. Главный принцип JCR, позволяющий понять суть этой технологии — everything is content (англ. — всё есть контент).

Построенный на базе этих технологий, AEM предлагает следующие возможности управления уровня приложения над:

– веб-сайтами;

– мобильными приложениями;

– цифровыми публикациями;

– цифровым контентом;

– социальными сообществами;

– электронной коммерцией.

Остановимся подробнее на возможностях JCR.

К преимуществам JCR от файловой системы можно отнести:

– иерархичность: к содержимому JCR репозитория можно получить доступ через путь. Это удобно для понимания, так как большинство веб-сайтов так же организованы иерархично.

– частично-структурированные данные: JCR может хранить структурированные документы, такие как XML, как файл, либо как подструктуру внутри дерева репозитория.

– контроль доступа и блокировка: JCR имеет возможность ограничивать доступ к различным частям содержимого репозитория определенным группам пользователей, основываясь на правилах и ACL, также поддерживает блокировку контента на изменение во избежание конфликтов.

Преимущества от баз данных включают в себя:

– использование запросов: JCR поддерживает выполнение запросов с использованием SQL-подобных языков;

– структурированные данные: JCR может может обеспечить соблюдение ограничений по отношению к структурам данных в соответствии со схемой;

– ссылочная целостность: может обеспечить целостность данных между элементами контента;

– транзакционность: взаимодействие с JCR может быть заключено в транзакцию и, при необходимости, произведён «откат» изменений.

В дополнение JCR предоставляет следующие сервисы, традиционно необходимые контент-ориентированным приложениям, которые ни файловые системы, ни базы данных, как правило не предоставляют:

– неструктурированные данные: JCR может поддерживать произвольные динамические структуры данных без ограничений схемы;

– полнотекстовый поиск: JCR поддерживает полнотекстовый поиск по содержимому;

– порядок сортировки: объекты внутри иерархии могут находиться в определённом порядке, если это необходимо;

– наблюдение: API клиента может регистрировать так называемых слушателей событий, для произведения каких-либо действий в зависимости от характера событий;

– версионирование: JCR поддерживает дополнительную версионную систему для репозитория контента.

1.4 Модель репозитория JCR и диспатчеризация

Внутри репозитория JCR контент организуется в одну или несколько так называемых рабочих областей (от англ. workspace), каждая из которых поддерживает иерархическую структуру ячеек и их свойств.

Структура начинается с корня, и распространяется далее по типу директорий файловой системы: каждая ячейка может иметь ноль или более ячеек-потомков и так же ноль или более свойств. Свойства не содержат потомков, но имеют значения. Значениями свойств являются непосредственно те данные, которые предполагается хранить. Ими могут быть различные типы, такие как: строки, даты, числа, бинарные данные и так далее. Примерная структура хранения данных в репозитории представлена на рисунке 1. Рисунок изображает содержимое рабочей области W0 в репозитории R.

Рис. 1. Схематичный пример репозитория

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

В терминологии AEM, экземпляром называется копия AEM, выполняющаяся на сервере. Установка AEM обычно включает в себя как минимум два экземпляра, запущенных на разных машинах, так называемые «Author» и «Publish» (важно отделять роль пользователей «Автор» и тип экземпляра «Author» — хоть они и используются в контексте окружения администратора контента, тем не менее обозначают разные понятия).

Рассмотрим подробнее введённые понятия. Экземпляром AEM, используемым для создания, загрузки, редактирования контента и администрирования сайта называется author-instance (англ. автор-экземпляр). Тогда экземпляром AEM, используемым для отображения опубликованного контента называется publish-instance (англ. публичный-экземпляр). Для удобства и более чёткой ясности понятий далее используются английские наименования экземпляров author и publish для обозначения автор-экземпляра и публичного-экземпляра.

Author окружение предоставляет множество возможностей для пользователя, такие как:

– генерация нового контента, либо редактирование уже созданного на странице;

– использование заранее определенных шаблонов для создания страниц;

– создание, редактирование и администрирование контента и публикаций;

– разработка кампаний и связанных с ними ресурсов;

– разработка и администрирование сайт социальных сообществ;

– перемещение, копирование или удаление страниц, контента, и т. д.;

– публикация (или снятие с публикации) страниц, контента, и т. д.

Когда контент готов к публикации, в дело вступает publish окружение. Здесь созданные страницы становятся доступны для аудитории посетителей, в соответствии с видом и возможностями интерфейса, который был задуман. Обычно, publish окружение находится внутри так называемой нейтральной зоны (Интернет), но уже не в зоне защиты корпоративной сети. На опубликованном веб-сайте пользователи, например, могут оставлять комментарии, либо общаться на форуме.

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

– Публикация/Снятие с публикации — это главные термины действий, которые делают контент публично доступным для посетителей на publish окружении (либо, наоборот, прекращают доступ к нему);

– Активация/Деактивация — эти термины синхронизированы с предыдущими, за той лишь разницей, что их применяют к конкретным действиям в интерфейсе администратора;

– Репликация/Реплицировать — эти технические термины используются для определения перемещения контента (страниц, файлов, кода, комментариев пользователей) с одного окружения на другое, другими словами производя публикацию или обратную публикацию контента.

В терминах установленного программного обеспечения author и publish экземпляры идентичны — их различия заключаются лишь в конфигурации.

Стоит так же упомянуть важный компонент окружения — dispatcher (здесь и далее — диспатчер). Диспатчер представляет собой статический веб-сервер (например Apache httpd) в связке с модулем диспатчера AEM. Его задача заключается в кешировании веб страниц полученных от publish экземпляра для того, чтобы повысить производительность. Так же диспатчер позволяет защитить сервер AEM от атак.

На рисунке 2 схематично изображён процесс взаимодействия author-, publish- и dispatcher-окружений.

Рис. 2. Схема процесса взаимодействия окружений AEM

Отдельно стоит рассмотреть несколько важных средств разработки для Adobe Experience Manager, которые входят в его состав.

1.5 CRXDELite

CRXDE Lite — это программа, встроенная в AEM, позволяющая проводить стандартные задачи разработки прямо в браузере. С помощью неё можно создавать проекты, создавать и редактировать файлы (например,.jsp и.java), папки, шаблоны, компоненты, диалоги, ячейки, свойства ячеек, бандлы и многое другое. Так же присутствует возможность контроля версий.

CRXDE Lite рекомендован в случаях, когда нет прямого доступа к серверу репозитория, когда происходит разработка компонентов, расширяющих так называемые out-of-the-box (стандартных, «идущих из коробки») и Java бандлов, а так же когда нет необходимости в таких помощников стандартных средств интегрированной разработки как режим отладки, подсветка синтаксиса и автозавершение кода.

1.6 Apache Felix

Веб-консоль построена на Apache Felix Web Management Console. Apache Felix — имплементация OSGi R4 Service Platform, сообществом разработчиков, которая включает в себя OSGi фреймворк и стандартные сервисы.

В данной консоли можно наблюдать развёрнутые модули (бандлы), например, newsfeed-services, а так же активировать (Activate), останавливать (Stop) и переустанавливать (Reinstall) их.

OSGi предоставляет стандартизированный примитив, который позволяет строить приложения из небольших, многоразовых и совместно используемых компонентов. Эти компоненты могут быть собраны в одно приложение, которое далее будет развёрнуто на сервере. Это позволяет легко управлять бандлами независимо.

1.7 Apache Jackrabbit

Apache Jackrabbit — прямая реализация API контент репозитория Java. Архитектура Jackrabbit состоит из слоя контент приложения, API и слоя реализации контент репозитория. Остановимся подробнее на каждом из них.

Контент приложения взаимодействуют с реализацией контент репозитория посредством JSR-170 API. Java-приложения могут использовать контент-репозиторий JSR-170 как замену property-файлам, XML конфигурации, некоторому функционалу баз данных. Использование контент репозитория позволяет приложению иметь дело со сколь угодно большим иерархическим пространством данных в мастшабируемом формате, получая преимущества репозитория, такие как: версионирование, запросы, транзакции или пространства имён, что делает репозиторий идеальным хранилищем данных для многих приложений.

Заключение

Рассмотренные технологии представляют собой базу контент-менеджмент системы Adobe Experience Manager. За годы использования сообществом разработчиков, технологии зарекомендовали себя как максимально более подходящие для конкретной контент-менеджмент системы. Основанные на стандартах и выпускаемые Apache Foundation, описанные фреймворки гарантируют высокую производительность и надёжность.

Литература:

  1. Schildt, H. Java: The Complete Reference [Текст] / Oracle Press, 2014. — 1274 c.
  2. Будилов, В. А. Интернет-программирование на Java [Текст] / БХВ-Петербург, 2014. — 522 с.
  3. Машнин, Т. С. Web-сервисы Java [Текст] / БХВ-Петербург, 2012. — 560 с.
  4. Richardson, L. RESTful Web APIs [Текст] / O'Reilly Media, 2013. — 406 с.
  5. Lunka, R. D. Adobe Experience Manager: Classroom in a Book: A Guide to CQ5 for Marketing Professionals [Текст] / Adobe Press, 2013. — 368 с.
  6. Closser, S. Adobe Experience Manager Quick-Reference Guide: Web Content Management [Текст] / Adobe Press, 2013. — 240 с.
  7. Adobe Corporation. Adobe Experience Manager Documentation [Электронныйресурс].
  8. URL: https://docs.adobe.com (Дата обращения: 29.05.2016).
  9. Adobe Corporation. Adobe Blogs — Experience Delivers [Электронныйресурс]. URL: http://blogs.adobe.com/experiencedelivers (Дата обращения: 29.05.2016).
  10. The Apache Software Foundation. Apache Felix Documentation [Электронныйресурс]. URL: http://felix.apache.org/documentation.html (Датаобращения: 29.05.2016).

Обсуждение

Социальные комментарии Cackle