Sitecore XCソフトウェアアーキテクチャ
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore Experience Commerce(XC)ソリューションは、構成、スケーラビリティ、拡張性を実現するために複数のアーキテクチャエンティティを組み合わせて活用します。
方針
Commerce Engineプラグインは、Commerce Engineのポリシーを含むSitecore XCソリューションのすべてのコマース機能を提供します。これらはCommerce Engineの機能や挙動を制御するために設定可能なプラグインの要素です。
Sitecore XC JSONファイル内で設定用のポリシーを公開します。関連する環境ポリシーファイルを編集することで設定を変更することができます。
Sitecore XCはCommerce Engineの動作を制御するすべてのポリシーと設定を、Globalデータベース、すなわち集中型のCommerce Policy Storeに保存します。ポリシーはブートストラップ処理を用いてグローバルデータベースに永続化されます。ポリシーは厳重にキャッシュされており、デプロイシナリオ以外ではその値がほとんど変わりません。
環境
Sitecore Experience Commerceは 、環境 の概念を用いて異なるCommerce Engine構成を可能にします。Commerce Engineでは、環境がCommerce Engineの挙動と扱うデータセットを決定するポリシーの集合を定義します。クライアントがCommerce Engineに呼び出しを行うと、呼び出しヘッダー がターゲットとなる環境を指定し、Commerce Engineがその環境構成の文脈でリクエストに応答できるようにします。
コマース環境は、別々に設定可能なデータやサービス機能のプールを個別のCommerce Engine環境として稼働させ、呼び出しクライアントの要件に合わせてカスタマイズし、展開の需要に応じてスケールさせる柔軟性を提供します。単一のCommerce Engineサービスインスタンス上で複数のCommerce Environmentを設定することも、複数のCommerce Engineサービスインスタンスに分散して、同じサーバー上またはサーバー間でスケール展開が可能です。
コマース環境は、以下を含むコアコマースエンティティクラス(Sitecore.Commerce.Core.CommerceEnvironment)です。
- Commerce Engineの呼び出しに対するシステムの挙動に影響を与えるポリシーの集合体です。
- 商取引データセットに対応するアーティファクトストアのIDです。
クライアントがコマースエンジンに呼び出しを行う際、コールヘッダーにコマース環境の名前を指定します。環境名により、コマースエンジンはクライアントが期待する動作やデータセットを応答できます。

自分で環境を作成し、必要に応じて設定をカスタマイズできます。
ブートストラップ
ブートストラップとは、デプロイ中にディスク上で作成されたJSONファイルからポリシーおよび環境データを グローバルデータベースに読み込み、他のコマースエンジンがアクセスできるようにするプロセスです。
ブートストラップ後、Commerce Engineは通常のランタイム操作中にデータベースから直接環境設定を取得するため、環境JSONファイルは不要になります。ただし、環境のJSONファイルに変更を加えた場合は、変更がグローバルデータベースに伝播するようにCommerce Engineを再度ブートストラップする必要があります。
コマースエンジンの役割
Sitecore XCソリューションは、スケーラビリティをサポートする ためにCommerce Engineロール の概念を実装しています。Commerce EngineロールはコアCommerce処理のデプロイされたインスタンスであり、それぞれ異なる論理ロールを担当します。ロール間の区別は純粋に論理的なものであり、異なるインストールロール間でデプロイされるビットに実質的な違いはありません。ロール間の区別は、トラフィックの発生元と呼び出されるCommerce環境の設定によって定義されます。
クライアントがCommerce Engineに呼び出しを行う際、その呼び出しのヘッダーでターゲットとなるCommerce Environmentを指定する必要があります。Commerceエンジンの動作がリクエストヘッダーで指定された環境の文脈でどのように処理するかを決定するのは、ターゲット環境の設定です。
Commerce Engineの役割は同じサーバー上に共存することも、別々のサーバーに配置することも可能です。必要に応じて独立してスケールさせることも可能です。
本番環境では、トラフィックは通常、複数のインストールされたCommerce Engineインスタンスに分割されており、これらのインスタンスは通常、トラフィックソースの近くに物理的に配置されています(この 参照アーキテクチャ図に示されています)。
異なる環境ごとに異なるCommerce Engineインスタンスを使用することで、キャッシュ、データ保存、統合接続など、各展開ロールの機能を明示的に独立して制御できます。
サンプルSitecore XCソリューションは、それぞれの役割を表す3つのコマースエンジンインスタンスを定義しています:
表1。
役割
概要
オーサリングの役割は、Business Toolsからのトラフィックを処理するCommerce Engineのインスタンスです。この役割はトラフィックが少ないため(eコマースソリューションはビジネスユーザー数が比較的少ないため)、スケーリング要件は通常比較的低いです。
> [!注]
> Sitecore XC 10.2以降、デフォルトのXC展開ではDevOps運用専用のCommerce Engineサービスインスタンスが作成されません。代わりに、Authoring Commerce Engineの役割はDevOps操作(ブートストラップ、環境初期化機能、その他の CommerceOpsのAPIリクエスト )のターゲット環境としても機能します。
ショップの役割は、1つ以上の店舗からのトラフィックを提供するコマースエンジンのインスタンスです。ストアフロントからのリクエストはコマース・Connectおよび Commerce Engine Connectによって処理されます。このコンテンツ配信の役割は需要に応じてスケールでき、通常はトラフィックを生み出すSitecore XPインスタンスの近くに設置されます。
ミニオンロールは、コマースエンジンのインスタンスで、独立して動作し、非同期処理(ポストオーダーキャプチャ処理やクリーンアップを含む)をサポートします。ミニオンロールは通常ワーカーロール(ウェブロールではありません)として設定され、ウェブトラフィックを受け取りません。このロールには、それぞれ特定のタスク(例えば、保留中の注文キューを処理するための保留中のミニオン)を持つ一連のミニオンが含まれます。
>[!重要]
> Commerce ソリューションは、Minionロールを実行するCommerce Engineのインスタンスを1つだけ持っていなければなりません。複数のMinionロールを複数のCommerce Engineのインスタンスで実行すると、並行性エラーが生じます。
データベース
Sitecore XCは以下のCommerceデータベースを使用しています。
- すべてのCommerceデータセットを保存する共有環境データベース(SitecoreCommerce_SharedEnvironments)。
- Commerce Engine環境の設定を保存するグローバルデータベースです。
- アーカイブデータベースは、有効時には古い仕訳エントリや非アクティブ注文などの アーカイブされた商取引エンティティを保存します。
Commerce Shared Environmentsデータベース
Commerce Shared Environmentsデータベースは、カタログデータ、顧客記録、価格情報、設定済みプロモーションなど、すべてのCommerce Business Dataを保存します。ビジネスデータに加え、Shared Environmentsデータベースには、さまざまなプラグインが提供するコアコマース機能をサポートする汎用エンティティやリストも保存されています。
同じビジネスデータセットに属する商取引エンティティは共通のアーティファクトストアの値ID共有します。例えば、デフォルトの共有環境データベースでは、Habitatデータセットに含まれるすべてのコマースエンティティが同じアーティファクトストアID値に対して保存されます。Adventure Worksデータセットに含まれるエンティティは、異なるアーティファクトストアIDに対して格納されます。以下は、エンティティが異なるアーティファクトストアのID値に対して格納されているsitecore_commerce_storage.CatalogEntityテーブルの例を示しています。

クライアントがCommerceデータの要求をすると、呼び出しリクエストで指定された環境IDは 、Commerce Environmentファイルで設定されているArtifactストアのIDに対応します。ArtifactストアのIDはデータ初期化プロセス中に生成されます。Shared Environmentsデータベースでは、同じCommerceデータセットに属するすべてのCommerceエンティティが同じArtifact store ID値を共有します。
!注販売可能なアイテムなどの商取引エンティティは、この参照アーキテクチャ図に示されているように、ストアフロントでの公開のためにSitecore Webデータベースに移されることはありません。商品がストアフロントに公開されるかどうかにかかわらず、コマースデータは共有環境データベースに残ります。コマースエンティティの場合、ストアフロントへの公開は、例えばBusiness Toolsでの公開ワークフローの結果としてエンティティに対して設定された"published"プロパティ値(bool.)の関数です。
グローバルデータベース
グローバルデータベースは、クライアントが特定のコマース環境に対して開始したリクエストに対して、コマースエンジンがどのように動作するかを制御するすべてのCommerce Engine環境設定データを保存します。
ブートストラッププロセスは、環境、構成およびポリシーデータをグローバルデータベースに登録する役割を担います。
プラグイン
Commerce Engineには既存機能を拡張・変更するためのプラグイン可能なフレームワークが含まれています。Sitecore XCプラグインアーキテクチャは、カスタマイズ機能のための拡張ポイントを提供しつつ、アップグレードの可行性を損なうことなく実現します。
このプラグインアーキテクチャは、オプトインによる複雑さとSitecore XCソリューションの段階的な強化を可能にします。サードパーティシステムとの統合のためのコネクタを書くこともできます。また、ビジネスロジックを拡張したり、Business Toolsを拡張したりするためのプラグインも作成できます。