Upload
ksmster
View
1.201
Download
2
Embed Size (px)
DESCRIPTION
Контент ориентированное программирование JSR-170,JSR-283
Citation preview
Контент ориентированное программирование
JSR-170,JSR-283
Содержание Вступление
Концепция Контент Ориентированного Программирования
Реализация Java Content Repository
Использование
Концепция Откуда появилась Основные принципы
Логическое разделение содержимого Динамическое связывание данных Независимость реализации компонентов системы
Приложения и хранилища данных
Java Community Process
Open Software Standards Organization
Организация основана SUN
Что такое JCR?
Индустриальный стандарт
Мотивация создания спецификации JCR?
Много независимых хранилищ данных API для взаимодействия
определяется поставщиком
Необходимость в стандартном API
Стандартный API должен быть: Независимым от архитектуры,
источников данных или протоколов
Легко использовать
Относительно легко реализовать производителям
Узлы и свойства
Узлы организуют данные Свойства хранят данные Любой узел может содержать
свойства
Все данные иерархические
Типы узлов
Узел может быть построен на NodeType или MixinType Определяет структуру Определяет свойства
Типы узлов
Существует множество стандартных типов узлов Все наследуются от базового (nt:base) nt:unstructured наиболее гибкий тип
Наиболее используемые MixinTypes mix:lockable поддержка блокировок mix:referenceable поддержка UUID mix:versionable поддержка версионности
Первый уровень реализации JCR
Уровень соответствия 1 (Только чтение) Доступ к данным использую три
способа
Обход узлов Прямой доступ Используя язык запросов XPath
Используется упорядоченная структура содержимого
Может быть экспортирован весь репозиторий в XML
Приложения первого уровня
Типичный приложения Уровня-1 СМС - шаблоны, Доставка
контента
Отображающие портлеты
Экспорт репозитория
Приложения для создания отчетов
Ситуация сегодня
Унификация
Второй уровень реализации JCR Уровень соответствия 2 (Чтение - запись)
Включает все возможности 1 уровня
Импорт из XML
Добавление/изменение/удаление данных
Использование нестандартных типов данных
Обработка структурированной и неструктурированной информации
Ссылочная связанность
Синхронизация
Консолидация
Опциональные возможности JCR Блокировки Управление транзакциями Наблюдение
Слушателю приходит сообщения об изменениях в репозитории
Версионность Возможность получить доступ к
предыдущим ревизиям данных
Запросы используя адаптированный SQL и XPath
Обзор АPI
JCR API определено в javax.jcr пакете 15 интерфейсов 2 класса 14 исключений
Сессии
javax.jcr.Session Предоставляет доступ к содержимому
репозитория Предоставляет доступ к корневому узлу
Дает возможность доступа к узлу по UUID
Контроль доступа
Аутентификация используя такие методы Repository.login(Credentials
cred)
Pluggable системы аутентификации JAAS - реализация наиболее
распространенная
Управление контролем доступа зависимо от реализации
Как начать работу?
Сконфигурировать репозиторий Запустить или создать
репозиторий Пройти аутентификацию Получить сессию Работа с данными
(добавление/редактирование/удаление)
Выйти из сессии Остановить репозиторий
Сконфигурировать репозиторий Запустить или создать репозиторий Пройти аутентификацию Получить сессию Работа с данными
(добавление/редактирование/удаление) Выйти из сессии Остановить репозиторий
Использование JCR: Запуск репозитория
Для первого использования необходимо, для начала создать репозиторий
Вы можете запустить существующий репозиторий
Сконфигурировать репозиторий Запустить или создать репозиторий Пройти аутентификацию Получить сессию Работа с данными
(добавление/редактирование/удаление) Выйти из сессии Остановить репозиторий
Использование JCR: Аутентификация, доступ к Сессии
Пройти аутентификацию воспользовавшись Repository.login(Credentials cred) SimpleCredentials определен в API Получить объект типа Session
Сконфигурировать репозиторий Запустить или создать репозиторий Пройти аутентификацию Получить сессию Работа с данными
(добавление/редактирование/удаление) Выйти из сессии Остановить репозиторий
Использование JCR: Добавление данных
Использование JCR: Доступ к данным
Данные содержатся в свойствах Что бы получить свойство, нужно
получить узел
Три способа доступа к узлу Прямой доступ Последовательно от другого узла Как результат запроса
Последовательный доступк данным
Прямой доступ к данным
XPath запросы
SQL запросы
Изменение данных
Удаление данных
Известные JСR приложения
eXo JСR приложения
Дополнительная информация
JCR 170 (Оригинал спецификации JCR) http://jcp.org/en/jsr/detail?id=170
JCR 283 сайт посвященный разработке JCR 2.0
http://jcp.org/en/jsr/detail?id=283
eXo Platform (Open Source JCR)
http://www.exoplatform.org
eXo Platform Wiki
http://wiki.exoplatform.com
Вопросы