Talend ESB入門パワーガイド – 第2部
XMLマッピングを有効にして、文字列操作でデータを結合する方法を学びます。
一般的に、企業は何百ものアプリケーションを使用し、それらの多くは相互の統合が必要です。多くの企業にとって、エンタープライズアプリケーションの統合は困難になることがあります。ポイントツーポイント統合を介してアプリケーションを接続するのは時間とコストがかかるため、多くの組織は統合をより迅速かつ容易にするためにEnterprise Service Bus(ESB)を利用しています。
アプリケーション統合向けTalend ESBの「入門パワーガイド」シリーズ第1部では、WSDL(Web Services Description Language (WSDL)契約をTalend Open Studio for ESBにインポートし、CRM統合の構築に必要なサービスのすべての要素を作成しました。CRMデータ、サービスのスタイル、サービスの終了が定義され適切に設定されました。これで、エラー処理とロードバランシングをCRM統合に構成する準備が整いました。
「Talend ESB入門パワーガイド」シリーズ第2部となる今回は、以下について説明します。
- 入出力を通じてCRMソースデータのXMLマッピングを有効にするため、Talend ESBをセットアップします。
- Talend Open Studio文字列操作を使い、文字列操作 でCRMデータセットを結合します。
- SOAPベースのエラー応答を作成する
第3部では、エンドポイントへの可視性を高めるためにロードバランシング統合パターンを実装します。最後に、完全にロードバランシングされたSOAPベースのWebサービスプロバイダーをテストして、CRM統合が正しく機能していることを確認します。
Talend Studio内でのマッピング
Talend Open Studioで最も強力で広く使用されている機能はマッピングコンポーネントです。このESBデモでは、XMLマッピングを実行できるようにTXMLmapを使用します(XML以外のリソースにも利用可能な対応するマップコンポーネントがあります)。
以下に示す画面では、入力をマッピング手順にラベル付けします。そのために、ステップ間に線を引き、それらに名前を付けます。1つはサービスベースからの要求であることを示し、もう1つは顧客リソースからの情報の受信であることを示します。さらにもう1つ、サービス応答への出力をマッピングします。最後に、このCRM統合でSOAPフォルトを生成したいので、フォルトコンポーネントへの出力を作成します。
コンテナー内の実際の出力を表示するには、右側のナビゲーションに移動して出力を記録します。以下の画面で、情報のソースを調べ、サービスの着信要求、顧客リソースから抽出される顧客スキーマ、およびサービスへの応答(正常の応答とフォルト応答)を確認できます。
画面中央には、インポートしたサービスのさまざまな操作がすべて表示されています。ここで扱う「getCustomer」操作は、メニューから選択します。これは、WSDLに含まれる「getCustomer」要求スキーマに従って要求のデータを収集することを示します。
新しい要求が、左上のメインの要求ボックスに追加されます。その後、同じ手順に従って、エラー処理セクションとフォルト応答セクションに「getCustomer」操作を追加します。
画面の左側にはすべての入力が表示され、右側にはXMLマップへのすべての出力が表示されます。次のステップは、入力と出力を介してデータをマッピング・転送できるようにESBをセットアップすることです。
まず、左側にある2つのボックス、つまりサービス要求(上)と顧客データリソース(下)の間のルックアップを作成します。これを行うには、要素(この場合は「custId」)をドラッグアンドドロップして、それを顧客リソースに追加することを示します(lookup: customers)。
つまり、着信するサービス要求内の顧客IDを、顧客リソース内の顧客IDに結合します。
データ結合がうまくいかない場合:結合と文字列操作のセットアップ
次に、サービスが実行されるたびにCRMデータを統合するメカニズムを設定する必要があります。[Match Model]には[Unique match]を指定し、[Join Model]には[Inner Join]を指定します。これらのパラメーターを設定したら、エンドポイントへのデータのマッピングを開始できます。
この結合でのデータのマッピングは、ドロップを描く単純な操作です(下のスクリーンショットの線を参照)。
若干複雑なことですが、右側のサービス応答の名前「name」は名前全体をつなぎ合わせたもので、左側の顧客リソースは「name」を一連のコンポーネント(salutation、forenameなど)を示しています。
これに対処するために、中央の列にある[Var]をクリックして[Variable]列の下に[name]と入力して、小型のトランスフォーマーを作成します。次に、[Salutation]、[Forename]、[Surname]の行を強調表示し、それらを[Expression]列の変数ボックスにドラッグします。
次に、その列のボックスと新しいウィンドウをクリックします。[Salutation]、[Surname]、[Forename]の文字列を連結する方法は3つあります。
- すぐに使える標準搭載の機能を使用する。
- カスタムルーチンを記述する。
- 単純なJAVA構文を記述する。
名前が解決されたら、画面上のすべてのコンポーネントをマッピングし(下記参照)、もう一度ドラッグアンドドローします。これにより接続が設定され、サービスへの標準的応答が得られます。
SOAPベースのエラー応答の作成
次に、サービスの標準SOAPフォルトを生成するための設定を行います。プロセスは、前述のCRMデータのマッピングと似ています。
まず、「内部結合拒否」と呼ばれるものを捕捉するように設定します。つまり、顧客が見つからない場合にサービスからエラー応答を得ます。エラー応答を構成するには、エラーのベースラベルとして「err001」と入力し、[Type]には「Lookup failure」と入力してエラーの内容を示します。
最後に、[Message]には、サービスが顧客を見つけることができなかった場合のためのわかりやすいメッセージ(「Unable to locate customer」)を入力します。最後に、元の入力「custId」を「fault」セクションにドラッグします。
これでサービスの準備が完了しました。「Talend ESB入門パワーガイド」シリーズの第3部となる次回は、ロードバランシングアルゴリズムの実装方法、およびTalend Open Studio for ESBで利用可能なメディエーションおよびルーティング機能について紹介します。
以上の操作は、無償のTalend Open Studio for ESBで試すことができます。このデモのように単純なCRM統合の実装や、独自のWebサービス統合のセットアップを簡単に実行できます。