Forms サービスパフォーマンスの最適化 optimizing-the-performance-of-theforms-service
このドキュメントのサンプルと例は、JEE 環境の AEM Forms のみを対象としています。
Forms サービスパフォーマンスの最適化 optimizing-the-performance-of-the-forms-service
フォームをレンダリングする際に、Forms サービスのパフォーマンスを最適化する実行時のオプションを設定できます。Forms サービスのパフォーマンスを向上させるために実行できるもう 1 つのタスクは、XDP ファイルをリポジトリに格納することです。ただし、この節では、このタスクの実行方法については説明しません。(Java クライアントライブラリを使用したサービスの呼び出しを参照。)
手順の概要 summary-of-steps
フォームのレンダリング中に Forms サービスのパフォーマンスを最適化するには、次のタスクを実行します。
- プロジェクトファイルを含めます。
- Forms Client API オブジェクトを作成します。
- パフォーマンスの実行時オプションを設定します。
- フォームをレンダリングします。
- フォームデータストリームをクライアントの Web ブラウザーに書き込みます。
プロジェクトファイルの組み込み
必要なファイルを開発プロジェクトに含めます。Java を使用してクライアントアプリケーションを作成する場合は、必要な JAR ファイルを含めます。Web サービスを使用している場合は、プロキシファイルを必ず含めてください。
Forms Client API オブジェクトの作成
Forms Service Client API 操作をプログラムで実行する前に、Forms サービスクライアントを作成する必要があります。Java API を使用している場合は、FormsServiceClient オブジェクトを作成します。Forms Web サービス API を使用している場合は、 FormsService オブジェクトを作成します。
パフォーマンスの実行時オプションを設定する
次のパフォーマンス実行時オプションを設定して、Forms サービスのパフォーマンスを向上させることができます。
- フォームのキャッシュ:サーバーキャッシュ内で PDF としてレンダリングされるフォームをキャッシュできます。各フォームは、初回生成後にキャッシュされます。それ以降のレンダリング時には、キャッシュされたフォームがフォームデザインのタイムスタンプよりも新しい場合、フォームはキャッシュから取得されます。フォームをキャッシュすると、リポジトリからフォームデザインを取得する必要がなくなるので、Forms サービスのパフォーマンスが向上します。
- フォームガイド(非推奨)は、他の変換タイプよりもレンダリングに時間がかかる場合があります。パフォーマンスを向上させるために、フォームガイド(非推奨)をキャッシュすることをお勧めします。
- スタンドアロンオプション:Forms サービスでサーバーサイドの計算を実行する必要がない場合は、「スタンドアロン」オプションを
trueに設定すると、フォームは状態情報なしでレンダリングされます。状態情報は、インタラクティブフォームをエンドユーザーにレンダリングし、そのユーザーがフォームに情報を入力して、そのフォームをFormsサービスに送り返す場合に必要です。次に、Forms サービスは計算処理を実行し、フォームをレンダリングしてユーザーに戻し、結果がフォームに表示されます。フォームが状態情報なしで Forms サービスに送り返された場合、XML データのみが使用可能になり、サーバーサイドの計算は実行されません。 - 線形化された PDF:線形化された PDF ドキュメントは、ネットワーク環境で効果的に増分アクセスできるよう整理されています。PDF ファイルは、あらゆる点で有効な PDF で、既存のすべてのビューアやその他の PDF アプリケーションと互換性があります。つまり、線形化された PDF は、ダウンロード中に表示できます。
- このオプションを選択しても、クライアントで PDF フォームがレンダリングされる際のパフォーマンスは向上しません。
- GuideRSL オプション:実行時の共有ライブラリを使用して、フォームガイド(非推奨)の生成を有効にします。つまり、最初のリクエストでは、小さい SWF ファイルと、ブラウザーのキャッシュに保存されている大きい共有ライブラリがダウンロードされます。詳しくは、Flex ドキュメントの RSL を参照してください。
- また、クライアントでフォームをレンダリングして、Forms サービスのパフォーマンスを向上させることもできます。(クライアントでの Forms のレンダリングを参照。)
フォームをレンダリング
パフォーマンスオプションを設定した後にフォームをレンダリングするには、パフォーマンスオプションを指定せずにフォームをレンダリングする場合と同じアプリケーションロジックを使用します。
フォームデータストリームをクライアント web ブラウザーに書き込む
Forms サービスがフォームをレンダリングすると、クライアントの Web ブラウザーに書き込む必要があるフォームデータストリームが返されます。クライアント Web ブラウザーに書き込まれると、フォームはユーザーに対して表示されます。
関連トピック
Java API を使用したパフォーマンスの最適化 optimize-the-performance-using-the-java-api
Forms API(Java)を使用して、最適化されたパフォーマンスでフォームをレンダリングします。
-
プロジェクトファイルを含める
adobe-forms-client.jar などのクライアント JAR ファイルを Java プロジェクトのクラスパスに含めます。
-
Forms Client API オブジェクトの作成
- 接続プロパティを含む
ServiceClientFactoryオブジェクトを作成します。 FormsServiceClientオブジェクトを作成するには、コンストラクターを使用してServiceClientFactoryオブジェクトを渡します。
- 接続プロパティを含む
-
パフォーマンスの実行時オプションの設定
- コンストラクターを使用して
PDFFormRenderSpecオブジェクトを作成します。 - フォームキャッシュオプションを設定するには、
PDFFormRenderSpecオブジェクトのsetCacheEnabledメソッドを呼び出して、trueを渡します。 - 線形化オプションを設定するには、
PDFFormRenderSpecオブジェクトのsetLinearizedPDFメソッドを呼び出して、true.を渡します。
- コンストラクターを使用して
-
フォームのレンダリング
FormsServiceClientオブジェクトのrenderPDFFormメソッドを呼び出して、次の値を渡します。- ファイル名拡張子を含んだフォームデザイン名を指定する文字列値。
- フォームに結合するデータを含む
com.adobe.idp.Documentオブジェクト。データを結合しない場合は、空のcom.adobe.idp.Documentオブジェクトを渡します。 - パフォーマンスを向上させるための実行時オプションを保存する
PDFFormRenderSpecオブジェクト。 - Forms サービスで必要な URI 値を格納する
URLSpecオブジェクト。 - 添付ファイルを保存する
java.util.HashMapオブジェクト。オプションのパラメーターです。フォームにファイルを添付しない場合はnullを指定できます。
renderPDFFormメソッドは、クライアントの Web ブラウザーに書き込む必要のあるフォームデータストリームを含むFormsResultオブジェクトを返します。 -
フォームデータストリームをクライアント web ブラウザーに書き込む
- フォームデータストリームをクライアントの web ブラウザーに送信するために使用する
javax.servlet.ServletOutputStreamオブジェクトを作成します。 FormsResultオブジェクトのgetOutputContentメソッドを呼び出すことによって、com.adobe.idp.Documentオブジェクトを作成します。com.adobe.idp.DocumentオブジェクトのgetInputStreamメソッドを呼び出して、java.io.InputStreamオブジェクトを作成します。- バイト配列を作成し、フォームデータストリームを入力するには、
InputStreamオブジェクトのreadメソッドを呼び出して、バイト配列を引数として渡します。 javax.servlet.ServletOutputStreamオブジェクトのwriteメソッドを呼び出して、フォームデータストリームをクライアント web ブラウザーに送信します。バイト配列をwriteメソッドに渡します。
- フォームデータストリームをクライアントの web ブラウザーに送信するために使用する
関連トピック
Web サービス API を使用したパフォーマンスの最適化 optimize-the-performance-using-the-web-service-api
Forms API(web サービス)を使用して、最適化されたパフォーマンスでフォームをレンダリングします。
-
プロジェクトファイルを含める
- Forms Service WSDL を使用する Java プロキシクラスを作成します。
- Java プロキシクラスをクラスパスに含めます。
-
Forms Client API オブジェクトの作成
FormsServiceオブジェクトを作成し、認証値を設定します。 -
パフォーマンスの実行時オプションの設定
- コンストラクターを使用して
PDFFormRenderSpecオブジェクトを作成します。 - フォームキャッシュオプションを設定するには、
PDFFormRenderSpecオブジェクトのsetCacheEnabledメソッドを呼び出して、true を渡します。 - スタンドアロンオプションを設定するには、
PDFFormRenderSpecオブジェクトのsetStandAloneメソッドを呼び出して、true を渡します。 - 線形化オプションを設定するには、
PDFFormRenderSpecオブジェクトのsetLinearizedPDFメソッドを呼び出して、true を渡します。
- コンストラクターを使用して
-
フォームのレンダリング
FormsServiceオブジェクトのrenderPDFFormメソッドを呼び出して、次の値を渡します。- ファイル名拡張子を含んだフォームデザイン名を指定する文字列値。
- フォームに結合するデータを含む
BLOBオブジェクト。データを結合しない場合は、nullを渡します。 - 実行時オプションを保存する
PDFFormRenderSpeccオブジェクト。 - Forms サービスで必要な URI 値を格納する
URLSpecオブジェクト。 - 添付ファイルを保存する
java.util.HashMapオブジェクト。これはオプションのパラメーターで、 フォームにファイルを添付しない場合に、nullを指定します。 - メソッドによって設定される空の
com.adobe.idp.services.holders.BLOBHolderオブジェクト。これは、レンダリングされた PDF フォームを保存するために使用されます。 - メソッドによって設定される空の
javax.xml.rpc.holders.LongHolderオブジェクト。(この引数は、フォームのページ数を保存します)。 - メソッドによって設定される空の
javax.xml.rpc.holders.StringHolderオブジェクト。(この引数はロケール値を格納します)。 - この操作の結果を格納する空の
com.adobe.idp.services.holders.FormsResultHolderオブジェクト。
renderPDFFormメソッドは、最後の引数値として渡されるcom.adobe.idp.services.holders.FormsResultHolderオブジェクトに、クライアント web ブラウザーに書き込む必要のあるフォームデータストリームを入力します。 -
フォームデータストリームをクライアント web ブラウザーに書き込む
com.adobe.idp.services.holders.FormsResultHolderオブジェクトのvalueデータメンバーの値を取得して、FormResultオブジェクトを作成します。- フォームデータストリームをクライアントの web ブラウザーに送信するために使用する
javax.servlet.ServletOutputStreamオブジェクトを作成します。 FormsResultオブジェクトのgetOutputContentメソッドを呼び出して、フォームデータを含むBLOBオブジェクトを作成します。- バイト配列を作成し、
BLOBオブジェクトのgetBinaryDataメソッドを呼び出して、入力します。このタスクは、FormsResultオブジェクトのコンテンツをバイト配列に割り当てます。 javax.servlet.http.HttpServletResponseオブジェクトのwriteメソッドを呼び出して、フォームデータストリームをクライアント web ブラウザーに送信します。バイト配列をwriteメソッドに渡します。
関連トピック
Base64 エンコーディングを使用した AEM Forms の呼び出し