Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 受付・アダプタ定義編


付録F.1 HTTP受付の設定例(標準モードの場合)

ビジネスプロセスを標準モードで実行する場合の設定例について説明します。

〈この項の構成〉

(1) 設定例の概要

この設定例で使用する構成と処理の流れについて説明します。

設定例の構成を次の図に示します。

図F‒1 設定例の構成(標準モードの場合)

[図データ]

この設定例では,HCSCサーバ環境を構築したマシンと同一マシン上のWebブラウザを使用します。また,J2EEサーバ内のWebサーバを使用します。なお,HTTP受付は標準モードを使用します。

設定例の処理の流れを次に示します。

  1. WebブラウザからGETメソッドでHTTP受付を呼び出します。

    このとき,HTTPリクエストのクエリ文字列に時速と時間を設定します。

  2. ビジネスプロセス内のデータ変換定義で距離を計算して,応答電文(ボディ)にセットします。

  3. HTTPレスポンスヘッダ定義ファイルに指定されたヘッダを設定して,Webブラウザに応答を返します。

なお,この設定例ではヘッダ割当変数を使用しません。以降で設定手順について説明します。

(2) HTTP受付の電文フォーマットの作成

HTTP受付で使用する電文フォーマットを作成します。電文フォーマットのテンプレートは次のフォルダに格納されています。

フォルダごと任意の場所にコピーしてから編集してください。電文フォーマットを作成する場合,コピー先のファイルを使用します。

(a) 要求電文(ボディ)フォーマットの作成

受付時のHTTP受付のボディ割当変数に設定する電文フォーマットを作成します。電文フォーマットはテンプレートを編集して作成します。

編集するファイルは「urecp_http_body_detail_request.xsd」です。

注 urecp_http_body_request.xsdは編集しないでください。

この設定例では,次のように時速を表す要素と時間を表す要素(斜体の個所)を追加します。

  • urecp_http_body_detail_request.xsd

    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema elementFormDefault="qualified"
      targetNamespace="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/http/request"
      xmlns:hrc="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/http/request"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <xsd:complexType name="http-body-requestType">
          <xsd:sequence>
            <!-- User Customize -->
            <xsd:element name="kilometers_per_hour" type=" xsd:positiveInteger "/>
            <xsd:element name="hours" type=" xsd:positiveInteger "/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:schema>

なお,この例ではHTTP受付ヘッダ割当変数は使用しません。

(b) 応答電文(ボディ)フォーマットの作成

応答時のHTTP受付のボディ割当変数に設定する電文フォーマットを作成します。

距離を返す処理を記述した次の電文フォーマットを作成し,コピーしたフォルダ内に保存してください。ファイル名は「urecp_http_body_response.xsd」です。なお,応答電文(ボディ)フォーマットのテンプレートファイルはありません。

  • urecp_http_body_response.xsd

    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <xsd:element name="HTTPResponseBody ">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="distance" type=" xsd:positiveInteger "/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>

(3) HTTP受付の追加

呼び出しサービス選択機能を使用しないで,HTTP受付を追加する手順を次に示します。

  1. ツリービューのサービス定義一覧で右クリックして[ビジネスプロセス追加]を選択します。

    ビジネスプロセスが追加されます。ビジネスプロセスの内容はここでは定義しません。

  2. ツリービューのサービス定義一覧で,追加したビジネスプロセスを選択して右クリックし,[ユーザ定義受付(呼出先固定)追加]を選択します。

    受付種別選択ウィザードが表示されます。

  3. 受付種別で[HTTP受付]を選択して[次へ]ボタンをクリックします。

  4. [受付名]に任意の名前を設定します。

  5. [終了]ボタンをクリックします。

    HTTP受付がビジネスプロセスに追加され,ユーザ定義受付定義画面が表示されます。

(4) HTTP受付の定義

ユーザ定義受付定義画面で設定する内容を次に示します。なお,ユーザ定義受付定義画面の詳細は,マニュアル「サービスプラットフォーム リファレンス」の「1.2.5 ユーザ定義受付定義画面」を参照してください。

(a) ユーザ定義受付定義画面(基本)の設定

設定する内容を次に示します。

表F‒1 ユーザ定義受付定義画面(基本)の設定内容

分類

項目

設定値

ユーザ定義受付情報

受付名

HTTPReception

受付ID

rcp1

受付種別

HTTP受付

デフォルトオペレーション名

calculateDistance

オペレーション

calculateDistance

オペレーション情報

オペレーション名

calculateDistance

通信モデル

同期

要求電文(ボディ)

any型を使う(チェックボックス)

使わない(チェックしない)

受付

電文フォーマット

urecp_http_body_request.xsd

サービス部品

使う(チェックボックス)

使わない(チェックしない)

電文フォーマット

データ変換定義

応答電文(ボディ)

any型を使う(チェックボックス)

使わない(チェックしない)

受付

電文フォーマット

urecp_http_body_response.xsd(「(2) HTTP受付の電文フォーマットの作成」で作成したファイル)

サービス部品

使う(チェックボックス)

使わない(チェックしない)

電文フォーマット

データ変換定義

(凡例)

−:設定しません。

(b) HTTPレスポンスヘッダ定義ファイルの編集

HTTPレスポンスヘッダ定義ファイルの編集手順を次に示します。なお,この設定例ではビジネスプロセス中でヘッダ割当変数を使用しないため,プロパティの説明は省略します。

  1. ユーザ定義受付定義画面(詳細)の[独自定義ファイル]で「cscurecphttp_header.properties」を選択し,[編集]ボタンをクリックします。

    独自定義ファイルを編集するためのエディタが起動します。

  2. HTTPレスポンスヘッダ定義ファイルの内容を次のように修正します。

    Connection=close
    extension-header=extension-header1

    注 「extension-header」は,任意に指定できる拡張ヘッダを想定して設定しています。

  3. Eclipseのメニューから[ファイル]−[保存]を選択します。

    HTTPレスポンスヘッダ定義ファイルが保存されます。

(c) HTTP受付定義ファイルの編集

HTTP受付定義ファイルの編集手順を次に示します。

  1. ユーザ定義受付定義画面(詳細)の[独自定義ファイル]で「cscurecphttp.properties」を選択し,[編集]ボタンをクリックします。

    独自定義ファイルを編集するためのエディタが起動します。

  2. HTTP受付定義ファイルの内容を次のように修正します。

    #urecp-http.context-root=
    #urecp-http.max-threads=10
    #urecp-http.exclusive-threads=0
    #urecp-http.queue-size=8192
    #urecp-http.pooled-instance.minimum=0
    #urecp-http.pooled-instance.maximum=0
    #urecp-http.ejb-transaction-timeout=0
    #httprecp.switchover.pass-through.mode=false
    httprecp.http.charset=UTF-8
    httprecp.response.header.filename=cscurecphttp_header.properties
    #httprecp.system-exception.status-code=500
    #httprecp.response.generate.content-length=true

    この例ではコンテキストルート(urecp-http.context-root)を省略しているため, HTTP受付の受付IDがデフォルト値として使用されます。

  3. Eclipseのメニューから[ファイル]−[保存]を選択します。

    HTTP受付定義ファイルが保存されます。

(5) ビジネスプロセスの定義

ビジネスプロセスの定義手順を次に示します。

(a) ビジネスプロセスの作成

この例では,HTTP受付に渡された要求電文を,データ変換アクティビティを使用してデータ変換し,応答電文を生成するビジネスプロセスを作成します。

次の図に示すようにアクティビティを配置・連結してください。

図F‒2 ビジネスプロセスの作成例

[図データ]

アクティビティを配置・連結する方法については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「5.4 アクティビティの配置と連結」を参照してください。

(b) 変数の定義

ビジネスプロセスで使用する変数を定義します。

定義する変数を次に示します。

変数名

説明

request_body

HTTP受付の要求電文(ボディ)の変数

response_body

HTTP受付の応答電文(ボディ)の変数

なお,この設定例では相関セットを使用しません。

変数の定義は[電文フォーマットの取込]ダイアログで実施します。それぞれの変数の定義手順を次に示します。

  1. ビジネスプロセス定義画面のキャンバス上の[変数・相関セット]アイコンをダブルクリックします。

    [変数・相関セット一覧]ダイアログが表示されます。

    [図データ]

  2. [変数名]に「request_body」または「response_body」を入力します。

  3. [種別]ドロップダウンリストから「XML」を選択します。

  4. [電文フォーマット]の[取込]ボタンをクリックします。

    [電文フォーマットの取込]ダイアログが表示されます。

  5. 次に示すとおりに各変数を設定します。

    [図データ]

    • request_body

      分類

      項目

      設定値

      サービス/受付

      サービス名

      受付名

      HTTPReception

      取込対象

      オペレーション名

      calculateDistance

      電文種別

      要求電文(ボディ)

      フォルト名

      電文フォーマット

      request_body

    • response_body

      分類

      項目

      設定値

      サービス/受付

      サービス名

      受付名

      HTTPReception

      取込対象

      オペレーション名

      calculateDistance

      電文種別

      応答電文(ボディ)

      フォルト名

      電文フォーマット

      response_body

      (凡例)

      −:設定しません。または,該当する分類はありません。

  6. [OK]ボタンをクリックし,[変数・相関セット一覧]ダイアログで[追加]ボタンをクリックします。

    定義した変数が追加されます。

(c) データ変換の定義

データ変換では,数値演算ファンクション「calc1」で要求電文に格納された2つのパラメタの積を求め,その値を応答電文にマッピングします。

データ変換の定義手順を次に示します。

  1. ビジネスプロセス定義画面上のデータ変換アクティビティをダブルクリックします。

    [データ変換アクティビティ]ダイアログが表示されます。

  2. [変換元変数]に「request_body」を指定します。

  3. [変換先変数]に「response_body」を指定します。

  4. [データ変換定義]に任意の名称を指定します。

    [図データ]

  5. [OK]ボタンをクリックします。

  6. データ変換アクティビティをダブルクリックします。

    [ルート要素選択]ダイアログが表示されます。

  7. [OK]ボタンをクリックします。

    データ変換定義画面が表示されます。

  8. パレットから数値演算ファンクション(calc)を選択して,マッピングビューアに配置します。

  9. マッピング線を図のように設定します。

    [図データ]

  10. 数値演算ファンクションをダブルクリックします。

    [数値演算]ダイアログが表示されます。

  11. [演算]で実行したい演算(この例では「*」)を選択します。

    [図データ]

  12. [OK]ボタンをクリックします。

    データ変換の定義が完了しました。

(d) 受付アクティビティ・応答アクティビティの設定

アクティビティの設定手順を次に示します。

●受付アクティビティの設定例
  1. ビジネスプロセス定義画面上の受付アクティビティをダブルクリックします。

    [受付アクティビティ]ダイアログが表示されます。

  2. 次のように設定します。

    [図データ]

    項目

    設定値

    アクティビティ名

    受付

    オペレーション名

    calculateDistance

    ボディ割当変数

    request_body

    ヘッダ割当変数

    割当相関セット群

    通信モデル

    同期

    インスタンス生成

    Yes

    (凡例)

    −:設定しません。

  3. [OK]ボタンをクリックします。

●応答アクティビティの設定例
  1. ビジネスプロセス定義画面上の応答アクティビティをダブルクリックします。

    [応答アクティビティ]ダイアログが表示されます。

  2. 次のように設定します。

    [図データ]

    項目

    設定値

    アクティビティ名

    応答

    オペレーション名

    calculateDistance

    ボディ割当変数

    response_body

    ヘッダ割当変数

    割当相関セット群

    フォルト名

    (凡例)

    −:設定しません。

  3. [OK]ボタンをクリックします。

(6) HTTP受付の呼び出し

作成したビジネスプロセスを実行するための手順を示します。

(a) 準備手順

  1. Eclipseのメニューから,[ファイル]−[すべて保管]を選択し,定義したHCSCコンポーネントを保管します。

  2. Windowsの[スタート]メニューから,[Cosminexus]−[テストサーバ起動]を選択します。

  3. ツリービューのサービス定義一覧で右クリックして,[複数サービスをサーバに配備して開始]を選択します。

  4. サービス選択ページで配備および開始するサービスを選択します。

  5. [Finish]ボタンをクリックします。

    処理中であることを知らせるメッセージが表示されたあと,結果を知らせるメッセージが表示されます。

  6. [OK]ボタンをクリックします。

    ビジネスプロセスとHTTP受付を含むリポジトリが実行環境に配備されます。

(b) HTTP受付の呼び出し

Webブラウザを起動してアドレス指定部分に次のURLを指定してアクセスします。必要に応じてクエリストリングの指定値は変更してください。

http://localhost/rcp1/calculateDistance?kilometers_per_hour=80&hours=25

実行結果が次のようにWebブラウザに表示されます。

[図データ]