Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,456 views

Published on

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

Published in: Technology
  • Be the first to comment

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

  1. 1. Контент ориентированное программирование JSR-170,JSR-283
  2. 2. Содержание  Вступление − Концепция Контент Ориентированного Программирования  Реализация − Java Content Repository  Использование
  3. 3. Концепция  Откуда появилась  Основные принципы − Логическое разделение содержимого − Динамическое связывание данных − Независимость реализации компонентов системы
  4. 4. Приложения и хранилища данных
  5. 5. Java Community Process  Open Software Standards Organization  Организация основана SUN
  6. 6. Что такое JCR?
  7. 7. Индустриальный стандарт
  8. 8. Мотивация создания спецификации JCR?  Много независимых хранилищ данных − API для взаимодействия определяется поставщиком − Необходимость в стандартном API  Стандартный API должен быть: − Независимым от архитектуры, источников данных или протоколов − Легко использовать − Относительно легко реализовать производителям
  9. 9. Узлы и свойства  Узлы организуют данные  Свойства хранят данные  Любой узел может содержать свойства
  10. 10. Все данные иерархические
  11. 11. Типы узлов  Узел может быть построен на NodeType или MixinType − Определяет структуру − Определяет свойства
  12. 12. Типы узлов  Существует множество стандартных типов узлов − Все наследуются от базового (nt:base) − nt:unstructured наиболее гибкий тип  Наиболее используемые MixinTypes  mix:lockable поддержка блокировок  mix:referenceable поддержка UUID  mix:versionable поддержка версионности
  13. 13. Иерархия типов узлов и контента Иерархия типов Иерархия контента nt:hierarchyNode nt:folder nt:file nt:linkedFile nt:resource 13
  14. 14. Первый уровень реализации JCR  Уровень соответствия 1 (Только чтение) − Доступ к данным использую три способа  Обход узлов  Прямой доступ  Используя язык запросов XPath − Используется упорядоченная структура содержимого − Может быть экспортирован весь репозиторий в XML
  15. 15. Приложения первого уровня  Типичный приложения Уровня-1 − СМС - шаблоны, Доставка контента − Отображающие портлеты − Экспорт репозитория − Приложения для создания отчетов
  16. 16. Ситуация сегодня
  17. 17. Унификация
  18. 18. Второй уровень реализации JCR  Уровень соответствия 2 (Чтение - запись) − Включает все возможности 1 уровня − Импорт из XML − Добавление/изменение/удаление данных − Использование нестандартных типов данных − Обработка структурированной и неструктурированной информации − Ссылочная связанность
  19. 19. Синхронизация
  20. 20. Консолидация
  21. 21. Опциональные возможности JCR  Блокировки  Управление транзакциями  Наблюдение − Слушателю приходит сообщения об изменениях в репозитории  Версионность − Возможность получить доступ к предыдущим ревизиям данных  Запросы используя адаптированный SQL и XPath
  22. 22. Обзор АPI  JCR API определено в javax.jcr пакете − 15 интерфейсов − 2 класса − 14 исключений
  23. 23. Сессии  javax.jcr.Session − Предоставляет доступ к содержимому репозитория − Предоставляет доступ к корневому узлу  Дает возможность доступа к узлу по UUID
  24. 24. Контроль доступа  Аутентификация используя такие методы − Repository.login(Credentials cred)  Pluggable системы аутентификации − JAAS - реализация наиболее распространенная  Управление контролем доступа зависимо от реализации
  25. 25. Как начать работу?  Сконфигурировать репозиторий  Запустить или создать репозиторий  Пройти аутентификацию  Получить сессию  Работа с данными (добавление/ редактирование/удаление)  Выйти из сессии  Остановить репозиторий
  26. 26.  Сконфигурировать репозиторий  Запустить или создать репозиторий  Пройти аутентификацию  Получить сессию  Работа с данными (добавление/редактирование/удаление)  Выйти из сессии  Остановить репозиторий
  27. 27. Использование JCR: Запуск репозитория  Для первого использования необходимо, для начала создать репозиторий  Вы можете запустить существующий репозиторий
  28. 28.  Сконфигурировать репозиторий  Запустить или создать репозиторий  Пройти аутентификацию  Получить сессию  Работа с данными (добавление/редактирование/удаление)  Выйти из сессии  Остановить репозиторий
  29. 29. Использование JCR: Аутентификация, доступ к Сессии  Пройти аутентификацию воспользовавшись − Repository.login(Credentials cred) − SimpleCredentials определен в API − Получить объект типа Session
  30. 30.  Сконфигурировать репозиторий  Запустить или создать репозиторий  Пройти аутентификацию  Получить сессию  Работа с данными (добавление/редактирование/удаление)  Выйти из сессии  Остановить репозиторий
  31. 31. Использование JCR: Добавление данных
  32. 32. Использование JCR: Доступ к данным  Данные содержатся в свойствах − Что бы получить свойство, нужно получить узел  Три способа доступа к узлу − Прямой доступ − Последовательно от другого узла − Как результат запроса
  33. 33. Последовательный доступ к данным
  34. 34. Прямой доступ к данным
  35. 35. XPath запросы
  36. 36. SQL запросы
  37. 37. Изменение данных
  38. 38. Удаление данных
  39. 39. Известные JСR приложения
  40. 40. eXo JСR приложения
  41. 41. Дополнительная информация  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
  42. 42. Вопросы

×