Контент ориентированное программирование

Preview:

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

Вопросы

Recommended