この章の内容は次のとおりです。
この項では、設計環境でのBPELプロセス・サービス・コンポーネントの概要を説明します。
で、BPELプロセス・サービス・コンポーネントをSOAコンポジット・アプリケーションに追加します。
BPELプロセス・サービス・コンポーネントを追加する手順は、次のとおりです。
表4-1の説明に従って、Oracle JDeveloperを起動します。
表4-1 Oracle JDeveloperの起動
起動対象 | Windowsの場合 | UNIXの場合 |
---|---|---|
Oracle JDeveloper |
|
|
次のいずれかの方法を使用して、BPELプロセス・サービス・コンポーネントを追加します。
既存のSOAコンポジット・アプリケーションのサービス・コンポーネントとして追加する方法:
「コンポーネント」ウィンドウの「コンポーネント」セクションから、「BPELプロセス」サービス・コンポーネントをにドラッグします。これにより、図4-1に示す「BPELプロセスの作成」ダイアログが表示されます。
新規アプリケーションに追加する方法:
「アプリケーション」ウィンドウから、「ファイル」→「新規」→「アプリケーション」の順に選択します。
「カテゴリ」リストの「一般」で、「アプリケーション」を選択します。
「項目」リストで「SOAアプリケーション」を選択し、「OK」をクリックします。
これにより、SOAアプリケーションの作成ウィザードが起動します。
「アプリケーション名」ダイアログで、「アプリケーション名」フィールドにアプリケーション名を入力します。
「ディレクトリ」フィールドで、デフォルトの場所を受け入れるか、SOAコンポジット・アプリケーションを作成する新しいディレクトリ・パスを入力します。
「次へ」をクリックします。
「プロジェクト名」ダイアログで、「プロジェクト名」フィールドに名前を入力します。
「ディレクトリ」フィールドで、デフォルトの場所を受け入れるか、プロジェクトを作成する新しいディレクトリ・パスを入力します。
「次へ」をクリックします。
「開始」セクションでは、「標準コンポジット」が選択されていることを確認してください。他の選択である「SOAテンプレート」により、SOAプロジェクトの再利用可能な部分を作成して、新規プロジェクトを進めることができます。詳細は、「Oracle SOA Suiteテンプレートおよび再使用可能なサブプロセス」を参照してください。
「プロジェクトのSOA設定」ダイアログで、BPELプロセスを使用するコンポジットを選択します。
「終了」をクリックします。
これにより、図4-1に示す「BPELプロセスの作成」ダイアログが表示されます。
表4-2に示すように、必要な詳細を指定します。
注意:
同じ.bpel
ファイルでBPEL 1.1とBPEL 2.0の構文を使用することはできません。ただし、同じSOAコンポジット・アプリケーションにBPEL 1.1プロジェクトとBPEL 2.0プロジェクトを含めることができます。
表4-2 「BPELプロセスの作成」ダイアログ
フィールド | 説明 |
---|---|
BPEL仕様 |
作成するBPELプロセスのタイプを選択します。
|
名前 |
BPELプロセスの名前を入力するか、またはデフォルト名をそのまま使用します。入力した名前が、「アプリケーション」ウィンドウのBPELプロセスおよびWeb Services Description Language (WSDL)ファイルのファイル名になります。 BPELプロセスの作成時は、必ず完全に一意の名前を使用してください。次のものを作成しないでください。
|
ネームスペース |
ネームスペースのデフォルトのパスを使用するか、カスタム・パスを入力します。 |
ディレクトリ |
BPELプロセス・サービス・コンポーネントのアーティファクトを配置するディレクトリを指定するか、 ディレクトリ・パスを変更できますが、ディレクトリが |
テンプレート |
設計するBPELプロセス・サービス・コンポーネントのタイプに基づくテンプレートを選択します。テンプレートによって、「アプリケーション」ウィンドウにデフォルト・ファイルの基本セット(
|
サービス名 |
デフォルト値をそのまま使用するか、またはこのプロセスで公開されているサービス名を入力します。invoke、receive、OnMessageまたはreplyアクティビティを開くと、デフォルトで、サービス名が「パートナ・リンク」フィールドに表示されます。この名前はパートナ・リンクと同じ名前です。 |
SOAPサービスとして公開 |
インバウンドSimple Object Access Protocol (SOAP) Webサービス・バインディング・コンポーネントに自動的に接続(連結)されるBPELプロセス・サービス・コンポーネントを作成する場合は、このチェック・ボックスを選択します。このチェック・ボックスを選択しないと、BPELプロセス・サービス・コンポーネントは、SOAコンポジット・エディタでスタンドアロン・コンポーネントとして作成されます。このBPELプロセス・サービス・コンポーネントは後からサービスに明示的に関連付けることができます。このチェック・ボックスはデフォルトで選択されています。 |
配信 注意: このフィールドは、「テンプレート」リストで次のいずれかのテンプレートを選択した場合に表示されます。
|
配信レイヤーでのプロセスの永続ポリシーを設定します。このリストを使用すると、
このプロパティのトランザクションおよびフォルト伝播のセマンティクスの詳細は、「BPELプロセスでのトランザクションおよびフォルト伝播のセマンティクス」を参照してください。 プロパティ・インスペクタでこのプロパティの値を変更する方法については、「プロパティ・インスペクタでデプロイメント・ディスクリプタのプロパティを定義する方法」を参照してください。 |
トランザクション 注意: このフィールドは、「テンプレート」リストで「同期BPELプロセス」を選択した場合に表示されます。 |
コールを開始するBPELインスタンスのトランザクション動作を設定します。このリストを使用すると、
注意: このプロパティは、中間プロセスのreceiveアクティビティには適用されません。この場合は、別のトランザクションの別のスレッドを使用してメッセージが処理されます。これは、相関が必要であり、常に非同期で処理されるためです。 このプロパティのトランザクションおよびフォルト伝播のセマンティクスの詳細は、「BPELプロセスでのトランザクションおよびフォルト伝播のセマンティクス」を参照してください。 プロパティ・インスペクタでこのプロパティの値を変更する方法については、「プロパティ・インスペクタでデプロイメント・ディスクリプタのプロパティを定義する方法」を参照してください。 |
入力 |
デフォルトの入力XSDスキーマをそのまま使用するか、「検索」アイコンをクリックして別のXSDを選択します。「検索」アイコンをクリックすると、「タイプ・チューザ」ダイアログが表示されます。インポートしたスキーマを参照して、入力要素(注文書など)を選択します。「タイプ・チューザ」ダイアログで、既存のスキーマまたはWSDLをインポートすることもできます。 「タイプ・チューザ」ダイアログには、使用するコンテキストに基づいて情報が表示されます。たとえば、変数に対して単純、メッセージまたは要素のタイプを選択した場合、ダイアログには、XMLスキーマ単純型、WSDLファイル・メッセージ・タイプまたはXMLスキーマ要素がそれぞれ表示されます。メッセージ・パートのタイプを選択すると、プロジェクトのスキーマ・ファイル、XMLスキーマ単純型およびプロジェクトのWSDLファイルがダイアログに表示されます。 |
出力 |
デフォルトの出力XSDスキーマをそのまま使用するか、「検索」アイコンをクリックして別のXSDを選択します。「検索」アイコンをクリックすると、「タイプ・チューザ」ダイアログが表示されます。インポートしたスキーマを参照して、出力要素(注文書など)を選択します。 |
「OK」をクリックします。
図4-2に示すセクションがOracle BPELデザイナに表示されます。
このビューの各セクションを使用して、特定の設計およびデプロイメント・タスクを実行できます。表4-3に、図4-2にリストされている各セクションを示します。
表4-3 Oracle JDeveloperのセクション
要素 | 説明 |
---|---|
「アプリケーション」ウィンドウ(左上) |
SOAプロジェクトのディレクトリとファイルが表示されます。「SOA」フォルダの下にある主要なディレクトリとファイルには、次が含まれています。
|
Oracle BPELデザイナ(「設計」タブ) |
設計するBPELプロセス・サービス・コンポーネントがグラフィカルに表示されます。このビューは、次のいずれかの処理を実行すると表示されます。
アクティビティのドラッグ、パートナ・リンクの作成などによるBPELプロセス・サービス・コンポーネントの設計に応じて、「設計」ウィンドウは変化します。 |
「コンポーネント」ウィンドウ(右上) |
BPELプロセス・サービス・コンポーネントに追加可能なアクティビティが表示されます。アクティビティはビルディング・ブロックです。「コンポーネント」ウィンドウの 「BPELコンストラクト」、「サブプロセス」 (最初は空です)および「Oracle Extensions」のセクションでは、BPELプロセス・サービス・コンポーネントのデザイナにドラッグするサブプロセスとアクティビティのセットが表示されます。「コンポーネント」ウィンドウには、デザイナの状態に関連があるページのみが表示されます。「BPELコンストラクト」、「サブプロセス」および「Oracle Extensions」は、ほぼ常に表示されます。ただし、transformアクティビティでトランスフォーメーションを設計している場合、「コンポーネント」ウィンドウには、「文字列関数」、「数学関数」、「ノードセット関数」など、そのアクティビティに関連する選択項目のみが表示されます。 |
「構造」ウィンドウ(左下) |
デザイナで現在選択しているBPELプロセス・サービス・コンポーネントのデータが構造的に表示されます。このウィンドウから、次のような様々なタスクを実行できます。
|
「ログ」ウィンドウ(中央下) |
検証およびコンパイルのステータスに関するメッセージが表示されます。BPELプロセス・サービス・コンポーネントで検証が正しく行われるように、次のことを確認する必要があります。
デプロイメントに失敗した場合は、エラーのタイプと場所を示すメッセージが表示されます。 |
「ソース」タブ |
BPELプロセス・サービス・コンポーネント・ファイル内部の構文が表示されます。アクティビティやパートナ・リンクをドラッグしたり、別のタスクを実行すると、これらのソース・ファイルの構文が即時に更新され、変更内容が反映されます。 |
「履歴」タブ |
ファイルのリビジョン履歴や、ファイルの読取り専用バージョンと編集可能バージョンが並べて表示されます。 |
プロパティ・インスペクタ |
アクティビティに関する詳細が表示されます。「設計」ウィンドウでアクティビティをクリックすると、編集用に開きます。詳細は、「BPELアクティビティをプロパティ・インスペクタで編集する方法」を参照してください。 |
注意:
これらのセクションの詳細を参照する場合、該当するセクション内にカーソルを置いて[F1]を押し、オンライン・ヘルプを表示することもできます。
Oracle BPELデザイナの上部にある「プロパティ構造」リストで「情報」を選択して、BPELプロジェクトのバージョン(1.1または2.0)を表示します。図4-3に詳細を示します。
「情報」ダイアログが表示されます。
アクティビティは、BPELプロセス・サービス・コンポーネントのビルディング・ブロックです。Oracle BPELデザイナには、BPELプロセス・サービス・コンポーネントにドラッグする一連のアクティビティが用意されています。アクティビティの属性(プロパティ値)を定義するには、そのアクティビティをダブルクリックします。アクティビティを使用すると、BPELプロセス・サービス・コンポーネント内で特定のタスクを実行できます。次に、いくつかの主要なアクティビティの例を示します。
assignアクティビティを使用すると、ある変数の内容を別の変数にコピーするなどのデータの操作を実行できます。図4-7に、assignアクティビティを示します。
invokeアクティビティを使用すると、(パートナ・リンクによって識別された)サービスを起動し、このサービスに対して実行する操作を指定できます。図4-8に、invokeアクティビティを示します。
receiveアクティビティは、サービスからの非同期コールバック・レスポンス・メッセージを待機します。図4-9に、receiveアクティビティを示します。receiveアクティビティは、パートナ・リンクを使用してプロセスが非同期に開始される場合にも使用されます。
図4-10に、プロパティ・ウィンドウ(ここではinvokeアクティビティ)の例を示します。
このinvokeアクティビティを使用すると、サービス(パートナ・リンクで識別)に対して起動する操作を指定できます。操作は、サービスによって指定されたポートでの一方向またはリクエスト/レスポンスです。invokeアクティビティで変数を自動的に作成することも可能です。invokeアクティビティは、同期サービスを起動するか、非同期Webサービスを開始します。
invokeアクティビティは、プロセス内でデータを送受信するためのポートをオープンします。このポートを使用して、必要なデータの送信およびレスポンスの受信を行います。同期コールバックの場合、関数の送受信に必要なポートは1つのみです。
アクティビティの詳細は、「BPELプロセスのアクティビティとサービス」を参照してください。
同じプロジェクト内または複数のプロジェクト間でアクティビティのコピーおよび貼付けを行う方法の詳細は、「アクティビティのコピーと貼付けをBPELプロジェクトで行う方法」を参照してください。
アクティビティをプロパティ・インスペクタで編集する方法の詳細は、「BPELアクティビティをプロパティ・インスペクタで編集する方法」を参照してください。
Oracle JDeveloperのOracle BPELデザイナのプロパティ・インスペクタでBPEL1.1と2.0のプロセスのアクティビティのプロパティ・フィールドを編集できます。このアクションは、アクティビティをダブルクリックするかアクティビティを右クリックして「編集」を選択し、変更を行い、「適用」か「OK」をクリックするアクションと同じです。
BPELアクティビティをプロパティ・インスペクタで編集するには:
同じBPELプロジェクト内またはBPELプロジェクト間で、アクティビティをコピーして貼り付けることができます。これにより、類似したアクティビティ全体を複数回作成する必要がなくなります。アクティビティを1回設計して複数の場所で使用し、必要に応じて編集できます。
注意:
個別のOnAlarmアクティビティを1つのscopeアクティビティからコピーして、別のscopeアクティビティに貼り付けることができます。個別のOnAlarmアクティビティを1つのpickアクティビティからコピーして、別のpickアクティビティに貼り付けることもできます。
以下の制限に注意してください。
BPEL 1.1プロジェクトからBPEL 2.0プロジェクトに、またはBPEL 2.0プロジェクトからBPEL 1.1プロジェクトにアクティビティをコピーすることはできません。
BPEL 2.0プロジェクトでは、個別のOnAlarmアクティビティをpickアクティビティからscopeアクティビティにコピーしたり、その逆を行うことはできません。ただし、このタイプのコピーおよび貼付けは、BPEL 1.1プロジェクトではサポートされています。
scopeアクティビティをコピーして貼り付ける場合、最初のscopeアクティビティで参照される変数はコピーされません。
アクティビティをコピーして貼り付ける手順は、次のとおりです。
コピーするアクティビティを右クリックします。
「コピー」を選択します。
アクティビティを貼り付けるプロジェクトに移動します。
次のタスクのいずれかを実行します。
このアクティビティを貼り付ける場所に最も近いアクティビティを右クリックします。
選択したアクティビティの前後どちらに貼り付けるかを選択します。
または
図4-13に示すように、BPELプロセスをハイライト表示します。
右クリックして「貼付け」→「中に貼付け」の順に選択します。
アクティビティがBPELプロセスの上部に貼り付けられます。
パートナ・リンクを使用すると、BPELプロセス・サービス・コンポーネントと対話する外部サービスを定義できます。パートナ・リンクは、(推奨される方法)またはOracle BPELデザイナのBPELプロセス・サービス・コンポーネント内にサービスまたは参照(JCAアダプタ経由など)として定義できます。図4-15に、パートナ・リンク・アイコン(この例ではPartnerSupplierMediatorという名前)を示します。
パートナ・リンク・タイプは、対話において各サービスが果たす役割を定義すること、および対話の中でメッセージを受信するために各サービスが提供するポート・タイプを指定することで、2つのサービス間での対話関係の特性を決定します。
図4-16に、サービスに対するパートナ・リンクの属性の例を示します。
表4-4に、このダイアログの各フィールドを示します。
表4-4 「パートナ・リンクの作成」ダイアログのフィールド
フィールド | 説明 |
---|---|
名前 |
パートナ・リンクに対して指定する一意のわかりやすい名前です。 |
プロセス |
BPELプロセス・サービス・コンポーネント名が表示されます。 |
WSDL URL |
パートナ・リンクに対して選択するWSDLファイルまたはJavaインタフェースの名前と場所。使用するWSDLファイルまたはJavaインタフェースを選択するためにウィンドウにアクセスするには、「SOAサービス・エクスプローラ」アイコン(「WSDL URL」フィールドの左上から2番目のアイコン)をクリックします。 「参照」フォルダの下にjavaEJBの名前とともに表示される選択用のJavaインタフェース。このパートナ・リンクと接続するコンポーネントがWSDLファイルを使用し、Javaインタフェースを選択して「OK」をクリックすると、このコンポーネントにはWSDLインタフェースが必要であることを示すメッセージが表示されます。「はい」をクリックすると、Javaインタフェースに基づいて互換性のあるWSDLファイルが作成されます。 Javaインタフェースを使用するコンポーネントをSOAコンポジット・アプリケーションに統合する方法の詳細は、「Spring Frameworkを使用したSOAコンポジット・アプリケーションへの統合」を参照してください。 |
パートナ・リンク・タイプ |
WSDLファイルで定義したパートナ・リンクです。 |
パートナ・ロール |
パートナ・リンクによって実行されるロールです。 |
マイ・ロール |
BPELプロセス・サービス・コンポーネントが実行するロールです。これが、同期プロセスの場合は、BPELプロセス・サービス・コンポーネントにロールはありません。 |
注意:
「パートナ・リンクの作成」ダイアログの「パートナ・リンク・タイプ」、「パートナ・ロール」および「マイ・ロール」フィールドは、BPEL標準で定義される必須フィールドです。
ベスト・プラクティス
Oracle MediatorとBPELプロセス・サービス・コンポーネントは、常にSOAコンポジット・エディタ(Oracle BPELデザイナではなく)で作成して接続することをお薦めします。
Oracle MediatorまたはBPELプロセスのパートナ・リンクをOracle BPELデザイナでBPELプロセスに追加し、invokeアクティビティを介していずれかのパートナ・リンクをBPELプロセスに接続しても、その接続は、SOAコンポジット・エディタには自動的には反映されません。SOAコンポジット・エディタで、Oracle MediatorまたはBPELプロセス・サービス・コンポーネントをBPELプロセスに再度明示的に接続する必要があります。
Oracle BPELデザイナのヒューマン・タスクまたはビジネス・ルールのパートナ・リンクには問題はありません。SOAコンポジット・エディタでは、両方とも自動的に接続されます。
パートナ・リンクをプロパティ・インスペクタで編集する方法の詳細は、「BPELアクティビティをプロパティ・インスペクタで編集する方法」を参照してください。
Oracle BPELデザイナのBPELプロセス内にパートナ・リンクを作成する方法は、でのパートナ・リンクの表示方法に影響します。この項では、この影響について説明します。WSDLファイルは、ローカル・オペレーティング・システムに配置される場合や、リモートでホストされる場合(この場合はWSDLのURLが必要)があります。
同様に、SOAコンポジット・エディタでサービス・バインディング・コンポーネントまたは参照バインディング・コンポーネントを作成し、BPELプロセス・サービス・コンポーネントに接続すると、パートナ・リンクがOracle BPELデザイナに表示されます。
パートナ・リンクを作成する手順は、次のとおりです。
次の各項では、パートナ・リンクの作成がSOAコンポジット・エディタに与える影響について説明します。
表4-7に、への影響を示します。
表4-7 パートナ・リンクの作成がに与える影響
Oracle BPELデザイナでBPELプロセスに作成されるもの | 表示されるもの |
---|---|
抽象的なWSDLからサービスをコールするパートナ・リンク |
BPELプロセス・サービス・コンポーネントに定義されたインタフェースおよびコールバック・インタフェースを持つ参照ハンドル |
表4-8に、への影響を示します。
表4-8 パートナ・リンクの作成がに与える影響
Oracle BPELデザイナでBPELプロセスに作成されるもの | 表示されるもの |
---|---|
抽象的なWSDLからサービスを実装するパートナ・リンク |
BPELプロセス・サービス・コンポーネントのインタフェースおよびコールバック・インタフェースを持つサービスが作成されます。 注意: 指定されたインタフェースおよびコールバック・インタフェースがある外部SOAP参照がに存在する場合は、新しい外部SOAP参照を作成してそれに接続することも、既存の外部SOAP参照に接続することもできます。 |
図4-20に、この作成方法を使用するとにどのように表示されるかを示します。
図4-16に示す「パートナ・リンク」ダイアログを使用すると、およびOracle JDeveloperが提供するもう1つの主要な機能を利用できます。アダプタ構成ウィザードにアクセスするには、図4-23に示す「サービス・ウィザード」アイコンをクリックします。
アダプタにより、BPELプロセス・サービス・コンポーネント(したがって、SOAコンポジット・アプリケーション全体)を、ファイル・システム、FTPサーバー、データベース表、データベース・キュー、ソケット、Java Message Service (JMS)、Oracle User Messaging Serviceなどへのアクセスと統合できます。HTTPバインディング、直接バインディング、EJBなどのサービスと統合することもできます。このウィザードを使用すると、図4-24に示すサービスとアダプタのタイプを、BPELプロセス・サービス・コンポーネントで使用するように構成できます。
サービス・タイプとアダプタ・タイプの詳細は、「バインディング・コンポーネントのスタート・ガイド」を参照してください。
アダプタ・タイプ(この例では、「ファイル」が図4-24で選択されました)を選択すると、図4-25に示すダイアログにより名前の入力を求められます。ウィザードが完了すると、この名前のWSDLファイルが、「WSDL」フォルダの下にある「アプリケーション」ウィンドウに表示されます。サービス名はプロジェクト内で一意である必要があります。このファイルには、このウィザードで指定したアダプタ構成設定が含まれます。その他の構成ファイル(ヘッダー・ファイル、アダプタ固有のファイルなど)も作成され、「アプリケーション」ウィンドウに表示されます。
このダイアログの後に表示されるアダプタ構成ウィザードのダイアログは、選択したアダプタ・タイプに基づきます。
また、内のサービスまたは参照として、アダプタをSOAコンポジット・アプリケーションに追加できます。
テクノロジ・アダプタの詳細は、『テクノロジ・アダプタの理解』を参照してください。
Oracle BPELデザイナ上部の監視ビューに変更を選択することで、Oracle BPELデザイナでBPELプロセス・モニターを構成できます。図4-26に詳細を示します。BPELプロセス・モニターでは、データを分析してグラフィカル表示するために、Oracle BAMアダプタを介してデータをOracle BAMに送信できます。
ビジネス・インジケータ、間隔およびカウンタの詳細は、Oracle SOA Suite 11gのドキュメントを参照してください。
http://docs.oracle.com/cd/E28280_01/dev.1111/e10224/bam_adapter.htm#BABIJBCC