Oracle Fusion Middleware Oracle SOA Suiteアプリケーションの作成および実行のためのチュートリアル 11g リリース1(11.1.1) B56240-01 |
|
戻る |
次へ |
Fusion Order DemoのWebLogic Fusion Order Demoアプリケーションは、Oracle SOA Suiteを使用したWebショッピング用ストアフロントからの注文の処理のデモンストレーションです。 このチュートリアルでは、主にWebLogic Fusion Order Demoアプリケーションの実行と構築について説明します。
この章の内容は次のとおりです。
Oracle SOA Suiteの概要は、『Oracle Fusion Middleware Oracle SOA Suiteスタート・ガイド』を参照してください。
Global Companyという架空会社で実行されるFusion Order Demoには、2つの主要部分、ストアフロント・モジュールとWebLogic Fusion Order Demoアプリケーションがあります。
ストアフロント・モジュールでは、ストアフロント・タイプのWebアプリケーションを通じて電子機器を販売します。
ストアフロント・モジュールには、次のプロジェクトがあります。
StoreFrontService
: このプロジェクトは、ストアフロント・データへのアクセスと、顧客データ、注文データおよび製品データの更新のトランザクション・サポートを提供します。
StoreFrontUI
: このプロジェクトは、顧客がストアフロントの参照、注文の発行、サイトへの登録、注文情報の表示およびユーザー・プロファイルの更新に使用する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アプリケーションによって注文が処理されます。
WebLogic Fusion Order Demoアプリケーションの作成準備を行うには、次のタスクを完了します。
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インストレーション・ガイド』を参照してください。
このチュートリアルでは、Oracle JDeveloper環境内でFusion Order Demoの内容を表示したり使用する必要があります。Fusion Order DemoはZIPファイル内に格納されています。
このZIPファイルにアクセスする手順は、次のとおりです。
Fusion Order DemoアプリケーションZIPファイル(FusionOrderDemo_R1.zip
)をダウンロードします。ZIPファイルは、次のサイトからダウンロードできます。
http://www.oracle.com/technology/products/jdev/samples/fod/index.html
ファイルを一時ディレクトリに解凍します。
このチュートリアルでは、このディレクトリをDEMO_DOWNLOAD_HOME
と表記します。 WebLogic Fusion Order Demoアプリケーションを作成するときは、アプリケーションを作業アプリケーション・ディレクトリ(例: C:\fod
)に作成します。このチュートリアルでは、作業アプリケーション・ディレクトリの場所をMY_FOD_HOME
とします。 必要なファイルをDEMO_DOWNLOAD_HOME
ディレクトリからMY_FOD_HOME
にコピーします。
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インストレーション・ガイド』を参照してください。
インストール・プロセスを正常に完了した後、さらに次の構成手順を実行します。
ドメインの構成ファイルに設定を追加して、ストアフロント・モジュールに含まれる資格証明を有効化します。
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
JAVA_PROPERTIES
行(UNIX)またはSET JAVA_PROPERTIES
行(Windows)に次のオプションを追加します。
-Djps.app.credential.overwrite.allowed=true
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」を順番に選択します。
管理サーバーを起動します。
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>
コマンド・ウィンドウは最小化してもかまいませんが、開いたままにしておきます。 これで管理サーバーが実行され、使用する準備ができました。
管理サーバーが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 |
管理対象サーバー名。次に例を示します。
|
admin_url |
Oracle WebLogic ServerのURL。次に例を示します。
|
username |
Oracle WebLogic Server管理者。次に例を示します。
|
password |
Oracle WebLogic Server管理者のパスワード。次に例を示します。
|
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の場合は、次の手順に従って変数を変更します。
Windowsの「スタート」メニューから「コントロール パネル」を開き、「システム」アイコンをダブルクリックします。
「システムのプロパティ」ダイアログで、「詳細設定」タブを選択して「環境変数」をクリックします。
「環境変数」ダイアログで、JAVA_HOME
システム変数を探し、Oracle WebLogic Server JDKの場所に設定されていることを確認します。
JAVA_HOME
変数が定義されていない場合は、「新規」をクリックし、「新しいシステム変数」ダイアログで変数名JAVA_HOME
とOracle WebLogic Server JDKを指す変数値(例: C:\weblogic\jdk160_11
)を入力します。 「OK」をクリックして新しいシステム変数を設定します。
Path
システム変数をダブルクリックし、Oracle WebLogic Serverのant\bin
ディレクトリへのパスが含まれていることを確認します。 このパスが含まれていない場合は、変数値の末尾に追加します。次に例を示します。
;C:\weblogic\modules\org.apache.ant_1.7.0\bin
「OK」をクリックして新しいシステム変数を設定します。
「OK」をさらに2回クリックして「環境変数」ダイアログと「システムのプロパティ」ダイアログを閉じます。
インストール中にOracle SOA Suite用に構成したOracle WebLogic Serverへの接続を作成する手順は、次のとおりです。
Oracle JDeveloperを起動します。
(UNIX) ORACLE_HOME/jdev/bin/jdev (Windows) JDEV_ORACLE_HOME\jdeveloper\JDev\bin\jdev.exe
「アプリケーション・メニュー」から「新規」を選択します。
「新規ギャラリ」ダイアログの「カテゴリ」ツリーで、「一般」を選択し、次に「接続」を選択します。
「アプリケーション・サーバー接続」を選択し、「OK」をクリックします。
「アプリケーション・サーバー接続の作成」の「名前とタイプ」ページが表示されます。
「接続名」フィールドに「MyAppServerConnection
」と入力し、「接続タイプ」リストから「WebLogic 10.3」を選択します。
「次へ」をクリックします。
認証ページが表示されます。
「ユーザー名」にweblogic
と入力し、「パスワード」フィールドに管理者のパスワードを入力します。
構成ページで、次の値を入力します。
要素 | 値 |
---|---|
Weblogicホスト名(管理サーバー) | Oracle WebLogic Serverの管理サーバーのDNS名またはIPアドレス。 |
ポート | 管理サーバーがリクエストをリスニングしているポートのアドレス(デフォルトでは7001)。 |
WLSドメイン | Oracle WebLogic Serverのドメイン名。 |
「次へ」をクリックします。
テスト・ページが表示されます。
「接続のテスト」をクリックします。
次のメッセージが表示されることを確認します。
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が稼働していることを確認し、テストを再試行します。
「終了」をクリックします。
「リソース・パレット」で、「IDE接続」の「アプリケーション・サーバー」を開き、作成したアプリケーション・サーバー接続を表示します。
このチュートリアルでは、主にFusion Order Demo用のWebLogic Fusion Order Demoアプリケーションの構築について説明します。 まず最初に、Oracle JDeveloperでWebLogicFusionOrderDemo
アプリケーション・アーティファクトを表示します。
Oracle JDeveloperを起動します。
JDeveloperのメイン・メニューから、「ファイル」→「開く」の順に選択します。
「開く」ダイアログで、DEMO_DOWNLOAD_HOME
/CompositeServices
を参照し、「WebLogicFusionOrderDemo.jws」を選択します。「開く」をクリックします。
次の図は、アプリケーション・ワークスペース用にファイルを開いた後のアプリケーション・ナビゲータを示しています。
表1-1に、WebLogicFusionOrderDemo
アプリケーション・ワークスペース内の各プロジェクトについて説明します。
表1-1 WebLogicFusionOrderDemoアプリケーション内のプロジェクト
プロジェクト | 説明 |
---|---|
このプロジェクトには、Oracle B2Bのコンポジットが含まれています。 このコンポジットは、このチュートリアルには使用しません。 |
|
このプロジェクトには、Oracle BAMが追加された |
|
このプロジェクトには、すべてのSOAプロジェクトをデプロイするためのビルド・スクリプトが含まれています。 また、JMSコネクタ情報、デモ・トピックおよびデモ・ユーザーをシードするためのテンプレートも含まれています。 |
|
このプロジェクトは、顧客のクレジット・カード情報を検証するために |
|
このプロジェクトは、 |
|
このプロジェクトでは、ストアフロント・モジュールUIで発行された注文が処理されます。 このプロジェクトには、WebLogic Fusion Order Demoアプリケーションのメイン・プロセスが含まれています。 |
|
このプロジェクトは、ストアフロント・モジュールの |
|
このプロジェクトには、パートナの倉庫から見積を取得するためのBPELプロセスを含むコンポジットが含まれています。 これは、 |
「アプリケーション・メニュー」で、「閉じる」を選択してサンプル・アプリケーションを閉じます。
コンポジットによって、複数のテクノロジ・コンポーネントを1つのSOAアプリケーションに簡単にアセンブルできます。コンポジットでは複数のサービス・コンポーネントがグループ化され、各コンポーネントがワイヤを使用して接続されます。 OrderBookingComposite
は、WebLogic Fusion Order Demoアプリケーションのメイン・プロジェクトであり、Global Companyからの注文を処理するためのコンポジット・アプリケーションが含まれています。 このコンポジットでは、企業内部と外部の他のサイトの各サービスを、SOAアーキテクチャ・パラダイムを使用して統合し、1つのまとまりのある注文システムを作成する方法を示します。
OrderBookingComposite
コンポジットでは、次のOracle SOA Suiteコンポーネントを使用します。
Oracle Mediator
Oracle BPEL Process Manager
Oracle Human Workflow(ヒューマン・タスクを使用)
Oracle Business Rules
Oracle Messaging Service
OrderBookingComposite
コンポジットの中央には、OrderProcessor
BPELプロセスがあります。このプロセスは、プロセス内のビジネス・ルールに基づいて、正しい倉庫での注文履行のために企業内の既存のサービスをすべて編成します。
図1-1は、WebLogic Fusion Order DemoアプリケーションのOrderBookingComposite
コンポジットの概要を示しています。その次に、アプリケーションによる注文の処理方法に対するコンポジット・フローについて段階ごとに説明します。
新規顧客がGlobal CompanyのストアフロントUIに登録すると、Webクライアントによって、StoreFrontService
と呼ばれる内部顧客サービス・アプリケーションに顧客の情報が送信されます。 次に、StoreFrontService
によって顧客情報がデータベースに格納されます。その後、顧客は製品を閲覧し、オンライン・ショッピング・カートに追加して、注文を発行できます。
登録済顧客がGlobal CompanyのストアフロントUIにアクセスしようとすると、UIによってStoreFrontService
が起動され、認証が行われます。登録済ユーザーはショッピング・カートを構築し、注文を発行します。注文が発行されると、次のイベントが発生します。
注文が発行されると、注文を処理して完了する次のシーケンスが発生します。
Oracle ADF Business Componentsによって、Fusion Order Demoのスキーマがあるデータベースに注文が書き込まれ、Events Delivery Network (EDN)を使用してNewOrderSubmitted
イベントが発生します。このイベントに関連付けられたデータが注文IDです。
OrderPendingEvent
メディエータはNewOrderSubmitted
イベントをサブスクライブするため、EDNレイヤーはOrderPendingEvent
メディエータに新規注文を通知します。
OrderPendingEvent
メディエータは注文を受信し、入力注文IDをOrderProcessor
BPELプロセスにルーティングします。
OrderProcessor
BPELプロセスは、公開されたOracle ADF Business ComponentsのStoreFrontService
サービスにバインドするためのbind entityアクティビティを使用して、データベースから注文IDを受信します。
プロセスで後に使用される注文情報には、次のものがあります。
顧客ID
顧客が購入したアイテム
使用されたクレジット・カード
選択された出荷先住所
BPELプロセスは、StoreFrontService
を開始し、注文IDを渡し、顧客に関する情報を取得します。
次に、BPELプロセスは、購入金額、クレジット・カード・タイプおよびクレジット・カード番号をCreditCardAuthorizationService
に送信し、顧客のクレジット・カードが有効であるかどうかを検証します。
クレジット・カードが有効でない場合は、BPELプロセスによって注文が取り消されます。
クレジット・カードが有効な場合は、BPELプロセスによって注文がRequiresApprovalRule
ビジネス・ルールに送信され、管理者による注文の承認が必要かどうかが判定されます。
RequiresApprovalRule
ビジネス・ルールでは、手動承認が必要であるかどうかが評価されます。 ビジネス・ルールには、$2,000を超える注文に対して手動承認が必要であるというルールが含まれています。
手動承認が必要な注文については、BPELプロセスによってApprovalHumanTask
ヒューマン・タスクが起動され、メッセージがマネージャにルーティングされます。マネージャは注文を承認または却下します。
注文が承認されると、BPELプロセスによって注文情報が次のサプライヤに送信され、同時に見積が取得されます。
内部サプライヤ。同じOrderBookingComposite
にあるInternalWarehouseService
BPELプロセスを使用して送信されます。
外部サプライヤ。PartnerSupplierMediator
メディエータを使用し、PartnerSupplierComposite
と呼ばれる別のコンポジットにあるExternalPartnerSupplier
BPELプロセスをルーティングして送信されます。
これら2つのサプライヤは見積を返信し、BPELプロセスはその見積をEvaluatePreferredSupplierRule
ビジネス・ルールに送信します。
EvaluatePreferredSupplierRule
ビジネス・ルールで、2つの見積のうち安い方のサプライヤが選択されます。
BPELプロセスによってFulfillOrder
メディエータが起動され、次の2つの操作が実行されます。
注文が一時キューに保管され、夜間にバッチ・モードで履行システムにアップロードされます。
注文がUSPSにルーティングされます。
注文が履行されると、BPELプロセスによって注文がcomplete
に設定されます。
BPELプロセスによってNotificationService
サービスが起動され、発注情報の電子メール通知が顧客に送信されます。
注文が完了すると、OrderPendingEvent
メディエータがOrderProcessor
プロセスに対しOrderCompleted
ビジネスをパブリッシュします。
注文が更新されると、次のことが行われます。
UpdateOrderStatus
メディエータは、ビジネス・イベントOrderUpdateEvent
をパブリッシュし、OrderProcessor
BPELプロセスに注文IDを送信します。
OrderUpdateEventMediator
メディエータは、ビジネス・イベントOrderUpdateEvent
をサブスクライブし、StoreFrontService
に注文IDを送信し、StoreFrontService
が注文に関する更新済詳細を返信するまで待機します。