AEM Forms のアーキテクチャとデプロイメントトポロジー

アーキテクチャ

AEM Formsは、1 つの AEMパッケージとして AEM にデプロイされるアプリケーションです。このパッケージは、AEM Forms アドオンパッケージと呼ばれます。AEM Forms アドオンパッケージには、AEM OSGi コンテナに読み込まれるサービス(API プロバイダー)と、AEM Sling フレームワークで管理されるサーブレットまたは JSP(フロントエンド機能と REST API 機能の両方を提供)が含まれています。次の図は、このセットアップを示しています。

アーキテクチャ

AEM Forms のアーキテクチャには、次のコンポーネントが含まれています。

  • AEM のコアサービス: 組み込みアプリケーションに対して提供される AEM の基本サービス。これらのサービスには、JCR に準拠したコンテンツリポジトリ、OSGI サービスコンテナ、ワークフローエンジン、トラストストア、キーストアなどがあります。これらのサービスは AEM Forms アプリケーションで使用できますが AEM Forms パッケージには含まれていません。これらのサービスは、AEM Forms の様々なコンポーネントで使用される、AEM スタック全体の不可欠な構成要素です。

  • Forms サービス: PDF ドキュメントの作成、アセンブリ、配布、アーカイブなどのフォーム関連の機能を提供し、デジタル署名を追加してドキュメントへのアクセスを制限し、バーコードフォームをデコードします。これらのサービスは、AEM にカスタムコードを組み込んで利用する形で公開されています。

  • Web レイヤー:​共通のサービスおよびフォームのサービス上に構築された JSP またはサーブレットで、次の機能を提供します。

    • フロントエンドのオーサリング:​フォームのオーサリングと管理に使用されるユーザーインターフェイス。
    • フォームのレンダリングおよび送信のフロントエンド:AEM Forms のエンドユーザー向けユーザーインターフェイス(行政機関の Web サイトにアクセスするユーザー向けのユーザーインターフェイスなど)。これにより、フォームのレンディション(web ブラウザーでのフォームの表示)と送信を行うことができます。
    • REST API:JSP および サーブレットにより、モバイル SDK フォームなど、HTTP ベースのクライアントによるリモートでの利用向けにフォームサービスのサブセットがエクスポートされます。

AEM Forms on OSGi: OSGi 環境上の AEM Forms は、AEM Forms パッケージがデプロイされた標準の AEM オーサーまたは AEM パブリッシュです。OSGi 上の AEM Forms は、単一サーバー環境、ファーム設定、クラスター設定で実行できます。クラスターを設定できるのは、AEM オーサーインスタンスの場合だけです。

AEM Forms on JEE: AEM Forms on JEE は、JEE スタック上で稼働する AEM Forms サーバーです。この環境には、AEM Forms アドオンパッケージを持つ AEM オーサーと、アプリケーションサーバー上で動作する 1 つの JEE スタックに共同でデプロイされる追加の AEM Forms JEE 機能が含まれています。 JEE 上の AEM Forms は、単一サーバー環境とクラスター設定で実行することができます。 JEE 上の AEM Forms は、ドキュメントセキュリティおよびプロセス管理を実行する場合、ならびに AEM Forms にアップグレードする LiveCycle のお客様に対してのみ必要となります。 JEE 上の AEM Forms を使用するシナリオをさらにいくつか示します。

  • HTML Workspace のサポート(HTML Workspace を使用しているユーザー用): JEE 上の AEM Forms により、処理インスタンスでシングルサインオンを使用できるようになります。処理インスタンスでレンダリングされた特定のアセットを提供し、HTML Workspace 内でレンダリングされたフォームを送信することができます。
  • 高度な追加のフォーム / インタラクティブ通信のデータ処理:JEE 上の AEM Forms を使用すると、高度なプロセス管理機能が必要になる複雑なユースケースで、フォーム / インタラクティブ通信データの詳細な処理を行い、その結果を適切なデータストアに保存することができます。

JEE 上の AEM Forms は、AEM コンポーネントに次のサポートサービスも提供しています。

  • 統合されたユーザー管理: JEE 上の AEM Forms のユーザーが OSGi 上の AEM Forms ユーザーとして認識され、OSGi と JEE の両方のユーザーに対し SSO を有効化できます。 これは、OSGi 上の AEM Forms と JEE 上の AEM Forms の間でシングルサインオンが必要なシナリオ(たとえば HTML Workspace)では必須です。
  • アセットのホスティング: JEE 上の AEM Forms は、OSGi 上の AEM Forms でレンダリングされたアセット(たとえば HTML5 フォーム)を提供できます。

AEM Forms オーサリングユーザーインターフェイスは、レコードのドキュメント(DOR)、PDF forms、HTML5 Forms の作成をサポートしていません。 このようなアセットは、スタンドアロンの Forms Designer アプリケーションを使用して設計され、AEM Forms Manager に個別にアップロードされます。 また JEE 上の AEM Forms では、AEM Forms Workbench 上で実行するアプリケーションのアセットとして設計することにより、JEE 上の AEM Forms サーバーにデプロイすることもできます。

OSGi 上の AEM Forms および JEE 上の AEM Forms には、いずれもワークフローの機能があります。OSGi 上の AEM Forms では、JEE 上の AEM Forms に本格的なプロセス管理機能をインストールすることなく、様々なタスクに対する基本的なワークフローを作成し、デプロイすることができます。OSGi 上の AEM Forms 上のフォームベースのワークフローと JEE 上の AEM Forms 上のプロセス管理機能には機能上、多少の違いがあります。OSGi 上の AEM Forms 上のフォームベースのワークフローの開発、および管理では、使い慣れた AEM ワークフローおよび AEM インボックスの機能を使用します。

用語

以下の図は、AEM Forms の一般的なデプロイメント環境で使用される AEM Forms サーバーの様々な設定とそのコンポーネントを示しています。

aem_forms_-_recommendedtopology

オーサーインスタンス:​オーサーインスタンスは、標準の作成者実行モードで稼働する AEM Forms サーバーです。オーサーインスタンスは、OSGi 環境内の JEE 上の AEM Forms にすることも、OSGi 環境内の AEM Forms にすることもできます。このインスタンスは、内部ユーザー、フォームとインタラクティブ通信の設計者、開発者が使用するためのインスタンスです。次の機能が有効になります。

  • フォームとインタラクティブ通信の作成機能と管理機能:​設計者と開発者は、アダプティブフォームとインタラクティブ通信の作成と編集を行うことができます。また、外部で作成されたフォーム(Adobe Forms Designer で作成されたフォームなど)をアップロードしたり、こうしたアセットを Forms Manager コンソールを使用して管理したりすることができます。
  • フォームとインタラクティブ通信の発行機能:​オーサーインスタンス上でホストされるアセットをパブリッシュインスタンスに発行して、ランタイム操作を実行することができます。AEM の複製機能を使用して、アセットが発行されます。パブリッシュしたフォームを処理インスタンスに手動でプッシュするために、レプリケーションエージェントをすべてのオーサーインスタンス上で設定すること、および受信したフォームをパブリッシュインスタンスに自動で複製するために、別のレプリケーションエージェントを​受信時​トリガーが有効になっている処理インスタンス上で設定することをお勧めします。

パブリッシュ:​パブリッシュインスタンスは、標準のパブリッシュ実行モードで稼働する AEM Forms サーバーです。パブリッシュインスタンスは、フォームベースのアプリケーションを使用するエンドユーザー向けのインスタンスです。例えば、公開 web サイトにアクセスしてフォームを送信するユーザーなどが、このインスタンスを使用します。次の機能が有効になります。

  • エンドユーザー用のフォームのレンダリングと送信を行う機能。
  • 送信済みフォームの未加工データを処理インスタンスに転送してさらに処理を行い、最終的な記録システムに保存する機能。この機能は、AEM Forms に付属するデフォルトの実装で AEM の逆複製機能を使用して実行されます。代替処理として、最初にフォームデータをローカルに保存するのではなく、フォームデータを処理インスタンスに直接プッシュすることもできます(逆複製を行うには、最初にフォームデータをローカルに保存しておく必要があります)。通常、処理インスタンスはパブリッシュインスタンスよりも安全な場所に配置されるため、顧客が機密データをパブリッシュインスタンスに保存することに不安を感じている場合は、上記の代替実装を実行してもかまいません。
  • インタラクティブ通信とレターのレンダリングと送信:インタラクティブ通信とレターはパブリッシュインスタンス上でレンダリングされ、対応するデータがストレージと後処理用に処理インスタンスに送信されます。このデータは、パブリッシュインスタンスにローカルで保存して、処理インスタンスに逆複製すること(デフォルトのオプション)も、処理インスタンスに直接プッシュして、パブリッシュインスタンスには保存しないこともできます。セキュリティを意識している顧客の場合は、後者の実装をお勧めします。

処理: forms-manager グループにユーザーが割り当てられていない状態の作成者実行モードで実行される AEM Forms のインスタンスです。AEM Forms on JEE または AEM Forms on OSGi を処理インスタンスとしてデプロイできます。ユーザーが割り当てられていない場合、フォームのオーサリングと管理のアクティビティは、処理インスタンスで実行されることはなく、オーサーインスタンスでのみ実行されます。処理インスタンスでは、次の機能が有効になります。

  • パブリッシュインスタンスから送信された未加工のフォームデータの処理:​この機能は、データの到着時にトリガーされる AEM ワークフロー経由の処理インスタンスで主に実現されます。このワークフローでは、標準搭載の「フォームデータモデル」の手順を使用して、データまたはドキュメントを適切なデータストアにアーカイブできます。

  • フォームデータの安全な保存:処理インスタンスには、ファイアウォールの背後に配置されたリポジトリが用意されています。未加工のフォームデータは、このリポジトリに保存することにより、ユーザーから隔離できます。オーサーインスタンス上の設計者も、パブリッシュインスタンス上のエンドユーザーも、このリポジトリにアクセスすることはできません。

    メモ

    アドビは、AEM リポジトリを使用する代わりに、サードパーティのデータストアを使用して、最終的に処理されたデータを保存することをお勧めします。

  • パブリッシュインスタンスから送信された通信データの保存と後処理: AEM ワークフローは、対応するレター定義の後処理をオプションで実行します。これらのワークフローで、最終的な処理済みデータを、適切な外部データストアに保存することができます。

  • HTML ワークスペースのホスティング:処理インスタンスは、HTML ワークスペースのフロントエンドをホストします。HTML ワークスペースは、レビューと承認のプロセスに関連するタスクやグループを割り当てるための UI を提供します。

次の理由から、処理インスタンスは、オーサー実行モードで稼働するように設定されています。

  • パブリッシュインスタンスから未加工のフォームデータを逆複製できます。デフォルトのデータストレージハンドラーを使用するには、逆複製機能が必要になります。
  • AEM ワークフローは、パブリッシュインスタンスから送信される未加工のフォームデータの主要な処理手段であるため、オーサースタイルのシステムで AEM ワークフローを実行することをお勧めします。

AEM Forms on JEE の物理的なトポロジーの例

以下で推奨する AEM Forms on JEE のトポロジは、主に LiveCycle または以前のバージョンの AEM Forms on JEE からアップグレードするお客様向けです。アドビは、新規インストールには AEM Forms on OSGi を使用することをお勧めします。AEM Forms on JEE の新規インストールでは、ドキュメントセキュリティとプロセス管理の機能のみを使用することをお勧めします。

ドキュメントサービスまたはドキュメントセキュリティ機能を使用するためのトポロジー

ドキュメントサービスまたはドキュメントセキュリティ機能だけを使用する場合は、以下のようなトポロジーを構成することをお勧めします。このトポロジでは、AEM Forms の 1 つのインスタンスを使用することをお勧めします。必要に応じて、AEM Forms サーバーのクラスターまたはファームを作成することもできます。 多くのユーザーがプログラムで AEM Forms サーバーの機能にアクセスし、ユーザーインターフェイス上ではほとんど操作を実行しない場合は、このトポロジーを構成することをお勧めします。ドキュメントサービスの操作を一括して処理する場合は、このトポロジーを使用すると効率的です。例えば、出力サービスを使用して、編集不可の PDF ドキュメントを毎日数百件作成するような場合は、このトポロジーを構成することをお勧めします。

AEM Forms では、設定されたすべての機能を 1 台のサーバーで実行できますが、実稼働環境では処理能力の計画や負荷分散を行う必要があり、特定の機能ごとに複数のサーバーをセットアップする必要があります。例えば、PDF Generator サービスを使用して、1 日に数千ページを変換し、デジタル署名を追加してドキュメントへのアクセスを制限しているような環境の場合、PDF Generator サービスとデジタル署名機能用に別々の AEM Forms サーバーをセットアップします。これにより、パフォーマンスが最適化され、各サーバーを別々にスケーリングできるようになります。

basic-features

AEM Forms のプロセス管理機能を使用する場合のトポロジ

HTML ワークスペースなど、AEM Forms のプロセス管理機能の使用を計画している AEM Forms のお客様には、以下のようなトポロジを構成することをお勧めします。AEM Forms on JEE サーバーは、1 つのサーバーまたはクラスター構成にすることができます。

LiveCycle ES4 からアップグレードする場合、AEM Forms on JEE に組み込みの AEM オーサーを追加する場合を除き、このトポロジは LiveCycle で既に構成されているトポロジと同じになります。また、アップグレードを実行するお客様のクラスタリング要件に変更はありません。クラスター環境で AEM Forms を使用していた場合は、AEM 6.5 Forms でも引き続きその環境を使用することができます。HTML Workspace を使用するために AEM Forms on JEE を新たにインストールする場合、JEE 環境に組み込まれた AEM オーサーインスタンスを実行する必要もあります。

フォームデータストアは、フォームの最終的な処理済みデータの保存とインタラクティブ通信のためのサードパーティ製データストアです。このデータストアは、このトポロジーにおけるオプションの構成要素です。必要に応じて、処理インスタンスを設定し、そのリポジトリを最終的な記録システムとして使用することもできます。

topology_for_usinghtmlworkspaceandformsapp

AEM Forms on JEE サーバーを使用して、後処理、アダプティブフォーム、HTML5 フォーム、インタラクティブ通信などの機能を実行することなく、プロセス管理機能(HTML Workspace )を実行する場合は、このトポロジーを構成することをお勧めします。

アダプティブフォーム、HTML5 フォーム、インタラクティブ通信などの機能を使用するためのトポロジー

アダプティブフォーム、HTML5 フォーム、PDF フォームなど、AEM Forms のデータ取得機能を使用する場合は、以下のようなトポロジーを構成することをお勧めします。AEM Forms のインタラクティブ通信機能を使用する場合も、このトポロジーを構成することをお勧めします。

topology-for-using-forms-osgi-modules

前述のトポロジーでは、次の変更やカスタマイズを行うことができます。

  • HTML Workspace と AEM Forms アプリを使用するには、AEM のオーサーインスタンスまたは処理インスタンスが必要です。外部の AEM オーサーサーバーを追加でセットアップする代わりに、JEE サーバー上の AEM Forms に組み込まれた AEM オーサーインスタンスを使用することができます。
  • AEM オーサーインスタンスまたは処理インスタンスは、OSGi、アダプティブフォーム、フォームポータル、インタラクティブ通信上のフォーム中心のワークフローに対してのみ必要です。
  • インタラクティブ通信のエージェント UI は、通常、組織内で実行されます。そのため、プライベートネットワーク内に、エージェント UI 用のパブリッシュサーバーを配置することができます。
  • AEM Forms JEE サーバーに組み込まれた AEM on OSGi オーサーインスタンスは、OSGi および監視フォルダー上のフォーム中心ワークフローも実行できます。

OSGi 上の AEM Forms を使用する場合の物理的なトポロジーの例

データ取得機能、インタラクティブ通信機能、OSGi 上のフォーム中心ワークフロー機能を使用する場合のトポロジー

アダプティブフォーム、HTML5 フォーム、PDF フォームなど、AEM Forms のデータ取得機能を使用する場合は、以下のようなトポロジーを構成することをお勧めします。インタラクティブ通信機能と OSGi 上のフォームベースワークフロー機能を使用する場合も、このトポロジーを構成することをお勧めします。例えば、ビジネスプロセスワークフローで AEM インボックスと AEM Forms アプリケーションを使用する場合などです。

interactive-use-cases-af-cm-osgi-workflow

オフラインのバッチ処理で監視フォルダー機能を使用する場合のトポロジー

バッチ処理で監視フォルダーを使用する場合は、以下のようなトポロジーを構成することをお勧めします。このトポロジーではクラスター環境が構成されていますが、AEM Forms サーバーを 1 つのインスタンスで使用するか、ファームで使用するかは、負荷に応じて決定します。このトポロジーの場合、サードパーティ製のデータソースを、専用の記録システムとして使用することになります。このデータソースが、監視フォルダーの入力元になります。以下の図では、出力が印刷ファイル形式になっていますが、出力内容をファイルシステムに保存することも、電子メールで送信することもできます。また、別の方法で出力を使用することもできます。

offline-batch-processing-via-watched-folders

API ベースのオフライン処理でドキュメントサービス機能を使用する場合のトポロジー

ドキュメントサービス機能だけを使用する場合は、以下のようなトポロジーを構成することをお勧めします。このトポロジーでは、OSGi サーバー上で AEM Forms のクラスターを使用することをお勧めします。多くのユーザーが API を使用して AEM Forms サーバーの機能にアクセスし、ユーザーインターフェイス上ではほとんど操作を実行しない場合は、このトポロジーを構成することをお勧めします。複数のソフトウェアクライアントを使用する場合は、このトポロジーを構成すると非常に便利です。例えば、PDF Generator サービスを使用する複数のクライアントにより、オンデマンドで PDF ドキュメントを作成するような場合です。

AEM Forms では、設定されたすべての機能を 1 台のサーバーで実行できますが、運用規模の計画、負荷分散、特定の機能を実行するための専用サーバーのセットアップを、実稼働環境で行う必要があります。例えば、PDF Generator サービスを使用して、1 日に数千のページと複数のアダプティブフォームをデータ取得用に変換する環境の場合、PDF Generator サービスとアダプティブフォームの機能を実行するための AEM Forms サーバーを個別にセットアップする必要があります。これにより、パフォーマンスが最適化され、各サーバーを個別にスケーリングできるようになります。

offline-api-based-processing

このページ