Oracle Fusion Middleware Oracle SOA Suiteアプリケーションの作成および実行のためのチュートリアル 11g リリース1(11.1.1) B56240-01 |
|
戻る |
次へ |
この章では、WebLogic Fusion Order DemoアプリケーションのOrderBookingComposite
コンポジットの作成方法について説明します。 この章では、第3章「SOAアプリケーションの作成」のタスクをすべて実行していることを前提としています。
この章の内容は次のとおりです。
OrderBookingComposite
コンポジットのフローについては、第1章「SOAサンプル・アプリケーションの概要」で説明しています。 図4-1に、SOAコンポジット・エディタのOrderBookingComposite
コンポジットを示します。
SOAコンポジット・エディタの左側のスイムレーンには、外部サービスにメッセージを送信する参照が含まれています。 表4-1に、OrderBookingComposite
コンポジット内のサービス・コンポーネントで参照されるサービスについて説明します。
表4-1 OrderBookingCompositeコンポジットで公開されたサービス
公開されたサービス | 説明 |
---|---|
このサービスは |
|
このサービスは |
SOAコンポジット・エディタのデザイナ(中央セクション)には、サービス・コンポーネントが含まれています。 表4-2に、OrderBookingComposite
コンポジットで使用されるサービス・コンポーネントについて説明します。
表4-2 OrderBookingCompositeコンポジットのサービス・コンポーネント
サービス・コンポーネント | タイプ | 説明 |
---|---|---|
ヒューマン・タスク |
このコンポーネントを使用すると、マネージャは注文を承認または却下できます。 |
|
ビジネス・ルール |
このコンポーネントは、最低見積に基づいて出荷サプライヤを選択します。 |
|
メディエータ |
このコンポーネントは、 |
|
BPEL |
このコンポーネントは配送日を提供します( |
|
メディエータ |
このコンポーネントは、注文IDを含む |
|
BPEL |
このコンポーネントは、注文ID情報を受信し、注文を処理し、企業内の必要なサービスをすべて編成して注文を完了します。 |
|
メディエータ |
このコンポーネントは、 |
|
メディエータ |
このコンポーネントは |
|
ビジネス・ルール |
このビジネス・ルールでは、手動承認が必要であるかどうかが判定されます。 |
|
メディエータ |
このコンポーネントは、ビジネス・イベント |
SOAコンポジット・エディタの右側のスイムレーンには、外部サービスにメッセージを送信する参照が含まれています。 表4-3に、OrderBookingComposite
コンポジットで参照されるサービスを説明します。
表4-3 OrderBookingCompositeコンポジットの参照
サービス・コンポーネント | タイプ | 説明 |
---|---|---|
Webサービス |
この同期サービスは、クレジット・カード・タイプ、口座番号および購入金額を |
|
Webサービス |
この同期サービスは、 |
|
JMSアダプタ |
このアダプタは、夜間のバッチ処理用にすべての履行注文を保管するためのJMSキューを提供します。JMSアダプタは、指定のJMSキューに注文情報を書き込むために使用されます。 |
|
Webサービス |
この非同期サービスは、 |
|
Webサービス |
この同期サービスは、顧客に注文を通知するためのOracle Messaging Serviceを提供します。 |
|
ファイル・アダプタ |
このアダプタは、USPSを使用して注文を出荷します。 |
複雑なコンポジットを作成する場合、次の構築アプローチを使用できます。
トップダウン: ビジネス・プロセスを分析し、プロセスのサポートにおけるアクティビティを識別します。コンポジットを作成する際には、SOAコンポジット・エディタを通じてすべてのSOAコンポーネントを定義します。 最初にすべてのサービスを作成してから、作成済のサービスを参照するBPELプロセスを構築します。
ボトムアップ: 既存のアプリケーションおよびアセットを分析し、サービスとして使用可能なものを識別します。BPELプロセスを作成する際には、必要に応じてサービスを構築します。 ITが変更に対応する必要がある場合は、このアプローチが有効です。
このチュートリアルでは、ボトムアップ・アプローチを使用するため、コンポジットの構築を個別のセグメントで学習できます。
この手順では、OrderBookingComposite
プロジェクトとOrderProcessor
BPELプロセスを作成します。 次のタスクが含まれています。
WebLogic Fusion Order DemoアプリケーションのOrderBookingComposite
プロジェクトを作成する手順は、次のとおりです。
アプリケーション・ナビゲータで「WebLogicFusionOrderDemo」アプリケーション名を右クリックし、「新規プロジェクト」を選択します。
「新規ギャラリ」ダイアログが表示されます。
「すべてのテクノロジ」タブまたは「現在のプロジェクト・テクノロジ」タブで、「カテゴリ」ツリーから「SOA層」を選択します。
「項目」リストで、「SOAプロジェクト」を選択します。
「OK」をクリックします。
「SOAプロジェクトの作成」ダイアログが表示されます。
次の値を入力します。
要素 | 値 |
---|---|
プロジェクト名 | OrderBookingComposite |
ディレクトリ | デフォルトのディレクトリ位置のMY_FOD_HOME \CompositeServices\OrderBookingComposite をそのまま使用します。 このディレクトリは、Oracle JDeveloperによって作成され、OrderBookingComposite プロジェクトのすべての内容が格納されます。 |
プロジェクト・テクノロジ | SOA |
「次へ」をクリックします。
SOA設定の設定ページで、「コンポジット・テンプレート」セクションから「BPELを使用するコンポジット」を選択します。
「終了」をクリックします。
「BPELプロセスの作成」ダイアログが表示されます。
ここでは、OrderProcessor
BPELプロセスの作成を続行します。
「BPELプロセスの作成」ダイアログで、次の値を入力します。
要素 | 値 |
---|---|
名前 | OrderProcessor |
ネームスペース | http://www.globalcompany.example.com/ns/OrderBookingService。 |
テンプレート | 非同期BPELプロセス。 |
SOAPサービスとして公開 | このチェック・ボックスを選択すると、インバウンドSOAPサービス・バインディング・コンポーネントに接続されたBPELプロセスが作成されます。 |
「入力」フィールドで、DEMO_DOWNLOAD_HOME
ディレクトリにある完全なスキーマをインポートします。
「入力」フィールドで、「入力要素の参照」アイコンをクリックします。
「タイプ・チューザ」ダイアログが表示されます。
「スキーマ・ファイルのインポート」アイコンをクリックします。
「スキーマ・ファイルのインポート」ダイアログが表示されます。
「URL」フィールドの右側にある「リソースの参照」アイコンをクリックします。
SOAリソース・ブラウザが表示されます。
「ファイルシステム」を選択し、「場所」セクションでDEMO_DOWNLOAD_HOME
/CompositeServices/OrderBookingComposite/xsd
内のInternalWarehouse.xsd
を検索し、「OK」をクリックします。
「スキーマのインポート」ダイアログで、「URL」フィールドにInternalWarehouse.xsd
が表示されて「プロジェクトにコピー」オプションが選択されていることを確認し、「OK」をクリックします。
「ファイルのローカライズ」ダイアログが表示され、InternalWarehouse.xsd
スキーマ・ファイルをインポートするように要求されます。
「インポートされたファイルの元のディレクトリ構造を保持」オプションの選択を解除し、「OK」をクリックしてファイルをインポートします。
「タイプ・チューザ」ダイアログが表示されます。
「プロジェクトのスキーマ・ファイル」→「InternalWarehouse.xsd」の順に開き、「WarehouseRequest」を選択して「OK」をクリックします。
「BPELプロセスの作成」ダイアログで、出力用の要素をInternalWarehouse.xsd
ファイルからインポートします。
「出力」フィールドで、「出力要素の参照」アイコンをクリックします。
「タイプ・チューザ」ダイアログが表示されます。
「プロジェクトのスキーマ・ファイル」→「InternalWarehouse.xsd」の順に開き、「WarehouseResponse」を選択して「OK」をクリックします。
「BPELプロセスの作成」ダイアログで、「OK」をクリックします。
OrderProcessor
BPELプロセスがデザイナに表示されます。 アプリケーション・ナビゲータにOrderBookingComposite
プロジェクトが表示されることにも注目してください。
第5章「OrderProcessor BPELプロセスの前半の作成」では、注文を発行するためのサービスおよびビルディング・ブロックを作成します。
「composite.xml」タブをクリックして、OrderBookingComposite
を表示します。 左側のスイムレーンに表示されるSOAPサービス・バインディング・コンポーネントorderprocessor_client_ep
は、SOAコンポジット・アプリケーションへのエントリ・ポイントを通じて外部とのつながりを提供します。
「WebLogicFusionOrderDemo.jws」タブをクリックして、WebLogicFusionOrderDemo
アプリケーションの内容を表示します。
「表示」リストから「OrderBookingComposite」を選択し、OrderBookingComposite
アプリケーションの内容を表示します。
「ファイル」メイン・メニューから「すべて保存」を選択して、作業内容を保存します。
ADF Business Componentsサービス・ランタイム・ライブラリを追加する手順は、次のとおりです。
アプリケーション・ナビゲータで、「OrderBookingComposite」を右クリックして「プロジェクト・プロパティ」を選択します。
「ライブラリとクラスパス」を選択し、ライブラリとクラスパス・ページで「ライブラリの追加」をクリックします。
「ライブラリの追加」ダイアログで、「BC4Jサービス・ランタイム」を選択して「OK」をクリックします。
ライブラリとクラスパス・ページで「OK」をクリックします。
OrderProcessor
プロセスは、WebLogic Fusion Order Demoアプリケーション内のメイン・フローを表します。このプロセスは、注文情報を適切な時期に適切なサービスに送信します。 たとえば、CreditAuthorizationService
サービスに連絡して顧客のクレジット・カードを確認し、そのクレジット・カードが受入れ可能である場合は、内部および外部の倉庫に連絡して注文の価格見積を取得します。
OrderProcessor
プロジェクトは大規模なプロジェクトです。 この章では、最初にプロジェクトの主なブロックの概要を示した後で、各ブロックの作成方法の詳細について説明します。
表4-4に、OrderProcessor
プロセスの主なブロックをリストします。
表4-4 OrderProcessorプロセスの主なブロック
ブロック | タイプ | 説明 |
---|---|---|
|
receiveアクティビティ |
このアクティビティは着信リクエストの注文IDを受信します。 |
スコープ |
このスコープでは、注文情報がデータベースから取得されます。 Oracle Application Development Framework(ADF)Business Componentsデータ・サービス・プロバイダ内の注文データを指し示すbind entityアクティビティが使用されます。 |
|
スコープ |
このスコープは、顧客情報を取得する |
|
スコープ |
このスコープでは、 |
|
スコープ |
このスコープでは、次の処理が実行されます。
|
|
スコープ |
このスコープは、外部パートナの倉庫と内部の倉庫の2つのサプライヤに注文情報を送信し、倉庫はその注文に対する見積を戻します。 |
|
スコープ |
このスコープは、最低見積の出荷サプライヤを選択するためのSelectPreferredSupplierビジネス・ルールを開始します。 |
|
スコープ |
このスコープは、 |
|
スコープ |
このスコープは、最終ステータスの |
|
スコープ |
このスコープは、Oracle User Messaging Serviceを使用して、注文を発行した顧客に電子メールを送信します。 |
|
|
invokeアクティビティ |
このinvokeアクティビティは、処理が終了したことをクライアントに通知します。 |
図4-2に、最小化された状態のブロックが表示されたOracle JDeveloperのBPELデザイナのOrderProcessor
プロセスを示します。 第5章および第6章の演習では、各ブロックを開いてその内容を示し、ブロックの作成方法について説明します。