Корпоративный Портал Jahia — Обзор Архитектуры (Часть 2)

Вы читаете вторую часть обзора архитектуры корпоративный портал Джахия .



Оглавление

Часть 1:
  • Большая картина.

  • Компоненты пользовательского интерфейса.

  • Аутентификация и авторизация.

  • Шаблоны дизайна.

  • Кэширование.

  • Объекты контента.

  • Портал.

  • Мэшап-сервер.

Часть 2:
  • Файловое хранилище.

  • Инструменты и инструменты (двигатели).

  • Подсистема поиска и индексирования.

  • Администрация.

  • Интеграция со Spring.
  • Слушатели событий и правила.

  • Обработка запросов в Джахии.

  • Конвейеры.

  • Импорт и экспорт.
  • Кластеризация.



Файловое хранилище



Корпоративный портал Jahia — обзор архитектуры (часть 2)

Файловое хранилище Jahia было полностью переписано в версии 6. В Jahia 5 хранилище было основано по использованию библиотеки Библиотека слайдов Apache , что на тот момент было де-факто Стандарт репозитория файлов с открытым исходным кодом.

Но благодаря быстрому развитию и хорошему качеству Апачский кролик - выполнение Спецификация репозитория контента Java, Jahia 6 начала использовать ее в качестве стандарта.

хранилище файлов и создавайте свои сервисы на основе этой библиотеки.

Собственно архитектура Jackrabbit не сильно полагается на его использование, а скорее использует стандартный JCR. API для предоставления доступа к различным репозиториям.

В Jahia 6 стало возможным иметь доступ к Файловые хранилища CIFS/SMB .

Некоторые другие разрабатываемые реализации доступны в репозиториях песочницы, среди них FTP-коннекторы, Alfresco, Exo Platform, Nuxeo .

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

Помимо службы хранения файлов, интерфейсы обслуживают контент с использованием различных технологий: WebDAV, просмотр файлов в шаблонах и пользовательский интерфейс Jahia AJAX. Вместе с хранилищем Дополнительные сервисы портала могут функционировать: Механизм правил - устанавливать правила и права доступа к файлам, Управление миниатюрами – для создания миниатюр изображений (миниатюра), Экстракторы контента – для извлечения метаданных.



Инструменты и инструменты (двигатели)



Корпоративный портал Jahia — обзор архитектуры (часть 2)

Инструменты и инструменты в Джахии обычно называются двигатели .

Двигатели Jahia могут быть сравнивать с предметами Действие в Струтсе.

Это блоки логики приложения, каждый из которых выполняет конкретную задачу.

Поддвигатели – еще более мелкие блоки, управление взаимодействием с примитивами пользовательского интерфейса (например, управление редактирование полей).

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

Титулы другие двигатели говорят сами за себя: например, двигатели Авторизоваться И Выйти несут ответственность за рендеринг пользовательского интерфейса входа и выхода из системы и обработка введенных данных пользователем во время этих действий.

Механизмы редактирования (обработки) контента интегрирован с инфраструктурой проверки (структура проверки), которая позволяет интеграторам устанавливать правила проверки введенных данных.

пользователь данных.

Движки также интегрированы с пользовательским интерфейсом AJAX. Цель использования AJAX — сделать пользовательский интерфейс современный, построен на компонентах, которые можно использовать повторно.

повторное использование.

Интеграторы смогут использовать многочисленные существующие библиотеки.

компоненты при создании приложений.

Работа в этом направлении началась в Jahia 6 с использованием Компоненты GWT. Поддвигатели в Jahia используются для отображения интерфейсов редактирования контейнеров.

Контейнер может содержать поля разных типов.

При редактировании поля любого типа Механизм контейнерной редакции обращается к подсистеме, ответственной за этот тип поля.

Например, поле типа Файл , представляющий файл, предоставит пользовательский интерфейс.

интерфейс, позволяющий пользователю просматривать каталоги и выбирать файлы во время тип Мелкий текст Он просто отобразит поле ввода текста.

Jahia обрабатывает запросы к движкам, используя параметр "/имя_двигателя" в URL. Если параметр нет значения – запрос принят ядро движка .

Строковые значения, которые используются для имена движков объявляются самими движками, а в классе JahiaДвигатель , метод getName () определит ключ для механизма разрешения параметра «/engineName».



Подсистема поиска и индексирования



Корпоративный портал Jahia — обзор архитектуры (часть 2)

Подсистема поиска и индексирования Jahia будет представлена в этом документе только в виде обзора – это очень обширная подсистема.

На рисунке выше мы иллюстрируем основные компоненты этого подсистемы.

Новым в Jahia 6 является интеграция стандарта Открытый поиск .

Джахия может сыграть такую роль, как потребитель , так и как генератор Запросы OpenSearch. Это означает, что пользователи может, например, интегрировать Джахию в панель поиска вашего браузера и сделай это напрямую поисковые запросы из панели браузера.

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

от Jahia, Google, MSN и т. д. Для более традиционных решений веб-поиска Jahia предлагает библиотеки тегов Для поиск по содержимому либо в простом формате полнотекстового поиска, либо с использованием расширенного поисковые запросы.

Для облегчения создания расширенных поисковых запросов в компонентах пользовательского интерфейса Jahia. удобный встроенный селекторы параметров запроса .

Эти компоненты изготовлены с использованием AJAX framework и аналогичны тем, которые используются при вводе данных в интерфейс.

авторизоваться.

Другой альтернативой запроса объектов контента является прямой вставлять запросы на уровне шаблоны , и пользователи увидят на экране результат уже подготовленного запроса.

Этот называется Контейнерные запросы и их можно использовать, например, загружать последние пять объектов контента типа «Новости» при отображении последних пять новостей.

Все эти технологии формирования пользовательских запросов основаны на серверных системах, непосредственно выполняя поиск и индексацию контента.

Поисковая система портала выдает возможность осуществлять полнотекстовый поиск, поиск с уточняющими запросами как по содержанию Jahia, и по содержимому файла.

Основой подсистемы поиска и индексирования являются opensource-фреймворки.

Компас И Апач Лусене .

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

Стандартная реализация подсистемы с использованием файловой системы на данный момент является наиболее эффективен и готов к работе, поэтому Jahia поставляется в комплекте с эта реализация.



Администрация



Корпоративный портал Jahia — обзор архитектуры (часть 2)

Интерфейс администрирования это средство управления всеми различными подсистемами Джахии.

из одного места как для администраторов сайта, так и для администраторов серверов.

Интерфейс Администрирование позволяет администратору выполнять все виды задач:

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

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

Также для удобства администраторов интерфейс поддерживает компоненты пользовательского интерфейса AJAX.

Весенняя интеграция



Корпоративный портал Jahia — обзор архитектуры (часть 2)

Разработчики Jahia любят Spring. Начиная с пятой версии системы, Jahia интегрирована с Весенняя структура для облегчения создания целостных, быстрых и гибких портальных решений.

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

различные подсистемы Джахии.

Внешние библиотеки портала: Apache Pluto, Hibernate, Apache Lucene – также работать со Spring, что позволяет реализовать гармоничную архитектуру портала.

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



Слушатели событий и правила



Корпоративный портал Jahia — обзор архитектуры (часть 2)

Действия , выполняемые пользователями портала, генерируют события , которые могут используется для выполнения конкретных задач.

Jahia позволяет интеграторам регистрировать свои слушатели событий.

На графике выше показано, как события передаются по разным подсистемы и способы их использования разработчиками.

Событие генерируется при выполнении порталом какого-либо действия.

Возможно команда пользователь , запланированное действие , фоновый процесс .

Действие вызывает генератор событий для создания объекта события.

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

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

Можно использовать прослушиватель событий Groovy (прослушиватель событий Groovy) , что позволяет интегратору использовать язык Groovy в реализации прослушивателя; прослушиватель событий JSP (прослушиватель событий JSP) , делая то же самое для JSP-страницы.

Еще один конкретный слушатель - Менеджер по наблюдению JCR , который связывает механизм событий Jahia со стандартной моделью наблюдения JCR. В этой реализации есть наблюдатель Правила JBoss (наблюдатель правил JBoss) , позволяя интеграторам использовать правила для обработки событий.



Обработка запросов в Джахии



Корпоративный портал Jahia — обзор архитектуры (часть 2)

Выше представлена схема того, как система Jahia обрабатывает запрос от браузера.

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

Запрос браузера может быть направлен либо на Джахия-сервлет , либо на WebDAV-сервлет (если запрашивается бинарный файл).

Во втором случае ( WebDAV-сервлет ) запрос будет перенаправлен на сервис хранения файлов, будет проверено право доступа к запрошенному ресурсу, а затем будет возвращен результат обратно в браузер.

В первом случае он будет называться Джахия-сервлет .

Джахия немедленно создаст объект контекста (объект контекста) уполномоченный "ПарамБин" .

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

Внутри ParamBean использует конвейерный механизм обработки механизм) для разрешения пользователя.

Механизм настраивается для интеграции других технологии разрешения пользователей; подробности этого механизма описаны в разделе «Трубопроводы».

После создания объекта ParamBean Джахия передает управление объекту.

Диспетчер , который также использует конвейер.

Конвейер действий описан далее в этом документе в разделе соответствующий раздел.

Операции трубопровода будут взаимодействовать со службами Jahia для выполнить нужные действия, и результат будет зависеть от того, какие двигатели были вызваны конвейер.

При использовании механизма ядра конвейер действий создаст все необходимые объекты контента.

предоставление разработчику шаблона содержимого, которое он разместит на страницах JSP. Вот почему После создания объектов контента портал перенаправляет запрос пользователя в шаблон JSP для рендеринг страницы.

Наконец, окончательный результат отправляется обратно в браузер.

Естественно, это очень упрощенный пример того, как работает портал, но он может послужить основой для понимания.

схемы обработки запросов в Jahia. Взаимодействие портала с тайниками опущено для простоты.

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



Конвейеры



Корпоративный портал Jahia — обзор архитектуры (часть 2)

Как упоминалось в предыдущем разделе, Jahia использует конвейеры для предоставления настраиваемые цепочки обработки.

Конвейер представляет собой упорядоченный список уровней (клапаны, клапаны), которые вызываются друг за другом по очереди.

Что особенного в шаблоне проектирование конвейера (шаблон проектирования конвейера) — это обязанность каждого уровень - вызвать следующий.

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

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

ДЖИ.

На рисунке выше нижний конвейер — это конвейер аутентификации, в котором вы можете увидеть различные уровни для пользовательские определения.

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

Конвейер действий (верхняя часть изображения) используется в Джахии для обеспечения связанные цепочки обработки запросов.

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

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

Уровень на рисунке назван конвейер, отвечающий за чтение из кэша «Скелет» агрегатор) .

Уровень конвейера «История URL» используется для записи всех URL-адресов, запрошенный пользователем с целью создания хлебных крошек.

Интеграторам может быть интересно иметь возможность настраивать конвейер действий для расширения.

функциональные возможности, связанные с обработкой запросов пользователей.

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

Импорт и экспорт



Корпоративный портал Jahia — обзор архитектуры (часть 2)

Подсистема импорта и экспорта портала Jahia представляет собой мощный механизм для миграции контента между различными пути между веб-сайтами Jahia или даже между различными установками системы.

Для экспорта контента система использует формат хранения данных JSR-170 (или JCR) xml вместе с другие конкретные файлы (например, иерархии файлов для экспорта двоичных данных).

Все эти файлы сжимаются в zip-архив, который можно использовать в подсистеме импорта.

Стандартизированный механизм импорта и экспорта позволяет экспортировать полную установку.

Джахия, набор сайтов, отдельный сайт или даже один раздел сайта; перемещать контент между сайтами и разделы веб-сайтов Jahia; экспортируйте и импортируйте его в системы, отличные от Jahia. Jahia также использует технологии импорта и экспорта для возможности удаленной публикации содержание .

В этом случае импорт (экспорт) контента обычно вызывается планировщиком.

задания.

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



ОТНОШЕНИЕ К КОПИРОВАНИЮ/ВСТАВКЕ
Хотя это может быть неочевидно, функция копирования/вставки также использует систему импорта и экспорта.

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

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



Кластеризация



Корпоративный портал Jahia — обзор архитектуры (часть 2)

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

Типичная установка Jahia в кластере показана на рисунке выше.

Узлы Jahia обмениваются напрямую друг с другом (прямой обмен сообщениями) и иметь доступ к общим ресурсам: файловой системе и базе данных.

данные.

Файловая система используется для хранения индекс поиска и для хранения двоичный данные (если сервер настроен на хранение двоичных данных в файловой системе, установка по по умолчанию – хранение в базе данных ).

В базе данных хранится все остальное.

Поэтому очень важно иметь высокопроизводительную установку.

базу данных для обеспечения хорошей масштабируемости всей системы.

Jahia также может различать типы узлов в кластере, чтобы обеспечить более индивидуальный подход. обработка.

Давайте кратко рассмотрим различные типы узлов.



ПРОСМОТР УЗЛОВ
Джахия «просматривает» узлы являются специализированными узлами Jahia, которые функционировать как узлы публикации контента.

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

Использование узла данного типа позволяет разделить нагрузку на систему выдачи.

контент от нагрузки на систему авторизации и систему фоновой обработки запросов.



УЗЛЫ АВТОРИЗАЦИИ
Узлы авторизации – это узлы кластера, которые также используются для просмотр и редактирование содержимого портала.

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



ОБРАБОТОЧНЫЕ УСТАНОВКИ
В Jahia долго выполняющиеся задачи (это действия по проверке документов (проверка рабочего процесса) операции), операции копирования/вставки, импорта и индексации контента) выполняются как фон процессы .

Таким образом, при выполнении этих длительных операций другие узлы все равно могут обрабатывать запросы на просмотр и редактирование контента.



ИНДЕКСИРОВАННЫЙ СЕРВЕР
Индексирование контента и файлов может оказаться очень дорогостоящей операцией.

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

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

Индексирование большие файлы также требуют памяти, которую нельзя освободить до завершения открытие файла.

Индексированием обычно называют операцию, не требующую выполнения в реальном времени.

время, поэтому он работает в фоновом режиме.

Чтобы снизить нагрузку на серверы Jahia, обработки текущих запросов пользователей, настоятельно рекомендуется установить отдельный сервер индексации контента.

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

Теги: #java ee #WCM #CMS #Jahia #java

Вместе с данным постом часто просматривают: