API репозитория контента для Java
API репозитория контента для Java ( JCR ) — это спецификация Java платформы интерфейса прикладного программирования (API) доступа к репозиториям контента . для единообразного [1] [ не удалось пройти проверку ] Репозитории контента используются в системах управления контентом для хранения данных контента, а также метаданных, используемых в системах управления контентом (CMS), таких как метаданные управления версиями. Спецификация была разработана в рамках процесса сообщества Java как JSR-170 (версия 1), [2] [3] и как JSR-283 (версия 2). [4] Основной Java пакет javax.jcr
.
Обзор
[ редактировать ]JCR — это тип объектной базы данных, предназначенный для хранения, поиска и извлечения иерархических данных. JCR API вырос из потребностей систем управления контентом, которые требуют хранения документов и других двоичных объектов со связанными метаданными; однако API применим ко многим дополнительным типам приложений. Помимо объектного хранилища, JCR предоставляет: API для управления версиями данных; транзакции ; наблюдение за изменениями данных; а также импортировать или экспортировать данные в XML стандартным способом.
Структура данных
[ редактировать ]Данные в JCR состоят из дерева узлов со связанными свойствами. Данные хранятся в свойствах, которые могут содержать простые значения, такие как числа и строки, или двоичные данные произвольной длины. Узлы могут опционально иметь один или несколько связанных с ними типов, которые определяют типы свойств, количество и тип дочерних узлов, а также определенные поведенческие характеристики узлов. Узлы могут указывать на другие узлы через специальное свойство ссылочного типа. Таким образом, узлы в JCR обеспечивают как ссылочную целостность , так и объектно-ориентированную концепцию наследования . Дополнительные типы узлов включают тип узла, на который можно ссылаться, который позволяет пользователю ссылаться на указанный узел посредством использования универсального уникального идентификатора. Еще один популярный тип — это тип с поддержкой версий. Это позволяет репозиторию отслеживать историю документа и хранить копии каждой версии документа.
Запросы
[ редактировать ]JCR может экспортировать части своего дерева в XML в двух стандартных форматах и импортировать иерархии непосредственно из XML. Реализации, соответствующие JSR 283, должны поддерживать стандартизированную форму SQL для запросов и объектную модель запросов QOM. В JSR 283 устарел язык запросов XPath , определенный в JSR 170. Эталонная реализация JCR Apache Jackrabbit также поддерживает интеграцию поисковой системы Apache Lucene для полнотекстового поиска данных в репозитории.
Доступные реализации
[ редактировать ]Оба JSR возглавляет Дэвид Нюшелер из Adobe Systems (ранее Day Software ). Дэй имел как коммерческую реализацию JCR под названием Content Repository Extreme (CRX), так и участвовал в разработке Apache Jackrabbit JCR с открытым исходным кодом. [5] [6] версия 2.0 которого вышла в январе 2010 года. ModeShape [7] это еще одна реализация JCR с открытым исходным кодом, поддерживающая JSR-283. Adobe Experience Manager (AEM) , Jahia , Hippo CMS и Magnolia — это системы управления корпоративным контентом, построенные на API JCR, использующие Jackrabbit в качестве репозитория по умолчанию, но способные подключать любую другую реализацию репозитория, сертифицированную JSR-170. JSR-170 также поддерживается Oracle Beehive , программным обеспечением Oracle для совместной работы на предприятиях. eXo JCR от eXo Platform — это репозиторий с открытым исходным кодом, платной коммерческой поддержкой и документацией. Многие другие коммерческие поставщики работают над совместимостью и продуктами JCR. Alfresco — это система управления контентом с открытым исходным кодом, которая предоставляет API JCR в свой репозиторий. GX выпустила новую (ECM) для сообщества, версию своей платформы управления корпоративным веб-контентом основанную на Apache Jackrabbit и JSR.
Адаптация PHP была начата TYPO3 , переводя Java API на PHP. [8] [9] Интерфейсы PHPCR также реализованы Jackalope, [10] PHP-интерфейс, взаимодействующий с серверной частью Jackrabbit через интерфейс WebDAV и Midgard , [11] хранилище межъязыкового контента.
См. также
[ редактировать ]- Службы взаимодействия управления контентом (CMIS), еще один API репозитория контента.
Ссылки
[ редактировать ]- ^ Java API для XML-реестров - еще один Java API для реестров и репозиториев.
- ^ JSR-170
- ^ «JSR-170 (HTML-версия спецификации)» . Архивировано из оригинала 8 июня 2009 г. Проверено 17 февраля 2009 г.
- ^ JSR-283
- ^ Домашняя страница Apache Jackrabbit
- ^ JCR ссылки на статьи и приложения на основе JCR.
- ^ «Доступна ModeShape 5.4.0.Final» . modeshape.jboss.org . Проверено 30 мая 2024 г.
- ^ phpCR
- ^ phpcr на github
- ^ «Jackalope: JCR для PHP» . Архивировано из оригинала 27 января 2013 г. Проверено 19 сентября 2017 г.
- ^ Бергиус, Анри (23 декабря 2011 г.). «Провайдер Midgard2 PHPCR достиг версии 1.0» .