Show Menu
トピック×

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

概要

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 にアクセスするために使用できます。See SRP and UGC Essentials .
関連トピック:

リポジトリについて

SRP を理解するには、AEM コミュニティサイトにおける AEM リポジトリ(OAK)の役割を理解することが必要です。
Java Content Repository(JCR) この規格では、コンテンツリポジトリのデータモデルおよびアプリケーションプログラミングインターフェイス( JCR API )が定義されます。従来のファイル・システムの特性とリレーショナル・データベースの特性を組み合わせ、コンテンツ・アプリケーションに必要な機能を追加します。
JCR の 1 つの実装が AEM リポジトリである OAK です。
Apache Jackrabbit Oak(OAK) OAK は、コンテンツ中心のアプリケーション向けに特別に設計されたデータストレージシステムである JCR 2.0 の実装です。これは、非構造化データや半構造化データ用に設計された階層データベースの一種です。 このリポジトリには、ユーザーに表示されるコンテンツだけでなく、アプリケーションで使用されるすべてのコード、テンプレートおよび内部データが格納されます。The UI for accessing content is CRXDE Lite .
JCR と OAK はどちらも、通常は AEM リポジトリを示すために使用されます。
非公開のオーサー環境でサイトコンテンツを開発した後、それを公開のパブリッシュ環境にコピーする必要があります。This is often done through an operation called replication . これは、作成者、開発者、管理者の管理下で発生します。
UGC の場合、コンテンツは公開のパブリッシュ環境で登録済みサイト訪問者(コミュニティメンバー)によって生成されます。これはランダムに発生します。
管理およびレポートの目的では、非公開のオーサー環境から UGC にアクセスすることが有用です。SRPを使用すると、作成者からUGCへのアクセスはより一貫性があり、発行から作成者への逆複製は必要なく、パフォーマンスが向上します。

SRP について

UGC が共有ストレージに格納される場合、ほとんどのデプロイメントでオーサー環境とパブリッシュ環境の両方からアクセスできるメンバーコンテンツの単一インスタンスがあります。SRPの選択(MSRP、ASRP、JSRP)に関係なく、すべてのアクセスはSRP APIを使用してプログラム的に行う必要があります。
See SRP and UGC Essentials for sample code and additional details.
コーディング時のベストプラクティスについては、 SRP による UGC へのアクセス を参照してください。

ASRP

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

MSRP

MSRP の場合、UGC は JCR には格納されず、MongoDB に格納されます。MSRPに保存されたUGCは、CRXDE Liteでは表示できず、JCR APIを使用してアクセスすることもできません。
MSRP は ASRP と互換性がありますが、すべての AEM サーバーインスタンスは同じ UGC にアクセスするので、共通のツールを使用して MongoDB に格納された UGC に直接アクセスできます。
MSRP では検索に Solr が使用されます。

JSRP

JSRP は、単一 AEM インスタンス上のすべての UGC にアクセスするためのデフォルトのプロバイダーです。MSRPやASRPを設定しなくても、AEM Communities 6.1をすばやく体験できます。
JSRP の場合、UGC は JCR に格納され、CRXDE Lite と JCR API の両方でアクセスできますが、JCR API は使用しないことを強くお勧めします。使用すると、今後の変更によってカスタムコードが影響を受ける可能性があります。
さらに、オーサー環境とパブリッシュ環境のリポジトリは共有されません。発行インスタンスのクラスターは共有発行リポジトリになりますが、発行時に入力されたUGCは作成者に表示されないので、作成者からUGCを管理する機能はありません。 UGCは、入力されたインスタンスのAEMリポジトリ(JCR)でのみ持続します。
JSRP では検索に Oak インデックスが使用されます。

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

UGC へのパスを模倣するシャドウノードは、以下の 2 つの目的のためにローカルリポジトリに存在します。
SRPの実装に関係なく、実際のUGCはシャドウノードと同じ場所に*表示されません。

For Access Control (ACLs)

一部の SRP 実装(ASRP や MSRP など)では、コミュニティコンテンツは ACL 検証が提供されないデータベースに格納されます。シャドウノードは、ACLを適用できるローカルリポジトリ内の場所を提供します。
SRP API を使用すると、すべての SRP オプションによって、すべての CRUD 操作の前にシャドウの場所の同じチェックが実行されます。
ACL チェックでは、リソースの UGC に適用される権限のチェックに適したパスを返すユーティリティメソッドが使用されます。
See SRP and UGC Essentials for sample code.

For Non-Existing Resources (NERs)

一部のコミュニティコンポーネントはスクリプトに含めることができ、したがってコミュニティ機能をサポートするために Sling アドレス可能ノードが必要です。 含まれるコンポーネント は、「既存以外のリソース(NER)」と呼ばれます。
シャドウノードによって、リポジトリ内の Sling アドレス可能な場所が提供されます。
シャドウノードには複数の用途があるので、シャドウノードの存在はコンポーネントが NER であることを意味しません。**

格納場所

Following is an example of a shadow node, using the Comments component in the Community Components Guide :
  • コンポーネントは次の場所にローカルリポジトリに存在します:
    /content-community-components/jp/comments/jcr:content/content/includable/comments
  • 対応するシャドウノードは、次の場所にあるローカルリポジトリに存在します。
    /content/usergenerated/content/community-components/jp/comments/jcr:content/content/includable/comments
シャドウノードの下には UGC はありません。
デフォルトの動作では、読み取りまたは書き込みで関連するサブツリーが参照されるたびに、発行インスタンスにシャドウノードを設定します。
As an example, suppose the deployment is MSRP with a TarMK publish farm.
When a member posts UGC on pub1 (stored in MongoDB), shadow nodes are created in JCR on pub1.
pub2でUGCを初めて読み取る場合、何も設定されていないと、デフォルトの動作でシャドウノードが作成されます。
デフォルト以外の動作が必要な場合は、それをオーサーインスタンスで設定し、すべてのパブリッシュインスタンスにロールフォワードする必要があります。これは通常は手動プロセスです。