Global Companyは、Webなど、多数のチャネルを介して電子機器を販売しています。 顧客はWebサイトにアクセスし、登録して、製品を注文できます。 顧客を登録し、注文を履行するために、Global Companyの内外にあるいくつかのアプリケーションが次のように協調して動作します。
新規顧客がWebクライアントで登録すると、WebサービスによってCRMアプリケーションが起動され、このアプリケーションによって顧客情報がデータベースに格納されます。
登録済の顧客がWebクライアントにログインしようとすると、Webクライアントでは再度Webサービスを使用してCRMアプリケーションが起動され、このアプリケーションによって認証が提供されます。
顧客が注文を発行すると、次の処理が実行されます。
Oracle ESB内のフローは、注文情報が含まれたメッセージを受信するとBPELプロセス・フロー用に変換します。次に、そのプロセスを起動して、変換した注文情報をプロセスに提供します。
BPELフローによって、次の処理が実行されます。
注文の状態が「pending」に設定され、注文情報がデータベースに挿入されます。
CRMアプリケーションから情報を取得するWebサービスの同期コールを発行することによって、顧客情報が取得されます。
取得されたクレジット・カード情報が、外部の与信検証サービスの同期コールを介して検証されます。 クレジット・カードが有効でない場合は、プロセスによって注文が取り消されます。 カードが承認された場合、フローは続行されます。
デシジョン・サービスを使用して、注文に対して手動による承認が必要かどうかが判断されます。 デシジョン・サービスでは、次の内容が記述されたルールが使用されます。顧客のステータスが「platinum」の場合、注文に対する承認は必要ありません。 顧客のステータスが「gold」の場合は、$1,000以上の注文に対してのみ承認が必要です。顧客のステータスが「silver」の場合は、すべての注文に対して承認が必要です。
注文に対して手動による承認が必要な場合は、ヒューマン・ワークフローによって、注文を承認する権限のあるGlobal Companyの従業員にメッセージがルーティングされます。 この従業員は、Oracle BPELワークリスト・アプリケーションのWebベースのアプリケーションを使用して、注文を表示し、その注文を承認または拒否します。 その後、メッセージはBPELフローに返されます。 注文が承認されない場合は、プロセスによって注文が取り消されます。 注文が承認された場合、フローは続行されます。
注文が承認されるか、または手動による承認が不要な注文の場合は、注文情報がRapid ManufacturerとSelect Manufacturerの2つのサプライヤに送信されます。 各サプライヤが価格を(一方は同期、もう一方は非同期で)戻します。 次に、フローでは、低い価格を戻したサプライヤを判別する条件式が使用され、注文がそのサプライヤに割り当てられます。
その後、フローでは、Oracle ESBルーティング・ルールを使用して、注文を出荷するベンダーが決定されます。 注文が$500以上の場合、その注文情報はFederal Expressに送信されます。 注文が$500未満の場合、情報はUnited States Postal Serviceに送信されます。
注文が「complete」に設定され、通知サービスが起動されて、電子メールが顧客に送信されます。
図2-6に、SOA Order Bookingアプリケーションを構成する様々なコンポーネントおよびアプリケーションを介した情報のフローを示します。
実行時の各アプリケーションの動作方法の詳細説明は、第2.5項「SOA Order Bookingアプリケーションの詳細説明」を参照してください。