次の注文書の例は、複合アプリケーションで HTTP バインディングコンポーネントを使用する基本的なシナリオを示しています。このシナリオ例では、単一の HTTP バインディングコンポーネントがサービスプロバイダかつサービスコンシューマとして機能します。
医薬品会社が、事前承認済みの顧客だけに一連の製品を掲載した Web サイトを提供しています。このような顧客の 1 つである病院が Web サイトにログオンし、1000 枚の外科手術用マスクと 2000 組のゴム手袋を注文します。注文書は医薬品会社のサーバーによって受信されて保存され、注文が受信されたことを確認する応答が病院に返送されます。
このシナリオの注文書処理システムは、Sun Java Application Server と JBI フレームワークを使用して実装された Web サービスで表されます。
このシナリオの主体は次のとおりです。
Web クライアント
注文書を SOAP 要求としてパッケージ化し、サーバーに送信します。
HTTP バインディングコンポーネント
HTTP メッセージと SOAP メッセージを送受信します。
BPEL サービスエンジン
注文書に対応するためのコアビジネスロジックを実装します。
正規化メッセージルーター (NMR)
JBI コンポーネント間で正規化メッセージをルーティングします。このシナリオでは、HTTP BC と BPEL SE の間で送受信される正規化メッセージをルーティングします。
シナリオでのメッセージフロー
注文書シナリオでのメッセージフローのステップは、図 1 の番号に従っています。
Web クライアントは、JavaScript などのクライアント側スクリプト言語を使用して、Web フォームに入力された注文書の情報を取得し、SOAP メッセージにパッケージ化します。SOAP メッセージの形式は WSDL を使用して定義されます。
SOAP メッセージは、HTTP バインディングコンポーネントによってホストされている Web サービスエンドポイントに送信されます。
HTTP バインディングコンポーネントは SOAP メッセージを正規化メッセージに変換します。正規化メッセージは正規化メッセージルーターに送信されます。
正規化メッセージルーターは正規化メッセージを BPEL SE にルーティングします。
BPEL SE は注文書の情報を解釈し、要求に対応するためにほかの BPEL プロセスを適切に呼び出します。
BPEL SE は正規化メッセージの形式で応答メッセージを作成します。正規化メッセージは正規化メッセージルーターに送信されます。
HTTP BC は応答メッセージを受信し、SOAP メッセージに変換します。SOAP メッセージは、WSDL で定義されている適切な応答として Web クライアントに返送されます。
Web クライアントは応答を受け取り、人間が判読できる HTML ページを作成して、注文書が受け付けられたか拒否されたかをユーザーが理解できるようにします。