Java用コンテンツリポジトリAPI

Content Repository API for Java ( JCR ) は、 Javaプラットフォームのアプリケーションプログラミングインターフェース(API)の仕様であり、統一された方法でコンテンツリポジトリにアクセスします。 [ 1 ]コンテンツリポジトリは、コンテンツ管理システムでコンテンツデータだけでなく、バ​​ージョン管理メタデータなどのコンテンツ管理システム(CMS)で使用されるメタデータも保存するために使用されます。この仕様は、Java Community Processの下でJSR-170 (バージョン 1)、[ 2 ] [ 3 ]および JSR-283 (バージョン 2) として開発されました。 [ 4 ]メインのJava パッケージは です。 javax.jcr

概要

JCRは、階層型データの保存、検索、取得に特化したオブジェクトデータベースの一種です。JCR APIは、ドキュメントやその他のバイナリオブジェクトを関連メタデータとともに保存する必要があるコンテンツ管理システムのニーズから生まれましたが、このAPIは他の多くのアプリケーションにも適用できます。オブジェクトストレージに加えて、JCRはデータのバージョン管理、トランザクション、データ変更の監視、そして標準的な方法での XMLへのデータのインポートとエクスポートのためのAPIも提供します。

データ構造

JCR のデータは、関連付けられたプロパティを持つノードのツリーで構成されます。データはプロパティに格納され、数値や文字列などの単純な値、または任意の長さのバイナリ データを保持できます。ノードにはオプションで 1 つ以上のタイプが関連付けられており、プロパティの種類、子ノードの数とタイプ、およびノー​​ドの特定の動作特性を決定します。ノードは、特別な参照タイプ プロパティによって他のノードを指すことができます。このように、JCR のノードは参照整合性とオブジェクト指向の継承の概念の両方を提供します。追加のノード タイプには参照可能ノード タイプがあり、これによりユーザーは汎用的に一意の識別子を使用してそのノードを参照できます。もう 1 つの一般的なタイプはバージョン管理可能タイプです。これにより、リポジトリはドキュメントの履歴を追跡し、ドキュメントの各バージョンのコピーを保存します。

クエリ

JCRは、ツリーの一部を2つの標準形式でXMLにエクスポートし、XMLから直接階層をインポートできます。JSR 283準拠の実装では、クエリ用の標準化されたSQL形式とクエリオブジェクトモデルQOMをサポートする必要があります。JSR 283では、JSR 170で定義されているXPathクエリ言語は非推奨です。JCRのApache Jackrabbitリファレンス実装は、 Apache Lucene検索エンジンの統合もサポートしており、リポジトリ内のデータの全文検索を可能にします。

利用可能な実装

両方の JSR はAdob​​e Systems (元Day Software )の David Nüscheler が主導しています。Day は Content Repository Extreme (CRX) と呼ばれる商用 JCR 実装を持ち、オープンソースのApache Jackrabbit JCR [ 5 ] [ 6 ]にも関わっていました。Apache Jackrabbit JCRは 2010 年 1 月に 2.0 がリリースされました。ModeShape [ 7 ]は JSR-283 をサポートする別のオープンソース JCR 実装です。Adobe Experience Manager (AEM)JahiaHippo CMSおよびMagnolia は JCR API 上に構築されたエンタープライズ コンテンツ管理システムで、デフォルトでは Jackrabbit をリポジトリとして使用しますが、他の JSR-170 認定リポジトリ実装をプラグインすることもできます。JSR-170 はOracle のエンタープライズ コラボレーション ソフトウェアOracle Beehiveによってもサポートされています。eXo Platform の eXo JCR は有償の商用サポートおよびドキュメント付きのオープンソース リポジトリですAlfrescoは、リポジトリにJCR APIを提供するオープンソースのコンテンツ管理システムです。GXは、Apache JackrabbitとJSR をネイティブにベースとしたWebエンタープライズコンテンツ管理(ECM)プラットフォームの新しいコミュニティバージョンをリリースしました。

PHPの適応はTYPO3によって開始され、Java APIをPHPに翻訳しています。[ 8 ] [ 9 ] PHPCRインターフェースは、WebDAVインターフェースを介してJackrabbitバックエンドと通信するPHPフロントエンドであるJackalope [ 10 ]と、クロスランゲージコンテンツリポジトリ あるMidgard [ 11 ]によっても実装されています。

参照

参考文献

  1. ^ 「Java Community Process(SM)プログラム - JSR:Java仕様リクエスト - 詳細JSR#93」 www.jcp.org . 2025年6月24日閲覧
  2. ^ 「Java Community Process(SM)プログラム - JSR:Java仕様要求 - 詳細JSR# 170」。www.jcp.org2025年6月24日閲覧
  3. ^ 「JSR-170 (HTML版仕様)」 2009年6月8日時点のオリジナルよりアーカイブ2009年2月17日閲覧。
  4. ^ 「Java Community Process(SM)プログラム - JSR:Java仕様リクエスト - 詳細JSR# 283」。jcp.org2025年6月24日閲覧
  5. ^ 「Apache Jackrabbit – Apache Jackrabbitへようこそ」 . jackrabbit.apache.org . 2025年6月24日閲覧
  6. ^ 「ログイン - Apache Software Foundation」 . cwiki.apache.org . 2025年6月24日閲覧
  7. ^ 「ModeShape 5.4.0.Finalが利用可能になりました」modeshape.jboss.org . 2024年5月30日閲覧
  8. ^ phpcr/phpcr、PHPCR、2025年5月23日、 2025年6月24日閲覧
  9. ^ 「PHPCRパッケージ – TYPO3 Forge」 . TYPO3 Forge . 2025年6月24日閲覧
  10. ^ 「Jackalope: JCR for PHP」2013年1月27日時点のオリジナルよりアーカイブ2017年9月19日閲覧。
  11. ^ベルギウス、アンリ (2011-12-23)。「Midgard2 PHPCR プロバイダーが 1.0 に達しました」