Integration Tutorial (SOAP)


はじめに

本ハンズオンはOIC-18.4.1で動作確認済みです。

テスト・ツールの用意

作成した統合のテストにSOAPメッセージを使用します。そのためSOAPメッセージの送信ソフトやアプリなどが必要ですが、SOAPのヘッダーにWSS Username Token/WS Timestampを組み込む必要があります。本ハンズオンではSOAP UIの利用を推奨しております。

SOAP UI を使用する場合は、以下の作業を完了しておいてください。

SOAP UIのインストール

SOAP UI クライアントを以下からインストールしてください。http://www.soapui.org/downloads/soapui/open-source.html

OIC では、セキュリティ脆弱性 SSL poodleによる攻撃を回避するため、TLS1.1 をサポートしています。

以下の手順で SOAP UI クライアントを更新してください。

  1. soapui インストール・ディレクトリの下の bin へ移動します (例 C:\program files (x86)\SmartBear\SoapUI-*\bin)
  2. ファイル SoapUI-*.vmoptions を開きます
  3. 次の行を最後に追記してください。 -Dsoapui.https.protocols=SSLv3,TLSv1.1

Calculationサンプルの作成

目的

本章では、最初の integration 作成までを解説します。本章では OICのユーザ・インタフェースを紹介し、以下の手順を説明します。

これから作成するフローは、単純なリクエスト/レスポンス・パターンです。ソース・アプリケーションは、OICを介してターゲット・アプリケーションからデータを取得するためにリクエストを発行し、同期でそのレスポンスを取得します。

SOAP接続の作成

  1. OICのホームでハンバーガーメニューをクリックし、左側に現れるメニューから統合をクリックします。

  2. 左側のメニューで接続のリンクをクリックします。

  3. 連携元との接続を作成するため、画面右上の作成をクリックします。

  4. SOAPアダプターを選択します。検索画面でSOAPと入力して探し出すこともできます。

  5. 次の情報を入力して、作成をクリックします。

    フィールド 入力値
    名前 Calc <User Name>
    識別子

    入力不要

    Connection Nameから自動で導出されます。 CALC_<USER NAME>

    ロール 設定不要(トリガーと呼出し)
    説明 任意
  6. (オプション)電子メール・アドレスに管理者用の E-Mail アドレスを入力します。例 admin@tenant.com
  7. 接続の構成 をクリックしてWSDL URL を設定します。次のURLを入力します。

    フィールド 入力値
    WSDL URL http://www.dneonline.com/calculator.asmx?WSDL

    注意 WSDL URLを入力した後、前後に余分な空白が含まれていないことを確認してください。他のパラメータはデフォルトのままにしておきます。

    接続プロパティOKをクリックします。

  8. セキュリティの構成をクリックし、セキュリティ・ポリシーをセキュリティ・ポリシーなしに変更します。資格証明OKをクリックします。

  9. 接続できることを検証するため、テストボタンをクリックします。クリックするとダイアログが現れますが、ここでは検証とテストを選択します。

    その後、“正常にテストされました” のメッセージが表示されるはずです。

  10. 右上のインジケータが100%になっており、接続の構成が完了していることを確認した上で、接続を保存し、閉じるをクリックします。

統合の作成

  1. 画面左側のメニューから、統合のリンクをクリックします。左側のメニューが表示されていない場合は、赤枠で囲んだハンバーガーメニューをクリックしてください。

  2. 右側上部にある作成をクリックします。

  3. ダイアログで基本ルーティングを選択します。

  4. 次の情報を入力して、作成をクリックします。

    フィールド 入力値
    統合にどのような名前を付けますか。 Calc <User Name>
    識別子

    入力不要

    Integration Name から自動的に導出されます。 CALC_<USER NAME>

    バージョン

    入力不要

    デフォルト値を使用します。 01.00.0000

    この統合はどのパッケージに属しますか。 指定しない
  5. 接続一覧からCalcの接続アイコンをトリガーのドラッグ・アンド・ドロップへドラッグします。

  6. 設定ウィザードに従い、以下の内容を設定します。

    フィールド 入力値
    エンドポイントにどのような名前を付けますか。 AddService
    このエンドポイントで何が行われますか。 任意
    操作の選択 Add
    SoapAction検証の無効化 デフォルト(いいえ)
    ヘッダーの構成 デフォルト(いいえ)
  7. サマリーの画面は次のようになっているはずです。完了をクリックします。

  8. 呼び出し側にも同様に、Calcの接続アイコンを呼出しのドラッグ・アンド・ドロップへドラッグします。

  9. 設定ウィザードに従い、以下の内容を設定します。

    フィールド 入力値
    エンドポイントにどのような名前を付けますか。 CalculatorService
    このエンドポイントでは何が行われますか。 任意
    ポートの選択 CalculatorSoap12
    操作の選択 Add
    ヘッダー構成 デフォルト(いいえ)

データ・マッピングと統合のアクティブ化

続いて、ソースから受信したメッセージをターゲットのWebサービスで使用する形式へ変換します。

  1. リクエスト・マッピングのアイコンをクリックし、アイコンを押してデータ・マッパーを起動します

  2. 次のソース・フィールドを対応するターゲット・フィールドへマッピングします。

    ソース・フィールド ターゲット・フィールド
    Add/intA Add/intA
    Add/intB Add/intB

    ソース・フィールドのテキストをドラッグして、ターゲット・フィールドのテキストと重なるように調整します。マッピングが完了すると、画面が次のようになります。

  3. 右上の検証をクリックして問題ないことを確認し、閉じるをクリックします。

  4. レスポンス・マッピングのアイコンをクリックし、アイコンを押してデータ・マッパーを起動します。

  5. 次のソース・フィールドとターゲット・フィールドをマッピングします。

    ソース・フィールド ターゲット・フィールド
    AddResponse/AddResult AddResponse/AddResult

    ドラッグして、ソース・フィールドのテキストがターゲット・フィールドのテキストと重なるように調整します。マッピングが完了すると、画面が次のようになります。

  6. 右上の検証をクリックして問題ないことを確認し、閉じるをクリックします。

  7. 編集内容を保存します。

  8. 最後にメッセージ・トラッキングの設定をします。OICでは、処理されたメッセージをトラッキングでき、モニタリングの機能で確認できます。その際に個々のメッセージを判別するため、リクエスト・ペイロードでキーとなるフィールドを設定できます。

    画面右上のメニューからトラッキングを選択します。

  9. 画面左にリクエスト・ペイロードのフィールドが並んでいます。この中から任意のフィールドをキーにしてトラッキングすることができます。ここではintAとintBをトラッキング・フィールドへドラッグ・ドロップします。設定が完了したら終了をクリックします。これで統合の設定が完了です。

  10. 右上のインジケータが100%になっており、統合の設定が完了していることを確認します:

  11. 保存アイコンを押して編集を保存し、閉じるをクリックします。

  12. 統合の設定が100%完了すると、統合をアクティブにするためのトグル・ボタンが表示されます。トグル・ボタンをクリックし、統合をアクティブ化します。

  13. 確認のダイアログではそのまま、アクティブ化を選択します。

  14. 統合がアクティブ化されました。

統合のテストとモニタリング

  1. インフォメーション・アイコン (i)をクリックすると、この統合のエンドポイントに対するWSDLが確認できます。このWSDLに対してSOAPメッセージを送信することでテストを実施します。WSDLのURLをコピーします(下図の赤枠で囲んである部分)


    注意 統合をアクティブ化すると以下のような通知が表示されます。この通知にあるエンドポイントURLに埋め込まれたハイパーリング(赤線部)は表示上のWSDLのURLとは異なるためクリックすると統合トップ画面に遷移します。

  2. SOAPメッセージの送信できるアプリケーションでテストしてください。

    SOAP UIを使った手順

    Step1: SOAPアイコンをクリックし、プロジェクト名、確認したエンドポイントURLを入力します。(URLの読込にOICへログインが必要となるケースがあります。ログイン名とパスを入力します。)

    [オプション手順] エンドポイントURLのWSDLの取得に失敗することがあります。SOAP UIのProxy設定が必要になる場合があるのでハンズオン環境のネットワークに応じてProxyを設定してください。下図はAutomaticに設定した例です。

    作成されたプロジェクトを展開してRequest1を開き、リクエストの構成画面を開きます:

    Step2: ペイロード編集画面の左下にあるAuthタブでベーシック認証を追加します。OICのログイン・ユーザー/パスを追加ください。

    Step3: ペイロードの<tem:intA>?</tem:intA><tem:intB>?</tem:intB>の「❓」に半角で整数値を入れます。以下の例では1と2を入れています。

    Step4: ペイロード上で右クリックして、メニューから「Add WSS Username Token」と「Add WS-Timestamp」の両方をそれぞれ選択し、Headerを構成します。いずれも設定はデフォルトのままでかまいません。

    Step5: 左上のSubmitボタンを押してテスト・メッセージを送信します。ここまでの設定がうまくいっていれば、AddResultには足し算の結果が入っているはずです。以下の例では、3が返っています。

  3. モニタリング画面からメッセージの成功を確認します。先ほどWSDLを取得したダイアログに現れたインスタンスのトラッキングのリンクをクリックします。

  4. メッセージが正常に完了していることを確認します。この時、メッセージ・トラッキングとして設定したフィールドの値が表示されている事を確認します。

  5. フィールドの値がリンクになっているのでこれをクリックすると、連携の実行結果を確認できます。エラーが発生した場合には、発生個所の特定に利用します。


ここまでのまとめ

この章を通じて、最初のintegrationを作成する手順を解説しました。OICのUIを紹介し、次の作業をどう実施するのかを確認しました。


Hello World サンプルのエンリッチメント

エンリッチメントの目的

本章では、2つのターゲット・サービスを起動してメッセージを処理する連携フローを作成します。リクエストされたメッセージは、1つ目のターゲットを起動してレスポンスを受け取り、更にそのレスポンスを使用して2つ目のターゲットを起動します。

そのため、全部で以下3種類のメッセージ・ペイロードを扱うことになります。

ソースやターゲットの設定が完了した後、データ・マッパーを使用し、ソース側Webサービスのメッセージ構造から1つ目のターゲットの構造へデータ・マッピングを行います。次に、1つ目のターゲットからのレスポンスの構造から2つ目のターゲットの構造へデータ・マッピングを行います。その後、統合をアクティブ化してメッセージのやりとりの結果をモニタリングします。また補足作業として、統合の非アクティブ化についても実施します。

先ずは前章で作成した統合のコピーを作成し、それをカスタマイズしていきます。

統合のドラフト作成とバージョニング

構築済みの統合に対して別バージョンを作成することで、全く同じ接続、データ・マッピングの構成でバージョンだけが異なる統合のコピーが作成できます。その上で、コピーされた統合を編集することができます。

  1. 画面左上のハンバーガーメニューをクリックしてメニューを開き、をクリックします。

  2. デザイナをクリックし、統合をクリックします。

  3. 統合の右端にあるアクション・メニューのアイコンを開き、バージョンの作成を選択します。

    バージョン番号に1.01.0000入力し、バージョンの作成をクリックします。

    補足 バージョン番号の最初の桁がメジャー・バージョンにあたり、メジャー・バージョンが重複する統合のうち、両方を同時にアクティブ化することはできません。どちらかがアクティブ化された状態でもう一方をアクティベーションすると、アクティブ化されていた方は非アクティブ化され切り替わります。

新バージョンの統合へエンリッチメントの追加

  1. 統合の名称 Calc XXXX (1.1.0)をクリックして編集を開始します。連携フローに、レスポンス方向のエンリッチメントを追加していきます。構成済の接続一覧が表示されていない場合、画面右にある、パレットを表示アイコンをクリックします。

  2. 接続一覧からCalcの接続アイコンをレスポンスの矢印上へドラッグします。

  3. 設定ウィザードに従って、以下の内容を設定していきます。終了したら完了をクリックします。

    フィールド 入力値
    エンドポイントにどのような名前を付けますか。 Square
    このエンドポイントでは何が行われますか。 任意
    ポートの選択 CalculatorSoap12
    操作の選択 Multiply
    ヘッダーの構成 デフォルトのまま(いいえ)

    サマリー画面は以下のようになっています。

  4. 警告ダイアログが表示されますが、[更新]をクリックします。

    これは既に設定されているレスポンス・データのマッピングが、新たに加えられたエンリッチメントのレスポンス・ペイロードによって影響を受ける可能性があることを示しています。

レスポンス・エンリッチメントのデータ・マッピング

  1. ソースとターゲットの間にあるレスポンス・エンリッチメント・マッピングをクリックし、

    アイコンを押してデータ・マッパーを起動します。

  2. 次のソース・フィールドとターゲット・フィールドをマッピングします。

    ソース・フィールド ターゲット・フィールド
    AddResponse > AddResult Multiply > intA
    $SourceApplicationObject > Add > intB Multiply > intB

    ドラッグして、ソース・フィールドのテキストがターゲット・フィールドのテキストと重なるように調整します。マッピングが完了すると、画面が次のようになっています。

  3. 検証して問題がないことを確認後、閉じるをクリックします。

  4. エンリッチメントで得られるペイロードを利用したいので、マッピングを再定義します。レスポンス・マッピングのアイコンをクリックし、編集アイコンをクリックします。

  5. 既にマッピングされているものを削除し、新たなマッピングを構成します。ターゲット・フィールドの「AddResponse > AddResult」のフィールド名を右クリックして、マッピングの削除を選択します。確認ダイアログが現れますので、削除を選択します。

  6. 次のソース・フィールドとターゲット・フィールドをマッピングします。

    ソース・フィールド ターゲット・フィールド
    $ResponseEnrichmentApplicationObject > MultiplyResponse > MultiplyResult AddResponse > AddResult
  7. マッピングを検証し、閉じるをクリックします。

  8. ここまでの統合の編集を保存して閉じるをクリックします。

  9. 新規バージョンの統合(1.1.0)のトグル・ボタンをクリックしてアクティベーションします。

  10. 確認ダイアログで、アクティブ化をクリックします。

  11. 新規バージョンがアクティブ化されました。

    補足

    新規バージョンがアクティブ化されると同時に、以前のバージョンは非アクティブ化されます。OICではバージョン番号の最初の桁だけがメジャー・バージョンとして扱われ、メジャー・バージョンが重複している統合を同時にアクティブ化することはできません。

新規バージョンのテストとモニタリング

  1. SOAPメッセージの送信できるアプリケーションでテストします。
    WSDLのURL、リクエスト・ペイロードには変更がありませんが、WSS Username Token、WS-TimeStampは再設定する必要があります。SOAP UIを使う場合は、前章の手順を参考にしてください。

  2. レスポンスのペイロードのAddResult要素が変更され、(intA+intB)*intBの結果が入っていることを確認してください。

    レスポンスの例

     <Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
         <Header />
         <Body>
             <AddResponse xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
                             xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
                             xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
                             xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                             xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
                             xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
                             xmlns:nstrgmpr="http://tempuri.org/"
                             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
                  <AddResult>6</AddResult>
             </AddResponse>
        </Body>
     </Envelope>
    
  3. モニタリング画面で状況を確認します。画面左上のハンバーガーメニューをクリックしてメニューを開き、をクリックします。

  4. モニタリングを開きます。

  5. ダッシュボードを開きます。

  6. トレースを有効化している場合、画面右のアクティビティ・ストリームをクリックすると、トレースを確認できるとともに、トレース情報をダウンロードできます(なお、デフォルトではトレースは無効化されています)。このファイルはトレース情報を含んだサーバー・ログで、このログから統合による処理プロセスやペイロードの情報を確認できます。またアクティビティ・ストリームや診断ログは、サポートへ問い合わせをする際の状況確認にも利用します。

  7. 画面左メニューからトラッキングを開きます。

  8. メッセージが正常に完了していることを確認します。この時、メッセージ・トラッキングとして設定したフィールドの値が表示されている事を確認します。またバージョンが1.1.0であることを確認します。

  9. フィールドの値がリンクになっているのでこれをクリックし、連携の実行結果を確認します。

まとめ

本章では次の手順を解説しました。