ヘッダーをスキップ
Oracle Fusion Middleware Oracle SOA Suiteアプリケーションの作成および実行のためのチュートリアル
11g リリース1(11.1.1)
B56240-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

1 SOAサンプル・アプリケーションの概要

Fusion Order DemoのWebLogic Fusion Order Demoアプリケーションは、Oracle SOA Suiteを使用したWebショッピング用ストアフロントからの注文の処理のデモンストレーションです。 このチュートリアルでは、主にWebLogic Fusion Order Demoアプリケーションの実行と構築について説明します。

この章の内容は次のとおりです。

Oracle SOA Suiteの概要は、『Oracle Fusion Middleware Oracle SOA Suiteスタート・ガイド』を参照してください。

1.1 Fusion Order Demoの概要

Global Companyという架空会社で実行されるFusion Order Demoには、2つの主要部分、ストアフロント・モジュールとWebLogic Fusion Order Demoアプリケーションがあります。

ストアフロント・モジュールでは、ストアフロント・タイプのWebアプリケーションを通じて電子機器を販売します。

ストアフロント・モジュールには、次のプロジェクトがあります。

StoreFrontUIプロジェクトでは、表示テクノロジとしてJavaServer Faces(JSF)を使用し、Oracle ADF Modelレイヤーに依存してStoreFrontServiceプロジェクト内のOracle Application Development Framework(Oracle ADF)Business Componentsと相互作用します。

ストアフロント・モジュールとそのプロジェクトの詳細は、『Oracle Fusion Middleware Oracle Application Development FrameworkのためのFusion開発者ガイド』を参照してください。

顧客が注文を発行すると、WebLogic Fusion Order Demoアプリケーションによって注文が処理されます。

1.2 WebLogic Fusion Order Demoアプリケーションを作成するための開発環境の設定

WebLogic Fusion Order Demoアプリケーションの作成準備を行うには、次のタスクを完了します。

1.2.1 タスク1: Oracle JDeveloper Studioのインストール

WebLogic Fusion Order Demoアプリケーションを作成するために、Oracle JDeveloper 11g Studio Editionをインストールします。Oracle JDeveloperは、次のサイトからダウンロードできます。

http://www.oracle.com/technology/products/jdev/11/index.html

11gをダウンロードしてインストールし、その製品がJava EditionではなくStudio Editionであることを確認してください。これらの詳細をOracle JDeveloperで確認するには、「ヘルプ」「バージョン情報」メニュー・オプションの順に選択します。

SOAコンポジット・アプリケーションとプロジェクトを作成してデプロイするには、Oracle SOA Suite拡張をインストールする必要があります。 この拡張をOracle JDeveloper用にインストールする手順は、『Oracle Fusion Middleware Oracle JDeveloperインストレーション・ガイド』を参照してください。

1.2.2 タスク2: Fusion Order Demoアプリケーションのインストール

このチュートリアルでは、Oracle JDeveloper環境内でFusion Order Demoの内容を表示したり使用する必要があります。Fusion Order DemoはZIPファイル内に格納されています。

このZIPファイルにアクセスする手順は、次のとおりです。

  1. Fusion Order DemoアプリケーションZIPファイル(FusionOrderDemo_R1.zip)をダウンロードします。ZIPファイルは、次のサイトからダウンロードできます。

    http://www.oracle.com/technology/products/jdev/samples/fod/index.html
    
  2. ファイルを一時ディレクトリに解凍します。

    このチュートリアルでは、このディレクトリをDEMO_DOWNLOAD_HOMEと表記します。 WebLogic Fusion Order Demoアプリケーションを作成するときは、アプリケーションを作業アプリケーション・ディレクトリ(例: C:\fod)に作成します。このチュートリアルでは、作業アプリケーション・ディレクトリの場所をMY_FOD_HOMEとします。 必要なファイルをDEMO_DOWNLOAD_HOMEディレクトリからMY_FOD_HOMEにコピーします。

1.2.3 タスク3: Oracle SOA Suiteのインストール

Fusion Order Demoアプリケーションを正常にデプロイして実行するには、Oracle SOA Suiteのインストールを完了しておく必要があります。 Oracle SOA Suiteをインストールするには、OracleデータベースにOracle SOA Suiteのスキーマを作成し、Oracle WebLogic Serverをインストールし、Oracle SOA Suiteをインストールし、Oracle SOA SuiteとOracle Enterprise Managerの両方をサポートするようにOracle WebLogic Server内にドメインを構成する必要があります。 特に、ドメインには管理サーバーと管理対象サーバーを含めます。 管理サーバーは管理タスクを実行するためのOracle Enterprise Manager Fusion Middleware Controlをホストするサーバーで、管理対象サーバーはデプロイ済アプリケーションのホストに使用されるOracle WebLogic Serverのインスタンスです。 Oracle SOA Suiteをインストールして構成する手順は、『Oracle Fusion Middleware Oracle SOA Suiteインストレーション・ガイド』を参照してください。

インストール・プロセスを正常に完了した後、さらに次の構成手順を実行します。

  1. ドメインの構成ファイルに設定を追加して、ストアフロント・モジュールに含まれる資格証明を有効化します。

    1. Oracle SOA Suiteドメイン用に設定された構成ファイルを次のディレクトリで検索します。

      (UNIX) MW_HOME/user_projects/domains/domain_name/bin/setDomainEnv.sh
      (Windows) MW_HOME\user_projects\domains\domain_name\bin\setDomainEnv.cmd
      
    2. JAVA_PROPERTIES行(UNIX)またはSET JAVA_PROPERTIES行(Windows)に次のオプションを追加します。

      -Djps.app.credential.overwrite.allowed=true
      
    3. Oracle WebLogic Server管理サーバーが稼働中の場合は停止します。

      UNIXの場合は、rootユーザーとしてディレクトリMW_HOME/user_projects/domains/domain_name/binに移動し、次のコマンドを入力します。

      ./stopWebLogic.sh
      

      Windowsの場合は、Windowsの「スタート」メニューから「すべてのプログラム」「Oracle WebLogic」「User Projects」→「domain_name」→「Stop Admin Server」を順番に選択します。

    4. 管理サーバーを起動します。

      UNIXの場合は、ディレクトリMW_HOME/user_projects/domains/domain_name/binから次のコマンドを入力します。

      ./startWebLogic.sh
      

      Windowsの場合は、Windowsの「スタート」メニューから「すべてのプログラム」「Oracle WebLogic」「User Projects」→「domain_name」→「Start Admin Server」を順番に選択します。

      UNIXの場合は、プロンプトに対してOracle WebLogic Serverユーザー名およびパスワードを入力します。 パスワードは入力しても表示されません。

      コマンド・ウィンドウに次のメッセージが表示されると、管理サーバーが起動します。

      <Server state changed to RUNNING>
      <Server started in RUNNING mode>
      

      コマンド・ウィンドウは最小化してもかまいませんが、開いたままにしておきます。 これで管理サーバーが実行され、使用する準備ができました。

    5. 管理サーバーがRUNNINGモードのときに、SOA管理対象サーバーが実行されていなければ起動します。 コマンド・ウィンドウで、次のコマンドをすべて1行に入力します。

      UNIXの場合は、ディレクトリMW_HOME/user_projects/domains/domain_name/binから次のコマンドを入力します。

      ./startManagedWebLogic.sh managed_server_name admin_url username password
      

      Windowsの場合は、ディレクトリMW_HOME\user_projects\domains\domain_name\binから次のコマンドを入力します。

      startWebLogic.cmd managed_server_name admin_url username password
      

      次の値を置き換えます。

      要素
      managed_server 管理対象サーバー名。次に例を示します。

      soa_server1

      admin_url Oracle WebLogic ServerのURL。次に例を示します。

      http://soahost:7001

      username Oracle WebLogic Server管理者。次に例を示します。

      weblogic

      password Oracle WebLogic Server管理者のパスワード。次に例を示します。

      welcome1


  2. Oracle JDeveloperがインストールされているコンピュータから、Oracle WebLogic ServerとともにOracle SOA Suiteがインストールされているコンピュータにリモートでデプロイする場合は、Oracle SOA SuiteがインストールされているコンピュータのJAVA_HOMEおよびPATH環境変数を変更します。

    Oracle JDeveloperでコンポジット・サービスのデプロイ・スクリプトを実行するには、これらの変数を変更する必要があります。 JAVA_HOME変数はOracle WebLogic Server JDKへのパスを含むように設定し、PATH変数はantに使用するOracle WebLogic Serverのbinディレクトリへのパスを含むように設定します。

    UNIXの場合は、exportコマンドを使用します。次に例を示します。

    export JAVA_HOME=$MW_HOME/jdk160_11
    export PATH=$PATH:MW_HOME/modules/org.apache.ant_1.7.0/bin
    

    Windowsの場合は、次の手順に従って変数を変更します。

    1. Windowsの「スタート」メニューから「コントロール パネル」を開き、「システム」アイコンをダブルクリックします。

    2. 「システムのプロパティ」ダイアログで、「詳細設定」タブを選択して「環境変数」をクリックします。

    3. 「環境変数」ダイアログで、JAVA_HOMEシステム変数を探し、Oracle WebLogic Server JDKの場所に設定されていることを確認します。

      JAVA_HOME変数が定義されていない場合は、「新規」をクリックし、「新しいシステム変数」ダイアログで変数名JAVA_HOMEとOracle WebLogic Server JDKを指す変数値(例: C:\weblogic\jdk160_11)を入力します。 「OK」をクリックして新しいシステム変数を設定します。

    4. Pathシステム変数をダブルクリックし、Oracle WebLogic Serverのant\binディレクトリへのパスが含まれていることを確認します。 このパスが含まれていない場合は、変数値の末尾に追加します。次に例を示します。

      ;C:\weblogic\modules\org.apache.ant_1.7.0\bin
      

      「OK」をクリックして新しいシステム変数を設定します。

    5. 「OK」をさらに2回クリックして「環境変数」ダイアログと「システムのプロパティ」ダイアログを閉じます。

1.2.4 タスク4: Oracle WebLogic Serverへの接続の作成

インストール中にOracle SOA Suite用に構成したOracle WebLogic Serverへの接続を作成する手順は、次のとおりです。

  1. Oracle JDeveloperを起動します。

    (UNIX) ORACLE_HOME/jdev/bin/jdev
    (Windows) JDEV_ORACLE_HOME\jdeveloper\JDev\bin\jdev.exe
    
  2. 「アプリケーション・メニュー」から「新規」を選択します。

    appservcon1.gifの説明は次にあります。
    図版appservcon1.gifの説明

  3. 「新規ギャラリ」ダイアログの「カテゴリ」ツリーで、「一般」を選択し、次に「接続」を選択します。

  4. 「アプリケーション・サーバー接続」を選択し、「OK」をクリックします。

    「アプリケーション・サーバー接続の作成」の「名前とタイプ」ページが表示されます。

  5. 「接続名」フィールドに「MyAppServerConnection」と入力し、「接続タイプ」リストから「WebLogic 10.3」を選択します。

    appservcon2.gifの説明は次にあります。
    図版appservcon2.gifの説明

  6. 「次へ」をクリックします。

    認証ページが表示されます。

  7. 「ユーザー名」weblogicと入力し、「パスワード」フィールドに管理者のパスワードを入力します。

  8. 構成ページで、次の値を入力します。

    要素
    Weblogicホスト名(管理サーバー) Oracle WebLogic Serverの管理サーバーのDNS名またはIPアドレス。
    ポート 管理サーバーがリクエストをリスニングしているポートのアドレス(デフォルトでは7001)。
    WLSドメイン Oracle WebLogic Serverのドメイン名。

  9. 「次へ」をクリックします。

    テスト・ページが表示されます。

  10. 「接続のテスト」をクリックします。

    次のメッセージが表示されることを確認します。

    Testing JSR-88                         ... success.
    Testing JSR-88-LOCAL                   ... success.
    Testing JNDI                           ... success.
    Testing JSR-160 DomainRuntime          ... success.
    Testing JSR-160 Runtime                ... success.
    Testing JSR-160 Edit                   ... success.
    Testing HTTP                           ... success.
    Testing Server MBeans Model            ... success.
    
    8 of 8 tests successful.
    

    テストが成功しない場合は、Oracle WebLogic Serverが稼働していることを確認し、テストを再試行します。

  11. 「終了」をクリックします。

  12. 「リソース・パレット」で、「IDE接続」「アプリケーション・サーバー」を開き、作成したアプリケーション・サーバー接続を表示します。

    resource_pal.gifの説明は次にあります。
    図版resource_pal.gifの説明

1.3 WebLogicFusionOrderDemoアプリケーション・アーティファクトの表示

このチュートリアルでは、主にFusion Order Demo用のWebLogic Fusion Order Demoアプリケーションの構築について説明します。 まず最初に、Oracle JDeveloperでWebLogicFusionOrderDemoアプリケーション・アーティファクトを表示します。

  1. Oracle JDeveloperを起動します。

  2. JDeveloperのメイン・メニューから、「ファイル」「開く」の順に選択します。

  3. 「開く」ダイアログで、DEMO_DOWNLOAD_HOME/CompositeServicesを参照し、「WebLogicFusionOrderDemo.jws」を選択します。「開く」をクリックします。

    次の図は、アプリケーション・ワークスペース用にファイルを開いた後のアプリケーション・ナビゲータを示しています。

    projects.gifの説明は次にあります。
    図版projects.gifの説明

    表1-1に、WebLogicFusionOrderDemoアプリケーション・ワークスペース内の各プロジェクトについて説明します。

    表1-1 WebLogicFusionOrderDemoアプリケーション内のプロジェクト

    プロジェクト 説明

    B2BX12OrderGateway

    このプロジェクトには、Oracle B2Bのコンポジットが含まれています。 このコンポジットは、このチュートリアルには使用しません。

    BamOrderBookingComposite

    このプロジェクトには、Oracle BAMが追加されたOrderBookingCompositeコンポジットが含まれています。 特に、Oracle BAMアダプタとOracle BAMセンサーを使用してOracle BAMダッシュボードにアクティブ・データを送信します。 このコンポジットは、このチュートリアルには使用しません。

    bin

    このプロジェクトには、すべてのSOAプロジェクトをデプロイするためのビルド・スクリプトが含まれています。 また、JMSコネクタ情報、デモ・トピックおよびデモ・ユーザーをシードするためのテンプレートも含まれています。

    CreditCardAuthorization

    このプロジェクトは、顧客のクレジット・カード情報を検証するためにOrderBookingCompositeプロジェクトで必要とされるサービスを提供します。

    OrderApprovalHumanTask

    このプロジェクトは、OrderBookingCompositeプロジェクトからの注文を承認するためのタスク・フォームを提供します。

    OrderBookingComposite

    このプロジェクトでは、ストアフロント・モジュールUIで発行された注文が処理されます。 このプロジェクトには、WebLogic Fusion Order Demoアプリケーションのメイン・プロセスが含まれています。

    OrderSDOComposite

    このプロジェクトは、ストアフロント・モジュールのStoreFrontServiceサービスをテスト目的でシミュレートします。

    PartnerSupplierComposite

    このプロジェクトには、パートナの倉庫から見積を取得するためのBPELプロセスを含むコンポジットが含まれています。 これは、OrderBookingCompositeプロジェクトのコンポジットからサービスとして参照されます。


  4. 「アプリケーション・メニュー」で、「閉じる」を選択してサンプル・アプリケーションを閉じます。

1.4 OrderBookingCompositeフローの理解

コンポジットによって、複数のテクノロジ・コンポーネントを1つのSOAアプリケーションに簡単にアセンブルできます。コンポジットでは複数のサービス・コンポーネントがグループ化され、各コンポーネントがワイヤを使用して接続されます。 OrderBookingCompositeは、WebLogic Fusion Order Demoアプリケーションのメイン・プロジェクトであり、Global Companyからの注文を処理するためのコンポジット・アプリケーションが含まれています。 このコンポジットでは、企業内部と外部の他のサイトの各サービスを、SOAアーキテクチャ・パラダイムを使用して統合し、1つのまとまりのある注文システムを作成する方法を示します。

OrderBookingCompositeコンポジットでは、次のOracle SOA Suiteコンポーネントを使用します。

OrderBookingCompositeコンポジットの中央には、OrderProcessor BPELプロセスがあります。このプロセスは、プロセス内のビジネス・ルールに基づいて、正しい倉庫での注文履行のために企業内の既存のサービスをすべて編成します。

図1-1は、WebLogic Fusion Order DemoアプリケーションのOrderBookingCompositeコンポジットの概要を示しています。その次に、アプリケーションによる注文の処理方法に対するコンポジット・フローについて段階ごとに説明します。

図1-1 OrderBookingCompositeフロー

図1-1の説明は次にあります。
「図1-1 OrderBookingCompositeフロー」の説明

新規顧客がGlobal CompanyのストアフロントUIに登録すると、Webクライアントによって、StoreFrontServiceと呼ばれる内部顧客サービス・アプリケーションに顧客の情報が送信されます。 次に、StoreFrontServiceによって顧客情報がデータベースに格納されます。その後、顧客は製品を閲覧し、オンライン・ショッピング・カートに追加して、注文を発行できます。

登録済顧客がGlobal CompanyのストアフロントUIにアクセスしようとすると、UIによってStoreFrontServiceが起動され、認証が行われます。登録済ユーザーはショッピング・カートを構築し、注文を発行します。注文が発行されると、次のイベントが発生します。

注文が発行されると、注文を処理して完了する次のシーケンスが発生します。

  1. Oracle ADF Business Componentsによって、Fusion Order Demoのスキーマがあるデータベースに注文が書き込まれ、Events Delivery Network (EDN)を使用してNewOrderSubmittedイベントが発生します。このイベントに関連付けられたデータが注文IDです。

  2. OrderPendingEventメディエータはNewOrderSubmittedイベントをサブスクライブするため、EDNレイヤーはOrderPendingEventメディエータに新規注文を通知します。

  3. OrderPendingEventメディエータは注文を受信し、入力注文IDをOrderProcessor BPELプロセスにルーティングします。

  4. OrderProcessor BPELプロセスは、公開されたOracle ADF Business ComponentsのStoreFrontServiceサービスにバインドするためのbind entityアクティビティを使用して、データベースから注文IDを受信します。

    プロセスで後に使用される注文情報には、次のものがあります。

    • 顧客ID

    • 顧客が購入したアイテム

    • 使用されたクレジット・カード

    • 選択された出荷先住所

  5. BPELプロセスは、StoreFrontServiceを開始し、注文IDを渡し、顧客に関する情報を取得します。

  6. 次に、BPELプロセスは、購入金額、クレジット・カード・タイプおよびクレジット・カード番号をCreditCardAuthorizationServiceに送信し、顧客のクレジット・カードが有効であるかどうかを検証します。

    クレジット・カードが有効でない場合は、BPELプロセスによって注文が取り消されます。

    クレジット・カードが有効な場合は、BPELプロセスによって注文がRequiresApprovalRuleビジネス・ルールに送信され、管理者による注文の承認が必要かどうかが判定されます。

  7. RequiresApprovalRuleビジネス・ルールでは、手動承認が必要であるかどうかが評価されます。 ビジネス・ルールには、$2,000を超える注文に対して手動承認が必要であるというルールが含まれています。

  8. 手動承認が必要な注文については、BPELプロセスによってApprovalHumanTaskヒューマン・タスクが起動され、メッセージがマネージャにルーティングされます。マネージャは注文を承認または却下します。

  9. 注文が承認されると、BPELプロセスによって注文情報が次のサプライヤに送信され、同時に見積が取得されます。

    • 内部サプライヤ。同じOrderBookingCompositeにあるInternalWarehouseService BPELプロセスを使用して送信されます。

    • 外部サプライヤ。PartnerSupplierMediatorメディエータを使用し、PartnerSupplierCompositeと呼ばれる別のコンポジットにあるExternalPartnerSupplier BPELプロセスをルーティングして送信されます。

  10. これら2つのサプライヤは見積を返信し、BPELプロセスはその見積をEvaluatePreferredSupplierRuleビジネス・ルールに送信します。

  11. EvaluatePreferredSupplierRuleビジネス・ルールで、2つの見積のうち安い方のサプライヤが選択されます。

  12. BPELプロセスによってFulfillOrderメディエータが起動され、次の2つの操作が実行されます。

    • 注文が一時キューに保管され、夜間にバッチ・モードで履行システムにアップロードされます。

    • 注文がUSPSにルーティングされます。

  13. 注文が履行されると、BPELプロセスによって注文がcompleteに設定されます。

  14. BPELプロセスによってNotificationServiceサービスが起動され、発注情報の電子メール通知が顧客に送信されます。

  15. 注文が完了すると、OrderPendingEventメディエータがOrderProcessorプロセスに対しOrderCompletedビジネスをパブリッシュします。

注文が更新されると、次のことが行われます。

  1. UpdateOrderStatusメディエータは、ビジネス・イベントOrderUpdateEventをパブリッシュし、OrderProcessor BPELプロセスに注文IDを送信します。

  2. OrderUpdateEventMediatorメディエータは、ビジネス・イベントOrderUpdateEventをサブスクライブし、StoreFrontServiceに注文IDを送信し、StoreFrontServiceが注文に関する更新済詳細を返信するまで待機します。