データ・ハンドラー は、Java
クラス・インスタンスで、特定の直列化フォーマットとビジネス・オブジェクトとの変換を行います。
データ・ハンドラーは、WebSphere Business Integration
ブローカーと何らかの外部プロセスとの間で情報を転送するビジネス・インテグレーション・システムのコンポーネントによって使用されます。表 1 に、WebSphere Business Integration
ブローカーと外部プロセス間の情報の転送を処理するコンポーネントを示します。
表 1. WebSphere Business Integration システムの内部で情報を転送するコンポーネント
表 1 に示すように、これら 2 つのコンポーネント (コネクターおよびアクセス・クライアント) の目的は、次に示す方法でブローカーと外部プロセスとの間で情報を転送することです。
多くの場合、外部プロセスは、その固有の直列化データに対して XML など何らかの共通フォーマットを使用します。これらの共通フォーマットとビジネス・オブジェクト間の変換を各アダプター (またはアクセス・クライアント) が実行する代わりに、WebSphere Business Integration システムには、IBM が開発した数種類のデータ・ハンドラーが用意されています。さらに、カスタム・データ・ハンドラーを作成すると、独自の固有フォーマット間の変換を処理できます。こうすれば、アダプター (またはアクセス・クライアント) は、適切なデータ・ハンドラーを呼び出して、直列化データの Multipurpose Internet Mail Extensions (MIME) タイプに基づいてデータ変換を実行できます。
このセクションでは、データ・ハンドラーに関する以下の情報について説明します。
IBM では、表 2 に示す Java アーカイブ (jar)
ファイルに格納してデータ・ハンドラーを提供しています。これらの jar
ファイルは、製品ディレクトリーの下の DataHandlers
サブディレクトリーにあります。
表 2. IBM 提供のデータ・ハンドラーの JAR ファイル
内容 | 説明 | データ・ハンドラーの JAR ファイル |
---|---|---|
基本データ・ハンドラー | テキスト・ベースのデータ・ハンドラーおよびある IBM 提供アダプターに固有なデータ・ハンドラー | CwDataHandler.jar |
特殊なデータ・ハンドラー | XML データ・ハンドラー | CwXMLDataHandler.jar |
カスタム・データ・ハンドラー | 作成者がインプリメントするデータ・ハンドラー | CustDataHandler.jar |
基本データ・ハンドラー・ファイルである CwDataHandler.jar
には、大半の IBM 提供データ・ハンドラーが格納されています。
このファイルは、製品ディレクトリーの DataHandlers
サブディレクトリーに存在します。表 3
に、この基本データ・ハンドラー・ファイルに格納されている基本データ・ハンドラーを示します。
データ・ハンドラー | MIME タイプ | 詳細 |
---|---|---|
Request-Response データ・ハンドラー | text/requestresponse | Request-Response データ・ハンドラー |
FixedWidth データ・ハンドラー | text/fixedwidth | FixedWidth データ・ハンドラー |
Delimited データ・ハンドラー | text/delimited | Delimited データ・ハンドラー |
NameValue データ・ハンドラー | text/namevalue | NameValue データ・ハンドラー |
IBM では、いくつかのデータ・ハンドラーについて、個別のインストーラーを提供しています。これらの特殊なデータ・ハンドラーをインストールするには、「WebSphere Business Integration Adapters インストール・ガイド」で示す手順に従う必要があります。
データ・ハンドラーを基本データ・ハンドラー・ファイルから分離すると、多くのアダプターは、基本データ・ハンドラー・ファイルに存在するほかのデータ・ハンドラーを格納する際のオーバーヘッドを発生させずにデータ・ハンドラーを使用できるようになります。表 4 に、IBM から個別のインストーラーと個別の JAR
ファイルが提供されているデータ・ハンドラーを示します。
表 4. 個別の JAR ファイルを持つ IBM 提供のデータ・ハンドラー
データ・ハンドラー | データ・ハンドラーの JAR ファイル | MIME タイプ | 詳細 |
---|---|---|---|
XML データ・ハンドラー | CwXMLDataHandler.jar | text/xml | "XML データ・ハンドラー" |
IBM 提供のデータ・ハンドラーが直列化データからビジネス・オブジェクトへの変換を処理しない 場合は、独自のカスタム・データ・ハンドラーを作成できます。CustDataHandler.jar ファイルは、作成する任意のカスタム・データ・ハンドラーを保持することを目的としています。 このファイルは、製品ディレクトリーの DataHandlers サブディレクトリーに存在します。カスタム・データ・ハンドラーの作成方法の詳細については、"カスタム・データ・ハンドラーの作成"を参照してください。
コネクターまたは Server Access Interface プロセスは、入力ファイルの MIME タイプまたはビジネス・オブジェクト要求で指定された MIME タイプに基づいて、データ・ハンドラーをインスタンス化します。
データ・ハンドラー・メタオブジェクトは、階層構造のビジネス・オブジェクトで、任意の数の子オブジェクトを組み込むことができます。 データ・ハンドラー構成情報は、次の階層に整列されています。
トップレベルの各属性は、データ・ハンドラー・インスタンスに関して子メタオブジェクトを参照するカーディナリティー 1 属性です。各属性は 1 つの MIME タイプを表し、操作できるデータ・ハンドラーを示します。
各属性は構成プロパティーを表しており、そのデフォルト値やタイプなどの情報を提供しています。
データ・ハンドラー・メタオブジェクトにより、コネクターや Server Access Interface プロセスが入力ファイルの MIME タイプまたはビジネス・オブジェクト要求で指定された MIME タイプに基づいてデータ・ハンドラーをインスタンス化できます。
データ・ハンドラーを構成するには、そのメタオブジェクトが正しく初期化され、呼び出し元 (コネクターまたはアクセス・クライアント) で使用できることを確認する必要があります。
表 1 に示すように、WebSphere Business Integration
システム内部のデータを転送する必要があるコンポーネントは、データ・ハンドラーを呼び出すことができます。表 5
には、データ・ハンドラーを呼び出すことのできるコンポーネントの追加情報が記載されています。
コンポーネント | イベント通信のタイプ | フローのタイプ | データ・ハンドラーを起動するソフトウェア |
---|---|---|---|
アダプター | 非同期 | イベント・トリガー・フロー | コネクター |
アクセス・クライアント | 同期 | 呼び出しトリガー・フロー | Server Access Interface |
表 5 に示すように、イベント・トリガー・フローでは、アダプターがデータ・ハンドラーを直接呼び出します。呼び出しトリガー・フローでは、Server Access Interface (アクセス・クライアントと呼ばれる) を使用する外部プロセスがデータ・ハンドラーの呼び出しを開始します。
データ・ハンドラーは、アダプターから直接呼び出された場合でもアクセス・クライアントから間接的に呼び出された場合でも同じように動作します。これらのコンテキストについては、以降のセクションで説明します。
イベント・トリガー・フローでは、コネクター と呼ばれるアダプターのランタイム・コンポーネントがデータ・ハンドラーと直接やり取りしてデータを変換します。
コネクターがデータ・ハンドラーを呼び出すと、データ・ハンドラーがコネクター・プロセスの一部として実行されます。図 1 に、コネクター・コンテキストでのデータ・ハンドラーを示します。
データ変換には、ビジネス・オブジェクトの要件とフローの方向が反映されます。
ビジネス・オブジェクトからストリングへの変換の場合、コネクターはデータ・ハンドラーを呼び出して、このデータ・ハンドラーにビジネス・オブジェクトを渡します。データ・ハンドラーは、ビジネス・オブジェクトおよびビジネス・オブジェクト定義の情報を使用して、データのストリームまたはストリングを作成します。このデータのストリームまたはストリングは、データ・ハンドラーと関連したフォーマット (通常は特定の MIME タイプ) で作成されます。ビジネス・オブジェクトからストリングへの変換が便利なのは、コネクターが統合ブローカーからビジネス・オブジェクトの形式で情報を受信するときです。コネクターは、情報を受信後、ビジネス・オブジェクトの情報をアプリケーション (またはテクノロジー) の直列化データとして送信する必要があります。
図 2 に、データ・ハンドラーがビジネス・オブジェクトからストリングへの変換を行う際の、コネクター・コンテキストでのデータ・ハンドラーを示します。
図 2. コネクターのコンテキストでのビジネス・オブジェクトからストリングへの変換
コネクターがデータ・ハンドラーをインスタンス化する方法の詳細については、コネクター・コンテキストでのインスタンス化を参照してください。
コネクターは、ビジネス・オブジェクトを引き数としてこのメソッドに送信します。データ・ハンドラーは、ビジネス・オブジェクトを要求されたデータ・フォーマットに直列化します。
ストリングからビジネス・オブジェクトへの変換の場合、コネクターはデータ・ハンドラーを呼び出して、このデータ・ハンドラーに直列化データおよび関連の MIME タイプ・オブジェクトを渡します。データ・ハンドラーは、データのストリームまたはストリングを受け取ります。データ・ハンドラーは、データ・ストリーム内の情報を使用して、指定されたタイプのビジネス・オブジェクト・インスタンスを作成、命名、および設定します。ストリングからビジネス・オブジェクトへの変換は、コネクターが統合ブローカーにイベントを送信する必要がある場合に役に立ちます。アプリケーションは、このイベントを特定の MIME タイプを持つ直列化データとしてコネクターに送信します。
図 3 に、データ・ハンドラーがストリングからビジネス・オブジェクトへの変換を行う際の、コネクター・コンテキストでのデータ・ハンドラーを示します。
図 3. コネクターのコンテキストでのストリングからビジネス・オブジェクトへの変換
コネクターがデータ・ハンドラーをインスタンス化する方法の詳細については、コネクター・コンテキストでのインスタンス化を参照してください。
コネクターが getBO() メソッドのデータ変換先のビジネス・オブジェクトを指定する場合もあります。ビジネス・オブジェクトのタイプを指定するコネクターもあり、またデータ・ハンドラーが直列化テキストからビジネス・オブジェクト・タイプを抽出できることを前提とするコネクターもあります。データ・ハンドラーはデータを構文解析し、直列化データを基にビジネス・オブジェクトの属性値を取り込みます。
呼び出しトリガー・フローでは、アクセス・クライアントがデータ・ハンドラーとやり取りしてデータを変換します。アクセス・クライアント は外部プロセスで、Server Access Interface を使用して InterChange Server Express とやり取りします。 アクセス・クライアントは、Server Access Interface API の ItoExternalForm() メソッドまたは IcreateBusinessObjectFrom() メソッドを呼び出すと、データ・ハンドラーの呼び出しを開始します。 Server Access Interface は InterChange Server Express プロセスの一部として動作し、実際にデータ・ハンドラーを起動します。
InterChange Server |
---|
Server Access Interface は API で、アクセス・クライアントが InterChange Server 内のコラボレーションを実行できるようになります。このインターフェースは、InterChange Server が統合ブローカーの場合にのみ 使用できます。アクセス・クライアントにおけるこのインターフェースの詳細については、IBM WebSphere InterChange Server 資料セットの「アクセス開発ガイド」を参照してください。 |
アクセス・クライアントは、クライアント・ブラウザーからの要求を処理するサーブレットの場合があります。要求は、データ要求、注文要求、または別のタイプの企業間トランザクションの場合があります。別の例として、アクセス・クライアントは、Server Access Interface を使用して InterChange Server Express にアクセスし、別のアプリケーションとデータを交換する C++ または Java プログラムの場合もあります。
アクセス・クライアントがデータ・ハンドラーを必要とする呼び出しを開始すると、データ・ハンドラーが InterChange Server プロセスの一部として実行されます。図 4 に、Server Access Interface コンテキストでのデータ・ハンドラーを示します。この例では、アクセス・クライアントは Web サーバーとサーブレットです。
図 4. Server Access Interface のコンテキストでのデータ・ハンドラー
データ変換には、ビジネス・オブジェクトの要件とフローの方向が反映されます。
ビジネス・オブジェクトからストリングへの変換では、データ・ハンドラーはコラボレーションの実行結果としてビジネス・オブジェクトを受け取ります。データ・ハンドラーは、ビジネス・オブジェクト内の情報を使用してデータのストリームまたはストリングを作成します。このデータはデータ・ハンドラーと関連したフォーマットで、通常は特定の MIME タイプです。アクセス・クライアントはほとんどの場合、作成されたビジネス・オブジェクトを直列化データとしてアプリケーションに送信します。
図 5 に、データ・ハンドラーがアクセス・クライアントについてのビジネス・オブジェクトからストリングへの変換を行う際の、Server Access Interface コンテキストでのデータ・ハンドラーを示します。
図 5. Server Access Interface コンテキストでのビジネス・オブジェクトからストリングへの変換
ストリングからビジネス・オブジェクトへの変換では、データ・ハンドラーはデータのストリームまたはストリングを受け取ります。データ・ハンドラーは、データ・ストリーム内の情報を使用して、指定されたタイプのビジネス・オブジェクト・インスタンスを作成、命名、および設定します。ストリングからビジネス・オブジェクトへの変換は、アクセス・クライアントが InterChange Server InterChange Server Express のコラボレーションにビジネス・オブジェクトを送信する必要がある場合に役に立ちます。アクセス・クライアントがこの直列化データ (通常は、特定の MIME タイプ) をデータ・ハンドラーに送信します。
図 6 に、データ・ハンドラーがアクセス・クライアントについてのストリングからビジネス・オブジェクトへの変換を行う際の、Server Access Interface コンテキストでのデータ・ハンドラーを示します。
図 6. Server Access Interface コンテキストでのストリングからビジネス・オブジェクトへの変換