ヘッダーをスキップ
Oracle Fusion Middleware Oracle SOA Suite開発者ガイド
11g リリース1(11.1.1)
B56238-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

A BPELプロセスのアクティビティとサービス

この付録では、SOAコンポジット・アプリケーションでBPELプロセスを設計する際に使用するアクティビティとサービスについて説明します。

項目は次のとおりです。

A.1項 アクティビティおよびコンポーネントの概要

Oracle BPELデザイナの「コンポーネント・パレット」でBPELアクティビティおよびコンポーネントを開くと、アクティビティおよびコンポーネントヘッダーの下にサービス・コンポーネントが表示されます。

図A-1 アクティビティおよびコンポーネント

図A-1の説明は次にあります。
「図A-1 アクティビティおよびコンポーネント」の説明

詳細は、次の各項を参照してください。

A.2 BPELアクティビティの概要

Oracle BPELデザイナには、BPELプロセスにドラッグできるアクティビティが用意されています。これらのアクティビティを使用すると、プロセス内で特定のタスクを実行できます。 この項では、これらのアクティビティについて簡単に概説し、これらのアクティビティの使用方法が説明されている他のドキュメントを参照先として示します。

これらのアクティビティにアクセスするには、Oracle BPELデザイナの「コンポーネント・パレット」でBPELアクティビティおよびコンポーネントを開きます。 BPELアクティビティヘッダーの下に、アクティビティが表示されます。

図A-2 BPELアクティビティ

図A-2の説明は次にあります。
「図A-2 BPELアクティビティ」の説明

アクティビティの詳細は、次のURLにある『Business Process Execution Language for Web Services Specification』を参照してください。

http://www.oasis-open.org

A.2.1 多くのアクティビティに共通のタブ

アクティビティはそれぞれ特定のタスクを実行しますが、同様のタスクを実行できるタブが多くのアクティビティに用意されています。この項では、これらの共通タブについて説明します。

  • 「センサー」タブは、すべてのアクティビティで表示されます。アクティビティの詳細を取得するためのセンサーをここで作成できます。

  • 「相関」タブは、invoke、receive、replyの各アクティビティ、pickアクティビティのonMessageブランチ、およびイベント・ハンドラのonMessage変数で表示されます。相関セットを使用すると、サービス・インスタンスにおける操作の相関グループを明示的に指定できるため、プロセスとそのパートナ間の複雑な相互作用の処理が可能になります。相関トークンのセットは、相関グループのすべてのメッセージで共有されるプロパティのセットとして定義されます。

  • 「プロパティ」タブは、invoke、receive、replyの各アクティビティ、およびpickアクティビティのonMessageブランチで表示されます。 Oracle JCAアダプタで使用するヘッダー変数を作成します。

  • 「注釈」タブはすべてのアクティビティで表示され、コードへのコメントや名前と値のペアの割当てという形でアクティビティを説明するために使用できます。

    Oracle JDeveloperで注釈を使用する際は、次の点に注意してください。

    • Oracle JDeveloperのアクティビティの「注釈」タブには、注釈の順序を変更するための方法が用意されていません。 解決策として、Oracle BPELデザイナでプロジェクトのBPELファイルの「ソース」ビューを使用して注釈の順序を変更します。

    • switchアクティビティのotherwiseブランチでは、注釈を作成できません。ただし、switchアクティビティのcaseブランチには、この機能が用意されています。

これらのタブの詳細は、次を参照してください。

A.2.2 assignアクティビティ

このアクティビティは、ある変数の内容を別の変数にコピーするなどのデータ操作の手段を提供します。このアクティビティには、任意の数の基本的な割当てを含めることができます。

次の図は、「Assign」ダイアログを示しています。次のタスクを実行できます。

  • 「一般」タブをクリックし、assignアクティビティに意味のある名前を付けます。

  • 「コピー操作」タブで「追加」アイコン(図A-3を参照)をクリックし、ドロップダウン・リストから「コピー操作」を選択して「コピー操作の作成」ダイアログにアクセスします。 このアクションにより、「From」フィールドのソース要素(変数、式、XMLフラグメントまたはパートナ・リンク)の内容を「To」フィールドの宛先要素の内容にコピーできます。パート(通常はペイロード)およびXPath問合せ(XML文書の一部をアドレス指定するための言語)も選択できます。 その他に、このリストから「追加操作」「後ろに挿入操作」などの選択項目も使用可能です。

図A-3 「Assign」アクティビティ・ダイアログの「コピー操作」タブ

図A-3の説明は次にあります。
「図A-3 「Assign」アクティビティ・ダイアログの「コピー操作」タブ」の説明

assignアクティビティに複数のbpelx:append設定が含まれる場合は、このアクティビティを2つのassignアクティビティに分割する必要があります。 分割しないと、bpelx:appendがそれぞれリストの最後に移動し、問題が発生する可能性があります。 解決策として、この設定を手動で移動します。

assignアクティビティの詳細は、第7章「BPELプロセスでのXMLデータの操作」を参照してください。

A.2.3 bind entityアクティビティ

このアクティビティを使用すると、エンティティ変数を選択できます。エンティティ変数は、様々なデータ・プロバイダ・サービス・テクノロジにアクセスし、プラグインするためのデータ・ハンドルとして機能します。

エンティティ変数は、サービス・データ・オブジェクト(SDO)ベースのデータを使用して、Oracle Application Development Framework(ADF)Business Componentデータ・プロバイダ・サービスと一緒に使用できます。 エンティティ変数を使用すると、基礎となるデータ・プロバイダ・サービスがBPELデータ操作を実行するように指定できます。データ・プロバイダ・サービスはデータ・ストア内でデータ操作をバックグラウンドで実行しますが、Oracle BPEL Process Manager提供の他のデータ・ストア関連の機能(たとえば、データベース・アダプタ)を使用しません。この操作により、BPEL Process Managerの実行時パフォーマンスを高め、コンパイルおよび実行時に、基礎となるデータ・プロバイダ・サービスのネイティブの機能を組み込みます。

図A-4 「Bind Entity」ダイアログ

図A-4の説明は次にあります。
「図A-4 「Bind Entity」ダイアログ」の説明

A.2.4 compensateアクティビティ

このアクティビティは、正常に完了している内側のscopeアクティビティでの補正を起動します。このアクティビティを起動できるのは、フォルト・ハンドラまたは別の補正ハンドラの中からのみです。 補正は、プロセスでいくつかの操作を完了できず、その他の操作は完了している場合に行われます。プロセスは、以前に完了した操作に戻り、それらを元に戻す必要があります。たとえば、あるプロセスがレンタカー、ホテルおよび航空券を予約するように設計されているとします。 レンタカーとホテルを予約しましたが、正しい日付の航空券を予約できません。この場合、レンタカーとホテルの予約を取り消すことで補正を実行します。compensateアクティビティ(補正ハンドラが起動されるスコープを指定)で補正ハンドラが起動されます。

図A-5は、「Compensate」ダイアログを示しています。次のタスクを実行できます。

  • 「一般」タブをクリックし、アクティビティに意味のある名前を付けます。

  • 補正ハンドラを起動するscopeアクティビティを選択します。

図A-5 「Compensate」ダイアログ

図A-5の説明は次にあります。
「図A-5 「Compensate」ダイアログ」の説明

compensateアクティビティの詳細は、第12.10項「一連の操作を元に戻した後の補正の使用」を参照してください。

A.2.5 create entity

このアクティビティを使用すると、エンティティ変数を作成できます。 エンティティ変数は、サービス・データ・オブジェクト(SDO)ベースのデータを使用して、Oracle ADF Business Componentデータ・プロバイダ・サービスと一緒に使用できます。

図A-6 「Create Entity」ダイアログ

図A-6の説明は次にあります。
「図A-6 「Create Entity」ダイアログ」の説明

詳細は、第7.2項「データ・プロバイダ・サービスへのXMLデータ操作の委任」を参照してください。

A.2.6 emailアクティビティ

このアクティビティを使用すると、イベントに関する電子メール通知を送信できます。

たとえば、オンライン書店のオンライン・ショッピング・ビジネス・プロセスで、商品を出荷した後、ユーザーに儀礼的な電子メール・メッセージを送信するとします。ビジネス・プロセスは、ユーザーIDおよび通知メッセージを指定して通知サービスをコールします。 通知サービスは、Oracle Internet Directoryから電子メール・アドレスを取得します。

図A-7は、「Email」ダイアログを示しています。

図A-7 「Email」ダイアログ

図A-7の説明は次にあります。
「図A-7 「Email」ダイアログ」の説明

emailアクティビティの詳細は、第16.3.1項「電子メール通知チャネルの構成方法」を参照してください。

A.2.7 emptyアクティビティ

このアクティビティを使用すると、操作なしの命令をプロセスに挿入できます。 このアクティビティは、何もしないアクティビティを使用する必要がある場合(フォルトを捕捉して抑止する必要がある場合など)に便利です。

図A-8は、「Empty」ダイアログを示しています。

図A-8 「Empty」ダイアログ

図A-8の説明は次にあります。
「図A-8 「Empty」ダイアログ」の説明

emptyアクティビティの詳細は、第12.9.7項「操作なしの命令をビジネス・プロセスに挿入するemptyアクティビティの作成方法」を参照してください。

A.2.8 flowアクティビティ

このアクティビティを使用すると、1つ以上のアクティビティを同時に実行するように指定できます。flowアクティビティは、フロー内のすべてのアクティビティが処理を終了したときに完了します。flowアクティビティが完了しても、許可条件がfalseの場合はスキップされている可能性があります。

たとえば、flowアクティビティを使用して、2つの融資斡旋業者(United LoanサービスおよびStar Loanサービス)をパラレルで起動できるようにするとします。この場合、flowアクティビティには2つのパラレル・アクティビティ(United Loanサービスを起動するシーケンスとStar Loanサービスを起動するシーケンス)が含まれます。各サービスは、任意の時間をかけて融資プロセスを完了できます。

図A-9に、パラレル処理用の2つのパネルを持つ初期flowアクティビティを示します。 アクティビティを両方のパネルにドラッグしてパラレル処理を作成します。 完了したflowアクティビティは図A-10のようになります。

図A-9 「Flow」ダイアログ(作成時)

図A-9の説明は次にあります。
「図A-9 「Flow」ダイアログ(作成時)」の説明

図A-10 「Flow」ダイアログ(設計完了後)

図A-10の説明は次にあります。
「図A-10 「Flow」ダイアログ(設計完了後)」の説明


注意:

OracleのBPEL実装では、個別のスレッドではなく、BPELプロセスの同一で単一の実行スレッドでフローが実行されます。

flowアクティビティの詳細は、第10.2項「パラレル・フローの作成」を参照してください。

A.2.9 flowNアクティビティ

このアクティビティを使用すると、Nの値に等しい複数のフローを作成できます。この値は、使用可能なデータおよびプロセス内のロジックに基づいて実行時に定義されます。索引変数は、Nの値に到達するまで、新しいブランチが作成されるたびに増分されます。

図A-11は、「FlowN」ダイアログを示しています。

図A-11 「FlowN」ダイアログ

図A-11の説明は次にあります。
「図A-11 「FlowN」ダイアログ」の説明

flowNアクティビティの詳細は、第10.3項「flowNアクティビティを使用したflowアクティビティ数のカスタマイズ」を参照してください。

A.2.10 IMアクティビティ

このアクティビティを使用すると、非同期のインスタント・メッセージ(IM)通知をユーザー、グループまたは宛先アドレスに自動的に送信できます。次の図は、「IM」ダイアログを示しています。

図A-12 「IM」ダイアログ

図A-12の説明は次にあります。
「図A-12 「IM」ダイアログ」の説明

詳細は、第16.3.2項「IM通知チャネルの構成方法」を参照してください。

A.2.11 invokeアクティビティ

このアクティビティを使用すると、サービス(パートナ・リンクで識別)に対して起動する操作を指定できます。操作は、サービスによって指定されたポートでの一方向またはリクエスト/レスポンスです。invokeアクティビティで変数を自動的に作成することも可能です。 invokeアクティビティは、同期Webサービスを起動するか、非同期Webサービスを開始します。

invokeアクティビティは、プロセス内でデータを送受信するためのポートをオープンします。このポートを使用して、必要なデータの送信およびレスポンスの受信を行います。同期コールバックの場合、関数の送受信に必要なポートは1つのみです。

invokeアクティビティは、bpelx:inputPropertyおよびbpelx:outputPropertyをサポートし、SOAPヘッダーを介したプロパティの受渡し、および有用な情報に関するSOAランタイム・システム・プロパティ(tracking.compositeInstanceIdtracking.conversationIdなど)の取得を容易にします。

図A-13は、「Invoke」ダイアログを示しています。次のタスクを実行できます。

  • アクティビティに意味のある名前を付けます。

  • 操作を指定するパートナ・リンクを選択します。

  • 実行する操作を選択します。

  • データ(ペイロード)をトランスポートするための変数を自動的に作成するか、既存の変数を選択します。

図A-13 「Invoke」ダイアログ

図A-13の説明は次にあります。
「図A-13 「Invoke」ダイアログ」の説明

invokeアクティビティの詳細は、次を参照してください。

A.2.12 Java Embeddingアクティビティ

このアクティビティを使用すると、Java BPEL execの拡張要素である<bpelx:exec>を使用してBPELプロセスにカスタムJavaコードを追加できます。 この方法は、関数を実行できるJavaコードが存在していて、最初からコーディングしなおすのではなくこの既存のコードを使用する場合に役立ちます。

図A-14は、「Java Embeddingの編集」ダイアログを示しています。

図A-14 「Java Embeddingの編集」ダイアログ

図A-14の説明は次にあります。
「図A-14 「Java Embeddingの編集」ダイアログ」の説明

Java Embeddingアクティビティの詳細は、第13章「BPELプロセスへのJavaおよびJava EEコードの組込み」を参照してください。

A.2.13 phaseアクティビティ

このアクティビティは、BPELプロセスと統合するためのOracle Mediatorおよびビジネス・ルール・サービス・コンポーネントを作成します。 メッセージ・リクエストの入力変数およびメッセージ・レスポンスの出力変数を作成し、BPELプロセスの変数のコンテンツを評価するビジネス・ルールを設計します。

これらのタスクを完了すると、次のアクティビティとサービス・コンポーネントが作成されます。

  • assignアクティビティ: メッセージ・リクエストの入力変数およびメッセージ・レスポンスの出力変数が含まれます。

  • invokeアクティビティ: BPELプロセスでOracle Mediatorパートナ・リンクを起動するように自動的に設計されます。

  • Oracle Mediatorパートナ・リンク: メッセージ・リクエストの入力変数を、このBPELプロセスが含まれるSOAコンポジット・アプリケーションのビジネス・ルール・サービス・コンポーネントにルーティングするように自動的に設計されます。ビジネス・ルール・サービス・コンポーネントはSOAコンポジット・エディタに表示されます。Oracle Mediatorもサービス・コンポーネントとしてSOAコンポジット・エディタに表示されます。

  • ビジネス・ルール・サービス・コンポーネント: メッセージ・リクエストの入力変数のコンテンツを評価し、メッセージ・レスポンスの出力変数の結果をOracle Mediatorに戻します。 Oracle Mediatorはルーティングを決定し、メッセージを適切なターゲット宛先にルーティングします。

図A-15は、「Phase」ダイアログを示しています。

図A-15 「Phase」ダイアログ

図A-15の説明は次にあります。
「図A-15 「Phase」ダイアログ」の説明

A.2.14 pickアクティビティ

このアクティビティは、イベント・セット内の特定イベントの発生を待機し、そのイベントに関連するアクティビティを実行します。多くの場合、イベントの発生は相互に排他的です(プロセスは承認メッセージと却下メッセージの両方ではなくどちらかを受信します)。 複数のイベントが発生した場合、実行するアクティビティは、どちらのイベントが先に発生したかに基づいて選択されます。イベントがほとんど同時に発生した場合は競争になり、実行するアクティビティはタイミングと実装の両方に基づいて選択されます。

pickアクティビティには2つのブランチがあり、それぞれに条件があります。 「Pick」アイコンをダブルクリックすると、図A-16に示すように、アクティビティと次の2つのブランチが表示されます。

  • onMessage(左側)

    (融資サービスなどから)リプライを受信するためのコードが含まれています。

  • onAlarm(右側)

    タイムアウト(1分後など)のコードが含まれています。

先に完了したブランチが実行されます。もう一方のブランチは実行されません。最初に条件が満たされたブランチが実行されます。

図A-16 「Pick」ダイアログ

図A-16の説明は次にあります。
「図A-16 「Pick」ダイアログ」の説明

onMessageブランチに相関を追加すると、assignアクティビティ構文の下に相関構文が配置されます。しかし、相関構文は、assignアクティビティの上に配置する必要があります。

これを解決するには、次の手順を実行します。

  1. Oracle JDeveloperで相関セットを作成します。

  2. この相関セットをonMessageブランチに割り当てます。

  3. 残りの設計タスクを完了します。

  4. BPELソース・コード内で相関構文をassignアクティビティの前に移動してから、BPELプロセスを作成またはデプロイします。

pickアクティビティの詳細は、次を参照してください。

A.2.15 receiveアクティビティ

このアクティビティでは、情報の受信先となるパートナ・リンクと、起動するパートナ・リンクのポート・タイプおよび操作を指定します。このアクティビティは、サービス(融資申請の承認サービスなど)からの非同期コールバック・レスポンス・メッセージを待機します。待機中のBPELプロセスは、コールバック・メッセージが到着するまでデハイドレーション(圧縮して格納)されます。このレスポンスの内容は、プロセスのレスポンス変数に格納されます。

receiveアクティビティは、bpelx:property拡張機能をサポートし、SOAPヘッダーを介したプロパティの受渡し、および有用な情報に関するSOAランタイム・システム・プロパティ(tracking.compositeInstanceIdtracking.conversationIdなど)の取得を容易にします。

図A-17は、「Receive」ダイアログを示しています。次のタスクを実行できます。

  • 意味のある名前を付けます。

  • 操作を指定するパートナ・リンク・サービスを選択します。

  • 実行する操作を選択します。

  • コールバック・レスポンスをトランスポートするための変数を自動的に作成するか、既存の変数を選択します。

図A-17 「Receive」ダイアログ

図A-17の説明は次にあります。
「図A-17 「Receive」ダイアログ」の説明

receiveアクティビティの詳細は、次を参照してください。

A.2.16 receive signalアクティビティ

このアクティビティは、詳細プロセスではマスター・プロセスからの処理開始の通知シグナルを待機するために使用し、マスター・プロセスではすべての詳細プロセスからの処理の完了を示す通知シグナルを待機するために使用します。

図A-18 「Receive Signal」ダイアログ

図A-18の説明は次にあります。
「図A-18 「Receive Signal」ダイアログ」の説明

詳細は、第15章「マスター・プロセスと詳細プロセスの調整」を参照してください。

A.2.17 remove entityアクティビティ

このアクティビティを使用すると、エンティティ変数を削除できます。 このアクションによって行が削除されます。次の図は、「Remove Entity」ダイアログを示しています。

図A-19 Remove Entity

図A-19の説明は次にあります。
「図A-19 Remove Entity」の説明

A.2.18 replyアクティビティ

このアクティビティでは、receiveアクティビティで受信したメッセージに応答するメッセージを送信できます。receiveアクティビティとreplyアクティビティを組み合せると、プロセスのWSDLポート・タイプでのリクエスト/レスポンス操作が形成されます。

図A-20は、「Reply」ダイアログを示しています。

図A-20 「Reply」ダイアログ

図A-20の説明は次にあります。
「図A-20 「Reply」ダイアログ」の説明

replyアクティビティの詳細は、次を参照してください。

A.2.19 scopeアクティビティ

このアクティビティは、独自のローカル変数、フォルト・ハンドラ、補正ハンドラなどを含めることができる、ネストされたアクティビティの集合で構成されます。scopeアクティビティは、プログラミング言語の{ }ブロックに似ています。

各スコープには、その動作を定義するプライマリ・アクティビティがあります。プライマリ・アクティビティは、多数のアクティビティが任意の深さにネストされている複雑な構造化アクティビティでもかまいません。スコープは、すべてのネストされたアクティビティによって共有されます。

図A-21は、「Scope」ダイアログを示しています。scopeアクティビティ内に適切なアクティビティを定義します。

図A-21 「Scope」ダイアログ

図A-21の説明は次にあります。
「図A-21 「Scopeダイアログ」」の説明

フォルト処理はscopeアクティビティに関連付けられています。その目的は、フォルトが発生したscopeアクティビティの失敗した不完全な処理を元に戻すことです。scopeアクティビティでcatchアクティビティを定義すると、カスタム・フォルト処理アクティビティのセットを作成できます。各catchアクティビティは、特定のタイプのフォルトを捕捉するように定義します。

図A-22に、scopeアクティビティ内の「Catchブランチの追加」アイコンを示します。 図A-23は、「Catchブランチの追加」アイコンをクリックすると表示されるcatchアクティビティ領域を示しています。 「アクティビティをここにドロップ」という領域に、追加のアクティビティをドラッグし、例外の捕捉と管理を行うフォルト処理ロジックを作成します。

たとえば、顧客は融資を申請する際に、信用格付けサービスに社会保障番号を提示します。この番号を使用して信用調査が行われます。信用履歴に問題があることが確認された場合や、社会保障番号が無効であると認識された場合は、catchアクティビティ内のassignアクティビティにより、融資提案が却下されたことが顧客に通知されます。融資申請プロセス全体がterminateアクティビティで終了します。

図A-22 Catchブランチの作成

図A-22の説明は次にあります。
「図A-22 Catchブランチの作成」の説明

図A-23 Catchアクティビティ・アイコン

図A-23の説明は次にあります。
「図A-23 Catchアクティビティ・アイコン」の説明

scopeアクティビティおよびフォルト処理の詳細は、次を参照してください。

A.2.20 sequenceアクティビティ

このアクティビティを使用すると、順に実行するアクティビティの集合を定義できます。たとえば、次のアクティビティを特定の順序で実行できます。

  • receiveアクティビティで顧客リクエストを受信します。

  • 同時動作を可能にするflowアクティビティ内でリクエストを処理します。

  • replyアクティビティで、リクエストの最終承認ステータスを含むリプライ・メッセージを顧客に戻します。

sequenceアクティビティでは、リクエストを妥当な時間内に処理できると想定しています。この想定により、インボーカが同期レスポンスを待機する必要性が正当化されます(このサービスがリクエスト/レスポンス操作として提供されるため)。

この想定ができない場合は、顧客との相互作用を非同期メッセージ交換のペアとして定義することをお薦めします。

「Sequence」アイコンをダブルクリックすると、図A-24に示すアクティビティ領域が表示されます。 sequenceアクティビティ内に適切なアクティビティをドラッグして定義します。

図A-24 sequenceアクティビティ

図A-24の説明は次にあります。
「図A-24 sequenceアクティビティ」の説明

sequenceアクティビティの詳細は、次を参照してください。

A.2.21 signalアクティビティ

このアクティビティは、マスター・プロセスでは実行時に処理を実行するように詳細プロセスに通知するために使用し、詳細プロセスでは処理が完了したことをマスター・プロセスに通知するために使用します。次の図は、「Signal」ダイアログを示しています。

図A-25 「Signal」ダイアログ

図A-25の説明は次にあります。
「図A-25 「Signal」ダイアログ」の説明

詳細は、第15章「マスター・プロセスと詳細プロセスの調整」を参照してください。

A.2.22 SMSアクティビティ

このアクティビティを使用すると、イベントに関するショート・メッセージ・サービス(SMS)通知を送信できます。

図A-26は、「SMS」ダイアログを示しています。

図A-26 「SMS」ダイアログ

図A-26の説明は次にあります。
「図A-26 「SMS」ダイアログ」の説明

SMSアクティビティの詳細は、第16.3.3項「SMS通知チャネルの構成方法」を参照してください。


注意:

faxアクティビティおよびpagerアクティビティは、11g リリース(11.1.1)ではサポートされていません。

A.2.23 switchアクティビティ

このアクティビティは、caseブランチに定義された1つ以上の条件付きブランチ(オプションでotherwiseブランチが続く)の順序付きリストで構成されます。ブランチは、出現順に考慮されます。条件がtrueである最初のブランチが選択され、switchに対して実行されるアクティビティを提供します。条件付きブランチが選択されない場合は、otherwiseブランチが選択されます。otherwiseブランチが明示的に指定されていない場合は、emptyアクティビティがあるotherwiseブランチが使用可能とみなされます。選択されたブランチのアクティビティが完了すると、switchアクティビティは完了します。

switchアクティビティは、flowアクティビティとは機能的に異なります。たとえば、flowアクティビティを使用すると、1つのプロセスで2つの融資提案を同時に収集できますが、それぞれの値は比較されません。2つの提案の値を比較して決定を下すには、switchアクティビティを使用します。定義された条件(caseブランチ内)が満たされると、最初のブランチが実行されます。条件が満たされない場合はotherwiseブランチが実行されます。

図A-27に、次のブランチが定義されたswitchアクティビティを示します。

図A-27 switchアクティビティ

図A-27の説明は次にあります。
「図A-27 switchアクティビティ」の説明

switchアクティビティの詳細は、次を参照してください。

A.2.24 terminateアクティビティ

terminateアクティビティを使用すると、アクティビティのタスク(catchブランチのフォルト処理タスクなど)を終了できます。たとえば、顧客の信用履歴に問題があることが確認された場合や、社会保障番号が無効であると認識された場合は、融資申請プロセスが終了し、顧客の融資申請の申込書は融資サービス業者に提出されません。

図A-28に、switchアクティビティのotherwiseブランチにある複数のterminateアクティビティを示します。

図A-28 terminateアクティビティ

図A-28の説明は次にあります。
「図A-28 terminateアクティビティ」の説明

terminateアクティビティの詳細は、第12.11項「terminateアクティビティによるビジネス・プロセス・インスタンスの停止」を参照してください。

A.2.25 throwアクティビティ

このアクティビティは、ビジネス・プロセス内からフォルトを生成します。

図A-29は、「Throw」ダイアログを示しています。

図A-29 「Throw」ダイアログ

図A-29の説明は次にあります。
「図A-29 「Throw」ダイアログ」の説明

throwアクティビティの詳細は、第12.7項「内部フォルトのスロー」を参照してください。

A.2.26 transformアクティビティ

このアクティビティを使用すると、ソース要素をターゲット要素にマップ(たとえば、受信した注文書データを送信する注文確認書データにマップ)するトランスフォーメーションを作成できます。

図A-30は、「Transform」ダイアログを示しています。 このダイアログでは、次のタスクを実行できます。

  • マップするソースおよびターゲットの変数とパートを定義します。

  • トランスフォーメーション・マッパー・ファイルを指定します。

  • 「マッパー・ファイル」フィールドの右側にある2番目のアイコン(「追加」アイコン)をクリックして、XSLTマッパーにアクセスします。XSLTマッパーで、新規のXSLファイルを作成し、ソース要素とターゲット要素をグラフィカルにマッピングします。 既存のXSLファイルを編集する場合は、「編集」アイコン(3番目のアイコン)をクリックします。

図A-30 「Transform」ダイアログ

図A-30の説明は次にあります。
「図A-30 「Transform」ダイアログ」の説明

transformアクティビティの詳細は、第45章「XSLTマッパーを使用したトランスフォーメーションの作成」を参照してください。

A.2.27 user notification

このアクティビティを使用すると、設計時に通知チャネルを明示的に選択せずに、通知を送信する必要性のみを示すBPELプロセスを設計できます。通知の送信に使用するチャネルは、Oracle User Messaging Serviceのユーザー・メッセージング・プリファレンス・ユーザー・インタフェースでエンド・ユーザーが定義したプリファレンスに基づいて、実行時に決定されます。 したがって、通知チャネルの選択権は、Oracle BPELデザイナからエンド・ユーザーに移動します。 エンド・ユーザーが優先チャネルまたはルールを選択していない場合、そのユーザーへの通知の送信には、デフォルトで電子メールが使用されます。次の図は、「User Notification」ダイアログを示しています。

図A-31 「User Notification」ダイアログ

図A-31の説明は次にあります。
「図A-31 「User Notification」ダイアログ」の説明

A.2.28 voiceアクティビティ

このアクティビティを使用すると、イベントに関する電話ボイス通知を送信できます。

図A-32は、「Voice」ダイアログを示しています。

図A-32 「Voice」ダイアログ

図A-32の説明は次にあります。
「図A-32 「Voice」ダイアログ」の説明

voiceアクティビティの詳細は、第16.3.4項「ボイス通知チャネルの構成方法」を参照してください。

A.2.29 waitアクティビティ

このアクティビティでは、一定期間内、または特定の期限に達するまでの遅延を指定できます。このアクティビティの典型的な用途は、一定の時間に操作を起動することです。 このアクティビティを使用すると、指定された期間、または指定された時刻まで待機できます。有効期限条件を1つのみ指定する必要があります。

図A-33は、「Wait」ダイアログを示しています。

図A-33 「Wait」ダイアログ

図A-33の説明は次にあります。
「図A-33 「Wait」ダイアログ」の説明

waitアクティビティの詳細は、第14.3項「有効期限を設定するwaitアクティビティの作成」を参照してください。

A.2.30 whileアクティビティ

このアクティビティは、指定された反復アクティビティの繰返し実行をサポートします。反復アクティビティは、特定のwhile条件がtrueでなくなるまで繰り返されます。

図A-34は、「While」ダイアログを示しています。 このダイアログで式を入力できます。

図A-34 「While」ダイアログ

図A-34の説明は次にあります。
「図A-34 「While」ダイアログ」の説明

whileアクティビティの詳細は、第11.3項「whileアクティビティの作成による条件分岐の定義」を参照してください。

A.3 BPELサービスの概要

BPELプロセスは、Webサービス、JCAアダプタ、Oracle B2Bサービス、Oracle Business Activity Monitoringおよびパートナ・リンクを介して、Webベースのアプリケーションおよびクライアントと通信できます。

これらのサービスにアクセスするには、Oracle BPELデザイナの「コンポーネント・パレット」でBPELアクティビティおよびコンポーネントを開きます。 「BPELサービス」を開いて、サービスを表示します。

図A-35 BPELサービス

図A-35の説明は次にあります。
「図A-35 BPELサービス」の説明

次の各項で説明するアダプタの詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。

A.3.1 AQアダプタ

このアダプタは、デキュー(インバウンド)およびエンキュー(アウトバウンド)の両方のメッセージ・アダプタとして機能します。インバウンド方向では、このアダプタはメッセージを宛先からデキューできるようにキューをポーリングします。アウトバウンド方向では、サブスクライバがデキューできるようにメッセージをキューにエンキューします。

A.3.2 Oracle B2B

このアダプタを使用すると、メタデータ・サービス(MDS)リポジトリのB2Bメタデータを参照したり、文書定義を選択することができます。

Oracle B2Bは、組織と外部取引パートナ間における安全で信頼できるトランザクション交換を可能にするE-Commerceゲートウェイです。 Oracle B2BおよびOracle SOA Suiteは、セキュリティ、準拠、可視性および管理の問題に対処するインフラストラクチャ内でプロセス・オーケストレーション、エラー低減、データ・トランスレーションとデータ・トランスフォーメーションを必要とするE-Commerceビジネス・プロセス用に設計されています。

詳細は、『Oracle Fusion Middleware User's Guide for Oracle B2B』を参照してください。

A.3.3 Oracle BAMアダプタ

このアダプタは、Java EEアプリケーションをOracle BAM Serverと統合してデータを送信します。 また、SOAコンポジット・アプリケーションで参照バインディング・コンポーネントとして使用されます。

詳細は、『Oracle Fusion Middleware User's Guide for Oracle Business Activity Monitoring』および第VI部「Oracle Business Activity Monitoringの使用」を参照してください。

A.3.4 データベース・アダプタ

このアダプタを使用すると、BPELプロセスでJDBCを介してOracleデータベースやサード・パーティ・データベースと通信できます。既存のリレーショナル・スキーマにアクセスするには、アダプタ構成ウィザードを使用して次の操作を実行します。

  • リレーショナル・スキーマをインポートし、XMLスキーマ(XSD)としてマップします。

  • SELECTINSERTおよびUPDATEなどのSQL操作をWebサービスとして抽出します。

BPELプロセスでXMLを処理してWebサービスを起動する間に、データベースの行と値の問合せ、挿入および更新が実行されます。

A.3.5 ファイル・アダプタ

このアダプタは、インバウンドおよびアウトバウンドの両方のアダプタとして機能します。インバウンド方向では、このアダプタは取得して処理するファイルをディレクトリ内でポーリングします。アウトバウンド方向では、ディレクトリにファイルを作成します。

A.3.6 FTPアダプタ

このアダプタは、インバウンドおよびアウトバウンドの両方のアダプタとして機能します。インバウンド方向では、このアダプタは取得して処理するファイルをディレクトリ内でポーリングします。アウトバウンド方向では、ディレクトリにファイルを作成します。

A.3.7 JMSアダプタ

このアダプタは、消費(インバウンド)および発行(アウトバウンド)の両方のメッセージ・アダプタとして機能します。インバウンド方向では、このアダプタはJMS宛先からのメッセージをポーリング(消費)します。アウトバウンド方向では、JMS宛先にメッセージを送信(発行)します。

A.3.8 MQアダプタ

このアダプタは、BPELプロセスとIBM MQSeriesメッセージ・ソフトウェアの間のメッセージ交換機能を提供します。

A.3.9 Oracle Applications

このアダプタは、Oracle Applicationsへの包括的な双方向、マルチモードの同期接続と非同期接続を提供します。 このアダプタはOracle Applicationsリリース11.5.1から12までのモジュールをすべてサポートしています。インタフェース表、ビュー、Application Program Interface(API)およびXMLゲートウェイを介して、Oracle Applicationsへのリアルタイムの双方向の接続性を提供します。また、インタフェース表とAPIを使用してOracle Applicationsにデータを挿入します。このアダプタは、Oracle Applicationsからデータを取得するためにビューを使用します。また、Oracle Applicationsとの双方向統合にXMLゲートウェイを使用します。 XMLゲートウェイは、Oracle Applicationsとの間でOpen Application Group Integration Specification(OAGIS)準拠のドキュメントの挿入と受信にも使用されます。

A.3.10 パートナ・リンク(Webサービス/アダプタ)

このサービスを使用すると、プロセスが相互作用する外部サービスを定義できます。 パートナ・リンク・タイプは、対話において各サービスが果たす役割を定義すること、および対話の中でメッセージを受信するために各サービスが提供するポート・タイプを指定することで、2つのサービス間での対話関係の特性を決定します。たとえば、信用格付けサービスおよび2つの融資斡旋業者サービス(United LoanおよびStar Loan)と相互作用するプロセスを作成する場合、3つのサービスすべてにパートナ・リンクを作成します。

図A-36は、「パートナ・リンク」ダイアログを示しています。次の詳細を指定します。

  • サービスの意味のある名前。

  • 外部サービスのWeb Services Description Language(WSDL)ファイル。

  • 実際のサービス・タイプ(パートナ・リンク・タイプとして定義)。

  • サービスのロール(パートナ・ロールとして定義)。

  • サービスをリクエストするプロセスのロール(マイ・ロールとして定義)。

図A-36 「パートナ・リンク」アクティビティ

図A-36の説明は次にあります。
「図A-36 「パートナ・リンク」アクティビティ」の説明

パートナ・リンクの詳細は、次を参照してください。

A.3.11 ソケット・アダプタ

このアダプタを使用すると、TCP/IPソケットを介した通信用の標準または非標準プロトコルをモデル化できます。 このアダプタを使用してクライアントまたはサーバーのソケットを作成し、接続を確立できます。 テキストまたはバイナリのデータを転送できます。

A.4 Oracle Service Registryの公開および参照

Oracle Service Registry(OSR)では、Webサービスを公開したり、Webサービスの情報を検出するための共通の標準が提供されます。 この項では、OSRを使用するようにOracle SOA Suite環境を構成する方法について説明します。

Oracle SOA Suiteでは、次のバージョンのOSRを使用できます。

A.4.1 ビジネス・サービスの公開方法

この項では、ビジネス・サービスの公開方法の概要を説明します。 手順の詳細は、次のURLにあるドキュメントを参照してください。

http://www.oracle.com/technology/tech/soa/uddi/index.html

ビジネス・サービスを公開する手順は、次のとおりです。

  1. 次のURLにあるレジストリ・コントロールに移動します。

    http://hostname:port/registry/uddi/web
    
  2. 「パブリッシュ」「WSDL」の順にクリックします。

  3. プロンプトが表示された時点でログインします。

  4. アクセス・ポイントのURLを指定してビジネス・サービスのWSDLを公開するために、このページの各フィールドを完了します。

A.4.2 バインディング・テンプレートの追加方法

デフォルトでは、OSRにWebサービスを公開すると、HTTPタイプのバインディングが作成されます。 バージョン10.1.3のOracle JDeveloperの場合は、これによってWSDLを参照できます。 ただし、リリース11g R1の場合は、wsdlDeploymentタイプの追加のバインディング・テンプレートを作成する必要があります。 SOAインフラストラクチャでは、orauddiプロトコルを使用してOSRと通信し、WSDL URLを取得します。

バインディング・テンプレートを追加する手順は、次のとおりです。

  1. 公開するビジネス・サービスを右クリックし、「バインディングの追加」を選択します。

  2. アクセス・ポイント(例: http://hostname:port/Proj_ep?WSDL)を追加します。 アクセス・ポイントはサービスのWSDL URLです。

  3. 使用タイプリストで「wsdlDeployment」を選択します。

  4. 「バインディングの追加」をクリックします。

  5. 「保存」をクリックします。 これで、サービスはレジストリに公開され、orauddiプロトコルが構成されました。

A.4.3 レジストリへの接続の作成方法

レジストリへの接続を作成する手順は、次のとおりです。

  1. Oracle JDeveloperに移動します。

  2. 「ファイル」「新規」「接続」「UDDIレジストリ接続」の順に選択して、UDDI接続を作成します。

  3. 接続名を入力します。

  4. 照会エンドポイントURLを入力します。次に例を示します。

    http://myhost.us.oracle.com:7001/registry/uddi/inquiry
    
  5. 「ビジネス・ビュー」ラジオ・ボタンが必ず選択されているようにします。

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

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

  8. 成功した場合は、「終了」をクリックします。 成功しなかった場合は、「戻る」ボタンをクリックし、エラーを修正します。

A.4.4 SOAプロジェクトを構成してレジストリからサービスを起動する方法

SOAプロジェクトを構成してレジストリからサービスを起動する手順は、次のとおりです。

  1. ビジネス・サービスへの参照を作成するSOAプロジェクトを開きます。

  2. 「Webサービス」アイコンを「外部サービス」スイムレーンにドラッグします。

    「Webサービスの作成」ダイアログが表示されます。

  3. 「WSDL URL」フィールドの右側にある最初のアイコンをクリックし、WSDLを選択します。

  4. 上部のリストから「リソース・パレット」を選択します。

  5. ナビゲーション・ツリーを開きます。

  6. 「UDDIレジストリ」「ビジネス・サービス」の順に開きます。

  7. 公開したビジネス・サービスを選択して、「OK」をクリックします。


    注意:

    no wsdlDeployment binding in UDDIメッセージが表示された場合は、A.4.2項「バインディング・テンプレートの追加方法」で説明した追加のバインディング・テンプレートが追加されていないことを意味します。

  8. 「Webサービスの作成」ダイアログの残りのフィールドを完成し、「OK」をクリックします。

  9. 適切なサービス・コンポーネントを使用して参照に接続します。

  10. 必要に応じて追加のモデリングを実行します。

  11. SOAコンポジット・エディタで「ソース」をクリックします。

    composite.xmlファイルでは、orauddiプロトコル・タグ内にserviceKeyが格納されます。 エンドポイントURLはSOAコンポジット・アプリケーションに格納されません。 SOAインフラストラクチャの再起動時にorauddiキーが解決され、レジストリからエンドポイントURLが取得されます。 各WSDLにはそれぞれ固有のサービス・キーがあります。

    <property name="oracle.soa.uddi.serviceKey" type="xs:string"
       many="false">uddi:bc2785c0-350c-11de-94cb-1c7f0d2094c6</property>
    

A.4.5 ランタイムの照会URLの構成方法

ランタイムの照会URLを構成する手順は、次のとおりです。

  1. Oracle Enterprise Manager Fusion Middleware Controlコンソールにログインします。

  2. 「SOAインフラストラクチャ」メニューから、「SOA管理」「共有プロパティ」の順に選択します。

  3. UDDIレジストリ接続の作成ウィザードで指定したUDDI照会URLを指定します。

    http://myhost.us.oracle.com:7001/registry/uddi/inquiry
    

    注意:

    ユーザー名とパスワードは入力しないでください。 ユーザー名とパスワードは、OSRのセキュアなHTTP構成でのみ使用します。

  4. 「適用」をクリックします。

  5. Oracle Enterprise Manager Fusion Middleware Controlコンソールを終了します。

  6. エンドポイントの統計を表示するために、レジストリ・コントロールに戻ります。

  7. 管理ページに移動し、キャッシュされていない場合(最初)の起動数の増加を確認します。

    デフォルトでは、実行時にエンドポイントのWSDL URLのキャッシュが発生します。 orauddiプロトコルを使用してエンドポイントのWSDL URLが解決された場合、後続の起動では、WSDL URLはOSRからではなくキャッシュから取得されます。 キャッシュから取得したエンドポイントのWSDLにアクセスできない場合は、キャッシュがリフレッシュされて、新規エンドポイントのWSDLの場所を取得するためにOSRに接続されます。 Oracle Enterprise Manager Fusion Middleware Controlコンソールで不要になりSOAインフラストラクチャで使用されないサービスは、アンデプロイすることをお薦めします。 停止またはリタイア状態の(アンデプロイしていない)エンドポイント・サービスには引き続きアクセスできます。 したがって、キャッシュはリフレッシュされません。

    ビジネス・サービスWSDLをあるホストから別のホストに移動する場合は、必ずレジストリ・コントロールで場所を変更してください。 Oracle JDeveloperまたはOracle Enterprise Manager Fusion Middleware Controlコンソールでの変更は不要です。


    注意:

    11gでは、キャッシュは自動的に発生します。 Oracle SOA Suite 10.1.3を使用している場合は、bpel.xmlCacheRegistryWSDLプロパティをtrueに設定することでキャッシュがサポートされます。 このプロパティをfalseに設定すると、キャッシュは無効になります。

A.5 プロセス・ダイアグラムのロード時の検証

scopeやassignなどのアクティビティを初めて作成して開くと、無効な設定を示すアイコン(感嘆符が付いた黄色い三角形)が表示されることがあります。設定が無効なのは、まだ詳細を入力していないためです。

現在のプロジェクトでこのオプションをオフにする手順は、次のとおりです。

  1. BPELダイアグラムを右クリックし、「表示」→「ダイアグラム・プロパティ」の順に選択します。

  2. 「自動検証の有効化」オプションの選択を解除します。

  3. 「OK」をクリックします。

  4. 「ファイル」メイン・メニューから「すべて保存」を選択します。