この付録では、SOAコンポジット・アプリケーションでBPELプロセスを設計する際に使用するアクティビティとサービスについて説明します。
項目は次のとおりです。
Oracle BPELデザイナの「コンポーネント・パレット」で「BPELアクティビティとコンポーネント」を開くと、アクティビティおよびコンポーネントヘッダーの下にサービス・コンポーネントが表示されます。
詳細は、次の各項を参照してください。
BPELプロセス
第II部「BPELプロセス・サービス・コンポーネントの使用」を参照してください。
ビジネス・ルール
第IV部「ビジネス・ルール・サービス・コンポーネントの使用」を参照してください。
ヒューマン・タスク
メディエータ
第III部「Oracle Mediatorサービス・コンポーネントの使用」を参照してください。
Oracle BPELデザイナには、BPELプロセスにドラッグできるアクティビティが用意されています。これらのアクティビティを使用すると、プロセス内で特定のタスクを実行できます。この項では、これらのアクティビティについて簡単に概説し、これらのアクティビティの使用方法が説明されている他のドキュメントを参照先として示します。
これらのアクティビティにアクセスするには、Oracle BPELデザイナの「コンポーネント・パレット」で「BPELアクティビティとコンポーネント」を開きます。「BPELアクティビティ」ヘッダーの下に、アクティビティが表示されます。
アクティビティの詳細は、次のURLにある『Business Process Execution Language for Web Services Specification』を参照してください。
http://www.oasis-open.org
アクティビティはそれぞれ特定のタスクを実行しますが、同様のタスクを実行できるタブが多くのアクティビティに用意されています。この項では、これらの共通タブについて説明します。
「タイムアウト」タブは、receiveアクティビティで表示され、リクエスト/レスポンス操作に対するタイムアウト設定が提供されます。この機能は、パートナ・コールバックのタイムアウト期間を指定する場合に使用する必要があるpickアクティビティのonMessageブランチとonAlarmブランチの代替手段として提供されています。
「アサーション」タブは、invoke、receiveの各アクティビティ、およびpickアクティビティのonMessageブランチで表示されます。これらのアクティビティでのリクエスト/レスポンス操作時にコールバック・メッセージを受信すると、一連のアサーションが実行されます。アサーションには、falseと評価された場合にアクティビティからBPELフォルトをスローするXPath式を指定します。この機能は、パートナ・コールバック後に多数のswitch、assignおよびthrowアクティビティを使用する可能性がある場合の代替手段として提供されています。
「スキップ条件」タブは、ほとんどのアクティビティで表示され、指定したXPath式がtrueと評価された場合に、そのアクティビティがスキップされるようにできます。この拡張機能は、条件付きアクティビティの作成に使用するswitchアクティビティのcaseパターンの代替手段として提供されています。
「相関」タブは、invoke、receive、replyの各アクティビティ、pickアクティビティのonMessageブランチ、およびイベント・ハンドラのonMessage変数で表示されます。相関セットを使用すると、サービス・インスタンスにおける操作の相関グループを明示的に指定できるため、プロセスとそのパートナ間の複雑な相互作用の処理が可能になります。相関トークンのセットは、相関グループのすべてのメッセージで共有されるプロパティのセットとして定義されます。
「プロパティ」タブは、invoke、receive、replyの各アクティビティ、およびpickアクティビティのonMessageブランチで表示されます。Oracle JCAアダプタで使用するヘッダー変数を作成します。
「ヘッダー」タブは、invoke、receive、replyの各アクティビティ、およびpickアクティビティのonMessageブランチで表示されます。アドバンスト・キューイング(AQ)、ファイル、FTP、MQおよびJava Message Service(JMS)アダプタで使用するヘッダー変数を作成します。
「注釈」タブはすべてのアクティビティで表示され、コードへのコメントや名前と値のペアの割当てという形でアクティビティを説明するために使用できます。
「注釈」タブには、注釈の順序を変更するための方法が用意されていません。解決策として、Oracle BPELデザイナでプロジェクトのBPELファイルの「ソース」ビューを使用して注釈の順序を変更します。
これらのタブの詳細は、次を参照してください。
使用方法の詳細は、これらのタブのオンライン・ヘルプを参照してください。
『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』
このアクティビティは、ある変数の内容を別の変数にコピーするなどのデータ操作の手段を提供します。このアクティビティには、任意の数の基本的な割当てを含めることができます。
次の図は、「Assign」ダイアログを示しています。次のタスクを実行できます。
「一般」タブをクリックし、assignアクティビティに意味のある名前を付けます。
「コピー操作」タブで「追加」アイコン(図A-2を参照)をクリックし、ドロップダウン・リストから「コピー操作」を選択して「コピー操作の作成」ダイアログにアクセスします。このアクションにより、「From」フィールドのソース要素(変数、式、XMLフラグメントまたはパートナ・リンク)の内容を「To」フィールドの宛先要素の内容にコピーできます。パート(通常はペイロード)およびXPath問合せ(XML文書の一部をアドレス指定するための言語)も選択できます。その他に、このリストから「追加操作」や「後ろに挿入操作」などの選択項目も使用可能です。
assignアクティビティに複数のbpelx:append
設定が含まれる場合は、このアクティビティを2つのassignアクティビティに分割する必要があります。分割しないと、bpelx:append
がそれぞれリストの最後に移動し、問題が発生する可能性があります。解決策として、この設定を手動で移動します。
assignアクティビティの詳細は、第6章「BPELプロセスでのXMLデータの操作」を参照してください。
このアクティビティを使用すると、エンティティ変数を選択できます。エンティティ変数は、様々なデータ・プロバイダ・サービス・テクノロジにアクセスし、プラグインするためのデータ・ハンドルとして機能します。
エンティティ変数は、サービス・データ・オブジェクト(SDO)ベースのデータを使用して、Oracle Application Development Framework(ADF)Business Componentデータ・プロバイダ・サービスと一緒に使用できます。エンティティ変数を使用すると、基礎となるデータ・プロバイダ・サービスがBPELデータ操作を実行するように指定できます。データ・プロバイダ・サービスはデータ・ストア内でデータ操作をバックグラウンドで実行しますが、Oracle BPEL Process Manager提供の他のデータ・ストア関連の機能(たとえば、データベース・アダプタ)を使用しません。この操作により、BPEL Process Managerの実行時パフォーマンスを高め、コンパイルおよび実行時に、基礎となるデータ・プロバイダ・サービスのネイティブの機能を組み込みます。
次の図は、「Bind Entity」ダイアログを示しています。
このアクティビティは、正常に完了している内側のscopeアクティビティでの補正を起動します。このアクティビティを起動できるのは、フォルト・ハンドラまたは別の補正ハンドラの中からのみです。補正は、プロセスでいくつかの操作を完了できず、その他の操作は完了している場合に行われます。プロセスは、以前に完了した操作に戻り、それらを元に戻す必要があります。たとえば、あるプロセスがレンタカー、ホテルおよび航空券を予約するように設計されているとします。レンタカーとホテルを予約しましたが、正しい日付の航空券を予約できません。この場合、レンタカーとホテルの予約を取り消すことで補正を実行します。compensateアクティビティ(補正ハンドラが起動されるスコープを指定)で補正ハンドラが起動されます。
図A-4は、「Compensate」ダイアログを示しています。次のタスクを実行できます。
「一般」タブをクリックし、アクティビティに意味のある名前を付けます。
補正ハンドラを起動するscopeアクティビティを選択します。
compensateアクティビティの詳細は、第11.10項「一連の操作を元に戻した後の補正の使用」を参照してください。
このアクティビティを使用すると、エンティティ変数を作成できます。エンティティ変数は、SDOベースのデータを使用して、Oracle ADF Business Componentデータ・プロバイダ・サービスと一緒に使用できます。
次の図は、「Create Entity」ダイアログを示しています。
詳細は、第6.2項「データ・プロバイダ・サービスへのXMLデータ操作の委任」を参照してください。
このアクティビティを使用すると、イベントに関する電子メール通知を送信できます。
たとえば、オンライン書店のオンライン・ショッピング・ビジネス・プロセスで、商品を出荷した後、ユーザーに儀礼的な電子メール・メッセージを送信するとします。ビジネス・プロセスは、ユーザーIDおよび通知メッセージを指定して通知サービスをコールします。通知サービスは、Oracle Internet Directoryから電子メール・アドレスを取得します。
図A-6は、「Email」ダイアログを示しています。
emailアクティビティの詳細は、第17.3.1項「電子メール通知チャネルの構成方法」を参照してください。
このアクティビティを使用すると、操作なしの命令をプロセスに挿入できます。このアクティビティは、何もしないアクティビティを使用する必要がある場合(フォルトを捕捉して抑止する必要がある場合など)に便利です。
図A-7は、「Empty」ダイアログを示しています。
emptyアクティビティの詳細は、第11.9.8項「操作なしの命令をビジネス・プロセスに挿入するemptyアクティビティの作成方法」を参照してください。
このアクティビティを使用すると、1つ以上のアクティビティを同時に実行するように指定できます。flowアクティビティは、フロー内のすべてのアクティビティが処理を終了したときに完了します。flowアクティビティが完了しても、許可条件がfalseの場合はスキップされている可能性があります。
たとえば、flowアクティビティを使用して、2つの融資斡旋業者(United LoanサービスおよびStar Loanサービス)をパラレルで起動できるようにするとします。この場合、flowアクティビティには2つのパラレル・アクティビティ(United Loanサービスを起動するシーケンスとStar Loanサービスを起動するシーケンス)が含まれます。各サービスは、任意の時間をかけて融資プロセスを完了できます。
図A-8に、パラレル処理用の2つのパネルを持つ初期flowアクティビティを示します。アクティビティを両方のパネルにドラッグしてパラレル処理を作成します。完了したflowアクティビティは図A-9のようになります。
注意: OracleのBPEL実装では、個別のスレッドではなく、BPELプロセスの同一で単一の実行スレッドでフローが実行されます。 |
flowアクティビティの詳細は、第9.2項「パラレル・フローの作成」を参照してください。
このアクティビティを使用すると、N
の値に等しい複数のフローを作成できます。この値は、使用可能なデータおよびプロセス内のロジックに基づいて実行時に定義されます。索引変数は、N
の値に到達するまで、新しいブランチが作成されるたびに増分されます。
図A-10は、「FlowN」ダイアログを示しています。
flowNアクティビティの詳細は、第9.3項「flowNアクティビティを使用したflowアクティビティ数のカスタマイズ」を参照してください。
このアクティビティを使用すると、非同期のインスタント・メッセージ(IM)通知をユーザー、グループまたは宛先アドレスに自動的に送信できます。次の図は、「IM」ダイアログを示しています。
詳細は、第17.3.2項「IM通知チャネルの構成方法」を参照してください。
このアクティビティを使用すると、サービス(パートナ・リンクで識別)に対して起動する操作を指定できます。操作は、サービスによって指定されたポートでの一方向またはリクエスト/レスポンスです。invokeアクティビティで変数を自動的に作成することも可能です。invokeアクティビティは、同期Webサービスを起動するか、非同期Webサービスを開始します。
invokeアクティビティは、プロセス内でデータを送受信するためのポートをオープンします。このポートを使用して、必要なデータの送信およびレスポンスの受信を行います。同期コールバックの場合、関数の送受信に必要なポートは1つのみです。
invokeアクティビティは、bpelx:inputProperty
およびbpelx:outputProperty
をサポートし、SOAPヘッダーを介したプロパティの受渡し、および有用な情報に関するSOAランタイム・システム・プロパティ(tracking.compositeInstanceIdやtracking.conversationIdなど)の取得を容易にします。
図A-12は、「Invoke」ダイアログを示しています。次のタスクを実行できます。
アクティビティに意味のある名前を付けます。
操作を指定するパートナ・リンクを選択します。
実行する操作を選択します。
データ(ペイロード)をトランスポートするための変数を自動的に作成するか、既存の変数を選択します。
invokeアクティビティの詳細は、次を参照してください。
このアクティビティを使用すると、Java BPEL exec
の拡張要素である<bpelx:exec>
を使用してBPELプロセスにカスタムJavaコードを追加できます。この方法は、関数を実行できるJavaコードが存在していて、最初からコーディングしなおすのではなくこの既存のコードを使用する場合に役立ちます。
図A-13は、「Java Embeddingの編集」ダイアログを示しています。
Java Embeddingアクティビティの詳細は、第13章「BPELプロセスへのJavaおよびJava EEコードの組込み」を参照してください。
このアクティビティは、BPELプロセスと統合するためのOracle Mediatorおよびビジネス・ルール・サービス・コンポーネントを作成します。メッセージ・リクエストの入力変数およびメッセージ・レスポンスの出力変数を作成し、BPELプロセスの変数のコンテンツを評価するビジネス・ルールを設計します。
これらのタスクを完了すると、次のアクティビティとサービス・コンポーネントが作成されます。
assignアクティビティ: メッセージ・リクエストの入力変数およびメッセージ・レスポンスの出力変数が含まれます。
invokeアクティビティ: BPELプロセスでOracle Mediatorパートナ・リンクを起動するように自動的に設計されます。
Oracle Mediatorパートナ・リンク: メッセージ・リクエストの入力変数を、このBPELプロセスが含まれるSOAコンポジット・アプリケーションのビジネス・ルール・サービス・コンポーネントにルーティングするように自動的に設計されます。ビジネス・ルール・サービス・コンポーネントはSOAコンポジット・エディタに表示されます。Oracle Mediatorもサービス・コンポーネントとしてSOAコンポジット・エディタに表示されます。
ビジネス・ルール・サービス・コンポーネント: メッセージ・リクエストの入力変数のコンテンツを評価し、メッセージ・レスポンスの出力変数の結果をOracle Mediatorに戻します。Oracle Mediatorはルーティングを決定し、メッセージを適切なターゲット宛先にルーティングします。
図A-14は、「Phase」ダイアログを示しています。
詳細は、第48章「2レイヤーのビジネス・プロセス管理(BPM)の使用」を参照してください。
このアクティビティは、イベント・セット内の特定イベントの発生を待機し、そのイベントに関連するアクティビティを実行します。多くの場合、イベントの発生は相互に排他的です(プロセスは承認メッセージと却下メッセージの両方ではなくどちらかを受信します)。複数のイベントが発生した場合、実行するアクティビティは、どちらのイベントが先に発生したかに基づいて選択されます。イベントがほとんど同時に発生した場合は競争になり、実行するアクティビティはタイミングと実装の両方に基づいて選択されます。
pickアクティビティには2つのブランチがあり、それぞれに条件があります。「Pick」アイコンをダブルクリックすると、図A-15に示すように、ダイアログに次の2つのブランチが表示されます。
先に完了したブランチが実行されます。もう一方のブランチは実行されません。最初に条件が満たされたブランチが実行されます。
図A-16に、pickアクティビティのonAlarmブランチを示します。
onMessageブランチに相関を追加すると、assignアクティビティ構文の下に相関構文が配置されます。しかし、相関構文は、assignアクティビティの上に配置する必要があります。
これを解決するには、次の手順を実行します。
Oracle JDeveloperで相関セットを作成します。
この相関セットをonMessageブランチに割り当てます。
残りの設計タスクを完了します。
BPELソース・コード内で相関構文をassignアクティビティの前に移動してから、BPELプロセスを作成またはデプロイします。
pickアクティビティの詳細は、次を参照してください。
このアクティビティでは、情報の受信先となるパートナ・リンクと、起動するパートナ・リンクのポート・タイプおよび操作を指定します。このアクティビティは、サービス(融資申請の承認サービスなど)からの非同期コールバック・レスポンス・メッセージを待機します。待機中のBPELプロセスは、コールバック・メッセージが到着するまでデハイドレーション(圧縮して格納)されます。このレスポンスの内容は、プロセスのレスポンス変数に格納されます。
receiveアクティビティは、bpelx:property
拡張機能をサポートし、SOAPヘッダーを介したプロパティの受渡し、および有用な情報に関するSOAランタイム・システム・プロパティ(tracking.compositeInstanceIdやtracking.conversationIdなど)の取得を容易にします。
図A-17は、「Receive」ダイアログを示しています。次のタスクを実行できます。
意味のある名前を付けます。
操作を指定するパートナ・リンク・サービスを選択します。
実行する操作を選択します。
コールバック・レスポンスをトランスポートするための変数を自動的に作成するか、既存の変数を選択します。
receiveアクティビティの詳細は、次を参照してください。
このアクティビティは、詳細プロセスではマスター・プロセスからの処理開始の通知シグナルを待機するために使用し、マスター・プロセスではすべての詳細プロセスからの処理の完了を示す通知シグナルを待機するために使用します。
図A-18は、「Receive Signal」ダイアログを示しています。
詳細は、第15章「マスター・プロセスと詳細プロセスの調整」を参照してください。
このアクティビティを使用すると、エンティティ変数を削除できます。このアクションによって行が削除されます。次の図は、「Remove Entity」ダイアログを示しています。
このアクティビティでは、receiveアクティビティで受信したメッセージに応答するメッセージを送信できます。receiveアクティビティとreplyアクティビティを組み合せると、プロセスのWSDLポート・タイプでのリクエスト/レスポンス操作が形成されます。
図A-20は、「Reply」ダイアログを示しています。
replyアクティビティの詳細は、次を参照してください。
このアクティビティは、独自のローカル変数、フォルト・ハンドラ、補正ハンドラなどを含めることができる、ネストされたアクティビティの集合で構成されます。scopeアクティビティは、プログラミング言語の{
}
ブロックに似ています。
各スコープには、その動作を定義するプライマリ・アクティビティがあります。プライマリ・アクティビティは、多数のアクティビティが任意の深さにネストされている複雑な構造化アクティビティでもかまいません。スコープは、すべてのネストされたアクティビティによって共有されます。
図A-21は、「Scope」ダイアログを示しています。scopeアクティビティ内に適切なアクティビティを定義します。
フォルト処理はscopeアクティビティに関連付けられています。その目的は、フォルトが発生したscopeアクティビティの失敗した不完全な処理を元に戻すことです。scopeアクティビティでcatchアクティビティを定義すると、カスタム・フォルト処理アクティビティのセットを作成できます。各catchアクティビティは、特定のタイプのフォルトを捕捉するように定義します。
図A-22に、scopeアクティビティ内の「Catchブランチの追加」アイコンを示します。図A-23は、「Catchブランチの追加」アイコンをクリックすると表示されるcatchアクティビティ領域を示しています。「アクティビティをここにドロップ」という領域に、追加のアクティビティをドラッグし、例外の捕捉と管理を行うフォルト処理ロジックを作成します。
たとえば、顧客は融資を申請する際に、信用格付けサービスに社会保障番号を提示します。この番号を使用して信用調査が行われます。信用履歴に問題があることが確認された場合や、社会保障番号が無効であると認識された場合は、catchアクティビティ内のassignアクティビティにより、融資提案が却下されたことが顧客に通知されます。融資申請プロセス全体がterminateアクティビティで終了します。
scopeアクティビティおよびフォルト処理の詳細は、次を参照してください。
このアクティビティを使用すると、順に実行するアクティビティの集合を定義できます。たとえば、次のアクティビティを特定の順序で実行できます。
receiveアクティビティで顧客リクエストを受信します。
同時動作を可能にするflowアクティビティ内でリクエストを処理します。
replyアクティビティで、リクエストの最終承認ステータスを含むリプライ・メッセージを顧客に戻します。
sequenceアクティビティでは、リクエストを妥当な時間内に処理できると想定しています。この想定により、インボーカが同期レスポンスを待機する必要性が正当化されます(このサービスがリクエスト/レスポンス操作として提供されるため)。
この想定ができない場合は、顧客との相互作用を非同期メッセージ交換のペアとして定義することをお薦めします。
「Sequence」アイコンをダブルクリックすると、図A-24に示すアクティビティ領域が表示されます。sequenceアクティビティ内に適切なアクティビティをドラッグして定義します。
sequenceアクティビティの詳細は、次を参照してください。
このアクティビティは、マスター・プロセスでは実行時に処理を実行するように詳細プロセスに通知するために使用し、詳細プロセスでは処理が完了したことをマスター・プロセスに通知するために使用します。次の図は、「Signal」ダイアログを示しています。
詳細は、第15章「マスター・プロセスと詳細プロセスの調整」を参照してください。
このアクティビティを使用すると、イベントに関するショート・メッセージ・システム(SMS)通知を送信できます。
図A-26は、「SMS」ダイアログを示しています。
SMSアクティビティの詳細は、第17.3.3項「SMS通知チャネルの構成方法」を参照してください。
注意: faxアクティビティおよびpagerアクティビティは、11gではサポートされていません。 |
このアクティビティは、caseブランチに定義された1つ以上の条件付きブランチ(オプションでotherwiseブランチが続く)の順序付きリストで構成されます。ブランチは、出現順に考慮されます。条件がtrueである最初のブランチが選択され、switchに対して実行されるアクティビティを提供します。条件付きブランチが選択されない場合は、otherwiseブランチが選択されます。otherwiseブランチが明示的に指定されていない場合は、emptyアクティビティがあるotherwiseブランチが使用可能とみなされます。選択されたブランチのアクティビティが完了すると、switchアクティビティは完了します。
switchアクティビティは、flowアクティビティとは機能的に異なります。たとえば、flowアクティビティを使用すると、1つのプロセスで2つの融資提案を同時に収集できますが、それぞれの値は比較されません。2つの提案の値を比較して決定を下すには、switchアクティビティを使用します。定義された条件(caseブランチ内)が満たされると、最初のブランチが実行されます。条件が満たされない場合はotherwiseブランチが実行されます。
図A-27に、次のブランチが定義されたswitchアクティビティを示します。
switchアクティビティの詳細は、次を参照してください。
terminateアクティビティを使用すると、アクティビティのタスク(catchブランチのフォルト処理タスクなど)を終了できます。たとえば、顧客の信用履歴に問題があることが確認された場合や、社会保障番号が無効であると認識された場合は、融資申請プロセスが終了し、顧客の融資申請の申込書は融資サービス業者に提出されません。
図A-28に、switchアクティビティのotherwiseブランチにある複数のterminateアクティビティを示します。
terminateアクティビティの詳細は、第11.11項「terminateアクティビティによるビジネス・プロセス・インスタンスの停止」を参照してください。
このアクティビティは、ビジネス・プロセス内からフォルトを生成します。
図A-29は、「Throw」ダイアログを示しています。
throwアクティビティの詳細は、第11.7項「内部フォルトのスロー」を参照してください。
このアクティビティを使用すると、ソース要素をターゲット要素にマップ(たとえば、受信した注文書データを送信する注文確認書データにマップ)するトランスフォーメーションを作成できます。
図A-30は、「Transform」ダイアログを示しています。このダイアログでは、次のタスクを実行できます。
マップするソースおよびターゲットの変数とパートを定義します。
トランスフォーメーション・マッパー・ファイルを指定します。
「マッパー・ファイル」フィールドの右側にある2番目のアイコン(「追加」アイコン)をクリックして、XSLTマッパーにアクセスします。XSLTマッパーで、新規のXSLファイルを作成し、ソース要素とターゲット要素をグラフィカルにマッピングします。既存のXSLファイルを編集する場合は、「編集」アイコン(3番目のアイコン)をクリックします。
transformアクティビティの詳細は、第38章「XSLTマッパーを使用したトランスフォーメーションの作成」を参照してください。
このアクティビティを使用すると、設計時に通知チャネルを明示的に選択せずに、通知を送信する必要性のみを示すBPELプロセスを設計できます。通知の送信に使用するチャネルは、Oracle User Messaging Serviceのユーザー・メッセージング・プリファレンス・ユーザー・インタフェースでエンド・ユーザーが定義したプリファレンスに基づいて、実行時に決定されます。したがって、通知チャネルの選択権は、Oracle BPELデザイナからエンド・ユーザーに移動します。エンド・ユーザーが優先チャネルまたはルールを選択していない場合、そのユーザーへの通知の送信には、デフォルトで電子メールが使用されます。次の図は、「User Notification」ダイアログを示しています。
詳細は、第17.4項「エンド・ユーザーによる通知チャネル選択の許可」を参照してください。
このアクティビティを使用すると、リストの変数を検証できます。変数は、XMLスキーマと照合して検証されます。
図A-33は、「Validate」ダイアログを示しています。
このアクティビティを使用すると、イベントに関する電話ボイス通知を送信できます。
図A-33は、「Voice」ダイアログを示しています。
voiceアクティビティの詳細は、第17.3.4項「ボイス通知チャネルの構成方法」を参照してください。
このアクティビティでは、一定期間内、または特定の期限に達するまでの遅延を指定できます。このアクティビティの典型的な用途は、一定の時間に操作を起動することです。このアクティビティを使用すると、指定された期間、または指定された時刻まで待機できます。有効期限条件を1つのみ指定する必要があります。
図A-34は、「Wait」ダイアログを示しています。
waitアクティビティの詳細は、第14.4項「有効期限を設定するwaitアクティビティの作成」を参照してください。
このアクティビティは、指定された反復アクティビティの繰返し実行をサポートします。反復アクティビティは、特定のwhile
条件がtrueでなくなるまで繰り返されます。
図A-35は、「While」ダイアログを示しています。このダイアログで式を入力できます。
whileアクティビティの詳細は、第10.3項「whileアクティビティの作成による条件分岐の定義」を参照してください。
BPELプロセスは、Webサービス、JCAアダプタ、Oracle B2Bサービス、Oracle Business Activity Monitoringおよびパートナ・リンクを介して、Webベースのアプリケーションおよびクライアントと通信できます。
BEPLサービスにアクセスする手順は、次のとおりです。
Oracle BPELデザイナの「コンポーネント・パレット」で、「BPELアクティビティとコンポーネント」を開きます。
「BPELサービス」を開いて、サービスを表示します。
次の各項で説明するアダプタの詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
このサービスを使用すると、プロセスが相互作用する外部サービスを定義できます。パートナ・リンク・タイプは、対話において各サービスが果たす役割を定義すること、および対話の中でメッセージを受信するために各サービスが提供するポート・タイプを指定することで、2つのサービス間での対話関係の特性を決定します。たとえば、信用格付けサービスおよび2つの融資斡旋業者サービス(United LoanおよびStar Loan)と相互作用するプロセスを作成する場合、3つのサービスすべてにパートナ・リンクを作成します。
図A-36は、「パートナ・リンク」ダイアログを示しています。次の詳細を指定します。
サービスの意味のある名前。
外部サービスのWeb Services Description Language(WSDL)ファイル。
実際のサービス・タイプ(パートナ・リンク・タイプとして定義)。
サービスのロール(パートナ・ロールとして定義)。
サービスをリクエストするプロセスのロール(マイ・ロールとして定義)。
パートナ・リンクの詳細は、第8章「BPELプロセスからの非同期Webサービスの起動」を参照してください。
このサービスは、SOAプラットフォームがあるSDOを使用してOracle Application Development Framework(ADF)アプリケーションに接続します。
このアダプタは、デキュー(インバウンド)およびエンキュー(アウトバウンド)の両方のメッセージ・アダプタとして機能します。インバウンド方向では、このアダプタはメッセージを宛先からデキューできるようにキューをポーリングします。アウトバウンド方向では、サブスクライバがデキューできるようにメッセージをキューにエンキューします。
このアダプタを使用すると、メタデータ・サービス(MDS)リポジトリのB2Bメタデータを参照したり、ドキュメント定義を選択することができます。
Oracle B2Bは、組織と外部取引パートナ間における安全で信頼できるトランザクション交換を可能にするE-Commerceゲートウェイです。Oracle B2BおよびOracle SOA Suiteは、セキュリティ、準拠、可視性および管理の問題に対処するインフラストラクチャ内でプロセス・オーケストレーション、エラー低減、データ・トランスレーションとデータ・トランスフォーメーションを必要とするE-Commerceビジネス・プロセス用に設計されています。
詳細は、『Oracle Fusion Middleware User's Guide for Oracle B2B』を参照してください。
このアダプタは、Java EEアプリケーションをOracle BAMサーバーと統合してデータを送信します。また、SOAコンポジット・アプリケーションで参照バインディング・コンポーネントとして使用されます。
詳細は、『Oracle Fusion Middleware Oracle Business Activity Monitoringユーザーズ・ガイド』および第X部「Oracle Business Activity Monitoringの使用」を参照してください。
このアダプタを使用すると、BPELプロセスでJDBCを介してOracleデータベースやサード・パーティ・データベースと通信できます。既存のリレーショナル・スキーマにアクセスするには、アダプタ構成ウィザードを使用して次の操作を実行します。
リレーショナル・スキーマをインポートし、XMLスキーマ(XSD)としてマップします。
SELECT
、INSERT
およびUPDATE
などのSQL操作をWebサービスとして抽出します。
BPELプロセスでXMLを処理してWebサービスを起動する間に、データベースの行と値の問合せ、挿入および更新が実行されます。
このサービスは、インバウンド方向では、直接バインディングAPIを使用してSOAコンポジット・アプリケーションを起動し、Remote Method Invocation(RMI)を介してメッセージを交換します。このオプションでは、複数のJVM間のアイデンティティおよびトランザクションの両方の伝播がサポートされ、T3の最適化されたパスが使用されます。同期および非同期の両方の起動パターンがサポートされます。
アウトバウンド方向では、Oracle Service Bus(OSB)フローまたは別のSOAコンポジット・アプリケーションも起動できます。
Direct Binding Invocation APIの詳細は、Oracle Fusion Middleware Oracle SOA Suiteインフラストラクチャ管理Java APIリファレンスおよび第37章「直接バインディング起動APIの使用」を参照してください。
OSBの詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』を参照してください。
このサービスを使用すると、Enterprise JavaBeans(EJB)を介してメッセージを送受信できます。
詳細は、第36章「Enterprise JavaBeansとSOAコンポジット・アプリケーションの統合」を参照してください。
このアダプタは、インバウンドおよびアウトバウンドの両方のアダプタとして機能します。インバウンド方向では、このアダプタは取得して処理するファイルをディレクトリ内でポーリングします。アウトバウンド方向では、ディレクトリにファイルを作成します。
このアダプタは、インバウンドおよびアウトバウンドの両方のアダプタとして機能します。インバウンド方向では、このアダプタは取得して処理するファイルをディレクトリ内でポーリングします。アウトバウンド方向では、ディレクトリにファイルを作成します。
このサービスを使用すると、SOAコンポジット・アプリケーションとHTTPバインディングを統合できます。この統合によって、HTTPのPOSTおよびGET操作からSOAコンポジット・アプリケーションを起動したり、HTTPのPOSTおよびGET操作からHTTPエンドポイントを起動できます。
詳細は、第35.1.2項「HTTPバインディング・サービス」を参照してください。
このアダプタは、消費(インバウンド)および発行(アウトバウンド)の両方のメッセージ・アダプタとして機能します。インバウンド方向では、このアダプタはJMS宛先からのメッセージをポーリング(消費)します。アウトバウンド方向では、JMS宛先にメッセージを送信(発行)します。
このアダプタは、Oracle Applicationsへの包括的な双方向、マルチモードの同期接続と非同期接続を提供します。このアダプタはOracle Applicationsリリース12およびリリース11iのモジュールをすべてサポートしています。このサポートには、Oracle E-Business Suiteのバージョンに基づいたカスタム統合インタフェース・タイプの選択も含まれます。このアダプタは、インタフェース表、ビュー、Application Program Interface(API)およびXMLゲートウェイを介して、Oracle Applicationsへのリアルタイムの双方向の接続性を提供します。また、インタフェース表とAPIを使用してOracle Applicationsにデータを挿入します。このアダプタは、Oracle Applicationsからデータを取得するためにビューを使用します。また、Oracle Applicationsとの双方向統合にXMLゲートウェイを使用します。XMLゲートウェイは、Oracle Applicationsとの間でOpen Application Group Integration Specification(OAGIS)準拠のドキュメントの挿入と受信にも使用されます。
このアダプタを使用すると、TCP/IPソケットを介した通信用の標準または非標準プロトコルをモデル化できます。このアダプタを使用してクライアントまたはサーバーのソケットを作成し、接続を確立できます。テキストまたはバイナリのデータを転送できます。
このアダプタを使用すると、サード・パーティ・アダプタをSOAコンポジット・アプリケーションに統合できます。これらのサード・パーティ・アダプタによって、JCAアダプタを構成できるアーチファクト(WSDLおよびJCAファイル)が生成されます。
このサービスを使用すると、SOAP over HTTPを使用して標準ベース・サービスに接続できます。
詳細は、第2.3項「サービス・バインディング・コンポーネントの追加」を参照してください。
Oracle Service Registry(OSR)では、Webサービスを公開したり、Webサービスの情報を検出するための共通の標準が提供されます。この項では、個別にインストールしたOracle SOA Suite環境に対してOSRを構成する方法について説明します。
Oracle SOA Suiteでは、次のバージョンのOSRを使用できます。
OSR 10.3(Oracle WebLogic Server 10.3で使用)
OSR 10.1.3
Oracle Service Registryの詳細は、次のURLを参照してください。
http://www.oracle.com/technology/goto/regrep
注意:
|
この項では、ビジネス・サービスの公開方法の概要を説明します。手順の詳細は、次のURLにあるドキュメントを参照してください。
http://www.oracle.com/technology/tech/soa/uddi/index.html
ビジネス・サービスを公開する手順は、次のとおりです。
次のURLにあるレジストリ・コントロールに移動します。
http://hostname:port/registry/uddi/web
「パブリッシュ」→「WSDL」の順にクリックします。
プロンプトが表示された時点でログインします。
アクセス・ポイントのURLを指定してビジネス・サービスのWSDLを公開するために、このページの各フィールドを完了します。
注意: エンドポイントの場所を後で変更した場合は、レジストリ・コントロールでWSDLの場所も更新する必要があります。更新しないと、実行時にUDDIの起動に失敗します。WSDLの場所を変更する手順は、次のとおりです。
|
レジストリへの接続を作成する手順は、次のとおりです。
Oracle JDeveloperに移動します。
「ファイル」→「新規」→「接続」→「UDDIレジストリ接続」の順に選択して、UDDI接続を作成します。
接続名を入力します。
照会エンドポイントURLを入力します。次に例を示します。
http://myhost.us.oracle.com:7001/registry/uddi/inquiry
「ビジネス・ビュー」ボタンが必ず選択されているようにします。
「次へ」をクリックします。
「接続のテスト」をクリックします。
成功した場合は、「終了」をクリックします。成功しなかった場合は、「戻る」ボタンをクリックし、エラーを修正します。
SOAプロジェクトを構成してレジストリからサービスを起動する手順は、次のとおりです。
ビジネス・サービスへの参照を作成するSOAプロジェクトを開きます。
「Webサービス」アイコンを「外部サービス」スイムレーンにドラッグします。
「Webサービスの作成」ダイアログが表示されます。
「WSDL URL」フィールドの右側にあるアイコンをクリックし、WSDLを選択します。
上部のリストから「リソース・パレット」を選択します。
ナビゲーション・ツリーを開きます。
「UDDIレジストリ」→「ビジネス・サービス」の順に開きます。
公開したビジネス・サービスを選択して、「OK」をクリックします。図A-37に詳細を示します。
「UDDIデプロイメント・オプション」ダイアログが表示されます。
次のいずれかのデプロイメント・オプションを選択します。
実行時にSOAPエンドポイントの場所を動的に解決します
実行時に具体WSDLの場所を動的に解決します
図A-38に詳細を示します。
「OK」をクリックします。
「Webサービスの作成」ダイアログが再び表示されます。
「UDDIデプロイメント・オプション」ダイアログでの選択内容に応じて、次の項を参照してください。
「Webサービスの作成」ダイアログの残りのフィールドを完成し、「OK」をクリックします。
図A-39に示すように、「Webサービスの作成」ダイアログが表示されます。
適切なサービス・コンポーネントを使用して参照に接続します。
SOAコンポジット・エディタで「ソース」をクリックします。
composite.xml
ファイルにserviceKey
が表示されます。このプロパティによって、実行時にエンドポイント・バインディングの場所が動的に解決されます。
<property name="oracle.soa.uddi.servicekey" type="xs:string" many="false">uddi: d3611b59-1c79-478e-9ae5-874007eb20c4">
必要な場合は、「プロパティ・インスペクタ」でoracle.soa.uddi.servicekey
プロパティを明示的に追加して、SOAPエンドポイントの場所を解決することもできます。この操作によって、Webサービスの外部参照について、実行時にSOAPエンドポイントの場所が動的に解決されます。図A-40に詳細を示します。
「外部参照」スイムレーンの参照バインディング・コンポーネントをハイライト表示します。
「プロパティ・インスペクタ」で「プロパティ」セクションを開きます。
「追加」アイコンをクリックします。
「名前」リストに、oracle.soa.uddi.servicekeyと入力します。
「値」フィールドに、composite.xml
ファイルのoracle.soa.uddi.servicekeyの値を指定します。
「Webサービスの作成」ダイアログの残りのフィールドを完成し、「OK」をクリックします。
図A-41に示すように、「Webサービスの作成」ダイアログが表示されます。
適切なサービス・コンポーネントを使用して参照に接続します。
SOAコンポジット・エディタで「ソース」をクリックします。
composite.xml
ファイルに、WSDLの場所が具体的なURL(HTTP URLなど)ではなく、orauddi:/
uddi_service_key
の抽象的なURLであることが示されます。orauddi
プロトコルによって、実行時にWSDLの場所が動的に解決されます。
<location="orauddi:/uddi:d3689250-6ff5-11de-af2b-76279200af27">
照会URL、UDDIサービス・キーおよびエンドポイント・アドレスは、実行時にOracle Enterprise Manager Fusion Middleware Controlコンソールで設定できます。
ランタイムの照会URL、サービス・キーおよびエンドポイント参照を構成する手順は、次のとおりです。
Oracle Enterprise Manager Fusion Middleware Controlコンソールにログインします。
次のプロパティに値を指定します。
「SOAインフラストラクチャの共通プロパティ」ページで、UDDIレジストリ接続の作成ウィザードで指定したUDDI照会URLを指定します。詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のSOAインフラストラクチャのプロパティの構成に関する項を参照してください。
参照バインディング・コンポーネントの「プロパティ」ページでは、設計時に作成したエンドポイント参照およびサービス・キーの値を変更できます。詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のサービス・バインディング・コンポーネントと参照バインディング・コンポーネントのプロパティの構成に関する項を参照してください。
SOAインフラストラクチャを再起動します。
Oracle Enterprise Manager Fusion Middleware Controlコンソールを終了します。
エンドポイントの統計を表示するために、レジストリ・コントロールに戻ります。
管理ページに移動し、キャッシュされていない場合(最初)の起動数の増加を確認します。
デフォルトでは、実行時に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コンソールでの変更は不要です。
必要に応じて、サービス・キーによる照会のためにWSDL URLをキャッシュで使用できる時間を増加できます。詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のサービス・バインディング・コンポーネントと参照バインディング・コンポーネントのプロパティの構成に関する項を参照してください。
注意: 11gでは、キャッシュは自動的に発生します。Oracle SOA Suite 10.1.3を使用している場合は、bpel.xml でCacheRegistryWSDL プロパティをtrue に設定することでキャッシュがサポートされます。このプロパティをfalse に設定すると、キャッシュは無効になります。 |
Oracle Enterprise Repositoryは、サービスのライフ・サイクル、記憶域の配信機能、およびコンポジット、サービス、ビジネス・プロセスのメタデータや他のIT関連アセットの管理をサポートする際に設計時ガバナンスを提供します。
Oracle Enterprise Repositoryは、Oracle SOA Suite情報の中核的なソースとして機能し、サービスのライフ・サイクルにおけるすべての参加者に対して、計画済サービス、既存のサービスおよびリタイア状態のサービスに対応した人間中心の検出環境を提供します。
また、Oracle Enterprise Repositoryには、記述対象となるアセットのアーチファクト・ストアへのロール・ベースのリンク、および設計ドキュメント、承認ドキュメント、テスト・プラン、サポート・プラン、ポリシーおよびその他の形式のドキュメントへのリンクが用意されています。
Oracle JDeveloperなどの統合開発環境(IDE)からは、次のタスクを実行できます。
Oracle SOA Suiteプロジェクトのアーチファクト(BPEL、WSDL、XSD、XSLTのファイルやファイル・ディレクトリなど)の収集。アーチファクトを収集すると、Oracle Enterprise Repositoryによって、アセットの作成、アセット・メタデータの移入、およびアーチファクト・ファイルの情報に基づいたリレーション・リンクの生成が自動的に実行されます。
Oracle Enterprise Repositoryの使用可能なアーチファクトの参照。
アセット詳細(説明、使用履歴、削減予測、関連など)の表示。
プロジェクトへのアセットのアーチファクト(ペイロード)のダウンロード。通常、アセット・ペイロードは、サービス(WSDLファイルなど)を使用したり、サービスをコード・ベース(バイナリやBPELファイルなど)に組み込む際に必要な機能です。
Oracle Enterprise RepositoryのWSDLファイルやサービスの使用。
これらのタスクの詳細およびIDEでOracle Enterprise Repositoryを構成して使用する方法については、Oracle Fusion Middleware Oracle Enterprise Repository統合ガイドを参照してください。
Oracle JDeveloperの詳細は、Oracle Fusion Middleware Oracle Enterprise Repository構成ガイド.を参照してください。