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 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 を使用するシナリオをさらにいくつか示します。
JEE 上の AEM Forms は、AEM コンポーネントに次のサポートサービスも提供しています。
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 サーバーです。オーサーインスタンスは、OSGi 環境内の JEE 上の AEM Forms にすることも、OSGi 環境内の AEM Forms にすることもできます。このインスタンスは、内部ユーザー、フォームとインタラクティブ通信の設計者、開発者が使用するためのインスタンスです。次の機能が有効になります。
パブリッシュ:パブリッシュインスタンスは、標準のパブリッシュ実行モードで稼働する AEM Forms サーバーです。パブリッシュインスタンスは、フォームベースのアプリケーションを使用するエンドユーザー向けのインスタンスです。例えば、公開 web サイトにアクセスしてフォームを送信するユーザーなどが、このインスタンスを使用します。次の機能が有効になります。
処理: forms-manager グループにユーザーが割り当てられていない状態の作成者実行モードで実行される AEM Forms のインスタンスです。AEM Forms on JEE または AEM Forms on OSGi を処理インスタンスとしてデプロイできます。ユーザーが割り当てられていない場合、フォームのオーサリングと管理のアクティビティは、処理インスタンスで実行されることはなく、オーサーインスタンスでのみ実行されます。処理インスタンスでは、次の機能が有効になります。
パブリッシュインスタンスから送信された未加工のフォームデータの処理:この機能は、データの到着時にトリガーされる AEM ワークフロー経由の処理インスタンスで主に実現されます。このワークフローでは、標準搭載の「フォームデータモデル」の手順を使用して、データまたはドキュメントを適切なデータストアにアーカイブできます。
フォームデータの安全な保存:処理インスタンスには、ファイアウォールの背後に配置されたリポジトリが用意されています。未加工のフォームデータは、このリポジトリに保存することにより、ユーザーから隔離できます。オーサーインスタンス上の設計者も、パブリッシュインスタンス上のエンドユーザーも、このリポジトリにアクセスすることはできません。
アドビは、AEM リポジトリを使用する代わりに、サードパーティのデータストアを使用して、最終的に処理されたデータを保存することをお勧めします。
パブリッシュインスタンスから送信された通信データの保存と後処理: AEM ワークフローは、対応するレター定義の後処理をオプションで実行します。これらのワークフローで、最終的な処理済みデータを、適切な外部データストアに保存することができます。
HTML ワークスペースのホスティング:処理インスタンスは、HTML ワークスペースのフロントエンドをホストします。HTML ワークスペースは、レビューと承認のプロセスに関連するタスクやグループを割り当てるための UI を提供します。
次の理由から、処理インスタンスは、オーサー実行モードで稼働するように設定されています。
以下で推奨する 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 サーバーをセットアップします。これにより、パフォーマンスが最適化され、各サーバーを別々にスケーリングできるようになります。
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 オーサーインスタンスを実行する必要もあります。
フォームデータストアは、フォームの最終的な処理済みデータの保存とインタラクティブ通信のためのサードパーティ製データストアです。このデータストアは、このトポロジーにおけるオプションの構成要素です。必要に応じて、処理インスタンスを設定し、そのリポジトリを最終的な記録システムとして使用することもできます。
AEM Forms on JEE サーバーを使用して、後処理、アダプティブフォーム、HTML5 フォーム、インタラクティブ通信などの機能を実行することなく、プロセス管理機能(HTML Workspace )を実行する場合は、このトポロジーを構成することをお勧めします。
アダプティブフォーム、HTML5 フォーム、PDF フォームなど、AEM Forms のデータ取得機能を使用する場合は、以下のようなトポロジーを構成することをお勧めします。AEM Forms のインタラクティブ通信機能を使用する場合も、このトポロジーを構成することをお勧めします。
前述のトポロジーでは、次の変更やカスタマイズを行うことができます。
アダプティブフォーム、HTML5 フォーム、PDF フォームなど、AEM Forms のデータ取得機能を使用する場合は、以下のようなトポロジーを構成することをお勧めします。インタラクティブ通信機能と OSGi 上のフォームベースワークフロー機能を使用する場合も、このトポロジーを構成することをお勧めします。例えば、ビジネスプロセスワークフローで AEM インボックスと AEM Forms アプリケーションを使用する場合などです。
バッチ処理で監視フォルダーを使用する場合は、以下のようなトポロジーを構成することをお勧めします。このトポロジーではクラスター環境が構成されていますが、AEM Forms サーバーを 1 つのインスタンスで使用するか、ファームで使用するかは、負荷に応じて決定します。このトポロジーの場合、サードパーティ製のデータソースを、専用の記録システムとして使用することになります。このデータソースが、監視フォルダーの入力元になります。以下の図では、出力が印刷ファイル形式になっていますが、出力内容をファイルシステムに保存することも、電子メールで送信することもできます。また、別の方法で出力を使用することもできます。
ドキュメントサービス機能だけを使用する場合は、以下のようなトポロジーを構成することをお勧めします。このトポロジーでは、OSGi サーバー上で AEM Forms のクラスターを使用することをお勧めします。多くのユーザーが API を使用して AEM Forms サーバーの機能にアクセスし、ユーザーインターフェイス上ではほとんど操作を実行しない場合は、このトポロジーを構成することをお勧めします。複数のソフトウェアクライアントを使用する場合は、このトポロジーを構成すると非常に便利です。例えば、PDF Generator サービスを使用する複数のクライアントにより、オンデマンドで PDF ドキュメントを作成するような場合です。
AEM Forms では、設定されたすべての機能を 1 台のサーバーで実行できますが、運用規模の計画、負荷分散、特定の機能を実行するための専用サーバーのセットアップを、実稼働環境で行う必要があります。例えば、PDF Generator サービスを使用して、1 日に数千のページと複数のアダプティブフォームをデータ取得用に変換する環境の場合、PDF Generator サービスとアダプティブフォームの機能を実行するための AEM Forms サーバーを個別にセットアップする必要があります。これにより、パフォーマンスが最適化され、各サーバーを個別にスケーリングできるようになります。