Interfejs API repozytorium treści dla języka Java

Content Repository API for Java ( JCR ) to specyfikacja interfejsu programowania aplikacji (API) platformy Java w celu uzyskania jednolitego dostępu do repozytoriów treści . [ nieudana weryfikacja ] Repozytoria treści są używane w systemach zarządzania treścią do przechowywania danych dotyczących treści, a także metadanych używanych w systemach zarządzania treścią (CMS), takich jak metadane wersjonowania. Specyfikacja została opracowana w ramach Java Community Process jako JSR-170 (wersja 1) i jako JSR-283 (wersja 2). Głównym pakietem Javy jest javax.jcr .

Przegląd

JCR to typ obiektowej bazy danych dostosowany do przechowywania, wyszukiwania i pobierania danych hierarchicznych. JCR API wyrosło z potrzeb systemów zarządzania treścią, które wymagają przechowywania dokumentów i innych obiektów binarnych wraz z powiązanymi metadanymi; jednak interfejs API ma zastosowanie do wielu dodatkowych typów aplikacji. Oprócz obiektowej pamięci masowej JCR zapewnia: interfejsy API do wersjonowania danych; transakcje ; obserwacja zmian danych; oraz importować lub eksportować dane do formatu XML w standardowy sposób.

Struktura danych

Dane w JCR składają się z drzewa węzłów z powiązanymi właściwościami. Dane są przechowywane we właściwościach, które mogą zawierać proste wartości, takie jak liczby i ciągi znaków lub dane binarne o dowolnej długości. Węzły mogą opcjonalnie mieć skojarzony z nimi jeden lub więcej typów, które dyktują rodzaje właściwości, liczbę i typ węzłów potomnych oraz pewne cechy behawioralne węzłów. Węzły mogą wskazywać inne węzły za pomocą specjalnej właściwości typu odniesienia. W ten sposób węzły w JCR oferują zarówno integralność referencyjną , jak i obiektową koncepcję dziedziczenia . Dodatkowe typy węzłów obejmują referencyjny typ węzła, który umożliwia użytkownikowi odniesienie się do wspomnianego węzła poprzez użycie uniwersalnego unikalnego identyfikatora. Innym popularnym typem jest typ wersjonowany. Dzięki temu repozytorium śledzi historię dokumentu i przechowuje kopie każdej wersji dokumentu.

Zapytania

JCR może eksportować części swojego drzewa do XML w dwóch standardowych formatach i może importować hierarchie bezpośrednio z XML. Implementacje zgodne z JSR 283 muszą obsługiwać standardową formę SQL dla zapytań i obiektowy model zapytań QOM. JSR 283 zastępuje XPath zdefiniowany w JSR 170. Referencyjna implementacja JCR Apache Jackrabbit obsługuje również integrację wyszukiwarki Apache Lucene w celu umożliwienia wyszukiwania pełnotekstowego danych w repozytorium.

Dostępne implementacje

Oba JSR są kierowane przez Davida Nüschelera z Adobe Systems (dawniej Day Software ). Day miał zarówno komercyjną implementację JCR o nazwie Content Repository Extreme (CRX), jak i był zaangażowany w Open Source Apache Jackrabbit JCR, który miał swoją wersję 2.0 w styczniu 2010. ModeShape to kolejna implementacja JCR typu open source, która obsługuje JSR-283. Jahia , Hippo CMS i Magnolia to systemy zarządzania treścią w przedsiębiorstwie zbudowane w oparciu o interfejs API JCR, domyślnie korzystający z repozytorium Jackrabbit, ale z możliwością podłączenia dowolnej innej implementacji repozytorium z certyfikatem JSR-170. JSR-170 jest również obsługiwany przez Oracle Beehive , oprogramowanie firmy Oracle do współpracy w przedsiębiorstwach. eXo JCR by eXo Platform to repozytorium typu open source z płatnym wsparciem komercyjnym i dokumentacją. Wielu innych dostawców komercyjnych pracuje nad kompatybilnością i produktami JCR. Alfresco to system zarządzania treścią typu open source, który udostępnia interfejs API JCR w swoim repozytorium. Firma GX wydała nową wersję społecznościową swojej platformy Web Enterprise Content Management (ECM) opartej natywnie na Apache Jackrabbit i JSR.

Adaptacje PHP zostały rozpoczęte przez TYPO3 , tłumacząc Java API na PHP. Interfejsy PHPCR są również implementowane przez Jackalope, frontend PHP komunikujący się z backendem Jackrabbit poprzez interfejs WebDAV oraz Midgard , wielojęzyczne repozytorium treści.

Zobacz też