Documentation

アーキテクチャ

Liferay DXP/Portalのアーキテクチャには、次の3つの部分があります。

  1. コア: DXPとそのフレームワークをブートストラップします。 コアは、サービス、UIコンポーネント、およびカスタマイゼーションを管理するためのランタイム環境を提供します。

  2. サービス: Java APIおよびWeb APIを介してDXP機能とカスタム機能を公開します。

  3. UI: ポータル、サイト、ページ、ウィジェット、およびコンテンツを追加するためのオプションのWebアプリケーションUI。

UIとサービスを一緒に使用することも、REST APIもしくはGraphQL APIを介したサービスの利用のみに集中することもできます。

サイトには、コンテンツとウィジェットが含まれています。 DXPは、"ヘッドレス"(UIなし)でも使用できます。

アーキテクチャは次の要件を満たしています。

  • 一般的な開発技術の使用をサポート

  • 開発基準を活用する

  • コンポーネントの交換を容易にする

  • 起動が速く、パフォーマンスも優れている

  • ランタイムの構成と検査が容易

コアは、UIとサービスの展開をサポートし、それらを相互に接続するように調整します。

コア

DXPは、アプリケーションサーバー上で実行されるWebアプリケーションです。 コアは、アプリケーションとそのフレームワークをブートストラップします。

次のようなフレームワークがあります。

  • アダプティブメディア

  • アプリケーション設定

  • アプリケーションのセキュリティ

  • アセット

  • キャッシュ

  • データスコープ

  • 依存性注入

  • Expando/カスタム属性

  • ファイル管理

  • ローカライズ

  • ロギング

  • メッセージバス

  • スケジューラー

  • 検索

  • セグメンテーションとパーソナライゼーション

  • サービスビルダー

  • テスト

  • アップグレードのプロセス

  • ウイルス対策

  • ワークフロー

コアは、フレームワーク、サービス、およびUIのコンポーネントランタイム環境を提供します。 コンポーネントの例を次に示します。

次の図は、ランタイム環境でのこれらのコンポーネントタイプを示しています。

コアは、ここで紹介したようなコンポーネントのランタイム環境を提供します。 新しいコンポーネントの実装は、既存の実装を動的に拡張または置き換えることができます。

ランタイム環境は、コンポーネントのオンザフライでの追加、置換、およびカスタマイズをサポートしています。 これにより、次のシナリオが可能になります。

置換: ServiceC Impl 2コンポーネントのランクが既存のコンポーネントServiceC Impl 1よりも高い場合、ServiceC Impl 2が使用されます。

カスタマイゼーション: PortletAフィルターは、PortletAで行われる要求と応答をインターセプトして変更し、PortletAが表示するコンテンツに影響を与えます。

コンポーネントWARおよびモジュールJARプロジェクトは、 OSGiバンドル (モジュール)としてインストールされます。 LiferayのOSGiフレームワークは、モジュールのライフサイクルを定義し、依存関係を適用し、クラスの読み込み構造を定義し、モジュールとコンポーネントを管理するためのAPIとCLI(Felix Gogo シェル)を提供します。 コアは、ポータルプロパティファイルシステム設定を介して構成されます。

サービスコンポーネントはビジネス機能を提供します。

サービス

ビジネスロジックは、コンポーネントランタイム環境にデプロイされたサービスに実装されます。 組み込みのコアサービスとフレームワークサービスは、ユーザーロールWebコンテンツドキュメントとメディアなどのモデルで動作します。 カスタムサービスを通じて新しいモデルと機能を導入できます。 サービスコンポーネントは、依存性注入を介して相互にアクセスできます。

フロントエンドアプリケーションは、サービスを呼び出して作業を行います。 Java APIを使用してサービスを直接呼び出すJavaベースのアプリケーションをデプロイすることができます。 DXPにデプロイされているかに関係なく、Webベース(Javaおよび非Java)のアプリケーションであれば、 OpenAPI 標準に準拠したREST APIGraphQL API、シンプルなWeb/RESTサービスを含むWeb APIを利用できます。 次の図は、Liferayサービスを呼び出すアプリケーションと外部クライアントを示しています。

ローカルアプリケーションおよびリモートアプリケーションは、REST Web APIを介してサービスを呼び出すことができます。 Javaベースのポートレットは、Java APIを介してサービスを呼び出すこともできます。

Liferayサービスは、 サービスビルダー を使用して構築され、REST Builderを使用してREST-fulになります。 サービスは簡単にオーバーライドしたり拡張することもできます。

WebベースのUIにより、コンテンツとサービスの機能がブラウザで利用できるようになります。

UI

UIは、ユーザーが仕事をしたり、コラボレーションしたり、コンテンツを楽しんだりするのに役立ちます。 UIの構成は以下の通りです。

  • DXPアプリケーション:ポータル、サイト、ユーザー、ページ、ウィジェットなどを管理するためのWebアプリケーション。

  • アプリケーション:すでにデプロイされているサービスのユーザーインターフェイスを提供するウィジェット。

  • テーマ:サイトを独自のルック&フィールでスタイリングするためのプラグイン。

UIアーキテクチャの記事では、UIコンポーネントの開発とカスタマイズについて詳しく説明しています。

ご覧のとおり、このアーキテクチャは、サービス、UIコンポーネント、およびカスタマイゼーションの開発をサポートしています。 アーキテクチャのセクションでは、コア、サービス、およびUIのトピックについて説明します。 次に、クラスローディングやモジュール性など、コアについて詳しく説明します。 必要に応じて、サービスや UIアーキテクチャ のトピックにジャンプして進むことができます。 アーキテクチャについてさらに探究してください。