この章では、SOA Order Bookingアプリケーションの各コンポーネント、およびこのアプリケーションを作成して実行するための要件について説明します。
項目は次のとおりです。
SOA Order Bookingアプリケーションは、Global Companyという架空の会社で実行され、顧客の注文を処理します。 このアプリケーションでは、見積りを取得するために、各注文がSelect ManufacturerとRapid Serviceという2つのサプライヤにルーティングされます。 次に、低い見積り金額を提出したサプライヤが選択され、注文が履行されます。
顧客がSOA Order Bookingアプリケーションを起動できるよう、Global Companyでは、SOADemo-ClientアプリケーションというWebフロントエンド・アプリケーションを顧客に提供しています。 顧客は、SOADemo-Clientアプリケーションによって、製品を参照したり、注文することができます。 このWebフロントエンド・アプリケーションは、Application Development Framework(ADF)テクノロジを使用して作成されています。
顧客がSOADemo-Clientアプリケーションを使用して注文すると、クライアント・アプリケーションがSOA Order Bookingアプリケーションを起動します。 SOA Order Bookingアプリケーションは様々なプロジェクトで構成され、各プロジェクトは特定の機能を実行します。
SOA Order Bookingアプリケーションの起点は、OrderBookingESBプロジェクトです。 このプロジェクトは、Business Process Execution Language(BPEL)プロジェクトの1つであるSOAOrderBookingプロジェクトを起動します。BPELプロジェクトは、SOA Order Bookingアプリケーションに必要なすべてのサービスを組み込みます。
アプリケーション内のプロジェクトの詳細は、第1.6項「各プロジェクトで使用されるテクノロジおよび技法」を参照してください。
SOA Order Bookingアプリケーションには、次の2つのタイプのプロジェクトが含まれます。
サービスを提供するプロジェクト。 このタイプのプロジェクトには、CustomerService、CreditService、SelectManufacturerおよびRapidServiceが含まれます。 これらのプロジェクトが提供するサービスは、Webサービスとして実装されているため、様々なタイプのクライアントによって起動できます。 たとえば、CustomerServiceプロジェクトは、SOADemo-Clientアプリケーションによって起動されますが、SOAOrderBooking BPELプロジェクトによっても起動されます。
アプリケーション内の処理フローを定義するプロジェクト。 このタイプのプロジェクトでは、ESB(Enterprise Service Bus)またはBPELのテクノロジが使用されます。 このタイプのプロジェクトには、OrderBookingESB、FulfillmentESBおよびSOAOrderBookingが含まれ、これらのプロジェクトはサービスを提供するプロジェクトを起動します。 これらのプロジェクトは、他のBPELおよびESBプロジェクトも起動できます。 たとえば、OrderBookingESBプロジェクトはSOAOrderBookingプロジェクト(BPELプロジェクト)を起動し、SOAOrderBookingプロジェクトはFulfillmentESBプロジェクトを起動します。
表1-1で、SOA Order Bookingアプリケーション内のプロジェクトについて簡単に説明します。
表1-1 SOA Order Bookingアプリケーション内のプロジェクト
プロジェクト | 説明 |
---|---|
OrderBookingESB |
SOA Order Bookingアプリケーションの起点になります。 OrderBookingESBは、SOADemo-Clientアプリケーションによって起動され、他のすべてのプロジェクトを起動するSOAOrderBookingを起動します。 |
SOAOrderBooking |
アプリケーションのメイン・フローを定義します。 このプロジェクトは、すべてのWebサービスを起動し、その結果に基づいて適切な処理を実行します。 |
CustomerService |
データベース内の既存の顧客を参照したり、新規顧客を追加するためのWebサービスを提供します。 |
CreditService |
顧客のクレジット・カードが有効かどうかを確認するためのWebサービスを提供します。 |
SelectManufacturer |
注文に対する価格見積りを提示します。 2つのサプライヤの内の1つです。 |
RapidService |
注文に対する価格見積りを提示します。 2つのサプライヤの内の1つです。 |
FulfillmentESB |
注文の金額に基づいて注文の出荷方法を決定します。 |
このチュートリアルでは、SOA Order Bookingアプリケーションとそのプロジェクトに加えて、SOA Order Bookingアプリケーションに対するWebフロントエンドとなるSOADemo-Clientアプリケーションについても説明します。
この項では、プロジェクトの起動順序について説明します。
顧客がSOADemo-Clientアプリケーションを使用して注文すると、その処理によってOrderBookingESBプロジェクトが起動されます。
OrderBookingESBプロジェクトは、SOA Order Bookingアプリケーションのメイン・フローを定義するSOAOrderBookingプロジェクトを起動します。
SOAOrderBookingプロジェクトは、注文情報をデータベースに挿入します。
SOAOrderBookingプロジェクトは、データベースから顧客情報を取得します。 この処理は、CustomerServiceプロジェクトを起動して実行されます。
SOAOrderBookingプロジェクトは、顧客の与信を確認します。 この処理は、CreditServiceプロジェクトを起動して実行されます。
次に、SOAOrderBookingプロジェクトは、注文に対して手動による承認が必要かどうかを判断します。 この処理は、ルール・リポジトリに定義されているルールを使用して実行されます。 アプリケーションでは、ルールを使用して次のように判断します。
顧客のステータスが「platinum」の場合、注文は、その金額に関係なく自動的に承認されます。
「platinum」以外の顧客で、金額が$1000以上の場合、その注文は手動による承認が必要です。 金額が$1000未満の場合、その注文は自動的に承認されます。
手動による承認が必要な注文の場合、マネージャはワークリスト・アプリケーションにログインして、注文を承認(または却下)する必要があります。
SOAOrderBookingプロジェクトは、承認された注文について、サプライヤのSelectManufacturerとRapidServiceに見積りをリクエストします。
サプライヤからレスポンスを取得すると、SOAOrderBookingプロジェクトは、低い見積金額を提示したサプライヤを選択します。
SOAOrderBookingプロジェクトは、注文に対する出荷方法(USPSまたはFedex)を選択します。 この処理は、FulfillmentESBプロジェクトを起動して実行されます。
FulfillmentESBプロジェクトは、注文の金額を確認します。 金額が$500未満の場合は、USPSを出荷業者として選択します。 金額が$500以上の場合は、Fedexが出荷業者になります。
SOAOrderBookingプロジェクトは、注文ステータスをデータベースに設定します。
SOAOrderBookingプロジェクトは、電子メールを顧客に送信します。 この処理は、BPELで使用可能な電子メール・サービスを介して実行されます。
SOA Order BookingアプリケーションおよびSOADemo-Clientアプリケーションを作成して実行するには、次のソフトウェアが必要です。
表1-2 必要なソフトウェア
ソフトウェア | 説明 |
---|---|
Oracle JDeveloper |
Oracle JDeveloperは、アプリケーションの開発に使用する開発ツールです。 Oracle JDeveloperバージョン10.1.3.1.0が必要です。 |
Oracle Application Server |
Oracle Application Serverは、アプリケーションをデプロイおよび実行するランタイム・プラットフォームです。 Oracle Application Serverリリース3(10.1.3.1.0)が必要です。 |
Oracle Database |
Oracle Databaseは、顧客情報、注文情報、製品情報などのデータを格納するために使用します。 SOA Order Bookingアプリケーションを実行するには、データベースにSOADEMOというスキーマを作成し、そのスキーマにサンプル・データとともに表をインストールします。 SOA Order Bookingアプリケーション内のプロジェクトは、SOADEMOスキーマの表に対して読取りおよび書込みを行います。 Oracle Databaseリリース10g(10.2.x)が必要です。 WindowsバージョンのOracle Application Serverに同梱されているOracle Liteデータベースは使用できません。 |
SOADEMOスキーマは、次の各表で構成されています。
表1-3 SOADEMOスキーマ内の表
表 | 説明 |
---|---|
ADDRESS |
顧客のアドレスを格納します。 |
CUSTOMER |
顧客データを格納します。 |
CUSTOMER_ADDRESS |
顧客とアドレス間のマッピング表です。 1名の顧客が複数のアドレスを持つことができます。 |
ORDERS |
注文情報を格納します。 |
ITEMS |
注文の品目を格納します。 |
PRODUCT |
購入可能な品目を格納します。 |
FEDEXSHIPMENT |
Fedexで出荷される注文の注文情報を格納します。 |
SSN |
顧客IDと社会保障番号を格納します。 この表は、SOA Order Bookingアプリケーションに機能を追加する方法を説明するためにのみ使用します。 詳細は、『Oracle SOA Suiteクイック・スタート・ガイド』を参照してください。 |
EJB_TAB_ID_GEN |
Enterprise JavaBeansで内部的に使用されます。 |
SOADEMOスキーマ内のデータベース順序は次のとおりです。
表1-4 SOADEMOスキーマ内の順序
順序 | 説明 |
---|---|
ADDRESS_EJB_SEQ_ID_GEN |
アドレスIDを生成します。 |
EJB_SEQ_ID_GEN |
顧客IDを生成します。 |
ORDER_SEQ_ID_GEN |
注文IDを生成します。 |
多言語またはマルチバイト環境での実行
Oracle BPEL Process Managerを多言語環境で実行する場合、またはマルチバイト・サポートが必要な場合、データベース・キャラクタ・セット・エンコーディングはUnicodeにすることをお薦めします。 これは、データベース・キャラクタ・セット・エンコーディングがAL32UTF8であることを意味します。 キャラクタ・セット・エンコーディングがUnicodeでない場合は、データの損失や誤った解釈が発生する可能性があります。
チュートリアルの手順は、第2章「環境の設定」から始まります。ここでは、必要なソフトウェアをダウンロードしてインストールし、JDeveloperおよびOracle Application Serverで必要な接続を構成します。
第3章から第9章までは、SOA Order Bookingアプリケーション内のプロジェクトについて説明します。 各章で1つのプロジェクトについて説明します。 最初に、Webサービスを提供するプロジェクトを作成します。 それらのサービスを配置した後に、SOAOrderBookingプロジェクトを作成できます。このプロジェクトは、アプリケーションのメイン・フローを定義するため、ほとんどすべてのWebサービスを起動します。
第10章「クライアント・アプリケーションとSOA Order Bookingアプリケーションとのインタフェース」では、SOADemo-ClientアプリケーションがSOA Order Bookingアプリケーション内のサービスを起動する方法について説明します。
SOA Order Bookingアプリケーションは、BPEL、ESBなどのSOA Suiteテクノロジと統合されており、それらのテクノロジを使用して定義済のフロー順序内のWebサービスを起動します。 各Webサービスは相互に独立しており、異なる方法で生成されます。
表1-5に、SOA Order Bookingアプリケーション内のプロジェクトで使用されるテクノロジおよび技法を示します。
表1-5 プロジェクトで使用されるテクノロジおよび技法
プロジェクト | 使用されるテクノロジおよび技法 |
---|---|
CustomerService |
|
CreditService |
|
RapidService |
|
SelectManufacturer |
|
FulfillmentESB |
|
SOAOrderBooking |
|
OrderBookingESB |
|
SOADemo-Clientアプリケーション |
|