SlideShare une entreprise Scribd logo
1  sur  42
Контент ориентированное
   программирование
    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 поддержка версионности
Иерархия типов узлов и
                      контента
     Иерархия типов             Иерархия контента

nt:hierarchyNode


                   nt:folder

                    nt:file

                nt:linkedFile

  nt:resource                                       13
Первый уровень реализации 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
Вопросы

Contenu connexe

Tendances (11)

Управление данными (реляционная модель)
Управление данными (реляционная модель)Управление данными (реляционная модель)
Управление данными (реляционная модель)
 
Metod
MetodMetod
Metod
 
Управление данными. Основы проектирования БД
Управление данными. Основы проектирования БДУправление данными. Основы проектирования БД
Управление данными. Основы проектирования БД
 
Управление данными (хранилища данных и OLAP)
Управление данными (хранилища данных и OLAP)Управление данными (хранилища данных и OLAP)
Управление данными (хранилища данных и OLAP)
 
Data Destribution service OMG standart
Data Destribution service OMG standart Data Destribution service OMG standart
Data Destribution service OMG standart
 
Backbone js
Backbone jsBackbone js
Backbone js
 
Backbone lesson 1
Backbone lesson 1Backbone lesson 1
Backbone lesson 1
 
Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...
 
1. основы
1. основы1. основы
1. основы
 
лабораторная работа №6
лабораторная работа №6лабораторная работа №6
лабораторная работа №6
 
1. java lecture intro
1. java lecture intro1. java lecture intro
1. java lecture intro
 

En vedette

Apache Sling Server Seitiges OSGi
Apache Sling Server Seitiges OSGiApache Sling Server Seitiges OSGi
Apache Sling Server Seitiges OSGiFelix Meschberger
 
FrOScamp Zurich: Introducing JCR - 2010
FrOScamp Zurich: Introducing JCR - 2010FrOScamp Zurich: Introducing JCR - 2010
FrOScamp Zurich: Introducing JCR - 2010David Nuescheler
 
Strategic Role Of Product Management
Strategic Role Of Product ManagementStrategic Role Of Product Management
Strategic Role Of Product ManagementChip Hysler
 
Chipsproductlaunchworkshoppresentation 101227091119 Phpapp01
Chipsproductlaunchworkshoppresentation 101227091119 Phpapp01Chipsproductlaunchworkshoppresentation 101227091119 Phpapp01
Chipsproductlaunchworkshoppresentation 101227091119 Phpapp01Chip Hysler
 
Rapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingRapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingFelix Meschberger
 
SoCRA Creativity Presentation
SoCRA Creativity PresentationSoCRA Creativity Presentation
SoCRA Creativity Presentationcclarke
 
FrOSCamp Zurich: Content Management Standards
FrOSCamp Zurich: Content Management StandardsFrOSCamp Zurich: Content Management Standards
FrOSCamp Zurich: Content Management StandardsDavid Nuescheler
 
(now an old version) The Web and Beyond: "Siri, did I leave the oven on?" Mun...
(now an old version) The Web and Beyond: "Siri, did I leave the oven on?" Mun...(now an old version) The Web and Beyond: "Siri, did I leave the oven on?" Mun...
(now an old version) The Web and Beyond: "Siri, did I leave the oven on?" Mun...Claire Rowland
 

En vedette (12)

Apache Sling Server Seitiges OSGi
Apache Sling Server Seitiges OSGiApache Sling Server Seitiges OSGi
Apache Sling Server Seitiges OSGi
 
FrOScamp Zurich: Introducing JCR - 2010
FrOScamp Zurich: Introducing JCR - 2010FrOScamp Zurich: Introducing JCR - 2010
FrOScamp Zurich: Introducing JCR - 2010
 
Strategic Role Of Product Management
Strategic Role Of Product ManagementStrategic Role Of Product Management
Strategic Role Of Product Management
 
Start upandagile final
Start upandagile finalStart upandagile final
Start upandagile final
 
Chipsproductlaunchworkshoppresentation 101227091119 Phpapp01
Chipsproductlaunchworkshoppresentation 101227091119 Phpapp01Chipsproductlaunchworkshoppresentation 101227091119 Phpapp01
Chipsproductlaunchworkshoppresentation 101227091119 Phpapp01
 
Rapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingRapid JCR Applications Development with Sling
Rapid JCR Applications Development with Sling
 
JCR loves CMIS
JCR loves CMISJCR loves CMIS
JCR loves CMIS
 
Agile Edge Valtech
Agile Edge ValtechAgile Edge Valtech
Agile Edge Valtech
 
SoCRA Creativity Presentation
SoCRA Creativity PresentationSoCRA Creativity Presentation
SoCRA Creativity Presentation
 
FrOSCamp Zurich: Content Management Standards
FrOSCamp Zurich: Content Management StandardsFrOSCamp Zurich: Content Management Standards
FrOSCamp Zurich: Content Management Standards
 
Reisebericht
ReiseberichtReisebericht
Reisebericht
 
(now an old version) The Web and Beyond: "Siri, did I leave the oven on?" Mun...
(now an old version) The Web and Beyond: "Siri, did I leave the oven on?" Mun...(now an old version) The Web and Beyond: "Siri, did I leave the oven on?" Mun...
(now an old version) The Web and Beyond: "Siri, did I leave the oven on?" Mun...
 

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

RAD на Java: как устроена CUBA Platform?
RAD на Java: как устроена  CUBA Platform?RAD на Java: как устроена  CUBA Platform?
RAD на Java: как устроена CUBA Platform?Aleksey Stukalov
 
Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Ontico
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftAnton Loginov
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...DevDay
 
Передовой опыт создания Инфраструктуры SharePoint
Передовой опыт создания  Инфраструктуры SharePointПередовой опыт создания  Инфраструктуры SharePoint
Передовой опыт создания Инфраструктуры SharePointMichael Noel
 
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...WDDay
 
Lan-Crawler Bachlor RU
Lan-Crawler Bachlor RULan-Crawler Bachlor RU
Lan-Crawler Bachlor RUcDima
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
 
12 основные возможности корпоративных приложений
12 основные возможности корпоративных приложений12 основные возможности корпоративных приложений
12 основные возможности корпоративных приложенийKewpaN
 
Java. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and ObjectsJava. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and Objectscolriot
 
06 Ввод-вывод
06 Ввод-вывод06 Ввод-вывод
06 Ввод-выводphearnot
 
ZFConf 2010: Using Message Queues in Day-to-Day Projects (Zend_Queue)
ZFConf 2010: Using Message Queues in Day-to-Day Projects (Zend_Queue)ZFConf 2010: Using Message Queues in Day-to-Day Projects (Zend_Queue)
ZFConf 2010: Using Message Queues in Day-to-Day Projects (Zend_Queue)ZFConf Conference
 
ProveIT. ETL как конструктор алгоритмов обработки данных.
ProveIT. ETL как конструктор алгоритмов обработки данных.ProveIT. ETL как конструктор алгоритмов обработки данных.
ProveIT. ETL как конструктор алгоритмов обработки данных.chester_ds
 
Oracle 11g с нуля: первые шаги с СУБД Oracle
Oracle 11g с нуля: первые шаги с СУБД OracleOracle 11g с нуля: первые шаги с СУБД Oracle
Oracle 11g с нуля: первые шаги с СУБД OracleSkillFactory
 
Java. Lecture 06. I/O
Java. Lecture 06. I/OJava. Lecture 06. I/O
Java. Lecture 06. I/Ocolriot
 
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet APIПротокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet APIEkaterina Kuchinskaya
 

Similaire à Контент ориентированное программирование (20)

RAD на Java: как устроена CUBA Platform?
RAD на Java: как устроена  CUBA Platform?RAD на Java: как устроена  CUBA Platform?
RAD на Java: как устроена CUBA Platform?
 
Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)
 
Pustovit presentation
Pustovit presentationPustovit presentation
Pustovit presentation
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на Swift
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
 
Example 14
Example 14Example 14
Example 14
 
Передовой опыт создания Инфраструктуры SharePoint
Передовой опыт создания  Инфраструктуры SharePointПередовой опыт создания  Инфраструктуры SharePoint
Передовой опыт создания Инфраструктуры SharePoint
 
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...
 
Lan-Crawler Bachlor RU
Lan-Crawler Bachlor RULan-Crawler Bachlor RU
Lan-Crawler Bachlor RU
 
Genome
GenomeGenome
Genome
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
12 основные возможности корпоративных приложений
12 основные возможности корпоративных приложений12 основные возможности корпоративных приложений
12 основные возможности корпоративных приложений
 
Java. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and ObjectsJava. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and Objects
 
06 Ввод-вывод
06 Ввод-вывод06 Ввод-вывод
06 Ввод-вывод
 
ZFConf 2010: Using Message Queues in Day-to-Day Projects (Zend_Queue)
ZFConf 2010: Using Message Queues in Day-to-Day Projects (Zend_Queue)ZFConf 2010: Using Message Queues in Day-to-Day Projects (Zend_Queue)
ZFConf 2010: Using Message Queues in Day-to-Day Projects (Zend_Queue)
 
ProveIT. ETL как конструктор алгоритмов обработки данных.
ProveIT. ETL как конструктор алгоритмов обработки данных.ProveIT. ETL как конструктор алгоритмов обработки данных.
ProveIT. ETL как конструктор алгоритмов обработки данных.
 
Oracle 11g с нуля: первые шаги с СУБД Oracle
Oracle 11g с нуля: первые шаги с СУБД OracleOracle 11g с нуля: первые шаги с СУБД Oracle
Oracle 11g с нуля: первые шаги с СУБД Oracle
 
Java. Lecture 06. I/O
Java. Lecture 06. I/OJava. Lecture 06. I/O
Java. Lecture 06. I/O
 
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet APIПротокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
 
HTML 5
HTML 5HTML 5
HTML 5
 

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

  • 1. Контент ориентированное программирование JSR-170,JSR-283
  • 2. Содержание  Вступление − Концепция Контент Ориентированного Программирования  Реализация − Java Content Repository  Использование
  • 3. Концепция  Откуда появилась  Основные принципы − Логическое разделение содержимого − Динамическое связывание данных − Независимость реализации компонентов системы
  • 5. Java Community Process  Open Software Standards Organization  Организация основана SUN
  • 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: Доступ к данным  Данные содержатся в свойствах − Что бы получить свойство, нужно получить узел  Три способа доступа к узлу − Прямой доступ − Последовательно от другого узла − Как результат запроса
  • 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