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

このドキュメントのサンプルと例は、JEE環境上のAEM Formsに対してのみ提供されています。

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

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

メモ

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

手順の概要

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

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

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

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

FormsクライアントAPIオブジェクトの作成

プログラムでFormsサービスのクライアントAPI操作を実行する前に、Formsサービスクライアントを作成する必要があります。 Java APIを使用している場合は、FormsServiceClientオブジェクトを作成します。 FormsのWebサービスAPIを使用している場合は、FormsServiceオブジェクトを作成します。

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

次のパフォーマンスランタイムオプションを設定して、Formsサービスのパフォーマンスを向上させることができます。

  • フォームキャッシング:PDFとしてレンダリングされるフォームをサーバーキャッシュにキャッシュできます。各フォームは、初回生成後にキャッシュされます。それ以降のレンダリング時には、キャッシュされているフォームがフォームデザインのタイムスタンプよりも新しい場合、フォームはキャッシュから取得されます。フォームをキャッシュすると、リポジトリからフォームデザインを取得する必要がなくなるので、Formsサービスのパフォーマンスが向上します。
  • フォームガイド(非推奨)は、他の変換タイプよりもレンダリングに時間がかかる場合があります。 パフォーマンスを向上させるために、フォームガイド(非推奨)をキャッシュすることをお勧めします。
  • スタンドアロンオプション:サーバー側の計算を実行するのにFormsサービスが必要ない場合は、スタンドアロンオプションをに設定すると、フォームが状態情報なしでレンダリングさ trueれます。状態情報は、インタラクティブフォームをレンダリングしてエンドユーザーがフォームに情報を入力し、そのフォームをFormsサービスに送り返す場合に必要です。 次に、Forms サービスは計算処理を実行し、フォームをレンダリングしてユーザーに戻し、結果がフォームに表示されます。状態情報のないフォームがFormsサービスに送り返されると、XMLデータのみが使用可能になり、サーバー側の計算は実行されません。
  • Linearized 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をレンダリングするWeb アプリケーションの作成

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

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

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

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

  2. Formsクライアント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オブジェクト's 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を使用してパフォーマンスを最適化する

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

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

    • FormsサービスのWSDLを使用するJavaプロキシクラスを作成します。
    • クラスパスにJavaプロキシクラスを含めます。
  2. Formsクライアント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の呼び出し

このページ

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now