41
Контент ориентированное программирование JSR-170,JSR-283

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

  • Upload
    ksmster

  • View
    1.185

  • Download
    2

Embed Size (px)

DESCRIPTION

Контент ориентированное программирование JSR-170,JSR-283

Citation preview

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

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

JSR-170,JSR-283

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

Содержание Вступление

Концепция Контент Ориентированного Программирования

Реализация Java Content Repository

Использование

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

Концепция Откуда появилась Основные принципы

Логическое разделение содержимого Динамическое связывание данных Независимость реализации компонентов системы

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

Приложения и хранилища данных

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

Java Community Process

Open Software Standards Organization

Организация основана SUN

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

Что такое JCR?

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

Индустриальный стандарт

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

Мотивация создания спецификации JCR?

Много независимых хранилищ данных API для взаимодействия

определяется поставщиком

Необходимость в стандартном API

Стандартный API должен быть: Независимым от архитектуры,

источников данных или протоколов

Легко использовать

Относительно легко реализовать производителям

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

Узлы и свойства

Узлы организуют данные Свойства хранят данные Любой узел может содержать

свойства

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

Все данные иерархические

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

Типы узлов

Узел может быть построен на NodeType или MixinType Определяет структуру Определяет свойства

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

Типы узлов

Существует множество стандартных типов узлов Все наследуются от базового (nt:base) nt:unstructured наиболее гибкий тип

Наиболее используемые MixinTypes mix:lockable поддержка блокировок mix:referenceable поддержка UUID mix:versionable поддержка версионности

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

Первый уровень реализации JCR

Уровень соответствия 1 (Только чтение) Доступ к данным использую три

способа

Обход узлов Прямой доступ Используя язык запросов XPath

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

Может быть экспортирован весь репозиторий в XML

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

Приложения первого уровня

Типичный приложения Уровня-1 СМС - шаблоны, Доставка

контента

Отображающие портлеты

Экспорт репозитория

Приложения для создания отчетов

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

Ситуация сегодня

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

Унификация

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

Второй уровень реализации JCR Уровень соответствия 2 (Чтение - запись)

Включает все возможности 1 уровня

Импорт из XML

Добавление/изменение/удаление данных

Использование нестандартных типов данных

Обработка структурированной и неструктурированной информации

Ссылочная связанность

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

Синхронизация

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

Консолидация

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

Опциональные возможности JCR Блокировки Управление транзакциями Наблюдение

Слушателю приходит сообщения об изменениях в репозитории

Версионность Возможность получить доступ к

предыдущим ревизиям данных

Запросы используя адаптированный SQL и XPath

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

Обзор АPI

JCR API определено в javax.jcr пакете 15 интерфейсов 2 класса 14 исключений

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

Сессии

javax.jcr.Session Предоставляет доступ к содержимому

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

Дает возможность доступа к узлу по UUID

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

Контроль доступа

Аутентификация используя такие методы Repository.login(Credentials

cred)

Pluggable системы аутентификации JAAS - реализация наиболее

распространенная

Управление контролем доступа зависимо от реализации

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

Как начать работу?

Сконфигурировать репозиторий Запустить или создать

репозиторий Пройти аутентификацию Получить сессию Работа с данными

(добавление/редактирование/удаление)

Выйти из сессии Остановить репозиторий

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

Сконфигурировать репозиторий Запустить или создать репозиторий Пройти аутентификацию Получить сессию Работа с данными

(добавление/редактирование/удаление) Выйти из сессии Остановить репозиторий

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

Использование JCR: Запуск репозитория

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

Вы можете запустить существующий репозиторий

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

Сконфигурировать репозиторий Запустить или создать репозиторий Пройти аутентификацию Получить сессию Работа с данными

(добавление/редактирование/удаление) Выйти из сессии Остановить репозиторий

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

Использование JCR: Аутентификация, доступ к Сессии

Пройти аутентификацию воспользовавшись Repository.login(Credentials cred) SimpleCredentials определен в API Получить объект типа Session

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

Сконфигурировать репозиторий Запустить или создать репозиторий Пройти аутентификацию Получить сессию Работа с данными

(добавление/редактирование/удаление) Выйти из сессии Остановить репозиторий

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

Использование JCR: Добавление данных

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

Использование JCR: Доступ к данным

Данные содержатся в свойствах Что бы получить свойство, нужно

получить узел

Три способа доступа к узлу Прямой доступ Последовательно от другого узла Как результат запроса

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

Последовательный доступк данным

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

Прямой доступ к данным

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

XPath запросы

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

SQL запросы

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

Изменение данных

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

Удаление данных

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

Известные JСR приложения

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

eXo JСR приложения

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

Дополнительная информация

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

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

Вопросы