この章では、Oracle BPEL Process Managerの基本操作について説明します。アクティビティ、パートナ・リンク、アダプタなど、BPELの主要な設計機能も説明します。
項目は次のとおりです。
この項では、設計環境でのBPELプロセス・サービス・コンポーネントの概要を説明します。
BPELプロセス・サービス・コンポーネントはSOAコンポジット・エディタで追加します。
BPELプロセス・サービス・コンポーネントを追加する手順は、次のとおりです。
表4-1の説明に従って、Oracle JDeveloperを起動します。
次のいずれかの方法を使用して、BPELプロセス・サービス・コンポーネントを追加します。
既存のSOAコンポジット・アプリケーションのサービス・コンポーネントとして追加する方法:
「コンポーネント・パレット」からSOAコンポジット・エディタにBPELプロセス・サービス・コンポーネントをドラッグします。
新規アプリケーションに追加する方法:
「アプリケーション・ナビゲータ」で、「ファイル」→「新規」→「アプリケーション」→「SOAアプリケーション」の順に選択します。
これにより、SOAアプリケーションの作成ウィザードが起動します。
「アプリケーション名」ダイアログで、「アプリケーション名」フィールドにアプリケーション名を入力します。
「ディレクトリ」フィールドに、SOAコンポジット・アプリケーションおよびプロジェクトを作成するディレクトリ・パスを入力します。
「次へ」をクリックします。
「プロジェクト名」ダイアログで、「プロジェクト名」フィールドに名前を入力します。
「次へ」をクリックします。
プロジェクトのSOA設定ダイアログで、BPELプロセスを使用するコンポジットを選択します。
「終了」をクリックします。
どちらの方法でも、図4-1に示す「BPELプロセスの作成」ダイアログが表示されます。
必要な詳細(BPELプロセス名、BPEL 1.1またはBPEL 2.0仕様をサポートするBPELプロジェクトを作成するかどうかなど)を指定します。作成できるBPELプロセスのタイプの詳細を参照する場合は、「ヘルプ」をクリックします。
BPELプロセスの作成時は、必ず完全に一意の名前を使用してください。次のような名前のプロセスは作成しないでください。
先頭が数値のプロセス名(1SayHello
など)。
ハイフンを含むプロセス名(Say-Hello
など)。
同じ名前で、大/小文字が異なる2つのプロセス名(SayHello
とsayhello
など)。
ビジネス・インテリジェンス(BI)のデータ・オブジェクト名は、Oracle BAMサーバーではすべて大文字の形式で生成されるため、これが特に重要です。たとえば、BPELProcess1
という名前のBPELプロセスを作成する場合、デプロイ後のOracle BAM BIデータ・オブジェクトとしてはBI_DEFAULT_PROJECT1_BPELPROCESS1
というBI名が生成されます。BPELProcess1
およびBPELPRocess1
の2つのBPELプロセスを作成すると、同じBIデータ・オブジェクト名が生成されます。
500文字を超えるプロセス名。
ASCIIでないプロセス名。BPELプロセス名はSOAプロジェクトのディレクトリおよびファイルの名前に使用されますが、これが問題を引き起こす可能性があります。
「OK」をクリックします。
図4-2に示すセクションがOracle BPELデザイナに表示されます。
このビューの各セクションを使用して、特定の設計およびデプロイメント・タスクを実行できます。表4-2に、図4-2にリストされている各セクションを示します。
表4-2 Oracle JDeveloperのセクション
要素 | 説明 |
---|---|
SOAプロジェクトのプロセス・ファイルが表示されます。主要なファイルには、次のものがあります。
|
|
設計するBPELプロセス・サービス・コンポーネントのビジュアル・ビューが表示されます。このビューは、次のいずれかの処理を実行すると表示されます。
アクティビティのドラッグ、パートナ・リンクの作成などによるBPELプロセス・サービス・コンポーネントの設計に応じて、「設計」ウィンドウは変化します。 |
|
BPELプロセス・サービス・コンポーネントに追加可能なアクティビティが表示されます。アクティビティはビルディング・ブロックです。「コンポーネント・パレット」の「BPELコンストラクト」および「Oracle Extensions」選択項目には、BPELプロセス・サービス・コンポーネントのデザイナにドラッグする一連のアクティビティが表示されます。「コンポーネント・パレット」には、デザイナの状態に関連があるページのみが表示されます。「BPELコンストラクト」または「Oracle Extensions」は、ほぼ常に表示されます。ただし、transformアクティビティでトランスフォーメーションを設計している場合、「コンポーネント・パレット」には、「String Functions」、「Mathematical Functions」、「Node-set Functions」などそのアクティビティに関連する選択項目のみが表示されます。 |
|
デザイナで現在選択しているBPELプロセス・サービス・コンポーネントのデータが構造的に表示されます。このウィンドウから、次のような様々なタスクを実行できます。
|
|
検証およびコンパイルのステータスに関するメッセージが表示されます。BPELプロセス・サービス・コンポーネントで検証が正しく行われるように、次のことを確認する必要があります。
デプロイメントに失敗した場合は、エラーのタイプと場所を示すメッセージが表示されます。 |
|
BPELプロセス・サービス・コンポーネント・ファイル内部の構文が表示されます。アクティビティやパートナ・リンクをドラッグしたり、別のタスクを実行すると、これらのソース・ファイルの構文が即時に更新され、変更内容が反映されます。 |
|
ファイルのリビジョン履歴や、ファイルの読取り専用バージョンと編集可能バージョンが並べて表示されます。 |
|
アクティビティに関する詳細が表示されます。「設計」ウィンドウでアクティビティをシングルクリックすると、詳細が表示されます。 |
注意: これらのセクションの詳細を参照する場合、該当するセクション内にカーソルを置いて[F1]を押し、オンライン・ヘルプを表示することもできます。 |
BPELプロジェクトのバージョン(1.1または2.0)を表示するには、Oracle BPELデザイナの上にあるアイコンをクリックします。図4-3に詳細を示します。
アクティビティは、BPELプロセス・サービス・コンポーネントのビルディング・ブロックです。Oracle BPELデザイナには、BPELプロセス・サービス・コンポーネントにドラッグする一連のアクティビティが用意されています。アクティビティの属性(プロパティ値)を定義するには、そのアクティビティをダブルクリックします。アクティビティを使用すると、BPELプロセス・サービス・コンポーネント内で特定のタスクを実行できます。次に、いくつかの主要なアクティビティの例を示します。
assignアクティビティを使用すると、ある変数の内容を別の変数にコピーするなどのデータの操作を実行できます。図4-4に、assignアクティビティを示します。
invokeアクティビティを使用すると、(パートナ・リンクによって識別された)サービスを起動し、このサービスに対して実行する操作を指定できます。図4-5に、invokeアクティビティを示します。
receiveアクティビティは、サービスからの非同期コールバック・レスポンス・メッセージを待機します。図4-6に、receiveアクティビティを示します。receiveアクティビティは、パートナ・リンクを使用してプロセスが非同期に開始される場合にも使用されます。
図4-7に、プロパティ・ウィンドウ(ここではinvokeアクティビティ)の例を示します。この例では、StoreFrontServiceという名前のパートナ・リンクを起動し、その属性を定義しています。
このinvokeアクティビティを使用すると、サービス(パートナ・リンクで識別)に対して起動する操作を指定できます。操作は、サービスによって指定されたポートでの一方向またはリクエスト/レスポンスです。invokeアクティビティで変数を自動的に作成することも可能です。invokeアクティビティは、同期サービスを起動するか、非同期Webサービスを開始します。
invokeアクティビティは、プロセス内でデータを送受信するためのポートをオープンします。このポートを使用して、必要なデータの送信およびレスポンスの受信を行います。同期コールバックの場合、関数の送受信に必要なポートは1つのみです。
アクティビティの詳細は、付録A「BPELプロセスのアクティビティとサービス」を参照してください。
パートナ・リンクを使用すると、BPELプロセス・サービス・コンポーネントと対話する外部サービスを定義できます。パートナ・リンクは、SOAコンポジット・エディタまたはOracle BPELデザイナのBPELプロセス・サービス・コンポーネント内にサービスまたは参照(JCAアダプタ経由など)として定義できます。図4-8に、パートナ・リンク・アイコン(この例ではCreditCardAuthorizationServiceという名前)を示します。
パートナ・リンク・タイプは、対話において各サービスが果たす役割を定義すること、および対話の中でメッセージを受信するために各サービスが提供するポート・タイプを指定することで、2つのサービス間での対話関係の特性を決定します。
図4-9に、サービスに対するパートナ・リンクの属性の例を示します。
表4-3に、このダイアログの各フィールドを示します。
表4-3 「パートナ・リンクの作成」ダイアログのフィールド
フィールド | 説明 |
---|---|
パートナ・リンクに対して指定する一意のわかりやすい名前です。 |
|
プロセス |
BPELプロセス・サービス・コンポーネント名が表示されます。 |
WSDL URL |
パートナ・リンクに対して選択するWSDLファイルまたはJavaインタフェースの名前と場所。使用するWSDLファイルまたはJavaインタフェースを選択するためにウィンドウにアクセスするには、「SOAサービス・エクスプローラ」アイコン(「WSDL URL」フィールドの左上から2番目のアイコン)をクリックします。 「参照」フォルダの下にjavaEJBの名前とともに表示される選択用のJavaインタフェース。このパートナ・リンクと接続するコンポーネントがWSDLファイルを使用し、Javaインタフェースを選択して「OK」をクリックすると、このコンポーネントにはWSDLインタフェースが必要であることを示すメッセージが表示されます。「はい」をクリックすると、Javaインタフェースに基づいて互換性のあるWSDLファイルが作成されます。 Javaインタフェースを使用するコンポーネントをSOAコンポジット・アプリケーションに統合する方法の詳細は、第49章「Spring Frameworkを使用したSOAコンポジット・アプリケーションへの統合」を参照してください。 |
パートナ・リンク・タイプ |
WSDLファイルで定義したパートナ・リンクです。 |
パートナ・ロール |
パートナ・リンクによって実行されるロールです。 |
マイ・ロール |
BPELプロセス・サービス・コンポーネントが実行するロールです。この場合、BPELプロセス・サービス・コンポーネントは同期プロセスのため、ロールはありません。 |
注意: 「パートナ・リンクの作成」ダイアログの「パートナ・リンク・タイプ」、「パートナ・ロール」および「マイ・ロール」フィールドは、BPEL標準で定義される必須フィールドです。 |
Oracle BPELデザイナのBPELプロセス内にパートナ・リンクを作成する方法は、SOAコンポジット・エディタ上部のパートナ・リンクの表示方法に影響します。この項では、この影響について説明します。WSDLファイルは、ローカル・オペレーティング・システムに配置される場合や、リモートでホストされる場合(この場合はWSDLのURLが必要)があります。
同様に、SOAコンポジット・エディタでサービス・バインディング・コンポーネントまたは参照バインディング・コンポーネントを作成し、BPELプロセス・サービス・コンポーネントに接続すると、パートナ・リンクがOracle BPELデザイナに表示されます。
パートナ・リンクを作成する手順は、次のとおりです。
SOAコンポジット・エディタで、BPELプロセス・サービス・コンポーネントをダブルクリックします。
Oracle BPELデザイナが表示されます。
「コンポーネント・パレット」で、「BPELコンストラクト」を展開します。
図4-10に示すように、パートナ・リンクを適切な「パートナ・リンク」スイムレーンにドラッグします。
「パートナ・リンクの作成」ダイアログが表示されます。
このダイアログの各フィールド(表4-3を参照)を完成します。
次の各項では、パートナ・リンクの作成がSOAコンポジット・エディタに与える影響について説明します。
表4-4に、SOAコンポジット・エディタへの影響を示します。
表4-4 パートナ・リンクの作成がSOAコンポジット・エディタに与える影響
Oracle BPELデザイナでBPELプロセスに作成されるもの | SOAコンポジット・エディタに表示されるもの |
---|---|
アウトバウンド・アダプタのパートナ・リンク |
|
図4-11に、この作成方法を使用するとSOAコンポジット・エディタにどのように表示されるかを示します。
表4-5に、SOAコンポジット・エディタへの影響を示します。
表4-5 パートナ・リンクの作成がSOAコンポジット・エディタに与える影響
Oracle BPELデザイナでBPELプロセスに作成されるもの | SOAコンポジット・エディタに表示されるもの |
---|---|
インバウンド・アダプタのパートナ・リンク |
|
図4-12に、この作成方法を使用するとSOAコンポジット・エディタにどのように表示されるかを示します。
表4-6に、SOAコンポジット・エディタへの影響を示します。
表4-7に、SOAコンポジット・エディタへの影響を示します。
表4-7 パートナ・リンクの作成がSOAコンポジット・エディタに与える影響
Oracle BPELデザイナでBPELプロセスに作成されるもの | SOAコンポジット・エディタに表示されるもの |
---|---|
抽象的なWSDLからサービスを実装するパートナ・リンク |
BPELサービス・コンポーネントのインタフェースおよびコールバック・インタフェースを持つサービス 注意: 指定されたインタフェースおよびコールバック・インタフェースがある外部Simple Object Access Protocol(SOAP)参照がSOAコンポジット・エディタに存在する場合は、新しい外部SOAP参照を作成してその参照に接続することも、既存の外部SOAP参照に接続することもできます。 |
図4-13に、この作成方法を使用するとSOAコンポジット・エディタにどのように表示されるかを示します。
表4-8に、SOAコンポジット・エディタへの影響を示します。
表4-8 パートナ・リンクの作成がSOAコンポジット・エディタに与える影響
Oracle BPELデザイナでBPELプロセスに作成されるもの | SOAコンポジット・エディタに表示されるもの |
---|---|
ヒューマン・タスクまたはビジネス・ルール |
|
図4-14に、この作成方法を使用するとSOAコンポジット・エディタにどのように表示されるかを示します。
表4-9に、SOAコンポジット・エディタへの影響を示します。
表4-9 パートナ・リンクの作成がSOAコンポジット・エディタに与える影響
Oracle BPELデザイナでBPELプロセスに作成されるもの | SOAコンポジット・エディタに表示されるもの |
---|---|
既存のヒューマン・タスク、ビジネス・ルールまたはメディエータ・サービス・コンポーネントをBPELプロセスにドラッグすることによるパートナ・リンク |
|
図4-15に、この作成方法を使用するとSOAコンポジット・エディタにどのように表示されるかを示します。
図4-9に示す「パートナ・リンク」ダイアログを使用すると、Oracle BPEL Process ManagerおよびOracle JDeveloperが提供するもう1つの主要な機能を利用できます。アダプタ構成ウィザードにアクセスするには、図4-16に示す「サービス・ウィザード」アイコンをクリックします。
アダプタにより、BPELプロセス・サービス・コンポーネント(つまり、SOAコンポジット・アプリケーション全体)に、ファイル・システム、FTPサーバー、データベース表、データベース・キュー、ソケット、Java Message Service(JMS)、およびMQへのアクセスが提供されます。HTTPバインディング、直接バインディング、EJBなどのサービスと統合することもできます。このウィザードを使用すると、図4-17に示すサービスとアダプタのタイプを、BPELプロセス・サービス・コンポーネントで使用するように構成できます。
サービス・タイプとアダプタ・タイプの詳細は、第34章「バインディング・コンポーネントの開始」を参照してください。
アダプタ・タイプを選択すると、図4-18に示す「サービス名」ウィンドウで名前を入力するように求められます。この例では、図4-17で、「ファイル・アダプタ」が選択されています。ウィザードが完了すると「アプリケーション・ナビゲータ」に、BPELプロセス・サービス・コンポーネント用のこのサービス名のWSDLファイル(ここではUSPSShipment.wsdlという名前)が表示されます。サービス名はプロジェクト内で一意である必要があります。このファイルには、このウィザードで指定したアダプタ構成設定が含まれます。その他の構成ファイル(ヘッダー・ファイル、アダプタ固有のファイルなど)も作成され、「アプリケーション・ナビゲータ」に表示されます。
「サービス名」ウィンドウの後に表示されるアダプタ構成ウィザードのウィンドウは、選択したアダプタ・タイプによって変わります。
また、SOAコンポジット・エディタ内のサービスまたは参照として、アダプタをSOAコンポジット・アプリケーションに追加できます。
テクノロジ・アダプタの詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
Oracle BPELデザイナ上部の「監視」を選択することで、Oracle BPELデザイナでBPELプロセス・モニターを構成できます。図4-19に詳細を示します。BPELプロセス・モニターでは、データを分析してグラフィカル表示するために、Oracle BAMアダプタを介してデータをOracle BAMに送信できます。
詳細は、第50.3項「Oracle BAM Monitor ExpressとBPELプロセスの併用」を参照してください。