Formsサービスのパフォーマンスの最適化

このドキュメントのサンプルと例は、JEE上のAEM Forms環境に限られています。

Formsサービスのパフォーマンスの最適化

フォームをレンダリングする際に、Formsサービスのパフォーマンスを最適化する実行時オプションを設定できます。 Formsサービスのパフォーマンスを向上させるために実行できるもう1つのタスクは、XDPファイルをリポジトリに保存することです。 ただし、この節では、このタスクの実行方法については説明しません。 (Javaクライアントライブラリを使用したサービスの呼び出しを参照)。

メモ

Formsサービスについて詳しくは、『 AEM Formsのサービスリファレンス 』を参照してください。

手順の概要

フォームのレンダリング中にFormsサービスのパフォーマンスを最適化するには、次のタスクを実行します。

  1. プロジェクトファイルを含めます。
  2. Forms Client APIオブジェクトを作成します。
  3. パフォーマンスの実行時オプションを設定します。
  4. フォームをレンダリングします。
  5. フォームデータストリームをクライアントWebブラウザーに書き込みます。

プロジェクトファイルを含める

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用する場合は、プロキシファイルを必ず含めてください。

Forms Client APIオブジェクトの作成

Formsサービスクライアント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ブラウザーに書き込まれると、フォームはユーザーに表示されます。

関連トピック

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

FormsサービスAPIのクイックスタート

インタラクティブPDF formsのレンダリング

FormsをHTMLとしてレンダリング

Forms

Java APIを使用してパフォーマンスを最適化します。

Forms API(Java)を使用して、最適化されたパフォーマンスでフォームをレンダリングします。

  1. プロジェクトファイルを含める

    Javaプロジェクトのクラスパスに、adobe-forms-client.jarなどのクライアントJARファイルを含めます。

  2. Forms Client APIオブジェクトの作成

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用してFormsServiceClientオブジェクトを渡し、ServiceClientFactoryオブジェクトを作成します。
  3. パフォーマンスの実行時オプションの設定

    • コンストラクタを使用して PDFFormRenderSpec オブジェクトを作成します。
    • PDFFormRenderSpecオブジェクトのsetCacheEnabledメソッドを呼び出してtrueを渡すことで、フォームキャッシュオプションを設定します。
    • PDFFormRenderSpecオブジェクトのsetLinearizedPDFメソッドを呼び出し、true.を渡すことによって線形化オプションを設定します
  4. フォームのレンダリング

    FormsServiceClientオブジェクトのrenderPDFFormメソッドを呼び出し、次の値を渡します。

    • ファイル名拡張子を含むフォームデザイン名を指定するstring値。
    • フォームとマージするデータを含むcom.adobe.idp.Documentオブジェクト。 データを結合しない場合は、空のcom.adobe.idp.Documentオブジェクトを渡します。
    • パフォーマンスを向上させるために実行時オプションを格納するPDFFormRenderSpecオブジェクト。
    • Formsサービスに必要なURI値を含むURLSpecオブジェクト。
    • 添付ファイルを格納するjava.util.HashMapオブジェクト。 これはオプションのパラメーターで、フォームにファイルを添付しない場合はnullを指定できます。

    renderPDFFormメソッドは、クライアントのWebブラウザーに書き込む必要があるフォームデータストリームを含むFormsResultオブジェクトを返します。

  5. フォームデータストリームをクライアント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メソッドにバイト配列を渡します。

関連トピック

クイックスタート(SOAPモード):Java APIを使用したパフォーマンスの最適化

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用してパフォーマンスを最適化する

Forms API(Webサービス)を使用して、最適化されたパフォーマンスでフォームをレンダリングします。

  1. プロジェクトファイルを含める

    • FormsサービスのWSDLを使用するJavaプロキシクラスを作成します。
    • Javaプロキシクラスをクラスパスに含めます。
  2. Forms Client APIオブジェクトの作成

    FormsServiceオブジェクトを作成し、認証値を設定します。

  3. パフォーマンスの実行時オプションの設定

    • コンストラクタを使用して PDFFormRenderSpec オブジェクトを作成します。
    • PDFFormRenderSpecオブジェクトのsetCacheEnabledメソッドを呼び出し、trueを渡すことで、フォームキャッシュオプションを設定します。
    • PDFFormRenderSpecオブジェクトのsetStandAloneメソッドを呼び出し、trueを渡すことで、スタンドアロンオプションを設定します。
    • PDFFormRenderSpecオブジェクトのsetLinearizedPDFメソッドを呼び出し、trueを渡すことで、線形化オプションを設定します。
  4. フォームのレンダリング

    FormsServiceオブジェクトのrenderPDFFormメソッドを呼び出し、次の値を渡します。

    • ファイル名拡張子を含むフォームデザイン名を指定するstring値。
    • フォームとマージするデータを含む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ブラウザーに書き込む必要のあるフォームデータストリームを設定します。

  5. フォームデータストリームをクライアント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の呼び出し

このページ