ストレージリソースプロバイダーの概要

概要

AEM Communities 6.1 以降、コミュニティコンテンツ(一般的にユーザー生成コンテンツ(UGC)と呼ばれる)は、ストレージリソースプロバイダー(SRP)によって提供される単一の共通ストアに格納されます。

複数の SRP オプションがあり、それらはすべて、作成、読み取り、更新および削除(CRUD)操作がすべて含まれた、新しい AEM Communities インターフェイスである SocialResourceProvider API(SRP API)によって UGC にアクセスします。

すべての SCF コンポーネントは SRP API を使用して実装されるので、基になるトポロジまたは UGC の場所を知らなくてもコードを開発できます。

SocialResourceProvider API は、AEM Communities の使用許諾を得たお客様のみが使用できます。

メモ

カスタムコンポーネント:AEM Communities の使用許諾を得たお客様の場合、SRP API は、カスタムコンポーネントの開発者が、基になるトポロジに関係なく UGC にアクセスするために使用できます。SRPとUGC Essentialsを参照してください。

関連トピック:

リポジトリについて

SRP を理解するには、AEM コミュニティサイトにおける AEM リポジトリ(OAK)の役割を理解することが必要です。

Java Content Repository(JCR) この規格では、コンテンツリポジトリのデータモデルおよびアプリケーションプログラミングインターフェイス(JCR API)が定義されます。従来のファイル・システムの特性とリレーショナル・データベースの特性を組み合わせ、コンテンツ・アプリケーションが頻繁に必要とする機能を多数追加します。

JCR の 1 つの実装が AEM リポジトリである OAK です。

Apache Jackrabbit Oak(OAK) OAK は、コンテンツ中心のアプリケーション向けに特別に設計されたデータストレージシステムである JCR 2.0 の実装です。これは、非構造化データや半構造化データを対象に設計された階層型データベースの一種です。 このリポジトリには、ユーザーに表示されるコンテンツだけでなく、アプリケーションで使用されるすべてのコード、テンプレートおよび内部データが格納されます。コンテンツにアクセスするUIはCRXDE Liteです。

JCR と OAK はどちらも、通常は AEM リポジトリを示すために使用されます。

非公開のオーサー環境でサイトコンテンツを開発した後、それを公開のパブリッシュ環境にコピーする必要があります。これは、レプリケーション​と呼ばれる操作で行われることがよくあります。 これは、作成者、開発者、管理者の管理下で発生します。

UGC の場合、コンテンツは公開のパブリッシュ環境で登録済みサイト訪問者(コミュニティメンバー)によって生成されます。これはランダムに発生します。

管理およびレポートの目的では、非公開のオーサー環境から UGC にアクセスすることが有用です。SRPを使用すると、作成者からのUGCへのアクセスはより一貫性が高く、発行から作成者への逆複製は不要です。

SRP について

UGC が共有ストレージに格納される場合、ほとんどのデプロイメントでオーサー環境とパブリッシュ環境の両方からアクセスできるメンバーコンテンツの単一インスタンスがあります。SRPの選択(MSRP、ASRP、JSRP)に関係なく、すべてのSRP APIを使用してプログラムからアクセスする必要があります。

メモ

サンプルコードと追加の詳細については、SRPとUGC Essentialsを参照してください。

コーディング時のベストプラクティスについては、SRP による UGC へのアクセスを参照してください。

ASRP

ASRP の場合、UGC は JCR には格納されず、Adobe がホストおよび管理するクラウドサービスに格納されます。ASRPに保存されたUGCは、CRXDE Liteで表示したり、JCR APIを使用してアクセスしたりすることはできません。

ASRP - Adobe ストレージリソースプロバイダーを参照してください。

開発者が UGC に直接アクセスすることはできません。

ASRP では検索に Adobe クラウドが使用されます。

MSRP

MSRP の場合、UGC は JCR には格納されず、MongoDB に格納されます。MSRPに保存されたUGCは、CRXDE Liteで表示したり、JCR APIを使用してアクセスしたりすることはできません。

MSRP - MongoDB ストレージリソースプロバイダーを参照してください。

MSRP は ASRP と互換性がありますが、すべての AEM サーバーインスタンスは同じ UGC にアクセスするので、共通のツールを使用して MongoDB に格納された UGC に直接アクセスできます。

MSRP では検索に Solr が使用されます。

JSRP

JSRP は、単一 AEM インスタンス上のすべての UGC にアクセスするためのデフォルトのプロバイダーです。MSRPやASRPを設定しなくても、AEM Communities6.1を素早く体験できます。

JSRP - JCRストレージリソースプロバイダーを参照してください。

JSRP の場合、UGC は JCR に格納され、CRXDE Lite と JCR API の両方でアクセスできますが、JCR API は使用しないことを強くお勧めします。使用すると、今後の変更によってカスタムコードが影響を受ける可能性があります。

さらに、オーサー環境とパブリッシュ環境のリポジトリは共有されません。発行インスタンスのクラスターは共有発行リポジトリになりますが、発行時に入力されたUGCは作成者に表示されないので、作成者からUGCを管理することはできません。 UGCは、そのUGCが入力されたインスタンスのAEMリポジトリ(JCR)でのみ持続します。

JSRP では検索に Oak インデックスが使用されます。

JCR でのシャドウノードについて

UGC へのパスを模倣するシャドウノードは、以下の 2 つの目的のためにローカルリポジトリに存在します。

  1. アクセス制御(ACL)
  2. 存在しないリソース(NER)

SRPの実装に関係なく、実際のUGCはシャドウノードと同じ場所に*表示されません。

For Access Control (ACLs)

一部の SRP 実装(ASRP や MSRP など)では、コミュニティコンテンツは ACL 検証が提供されないデータベースに格納されます。シャドウノードは、ACLを適用できるローカルリポジトリ内の場所を提供します。

SRP API を使用すると、すべての SRP オプションによって、すべての CRUD 操作の前にシャドウの場所の同じチェックが実行されます。

ACL チェックでは、リソースの UGC に適用される権限のチェックに適したパスを返すユーティリティメソッドが使用されます。

サンプルコードについては、SRPとUGC Essentialsを参照してください。

For Non-Existing Resources (NERs)

一部のコミュニティコンポーネントはスクリプトに含めることができ、したがってコミュニティ機能をサポートするために Sling アドレス可能ノードが必要です。含まれる コンポーネントは、「既存以外のリソース(NER)」と呼ばれます。

シャドウノードによって、リポジトリ内の Sling アドレス可能な場所が提供されます。

注意

シャドウノードには複数の用途があるので、シャドウノードの存在はコンポーネントが NER であることを意味しません。**

格納場所

次の例は、『コミュニティコンポーネントガイド』のコメントコンポーネントを使用したシャドウノードの例です。

  • コンポーネントは次の場所にあるローカルリポジトリに存在します。

    /content-community-components/jp/comments/jcr:content/content/includable/comments

  • 対応するシャドウノードは、次の場所にあるローカルリポジトリに存在します。

    /content/usergenerated/content/community-components/jp/comments/jcr:content/content/includable/comments

シャドウノードの下には UGC はありません。

デフォルトの動作では、関連するサブツリーが読み取りまたは書き込み用に参照されるたびに、発行インスタンスにシャドウノードを設定します。

例として、デプロイメントがTarMK発行ファームのMSRPであるとします。

メンバーがpub1にUGCを投稿する(MongoDBに格納)と、JCRのpub1にシャドウノードが作成されます。

pub2でUGCを初めて読み取るとき、何も設定されていない場合は、デフォルトの動作でシャドウノードが作成されます。

デフォルト以外の動作が必要な場合は、それをオーサーインスタンスで設定し、すべてのパブリッシュインスタンスにロールフォワードする必要があります。これは通常は手動プロセスです。

このページ

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now