構築ブロック

構築ブロックは、ソリューションのコアパーツです。これらは完全にカスタマイズ可能、再利用可能、拡張可能なモジュールで、ソリューションの機能を定義します。構築ブロックにより、CRX によってホストされるサービスを活用できます。構築ブロックはまた、再利用可能な API および Flex ベースの UX コンポーネントを公開しており、開発者がソリューションのカスタマイズに活用できます。

Correspondence Management Solution には 3 つの構築ブロックが含まれます。

  • Asset Composer 構築ブロック

  • Data Dictionary 構築ブロック

  • Expression Manager 構築ブロック

構築ブロックは、運用アプリケーションに使用する方法を説明した各構築ブロック固有の技術ドキュメントを含む、ソリューション固有の製品機能です。

構築ブロックの構造

Correspondence Management 構築ブロックは、任意のインストールディレクトリに解凍できる CRX パッケージとして配布されます。すべての CRX パッケージは、次のカテゴリのいずれかに分類されます。

  • Platform パッケージ:Adobe LiveCycle プラットフォーム全体を形成するパッケージです。

  • Building Block パッケージ:カスタムソリューションを構築しやすいようにパートナーを支援する様々な構築ブロックを形成するパッケージです。

  • Solution Template パッケージ:ターゲットソリューションのデモンストレーションコンポーネントのためのパッケージです。このパッケージは、LiveCycle サーバー上にあらかじめデプロイされている構築ブロックを必要とします。

  • Solution Single Install パッケージ:ソリューションテンプレートと、すべてが 1 つの Experience Service パッケージにマージされた構築ブロックのセットを含みます。

Asset Composer 構築ブロック

Asset Composer 構築ブロック は、Adobe LiveCycle Enterprise Suite 4(ES4)で利用できる Correspondence Management Solution の一機能です。Asset Composer 構築ブロックには、テキスト、画像、リストモジュール、条件付きモジュールなどのアセットを作成および管理するための主要機能が用意されています。また、通信の定義およびレンダリングもサポートされています。

Asset Composer 構築ブロックのコンポーネント

Asset Composer 構築ブロックは、OSGI にバンドルされた LiveCycle パッケージとしてデプロイされます。構築ブロックのサービスは、OSGI サービスとして登録されます。

Persistence Services

Persistence Services コンポーネントは、オブジェクトモデルと API を、LiveCycle コンテンツサーバー側 API とやり取りする個別のアセット(カテゴリ、データモジュール、レイアウト、フラグメントレイアウト、レター、ドキュメントおよびポートフォリオ)に提供します。このサービスは、アセットの依存関係リストを取得し、アセットのコンテンツをダウンロードするために、CRUD などの操作や、発行など他のユーティリティ API を容易にします。

レンダリングサービス

レンダリングサービスは、指定されたレター/ポートフォリオテンプレートおよびインスタンスデータに基づいて、レターまたはポートフォリオ/パッケージをレンダリングするサーバー側コンポーネントです。外部 Web サービスとの統合により、こうしたテンプレートの後処理機能も提供します。

Web モジュール

このコンポーネントは、サーブレットやその他の関連するサービスなど、Web レイヤー関連のアーティファクトで構成されています。

このコンポーネントには次のサービスが含まれています。

  • Submit:このサーブレットは、XML データおよびレンダリングされた PDF を、レターまたはポートフォリオテンプレート用の選択された後処理サービスに送信します。このサーブレットは、送信前に LetterRenderService を呼び出して、通信を作成アプリケーションによって送信された指定の XML データと共にレターをレンダリングします。次に、ServiceInvoker API を呼び出して、最終的に PDF および XML データを後処理に送信します。

  • FlexConfigurationService:このユーティリティサービスは、クライアントアプリケーションが、Web コンテキストやサーブレットマッピングなどのホスト Web アプリケーション用に設定されたプロパティにアクセスすることを許可します。

  • ExternalDataUtil:このサービスは、適切な URL ハンドラーを登録することで、様々なデータソースへの接続を許可します。CRX リポジトリからコンテンツにアクセスするために、標準の Java プロトコルおよび crx:// プロトコルをサポートしています。

通信を作成

通信を作成アプリケーションは、Asset Composer 構築ブロック内に複数の Flex コンポーネントで構成されます。このアプリケーションは、プレゼンテーションモデル、ドメインモデル、リソースバンドルおよびスタイル SWC にコンポーネント化されているので、拡張してカスタマイズすることができます。

Asset Composer のシナリオ

さらに詳しくは、「Asset Composer のシナリオ」を参照してください。

Data Dictionary 構築ブロック

Data Dictionary 構築ブロックは、アドビのアプリケーションモデリングテクノロジーをベースとしており、これによって、メタデータやバックエンド統合に関する独自の表現が可能になります。ソリューションのコンテキストにおけるメタデータとは、データ構造とその関連属性を説明するものです。したがって、データディクショナリは、ドメイン固有オブジェクトとその関連定義のカタログとなります。Data Dictionary 構築ブロックでは、ビジネスユーザーがモデルをソリューションレベルで使用できます。また、バックエンドのデータ統合を必要とせずに、ドメイン固有のデータディクショナリを作成したり、アーティファクトを改善したりできます。例えば、保険ドメインのデータディクショナリには、人、年齢、資格、ローン金額などのデータディクショナリ要素(DDE)を含めることが可能です。データディクショナリモデルを開発し、拡張アプリケーションモデルにシームレスに書き出して、それを実稼動システムに読み込むことができます。

Data Dictionary 構築ブロックのコンポーネント

Data Dictionary 構築ブロックは、バックエンドシステムに接続するクライアントおよびサービスで構成されています。

Data Dictionary 構築ブロックのクライアント

Data Dictionary クライアントには、以下が含まれます。

  • Data Dictionary Java クライアント(adobe-dct-client.jar)。Java クライアントには、この構築ブロックのカスタムコードに必要とされるサーバー側の値オブジェクト、サービス API および例外クラスが含まれています。

  • Data Dictionary Flex クライアント(adobe-dct-flex-services.swc)。Flex クライアントには、様々な ActionScript 値オブジェクト、データディクショナリサービス Flex API、イベント、エラー処理が含まれています。

  • Data Dictionary 構築ブロックのユーザーインターフェイスコンポーネント。Data Dictionary 構築ブロックのユーザーインターフェイスコンポーネント(データディクショナリエディター、データ要素パネル)は、バックエンドのリポジトリとやり取りするためのデータディクショナリサービスを使用します。

    • データディクショナリエディター。データディクショナリ、そのプロパティおよび要素を作成し変更するための管理者用ユーザーインターフェイス。定義ビューおよびプロパティビューで、様々なプロパティの値をデータディクショナリ要素に関連付けることができます。また、拡張プロパティを追加することで、メタデータをデータディクショナリとその各要素に関連付けることができます。

    • データ要素パネル。表およびツリー形式で表示される DDE およびプレースホルダー変数を作成するためのユーザーインターフェイス。また、表示名でライブ検索を実行して、DDE を探します。

Data Dictionary 構築ブロックのサービス

Data Dictionary 構築ブロックのサービスは、Spring bean として公開されます。Data Dictionary 構築ブロックで提供されている bean のリストを以下に示します。

  • DataDictionaryRegistryService:このサービスは、Data Dictionary 構築ブロックの作成、更新、削除の各操作を実行します。

  • DataDictionaryUtilService:このサービスは、データディクショナリのユーティリティ関数を提供します。

  • Expression Evaluation サービス:このサービスは、標準 EL 構文とライブラリを使用して式を評価する再利用可能なコンポーネントです。このコンポーネントには、サーバー上で式を評価するためのサーバー側 API と、クライアント上で式を評価するためのクライアント側の同様のロジックが含まれています。

バックエンド統合レイヤー

Platform Content のサーバー側コンポーネントは、基礎となる、アセットを保存するリポジトリとやり取りするための操作/API を公開します。Asset Composer 構築ブロック向けのサービスコンポーネントは、Platform Content のサーバー側 API とやり取りする個々のアセット用の API をカプセル化しています。Platform Content のサーバー側コンポーネントは、アセット上の依存関係のリストやアセット向けのコンテンツバイトのダウンロードなど、操作やその他のユーティリティ API を利用します。

Data Dictionary 構築ブロックを使用した開発

データディクショナリを使用するソリューションの開発では、通常、以下のツールを使用します。

  1. データディクショナリエディター。このユーザーインターフェイスでは、この構築ブロックと共に提供されるデータディクショナリの作成と保守を行うことができます。

  2. Java 開発ツール

    • Java/Spring プロジェクトを作成するための IDE

    • ANT ビルドツール

  3. LiveCycle ツール:

    • Adobe® Flash® Builder™

データディクショナリのサンプル

データディクショナリは、必要に応じてカスタマイズできます。『Data Dictionary 構築ブロックテクニカルガイド』には、次のサンプルが含まれています。

さらに詳しくは、「Data Dictionary 構築ブロックアセットの理解」を参照してください。

Expression Manager 構築ブロック

Expression Manager 構築ブロックでは、サーバー側およびクライアント側で式を評価できます。クライアント側での式の評価には、実行時にサーバーラウンドトリップなしで式を解釈する Expression Manager クライアントライブラリが使用されます。

デフォルトでは、Expression Manager は標準の式言語(EL)構文およびライブラリを使用しますが、他のルールベースに接続することもできます。

Expression Manager 構築ブロックのコンポーネント

式評価サービスで、変数の値を取得するには変数リゾルバーのインスタンスが必要です。また、通常、式がライブラリから関数定義を取得するには、関数マッパーが必要です。データディクショナリに接続するときは、DDE 変数リゾルバーが必要です。

  • 変数リゾルバー:式で使用されている変数の値を取得するために、式評価ライブラリによって使用されます。

  • 関数マッパー:式で使用されているカスタム関数の定義を提供するために使用されます。

  • DDE 変数リゾルバー:データディクショナリ要素の値の解決に使用されます。

Expression Manager 構築ブロックは、サーバー側式評価とクライアント側式評価という 2 つのモジュールに分類されます。

サーバー側式評価

サーバー側式評価モジュールを使用すると、サーバー側で式を評価できます。Expression evaluator サービスは、サーバー側式評価モジュールのコア部分です。式の評価と検証のための API が提供されます。式は単独モードでもバッチモードでも評価可能です。このコンポーネントは、式評価ライブラリ(JSP EL)のラッパーとして動作します。実際の式評価タスクは、式ライブラリに委任されます。

Flex を使用したクライアント側式評価

クライアント側の式評価モジュールを使用すると、サーバーを経由せずに、Flex クライアントアプリケーション内で式を評価できます。Flex Expression Manager では、JSP-EL 対応の式を解釈および評価できます。IExpressionManager インターフェイスは、クライアント側式評価へのエントリポイントです。アプリケーションの使用には、JSP-EL 対応の式が渡されることが想定されています。クライアント側式マネージャーでは、式内の変数参照および関数呼び出しを解決するために、変数リゾルバーおよび関数マッパーが必要です。