[SOA] Native call between BPEL PM/Mediator and OSB

(注)ロジ子オリジナルです。以下の内容は11gR1 PS5での設定です。

Oracle Service Bus 11gR1(以下、OSB)からOracle SOA Suite 11gに含まれるBPEL Process Manager(以下、BPEL PM)やMediatorで作成したSOAコンポジットのエンドポイントを呼び出す場合、逆にOSBのプロキシサービスをSOAコンポジットから呼び出す場合はどうしていますか?普通にSOAP/HTTPをお使いでしょうか?できたらRMIで呼び出したいなぁ、という場合ってありませんか?
Oracle SOA Suite 10gR3の場合、Oracle ESB(現在のMediator)とBPEL PMが同一JVMインスタンスで動作する場合は自動的に内部呼び出しにしてくれましたが、11gR1では以下のような修正をすればRMIで相互に呼び出すことができます。
  • OSB:呼び出す方向によってトランスポートを使い分ける
  • SOAコンポジット:直接バインディングを利用する
OSBの設定
Outboundの場合(SOA-DIRECTトランスポート)
Oracle® Fusion Middleware Oracle Service Bus開発者ガイド 11gリリース1 (11.1.1.6.0)
Oracle SOA Suiteトランスポート(SOA-DIRECT)
http://docs.oracle.com/cd/E28389_01/dev.1111/b61435/soa.htm
OSBからSOAコンポジットをRMIで呼び出す場合は、SOA-DIRECTトランスポートを使います。OSBで設定するためには、事前にSOAコンポジットが存在している必要があります。詳細は開発者ガイドをご覧頂きたいのですが、一点、SOA-DIRECTで呼び出す場合は以下のエンドポイントURIを使います。
[protocol://authority]/domainName/compositeName[!versionNumber[*label]]/serviceName
protocolには、t3 (t3s)、iiop (iiops)、http (https)が入ります。 compositeVersionを指定すると、バージョンを指定してSOAコンポジットを呼び出すことができます。デフォルトバージョンを呼び出すだけなら、[]で囲まれた部分は設定不要です。

Inboundの場合(SBトランスポート)
Oracle® Fusion Middleware Oracle Service Bus開発者ガイド 11gリリース1 (11.1.1.6.0)
SBトランスポート
http://docs.oracle.com/cd/E28389_01/dev.1111/b61435/sb.htm
OSBでSBトランスポートを使ったプロキシサービスを作成します。SOAコンポジットからは呼び出すために、WSDLをOSBの管理コンソールからエクスポートしておきましょう。SBトランスポートの場合、エンドポイントURLは以下のようになっています。
sb://{Host Name or IP}:{port}/serviceName
[注意]

Oracle Service Bus 11gR1(以下、OSB)からOracle SOA Suite 10gR3のBPEL Process Manager(以下、BPEL PM)と連係する場合は、Oracle BPEL Process Managerトランスポートをお使い下さい。
Oracle® Fusion Middleware Oracle Service Bus開発者ガイド 11gリリース1 (11.1.1.6.0)
Oracle BPEL Process Managerトランスポート(Oracle SOA Suite 10gで使用する場合のみ)
http://docs.oracle.com/cd/E28389_01/dev.1111/b61435/bpelpm.htm
SOAコンポジット
Inbound、Outboundとも、直接バインディングを使います。
Oracle® Fusion Middleware Oracle SOA Suite開発者ガイド 11g リリース1 (11.1.1.6.0)
直接バインディング・サービス
http://docs.oracle.com/cd/E28389_01/dev.1111/b56238/sca_bindingcomps.htm#CHDHECHG
直接バインディング起動APIの使用
http://docs.oracle.com/cd/E28389_01/dev.1111/b56238/invocapi.htm
SBトランスポートとして公開されているプロキシサービスを呼び出す場合、OSBの管理コンソールからエクスポートしたWSDLを使います。
Outboundの場合、JDeveloperの接続ウィザードを使う場合には、Typeは「Reference」、Reference Targetを「Oracle Service Bus」としておきましょう。Inboundの場合は、TypeをServiceにしておきます(Reference Targetは選択できません)。

0 件のコメント:

コメントを投稿