12 サービスおよび参照の使用
Oracle BPMで使用できる様々なサービスおよび参照コンポーネントを学習します。これらのコンポーネントがどのようにビジネス・カタログで使用され、ビジネス・カタログ内のコンポーネントが、これらのサービスおよび参照を定義するSOAコンポジットとどのような関係があるかも学習します。また、これらのコンポーネントを、理解しやすく、ビジネス・アナリスト向けにカスタマイズできます。
12.1 サービスおよび参照の概要
サービス・タスク、送信タスク、受信タスクなどの一部のフロー・オブジェクトは、実装する際にサービスまたは参照を定義する必要があります。BPMNエディタを使用してサービス・インタフェースを定義するか、ビジネス・カタログの既存のインタフェースを使用できます。
ビジネス・カタログには、SOAコンポジットで使用されるサービス、コンポーネントおよび参照が表示されます。新規コンポーネントをコンポジットの「公開されたサービス」または「外部参照」領域に追加すると、ビジネス・カタログの対応する事前定義済モジュールに自動的に表示されます。
次のSOAコンポーネントは、ビジネス・カタログでサービスまたは参照として表示されます。
-
アダプタ
-
SOAメディエータ
-
BPELプロセス
ノート:
サービス・タスク、メッセージ・イベントまたは送受信タスクを実装するWebサービスを定義する場合は、それに含まれる操作が、WSDLで定義されるXMLタイプの引数を定義していないことを確認します。Webサービスの操作の引数は、XSDファイルで定義されるプリミティブ・タイプである必要があります。
12.1.1 サービスの概要
サービスは、BPMNプロセスで特定のアクティビティおよびイベントを実装するために使用できるコンポーネントです。
「サービス」事前定義済モジュールには、SOAコンポジットでサービス・ハンドルを表示するコンポーネントが格納されます。
サービスを使用して、次のフロー・オブジェクトを実装できます。
-
サービス・タスク
-
メッセージ・イベント
-
送信タスクおよび受信タスク
12.1.2 参照の概要
参照は、BPMNプロセスのインタフェースの定義に使用できるインタフェースです。
「参照」事前定義済モジュールには、SOAコンポジットで参照ハンドルを表示するコンポーネントが格納されます。
参照を使用して、次のフロー・オブジェクトを使用したプロセス・インタフェースを定義できます。
-
メッセージ・イベント
-
送信タスクおよび受信タスク
12.1.3 コールバックの概要
サービスが非同期サービスでコールバック・インタフェースが含まれている場合、ビジネス・カタログのコンポーネントにはコールバック内部コンポーネントが含まれています。コールバック内部コンポーネントは、サービス内のすべてのコールバック操作をグループ化したものです。
ビジネス・カタログでサービス・コンポーネントを選択した後、「構造」ウィンドウにコールバック・コンポーネントの操作のリストを表示できます。
サービスのみからのコールバックを待機するように構成されたメッセージ・イベントおよび受信タスクを実装すると、対応するサービスのコールバック内部コンポーネントからの操作を選択できるようになります。
図12-1に、ビジネス・カタログでコールバック・インタフェースを使用するサービスを示します。
12.2 Oracle BPMのサービス・アダプタの概要
サービス・アダプタを使用すると、他のアプリケーションおよび外部サービスとの統合が可能になります。Oracle BPMは、サービス・アダプタの使用をサポートすることにより、BPMNプロセスを外部アプリケーション、レガシー・アプリケーションおよび外部サービス(FTPまたはデータベースなど)と統合できます。
Oracle BPMは、次のテクノロジのサービス・アダプタをサポートしています。
-
ADF-BCサービス
-
アドバンスト・キューイング
-
B2B
-
Oracle BAMアダプタ
-
Coherence
-
様々なデータベース
-
直接バインディング
-
EJBサービス
-
ファイル
-
FTP
-
Healthcare
-
HTTP
-
JMS
-
LDAP
-
MFTバインディング
-
MQSeries
-
MSMQ
-
Oracleアプリケーション
-
RESTバインディング
-
ソケット
-
サードパーティ・アダプタ
-
ユーザー・メッセージング・サービス
-
Webサービス
サービス・アダプタの詳細な説明は、次を参照してください。
-
『Oracle SOA SuiteでのSOAアプリケーションの開発』の「バインディング・コンポーネントの開始」。
-
『テクノロジ・アダプタの理解』の「Oracle JCAアダプタの概要」およびその他の章。
SOAサービス・アダプタをBPMプロジェクトのSOAコンポジットに追加すると、サービス・アダプタが自動的にビジネス・カタログに表示されます。ビジネス・カタログは、SOAサービス・アダプタを追加したSOAコンポジットのスイムレーンにより、SOAサービス・アダプタを別々のモジュールに格納します。
-
サービス・アダプタを「外部参照」スイムレーンに追加した場合、ビジネス・カタログはこのアダプタを 「サービス」 事前定義済モジュールに表示します。
-
サービス・アダプタを「公開されたサービス」スイムレーンに追加した場合、ビジネス・カタログはこのアダプタを 「参照」 事前定義済モジュールに表示します。
サービス・アダプタの性質により、SOAコンポジットではコンポーネントを様々なスイムレーンに追加することが可能です。たとえば、読取り操作を含むファイル・アダプタは、「公開されたサービス」スイムレーニンに追加する必要がありますが、ファイル・アダプタに書込み操作が含まれる場合、「外部参照」スイムレーンに追加する必要があります。
図12-2に、読取り操作のファイル・アダプタおよび書込み操作のファイル・アダプタが含まれるSOAコンポジットを示します。書込み操作が含まれるファイル・アダプタはビジネス・カタログの「サービス」事前定義済モジュールの下に表示され、書込み操作が含まれるファイル・アダプタは「参照」事前定義済モジュールの下に表示されます。
ビジネス・カタログは、サービス・アダプタを 「サービス」 または 「参照」 事前定義済モジュール内の 「外部」 モジュールの下に格納します。サービス・アダプタはノードとして表されます。「アプリケーション」ウィンドウでサービス・アダプタを選択すると、そこに含まれている操作が「構造」ウィンドウに表示されます。サービス・アダプタが非同期として構成されている場合、「構造」ウィンドウにはコールバック内部オブジェクトも表示されます。
ノート:
出力引数を戻さないサービス・アダプタの操作は、出力引数として要素の構造Emptyを定義する場合があります。この要素の構造は、サービス・アダプタを使用するフロー・オブジェクトのデータ・アソシエーションに表示されます。出力データ・アソシエーションの定義はオプションで、この要素の構造のマッピングを提供する場合は必須ではありません。
12.3 Oracle BPMのOracleメディエータの概要
Oracleメディエータは、コンポジット・アプリケーション内のコンポーネント間の通信を促進します。これらのコンポーネントにはBPMNプロセスが含まれます。
次のような状況で、BPMプロジェクトにメディエータを使用できます。
-
BPMNプロセスは、メディエータ・コンポーネントを介してSOAコンポジット内の他のコンポーネントを起動できます。BPMNプロセスは、特定の入力データによってメディエータを起動します。メディエータは、他のコンポーネントの要件に合わせてこのデータを変換し、コンポーネントを起動します。
-
SOAコンポジット内のコンポーネントは、メディエータ・コンポーネントを介してBPMNプロセスを起動できます。メディエータがインタフェースを公開すると、外部コンポーネントもメディエータを介してBPMNプロセスを起動できるようになります。コンポーネントまたは外部コンポーネントは、特定の入力データによってメディエータを起動します。メディエータは、BPMNプロセスの要件に合わせてこのデータを変換し、その後、コンポーネントを起動します。
図12-4に、メディエータを介してBPMNプロセスを起動するBPELプロセスを示します。メディエータのサービス・ハンドルがBPELプロセスに接続し、参照ハンドルがBPMNプロセスに接続します。
メディエータ・サービス
メディエータをSOAコンポジットに追加すると、ビジネス・カタログにより、メディエータ・サービスが生成されます。
このコンポーネントは、メディエータ・サービスを表します。メディエータと通信するために起動する操作が含まれます。このサービスで定義されている操作は、操作のタイプにより、サービス・タスク、メッセージ・イベント、または送信および受信タスクを使用して起動できます。
ビジネス・カタログは、メディエータ・サービスを、 「サービス」 事前定義済モジュール内にあるメディエータ・モジュールに格納します。各メディエータ・サービス・コンポーネントに対し、個別のモジュールが作成されます。このモジュールの名前は、コンポーネントの名前です。
図12-3のアイテム1は、SOAコンポジットに示されたメディエータ・コンポーネントの公開されたサービスMediator_epを示しています。
メディエータ・インタフェース
メディエータの作成時にSOAバインディング・オプションを選択すると、Oracle JDeveloperはサービス・インタフェースを作成します。このインタフェースは、SOAコンポジットの外側からメディエータにアクセスする際に使用できる操作の署名を定義します。BPMNプロセスがこのインタフェースを使用し、BPMNおよびメディエータが同じインタフェースを持つよう、構成できます。
ビジネス・カタログは、 「参照」 事前定義済モジュールにある 「外部」 モジュール内にサービス・インタフェースを格納します。
図12-3のアイテム1は、SOAコンポジットに示されたメディエータ・コンポーネントの公開されたサービス・インタフェース・コンポーネントMediator_epを示しています。
プロセス・インタフェースを定義するためにインタフェースを使用する方法は、「ビジネス・カタログのインタフェースを持つメッセージ・イベントを使用したプロセス・インタフェースの定義」および「ビジネス・カタログのインタフェースを持つ送信および受信タスクを使用したプロセス・インタフェースの定義」を参照してください。
参照インタフェース
SOAコンポジットは、メディエータが採用する各コンポーネントについて、インタフェースを示します。
ビジネス・カタログは、サービス・インタフェースを、 「参照」 事前定義済モジュール内にあるメディエータ・モジュールに格納します。各メディエータ・サービス・コンポーネントに対し、個別のモジュールが作成されます。このモジュールの名前は、コンポーネントの名前です。
図12-3のアイテム3は、SOAコンポジットに示されたメディエータ・コンポーネントの参照インタフェース・コンポーネントProcessServiceを示しています。
SOAメディエータの詳細は、Oracle SOA SuiteでのSOAアプリケーションの開発のOracle Mediatorのサービス・コンポーネントの使用方法の部を参照してください。
12.4 Oracle BPMのBPELプロセスの概要
BPELプロセスを使用すると、BPMNと異なる標準を使用してビジネス・プロセスをモデリングできます。プロセスの性質によっては、特定のテクノロジで実装する方が容易な場合があります。Oracle BPMを使用すると、プロジェクト内でBPELおよびBPMNプロセスを統合し、両方の標準の利点を活用できます。
図12-5に、複数のBPELプロセスが含まれているSOAコンポジットと、それがどのようにビジネス・カタログに表示されるかを示します。
BPELサービス・コンポーネント
BPELプロセスをSOAコンポジットに追加すると、BPELサービス・コンポーネントがビジネス・カタログに表示されます。
このコンポーネントは、BPELプロセス・サービスを表します。このコンポーネントを使用して、BPELプロセスが同期または非同期プロセスであるかにより、サービス・タスク、メッセージ・イベント、または送信および受信タスクを実装できます。
図12-5に、BPELプロセスおよび対応する公開されたサービス・インタフェースがビジネス・カタログにどのように表示されるかを示します。
ビジネス・カタログは、BPELプロセス・サービスを、 サービス 事前定義済モジュール内にある BPEL モジュールに表示しています。各BPELプロセス・サービス・コンポーネントに対し、個別のモジュールが作成されます。このモジュールの名前は、BPELプロセスの名前です。
Oracle BPMはBPELプロセスをサービスとして扱います。他のタイプのサービスとBPELプロセスを区別しません。
BPMNプロセスから同期および非同期サービスを起動する方法は、「他のBPMNプロセスおよびサービスとの通信の概要」を参照してください。
公開されたインタフェース
BPELプロセスの作成時にSOAバインディング・オプションを選択した場合、ビジネス・カタログに公開されたインタフェースが表示されます。
このインタフェースを使用すると、外部コンポーネントによってBPELプロセスを起動できます。BPELプロセスに置き換わるBPMNプロセスを設計している場合、このインタフェースを使用してBPMNプロセスを定義すると、確実に置換できます。
プロセス・インタフェースを定義するためにインタフェースを使用する方法は、「ビジネス・カタログのインタフェースを持つメッセージ・イベントを使用したプロセス・インタフェースの定義」および「ビジネス・カタログのインタフェースを持つ送信および受信タスクを使用したプロセス・インタフェースの定義」を参照してください。
BPELプロセスの詳細は、Oracle SOA SuiteでのSOAアプリケーションの開発のBPELプロセス・サービス・コンポーネントの使用方法に関する項を参照してください。
12.5 Oracle BPMでのサービスの使用
サービス・タスク、メッセージ・イベントおよび送受信タスクでは、実装する際にサービスを定義する必要があります。
次のフロー・オブジェクトは、実装の際にサービスを定義する必要があります。
-
サービス・タスク
サービス・タスクは、同期サービスの起動を可能にします。サービス・タスクを実装するには、実装プロパティで同期サービスを指定する必要があります。サービス・タスクを使用して同期サービスを起動する方法は、「サービス・タスクを使用した、サービスおよびBPMNプロセスの同期操作の起動」を参照してください。
-
メッセージ・イベント
メッセージ・イベントは、非同期サービスの起動を可能にします。メッセージ・イベントを実装するには、実装プロパティで非同期サービスを指定する必要があります。メッセージ・イベントを使用して非同期サービスを起動する方法は、「メッセージ・イベントを使用した、非同期サービスおよび非同期BPMNプロセスの起動」を参照してください。
-
送信タスクおよび受信タスク
送信および受信タスクは、非同期サービスの起動を可能にします。送信タスクまたは受信タスクを実装するには、実装プロパティで非同期サービスを指定する必要があります。サービス・タスクを使用して同期サービスを起動する方法は、「送信および受信タスクを使用した、非同期サービスおよび非同期BPMNプロセスの起動」を参照してください。
12.6 Oracle BPMでの参照の使用
メッセージ・イベントおよび受信タスク・フロー・オブジェクトを使用すると、ビジネス・カタログの参照コンポーネントを使用してインタフェースを定義できます。
-
メッセージ・イベント
ビジネス・カタログのインタフェースを使用して、メッセージ・イベントを使用するプロセス・インタフェースを定義する方法は、「ビジネス・カタログのインタフェースを持つメッセージ・イベントを使用したプロセス・インタフェースの定義」を参照してください。
-
受信タスク
ビジネス・カタログのインタフェースを使用して、受信タスクを使用するプロセス・インタフェースを定義する方法は、「ビジネス・カタログのインタフェースを持つ送信および受信タスクを使用したプロセス・インタフェースの定義」を参照してください。
12.7 サービスおよび参照のカスタマイズ
プロセスで使用される一部のサービスや参照のインタフェースは、複雑であったり、用途が明確でない名前を使用している場合があります。これらのインタフェースは、プロセス・アナリストには不向きです。これらのサービスおよび参照をカスタマイズして複雑さを隠し、ビジネス・アナリストが使いやすくすることができます。また、サービスまたは参照をカスタマイズすることにより、他のプロセス開発者にも理解しやすくすることができます。
サービスまたは参照をカスタマイズすると、次のことが可能になります。
-
サービスまたは参照の名前の変更
-
サービスまたは参照のユーザー定義モジュールへの格納
-
サービスまたは参照の説明の追加
-
使用しない操作を隠す
-
各操作の表示名の追加
-
各操作の説明の追加
サービスまたは参照をカスタマイズすると、格納されている事前定義済モジュールにこのサービスまたは参照が表示されなくなり、Oracle BPM Studioはその使用をカスタマイズ後のコンポーネントで置き換えます。
カスタマイズ済サービスまたは参照を削除しても、SOAコンポジットから削除しない限り、対応する事前定義済モジュールにこのサービスまたは参照がまた表示されるようになります。
ノート:
元のサービスまたは参照を削除する場合、Oracle BPM Studioはカスタマイズされたサービスまたは参照を削除しません。カスタマイズしたサービスまたは参照を手動で削除するか、削除したものと同じ名前で新しいサービスまたは参照を作成する必要があります。
12.7.1 サービスまたは参照のカスタマイズ方法
サービスまたは参照をカスタマイズすることにより、ビジネス・アナリストにとって使いやすくし、プロセス開発者にも理解しやすくできます。
サービスまたは参照をカスタマイズするには: