Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 解説


2.14.2 HTTP受付を使用したオンラインシステムの例

ここでは,テキストデータ,ファイル,およびバイナリデータを扱うシステムを例にHTTP受付の利用方法を紹介します。

〈この項の構成〉

(1) テキストデータを送受信するシステムの場合

タブレット端末のWebブラウザからオンラインで商品を購入するシステムを例に説明します。

この例で使用するWebブラウザは,ユーザ情報を認証するための[ログイン画面],購入する商品などの情報を入力するための[入力画面],および購入結果を表示する[結果画面]で構成されています。ユーザが商品を購入する場合,次の流れでWebブラウザからリクエストを送信します。

  1. GETメソッドのリクエストを送信して商品のリストを取得します。

  2. POSTメソッドのリクエストを送信してリストから選択した商品を送信し,購入処理を呼び出します。

それぞれのリクエストの処理とHTTP受付の関係を説明します。

(a) GETメソッドのリクエストを送信する例

このリクエストの例では,Webブラウザで入力した情報がGETメソッドのリクエストとしてサービスプラットフォームに送信されたあと,対応するHTTPレスポンスのデータを基に生成された画面がWebブラウザ上に表示される処理が実行されます。

GETメソッドのリクエストを送信する流れを次に示します。なお,次の番号は図中の番号と対応しています。

  1. Webブラウザの[ログイン画面]でユーザが入力した情報がWebサーバに送信されます。

  2. WebサーバからHTTP受付にHTTPリクエストが渡されます。

  3. HTTP受付でHTTPヘッダとHTTPボディが,それぞれ要求電文(ヘッダ)と要求電文(ボディ)に変換されます。変換されたデータはサービスプラットフォーム内のビジネスプロセスに渡され,ビジネスプロセスから商品データベースなど,さまざまなサービスを呼び出します。そのあと,応答電文はHTTP受付でHTTPレスポンスの形式に変換されます。

  4. HTTPレスポンスのHTTPボディにはXML形式の応答電文が設定されます。

  5. 応答電文の内容を基にHTMLを作成(JavaScriptなどを利用,またはフロントエンドサーバを経由)し,クライアント側で表示されます。この例では,取得したデータが[入力画面]の選択リストに追加されています。

    図2‒118 HTTP受付を利用したシステムの例(GETメソッドのリクエストを送信した場合)

    [図データ]

(b) POSTメソッドのリクエストを送信する例

このリクエストの例では,Webブラウザで入力した情報がPOSTメソッドのリクエストとしてサービスプラットフォームに送信されたあと,対応するHTTPレスポンスのデータを基に生成された画面がWebブラウザ上に表示される処理が実行されます。

POSTメソッドのリクエストを送信する流れを次に示します。なお,次の番号は図中の番号と対応しています。

  1. Webブラウザの[入力画面]でユーザが入力したデータがWebサーバに送信されます。

  2. WebサーバからHTTP受付にHTTPリクエストが渡されます。

  3. GETメソッドのリクエストを送信する場合と同様に,HTTP受付でHTTPヘッダとHTTPボディが,それぞれ要求電文(ヘッダ)と要求電文(ボディ)に変換され,ビジネスプロセスを通じてさまざまなサービスを呼び出します。そのあと,応答電文はHTTP受付でHTTPレスポンスの形式に変換されます。

  4. HTTPレスポンスのHTTPボディにはXML形式の応答電文が設定されます。

  5. 応答電文の内容を基にHTMLを作成(JavaScriptなどを利用,またはフロントエンドサーバを経由)し,クライアント側で表示されます。この例では,商品購入の処理が完了したことを示す[結果画面]が表示されます。

    図2‒119 HTTP受付を利用したシステムの例(POSTメソッドのリクエストを送信した場合)

    [図データ]

(2) ファイルを送受信するシステムの場合

HTTP受付のファイル転送機能を利用して,HTTPクライアント,サービスプラットフォーム,サーバ間でデータを送受信するシステムを例に説明します。

(a) HTTPクライアントからサーバにファイルを送信する例

このリクエストでは,HTTPクライアントからPOSTメソッドでアップロードしたファイルを,ビジネスプロセスを介して呼び出したHTTPアダプタから宛先のサーバに送信する処理を実行しています。

HTTPクライアントからサーバにファイルを送信する流れを次に示します。なお,次の番号は図中の番号と対応しています。

  1. HTTPクライアントのプログラムからPOSTメソッドでHTTPリクエストを送信します。

  2. HTTP受付は受信したHTTPリクエストを解析し,ファイルを処理するための作業フォルダを作成します。アップロードされたファイルは中間ファイルとして作業フォルダに生成されます。

  3. ビジネスプロセス内のデータ変換アクティビティで,HTTPアダプタの要求電文に宛先サーバと送信データ(HTTP受付が作業フォルダに保存した中間ファイル)の情報を指定します。

  4. ビジネスプロセスから呼び出されたHTTPアダプタが宛先のサーバに作業フォルダ内のファイルを送信します。

    図2‒120 HTTP受付を利用したシステムの例(HTTPクライアントからサーバにファイルを送信する場合)

    [図データ]

HTTPアダプタの機能については,「2.15 HTTP通信を使用したサービスとの接続」を参照してください。

(b) HTTPクライアントから送信したファイルを変換する例

このリクエストでは,HTTPクライアントからPOSTメソッドでアップロードしたファイルを,ビジネスプロセスを介して呼び出したファイル操作アダプタで変換してから,HTTPクライアントにダウンロードする処理を実行しています。

HTTP受付を利用したファイル送信の流れを次に示します。なお,次の番号は図中の番号と対応しています。

  1. HTTPクライアントのプログラムからPOSTメソッドでHTTPリクエストを送信します。

  2. HTTP受付は受信したHTTPリクエストを解析し,ファイルを処理するための作業フォルダを作成します。アップロードされたファイルは中間ファイルAとして作業フォルダに生成されます。

  3. ビジネスプロセスから呼び出されたファイル操作アダプタが作業フォルダ内の中間ファイルAを中間ファイルBに変換します。

  4. HTTP受付は,HTTPクライアントに変換後の中間ファイルBをダウンロードします。

    図2‒121 HTTP受付を利用したシステムの例(HTTPクライアントから送信したファイルを変換する場合)

    [図データ]

(3) バイナリデータを送受信するシステムの場合

このリクエストでは,バイナリデータをビジネスプロセスで処理する例として,CSV形式のファイルを変換したバイナリデータをHTTPクライアントからビジネスプロセスに送信する処理を実行しています。

HTTPクライアントからビジネスプロセスにバイナリデータを送信する流れを次に示します。なお,次の番号は図中の番号と対応しています。

  1. HTTPクライアントのプログラムでCSV形式のファイルをバイナリデータに変換し,HTTPリクエストボディに設定します。

  2. HTTPクライアントのプログラムから,POSTメソッドでHTTPリクエストを送信します。

  3. HTTP受付は受信したHTTPリクエストを解析し,ビジネスプロセスを呼び出します。

  4. ビジネスプロセス内のデータ変換アクティビティで,要求電文に設定されたバイナリデータをXMLデータ(XML電文)に変換します。

  5. サービス呼出アクティビティを使用してXMLデータ(XML電文)を各サービスに送信します。

  6. HTTP受付がHTTPレスポンスをHTTPクライアントに返します。

    図2‒122 HTTP受付を利用したシステムの例(HTTPクライアントからビジネスプロセスにバイナリデータを送信する場合)

    [図データ]