4.1. File、SOAPバインディングとXSLT、Sequencing エンジンの利用

4.1.1. 概要

入力ディレクトリからXMLファイルを取得し、XSLTで変換します。
変換したXMLを用いて外部Webサービスを呼び出し、応答を出力ディレクトリに保存します。


図4.1.1-1



  1. File BC(Inbound)が入力ディレクトリからファイルを取得します。
  2. File BCがSequencing SEに取得したファイルを転送します。
  3. Sequencing SEはXSLT SEにメッセージを転送します。
  4. XSLT SEはメッセージを変換してSequencing SEに返信します。
  5. Sequencing SEは、XSLT SEから返信されたメッセージをSOAP BC(Outbound)に転送します。
  6. SOAP BCはメッセージを外部のWebサービスに転送します。
  7. 外部のWebサービスは処理を行い、SOAP BCに返信します。
  8. SOAP BCはSequencing SEに返信します。
  9. Sequencing SEはFile BCに返信します。
  10. File BCは応答を出力ディレクトリにファイル出力します。

4.1.2. 構成

ファイル名 説明
01_File_XSLT_SOAP.zip クライアントからファイルを受け取り処理するサービスアセンブリです。
01_SoapService.war ESBからデータを受け取るWebサービスです。
01_TestData.xml クライアントが送信するテストデータです。
proj_01_File_XSLT_SOAP.zip サービスアセンブリのプロジェクトファイルです。
proj_01_SoapService.zip Webサービスのプロジェクトファイルです。

4.1.3. 実行手順

実行環境の構築を行い、サンプルを実行します。実行後には環境のクリアを行います。

環境構築
実行環境の構築を行います。

起動状況確認
otxadminでドメインとコンポーネントの起動状況を確認します。
  1. コマンドプロンプトからotxadminを起動します。
    C:\>otxadmin
  2. list-domainsコマンドを実行しドメインの起動状況を確認します。
    otxadmin> list-domains
    domain1 running
    WebOTXAdmin running
    domain1がrunningとなっていればドメインは起動しています。
    もしdomain1がnot runningの場合は、start-domainコマンドでdomain1を起動します。
    otxadmin> start-domain domain1
  3. ドメインの起動を確認できたら、loginコマンドでログインを行います。
    otxadmin> login --user <ユーザ名> --password <パスワード>
    domain1を6212ポート以外で運用している場合は、portオプションでポート番号を指定してください。
  4. list-jbi-binding-componentsコマンドで各コンポーネントの起動状況を確認します。
    otxadmin> list-jbi-binding-components
    
    ================================
    List of Binding Components
    ================================
    Name : CORBABinding
    State: Started
    --------------------------------
    Name : FTPBinding
    State: Started
    --------------------------------
    Name : FileBinding
    State: Started
    --------------------------------
    (中略)
    --------------------------------
    Name : SOAPBinding
    State: Started
    --------------------------------
    FileBindingとSOAPBindingがstartedになっていることを確認します。
    もしStoppedになっている場合は、start-jbi-componentコマンドで起動します。
    otxadmin> start-jbi-component FileBinding
  5. list-jbi-service-enginesコマンドで各サービスエンジンの起動状況を確認します。
    otxadmin> list-jbi-service-engines
    
    ================================
    List of Service Engines
    ================================
    Name : CBREngine
    State: Started
    --------------------------------
    Name : SequencingEngine
    State: Started
    --------------------------------
    Name : UserProcessorEngine
    State: Started
    --------------------------------
    Name : XSLTEngine
    State: Started
    --------------------------------
    
    SequencingEngineとXSLTEngineがstartedになっていることを確認します。
    もしStoppedになっている場合は、start-jbi-componentコマンドで起動します。
    otxadmin> start-jbi-component SequencingEngine

配備
サービスアセンブリと外部Webサービスの配備を行います。配備には環境に応じて以下の3種類の方法があります。
  1. WebOTX Developer's Studioが利用できる場合
  2. WebOTX Developer's Studioがなく、統合運用管理ツールが利用できる場合
  3. WebOTX Developer's Studio、統合運用管理ツールいずれも利用できない場合
(1)Developer's Studioによる配備
  1. Developer's Studioを起動します。
  2. ヘルプメニューからヘルプ目次をクリックします。
  3. 目次から、WebOTX Guide(Enterprise Service Bus) > サンプル集を開きます。
    表からproj_01_File_XSLT_SOAPproj_01_SoapServiceをそれぞれクリックすることで、プロジェクトをインポートします。
  4. UNIX環境で実行する場合は、File BCの設定を変更する必要があります。
    パッケージ・エクスプローラからFileSUをダブルクリックしてSUエディタを開き、エンドポイントを選択します。
    入力ファイル格納ディレクトリ、出力ファイル格納ディレクトリ、処理ディレクトリを適切に修正してください。


    図4.1.3-1

  5. パッケージエクスプローラからプロジェクトを右クリックし、実行 > サーバーで実行 を選択します。
  6. 配備先のサーバーを選択し、配備を行います。Developer's Studioによる配備を行うと、配備した物件の起動も同時に行われます。
  7. 同様にしてインポートした全てのプロジェクトを配備します。
次へ

(2)統合運用管理ツールによる配備
  1. 01_SoapService.war01_File_XSLT_SOAP.zipを適当なディレクトリに保存します。
  2. 統合運用管理ツールを起動します。
  3. domain1を右クリックし接続を選択します。ユーザ名、パスワードを入力し接続ボタンをクリックします。
  4. domain1配下のアプリケーションを右クリックしコンポーネントの配備を選択します。
  5. コンポーネントタイプをWebコンポーネントに変更し、参照ボタンから01_SoapService.warを選択します。
    配備ボタンをクリックすると配備が実行されます。
  6. domain1配下のアプリケーションサーバ > ESB > サービスアセンブリを右クリックしサービスアセンブリの配備を選択します。
  7. 参照ボタンから01_File_XSLT_SOAP.zipを選択します。
    WebOTX AS Standard/Enterpriseのアドバンスドモードの場合は、アプリケーショングループとプロセスグループを指定します。
    配備ボタンを押すと配備が実行されます。
    ただしUNIX環境で実行する場合は配備ボタンでなく次へボタンを押します。
    FileSUエンドポイントを選択し、各ディレクトリパスを修正してください。


    図4.1.3-2


次へ

(3)otxadminによる配備
  1. 01_SoapService.war01_File_XSLT_SOAP.zipを適当なディレクトリに保存します。
  2. otxadminを起動し、ログインします。
  3. deployコマンドで01_SoapService.warを配備します。
    WebOTX AS Express、もしくはWebOTX AS Standard/Enterpriseのスタンダードモードの場合は以下を実行します。
    otxadmin> deploy <01_SoapService.warへのパス>
    WebOTX AS Standard/Enterpriseのアドバンスドモードの場合は、
    アプリケーショングループとプロセスグループを指定する必要があるため以下を実行します。
    otxadmin> deploy --apgroup <アプリケーショングループ名> --pgroup <プロセスグループ名> <01_SoapService.warへのパス>
  4. 同様にdeploy-jbi-service-assemblyコマンドで01_File_XSLT_SOAP.zipの配備を行います。
    WebOTX AS Express、もしくはWebOTX AS Standard/Enterpriseのスタンダードモードの場合は以下を実行します。
    otxadmin> deploy-jbi-service-assembly <01_File_XSLT_SOAP.zipへのパス>
    WebOTX AS Standard/Enterpriseのアドバンスドモードの場合は以下を実行します。
    otxadmin> deploy-jbi-service-assembly --apgroup <アプリケーショングループ名> --pgroup <プロセスグループ名> <01_File_XSLT_SOAP.zipへのパス>
    ただしUNIX環境で実行する場合はmodifyオプションをtrueにし、FileSUの各ディレクトリパスを修正してください。
サービスアセンブリの起動
統合運用管理ツールもしくはotxadminから、配備したサービスアセンブリを起動します。
なお、サービスアセンブリをDeveloper's Studioから配備した場合は起動処理は不要です。

(1)統合運用管理ツールによる起動
  1. アプリケーションサーバ > ESB > サービスアセンブリ > 01_File_XSLT_SOAPを右クリックし起動を選択します。
(2)otxadminによる起動
  1. start-jbi-service-assemblyコマンドを実行します。
    otxadmin> start-jbi-service-assembly 01_File_XSLT_SOAP
01_File_XSLT_SOAPが起動されると、C:\esb_samples\01_File_Consumerディレクトリが作成されます。

実行
入力ディレクトリにファイルを投入し、応答の出力ファイルを確認します。
  1. 01_TestData.xmlC:\esb_samples\01_File_Consumer\inにコピーします。
  2. C:\esb_samples\01_File_Consumer\outout***.xmlが生成されていることを確認します。内容は下記の通りです。
    <outputxml xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <record>
    <EmployeeId>135178</EmployeeId>
    <FirstName>Carolyn</FirstName>
    <MiddleName>G</MiddleName>
    <LastName>Sha</LastName>
    <NumberOfHoursWorked>172</NumberOfHoursWorked>
    <CurrentAddress>1405 , Park Street, Freemont , CA</CurrentAddress>
    <ContactNumber>1 408 404 8439</ContactNumber>
    </record>

メッセージログの確認
メッセージログを確認し、送信されたメッセージを確認します。
メッセージログ機能については2.16. メッセージログ機能の利用を参照してください。

環境クリア
配備したWebサービスとサービスアセンブリを配備解除し、
入出力に使用したディレクトリの削除を行います。
配備解除には環境に応じて以下の3種類の方法があります。

(1)Developer's Studioによる配備解除
  1. ウィンドウ > ビューの表示 > サーバー を選択します。
  2. 表示されたサーバーのビューから配備したアプリケーションを右クリックし、除去を選択します。
  3. 同様に配備したサービスアセンブリを右クリックし、除去を選択します。
(2)統合運用管理ツールによる配備解除
  1. アプリケーション > Webモジュール > 01_SoapServiceを右クリックし、配備解除を選択します。
  2. アプリケーションサーバ > ESB > サービスアセンブリ > 01_File_XSLT_SOAPを右クリックし、シャットダウンを選択します。
  3. シャットダウン完了後、再び01_File_XSLT_SOAPを右クリックし配備解除を選択します。
(3)otxadminによる配備解除
  1. undeployコマンドで01_SoapServiceを配備解除します。
    otxadmin> undeploy 01_SoapService
  2. shut-down-jbi-service-assemblyコマンドで01_File_XSLT_SOAPをシャットダウンします。
    otxadmin> shut-down-jbi-service-assembly 01_File_XSLT_SOAP
  3. undeploy-jbi-service-assemblyコマンドで01_File_XSLT_SOAPを配備解除します。
    otxadmin> undeploy-jbi-service-assembly 01_File_XSLT_SOAP
入出力ディレクトリの削除
C:\esb_samples\01_File_Consumerディレクトリを削除します。

4.1.4. 注意事項

特になし。