2. Содержание
Вступление
− Концепция Контент Ориентированного
Программирования
Реализация
− Java Content Repository
Использование
3. Концепция
Откуда появилась
Основные принципы
− Логическое разделение содержимого
− Динамическое связывание данных
− Независимость реализации компонентов системы
8. Мотивация создания спецификации JCR?
Много независимых хранилищ данных
− API для взаимодействия
определяется поставщиком
− Необходимость в стандартном API
Стандартный API должен быть:
− Независимым от архитектуры,
источников данных или протоколов
− Легко использовать
− Относительно легко реализовать
производителям
9. Узлы и свойства
Узлы организуют данные
Свойства хранят данные
Любой узел может содержать
свойства
11. Типы узлов
Узел может быть построен на
NodeType или MixinType
− Определяет структуру
− Определяет свойства
12. Типы узлов
Существует множество стандартных типов узлов
− Все наследуются от базового (nt:base)
− nt:unstructured наиболее гибкий тип
Наиболее используемые MixinTypes
mix:lockable поддержка блокировок
mix:referenceable поддержка UUID
mix:versionable поддержка версионности
13. Иерархия типов узлов и
контента
Иерархия типов Иерархия контента
nt:hierarchyNode
nt:folder
nt:file
nt:linkedFile
nt:resource 13
14. Первый уровень реализации JCR
Уровень соответствия 1 (Только чтение)
− Доступ к данным использую три
способа
Обход узлов
Прямой доступ
Используя язык запросов XPath
− Используется упорядоченная
структура содержимого
− Может быть экспортирован весь
репозиторий в XML
15. Приложения первого уровня
Типичный приложения Уровня-1
− СМС - шаблоны, Доставка
контента
− Отображающие портлеты
− Экспорт репозитория
− Приложения для создания
отчетов
18. Второй уровень реализации JCR
Уровень соответствия 2 (Чтение - запись)
− Включает все возможности 1 уровня
− Импорт из XML
− Добавление/изменение/удаление
данных
− Использование нестандартных типов
данных
− Обработка структурированной и
неструктурированной информации
− Ссылочная связанность
21. Опциональные возможности JCR
Блокировки
Управление транзакциями
Наблюдение
− Слушателю приходит сообщения об
изменениях в репозитории
Версионность
− Возможность получить доступ к
предыдущим ревизиям данных
Запросы используя адаптированный
SQL и XPath
22. Обзор АPI
JCR API определено в javax.jcr
пакете
− 15 интерфейсов
− 2 класса
− 14 исключений
23. Сессии
javax.jcr.Session
− Предоставляет доступ к содержимому
репозитория
− Предоставляет доступ к корневому узлу
Дает возможность доступа к узлу по UUID
24. Контроль доступа
Аутентификация используя
такие методы
− Repository.login(Credentials
cred)
Pluggable системы
аутентификации
− JAAS - реализация наиболее
распространенная
Управление контролем доступа
зависимо от реализации
25. Как начать работу?
Сконфигурировать репозиторий
Запустить или создать
репозиторий
Пройти аутентификацию
Получить сессию
Работа с данными (добавление/
редактирование/удаление)
Выйти из сессии
Остановить репозиторий
26.
Сконфигурировать репозиторий
Запустить или создать репозиторий
Пройти аутентификацию
Получить сессию
Работа с данными
(добавление/редактирование/удаление)
Выйти из сессии
Остановить репозиторий
27. Использование JCR:
Запуск репозитория
Для первого использования
необходимо, для начала
создать репозиторий
Вы можете запустить
существующий репозиторий
28.
Сконфигурировать репозиторий
Запустить или создать репозиторий
Пройти аутентификацию
Получить сессию
Работа с данными
(добавление/редактирование/удаление)
Выйти из сессии
Остановить репозиторий
29. Использование JCR:
Аутентификация, доступ к Сессии
Пройти аутентификацию
воспользовавшись
− Repository.login(Credentials cred)
− SimpleCredentials определен в API
− Получить объект типа Session
30.
Сконфигурировать репозиторий
Запустить или создать репозиторий
Пройти аутентификацию
Получить сессию
Работа с данными
(добавление/редактирование/удаление)
Выйти из сессии
Остановить репозиторий
32. Использование JCR:
Доступ к данным
Данные содержатся в свойствах
− Что бы получить свойство, нужно
получить узел
Три способа доступа к узлу
− Прямой доступ
− Последовательно от другого узла
− Как результат запроса