ヘッダーをスキップ
Oracle SOA Suiteチュートリアル
10g (10.1.3.1.0)
B31831-01
  目次へ
目次

前へ
前へ
 
次へ
次へ
 

1 SOA Order Bookingアプリケーションおよびチュートリアルの概要

この章では、SOA Order Bookingアプリケーションの各コンポーネント、およびこのアプリケーションを作成して実行するための要件について説明します。

項目は次のとおりです。

1.1 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つのタイプのプロジェクトが含まれます。

表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アプリケーションについても説明します。

1.2 アプリケーションのフロー

この項では、プロジェクトの起動順序について説明します。

  1. 顧客がSOADemo-Clientアプリケーションを使用して注文すると、その処理によってOrderBookingESBプロジェクトが起動されます。

  2. OrderBookingESBプロジェクトは、SOA Order Bookingアプリケーションのメイン・フローを定義するSOAOrderBookingプロジェクトを起動します。

  3. SOAOrderBookingプロジェクトは、注文情報をデータベースに挿入します。

  4. SOAOrderBookingプロジェクトは、データベースから顧客情報を取得します。 この処理は、CustomerServiceプロジェクトを起動して実行されます。

  5. SOAOrderBookingプロジェクトは、顧客の与信を確認します。 この処理は、CreditServiceプロジェクトを起動して実行されます。

  6. 次に、SOAOrderBookingプロジェクトは、注文に対して手動による承認が必要かどうかを判断します。 この処理は、ルール・リポジトリに定義されているルールを使用して実行されます。 アプリケーションでは、ルールを使用して次のように判断します。

    • 顧客のステータスが「platinum」の場合、注文は、その金額に関係なく自動的に承認されます。

    • 「platinum」以外の顧客で、金額が$1000以上の場合、その注文は手動による承認が必要です。 金額が$1000未満の場合、その注文は自動的に承認されます。

  7. 手動による承認が必要な注文の場合、マネージャはワークリスト・アプリケーションにログインして、注文を承認(または却下)する必要があります。

  8. SOAOrderBookingプロジェクトは、承認された注文について、サプライヤのSelectManufacturerとRapidServiceに見積りをリクエストします。

  9. サプライヤからレスポンスを取得すると、SOAOrderBookingプロジェクトは、低い見積金額を提示したサプライヤを選択します。

  10. SOAOrderBookingプロジェクトは、注文に対する出荷方法(USPSまたはFedex)を選択します。 この処理は、FulfillmentESBプロジェクトを起動して実行されます。

  11. FulfillmentESBプロジェクトは、注文の金額を確認します。 金額が$500未満の場合は、USPSを出荷業者として選択します。 金額が$500以上の場合は、Fedexが出荷業者になります。

  12. SOAOrderBookingプロジェクトは、注文ステータスをデータベースに設定します。

  13. SOAOrderBookingプロジェクトは、電子メールを顧客に送信します。 この処理は、BPELで使用可能な電子メール・サービスを介して実行されます。

1.3 アプリケーションの作成と実行に必要なソフトウェア

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データベースは使用できません。


1.4 SOADEMOスキーマの内容

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で内部的に使用されます。


図1-1 SOADEMOデータベース・スキーマの内容

データベース・スキーマ・ダイアグラム
「図1-1 SOADEMOデータベース・スキーマの内容」の説明

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でない場合は、データの損失や誤った解釈が発生する可能性があります。

1.5 このチュートリアルの構成

チュートリアルの手順は、第2章「環境の設定」から始まります。ここでは、必要なソフトウェアをダウンロードしてインストールし、JDeveloperおよびOracle Application Serverで必要な接続を構成します。

第3章から第9章までは、SOA Order Bookingアプリケーション内のプロジェクトについて説明します。 各章で1つのプロジェクトについて説明します。 最初に、Webサービスを提供するプロジェクトを作成します。 それらのサービスを配置した後に、SOAOrderBookingプロジェクトを作成できます。このプロジェクトは、アプリケーションのメイン・フローを定義するため、ほとんどすべてのWebサービスを起動します。

第10章「クライアント・アプリケーションとSOA Order Bookingアプリケーションとのインタフェース」では、SOADemo-ClientアプリケーションがSOA Order Bookingアプリケーション内のサービスを起動する方法について説明します。

1.6 各プロジェクトで使用されるテクノロジおよび技法

SOA Order Bookingアプリケーションは、BPEL、ESBなどのSOA Suiteテクノロジと統合されており、それらのテクノロジを使用して定義済のフロー順序内のWebサービスを起動します。 各Webサービスは相互に独立しており、異なる方法で生成されます。

表1-5に、SOA Order Bookingアプリケーション内のプロジェクトで使用されるテクノロジおよび技法を示します。

表1-5 プロジェクトで使用されるテクノロジおよび技法

プロジェクト 使用されるテクノロジおよび技法

CustomerService

  • データベース表から生成されるEJB 3.0エンティティ・オブジェクトを使用します。 このエンティティ・オブジェクトは、JDeveloperを使用して生成します。

  • JSR-181 Webサービス・メタデータ注釈を使用します。

  • ステートレス・セッションBeanをセッション・ファサードとして使用します。 セッションBeanはJDeveloperで生成します。

CreditService

  • Webサービスのトップダウン実装を示します。WSDLファイルから開始し、JDeveloperを使用してWSDLファイルからJavaクラスを生成します。

RapidService

  • Webサービスのボトムアップ実装を示します。Javaクラスから開始し、JDeveloperを使用してWSDLファイルを生成します。

  • JSR-181 Webサービス・メタデータ注釈をJavaファイルで使用します。

SelectManufacturer

  • receiveおよびinvokeアクティビティがある単純な非同期BPELプロセスを示します。

FulfillmentESB

  • フィルタを使用して入力データを確認するルーティング・サービスを示します。 リクエストは、このフィルタによって適切なターゲットに送信されます。

  • トランスフォーメーション・ルールを使用して、データをデータベースおよびファイルに書き込めるように適切に変換します。 データベース・アダプタおよびファイル・アダプタが書込みを実行します。

  • JMSアダプタにルーティングするルーティング・サービスを示します。

SOAOrderBooking

  • BPELを使用してフロー順序を組み込む方法を示します。

  • OrderBookingESBを除くすべてのプロジェクトが提供するサービスを起動します。

  • その他のBPELフロー(SelectManufacturer BPELプロジェクト)を起動します。

  • ESBプロジェクト(FulfillmentESBプロジェクト)を起動します。

  • Oracle Business RulesをBPELに統合する方法を示します。

  • デシジョン・サービスを示します。

  • 電子メール・サービスを介して電子メールを送信します。

  • フロー・アクティビティを使用して、リクエストをRapidServiceおよびSelectManufacturerに送信します。

  • ヒューマン・タスクを使用して、手動による承認が必要なステップを設定します。

OrderBookingESB

  • SOAPサービスを使用して、BPELプロジェクト(SOAOrderBookingプロジェクト)を起動します。

SOADemo-Clientアプリケーション

  • ADFアプリケーションからESBプロジェクトを起動する方法を示します(「place order」ボタンによってOrderBookingESBプロジェクトが起動します)。

  • CustomerServiceプロジェクトを「login」ボタンからコールする方法を示します。