現在表示中:

概要

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 の基本事項を参照してください。

関連トピック:

リポジトリについて

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 の基本事項を参照してください。

コーディング時のベストプラクティスについては、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 Communities 6.1 をすばやく使用するための機能が提供されます。

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

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

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

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

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

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

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

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

アクセス制御(ACL)のため

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

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

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

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

存在しないリソース(NER)のため

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

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

警告:

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

格納場所

以下に、シャドウノードの例を示します。コミュニティコンポーネントガイドコメントコンポーネントを使用します。

  • コンポーネントは、ローカルリポジトリの以下の場所にあります。
    /content/community-components/en/comments/jcr:content/content/includable/comments

  • 対応するシャドウノードは、ローカルリポジトリの以下の場所にあります。
    /content/usergenerated/content/community-components/en/comments/jcr:content/content/includable/comments

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

デフォルトの動作は、該当するサブツリーが読み取りまたは書き込みのために参照されたときに、パブリッシュインスタンスでシャドウノードを設定することです。

例として、デプロイメントが MSRP および TarMK パブリッシュファームであるとします。

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

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

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

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー