Tuxedo 8.1 ORB
用WebLogic C++
クライアントの開発図
2-3 WebLogic C++
ク ラ イアン ト とWebLogic Server
の相互運用性2 RMI over IIOP
プログラミングモデルWebLogic C++ ク ラ イ アン ト の制限
WebLogic C++ ク ラ イ ア ン ト には、 以下の制限があ り ます。
セキ ュ リ テ ィは WebLogic Server セキ ュ リ テ ィ サービ ス を通じ て提供する
サーバ側の ト ラ ンザ ク シ ョ ン境界設定のみ提供する
WebLogic C++ ク ラ イ アン ト のコー ド サンプル
WebLogic Server
製品では、 WebLogic C++ ク ラ イ ア ン ト のサンプルが提供 さ れ ます。 そのサンプルは、SAMPLES_HOME\server\examples\src\examples\iiop\ejbデ ィ レ ク ト リ にあ り ます。 各サンプルの説明 と 、 ビル ド 、 コ ン フ ィグ レーシ ョ ン、 および実行の手 順については、package-summary.htmlを参照し て く だ さ い。 コー ド 例は、 修正 し て再利用で き ます。
WebLogic Tuxedo Connector を使用し た RMI-IIOP アプ リ ケーシ ョ ン
WebLogic Tuxedo Connector
を使用する と 、WebLogic Server アプ リ ケーシ ョ ン とTuxedo サービ スの相互運用が実現 さ れます。
いつ WebLogic Tuxedo Connector を使用するの か
Tuxedo
でアプ リ ケーシ ョ ン を開発し て WebLogic Server に移行する場合、 ま た は旧来の Tuxedo シ ス テム を新し い WebLogic 環境に統合し よ う と し ている場合 には、WebLogic Tuxedo Connector の使用を検討し て く だ さ い。 WebLogic TuxedoConnector
を使用する と 、 Tuxedo の拡張性 と 信頼性が高い CORBA 環境を利用すRMI-IIOP
でのEJB
の使用WebLogic Tuxedo Connector の仕組み
コ ネ ク タでは、 XML コ ン フ ィ グ レーシ ョ ン フ ァ イ ルを使用し て、 WebLogic
Server
か ら の Tuxedo サービ スの呼び出し を可能に し ています。 ま た、 サービ ス 要求に応じ て、 Tuxedo か ら WebLogic Server エン タープ ラ イ ズ JavaBean (EJB)やその他のアプ リ ケーシ ョ ンを呼び出すこ と も で き ます。
以下のマニ ュ アルではそれぞれ、 Weblogic Tuxedo Connector と 、 Tuxedo での
CORBA
アプ リ ケーシ ョ ンの構築について説明し ています。「
WebLogic Tuxedo Connector
」 ページ
Tuxedo
に関する 「CORBA
の ト ピ ッ ク」WebLogic Tuxedo Connector のコー ド サンプル
WebLogic Server
製品では、 WebLogic Tuxedo Connector IIOP のサンプルが提供 さ れます。 そのサンプルは、SAMPLES_HOME\server\examples\src\examples\iiop\ejb
デ ィ レ ク ト リ にあ
り ます。 各サンプルの説明 と 、 ビル ド、 コ ン フ ィグ レーシ ョ ン、 および実行の手 順については、package-summary.html を参照し て く だ さ い。 コー ド 例は、 修正し て再利用でき ます。
RMI-IIOP での EJB の使用
RMI over IIOP
を使用するエンタープライズ JavaBean を実装することで、異機種サーバ環境における以下のような EJB 相互運用性を実現することができます。
ORB
を使用する Java RMI クライアントが、WebLogic Server over IIOP 上の エンタープライズ Bean にアクセスできる。
Java
以外のプラットフォームの CORBA/IDL クライアントから、WebLogicServer
上のいかなるエンタープライズ Bean オブジェクトにもアクセスできる。
2 RMI over IIOP
プログラミングモデルCORBA/IDL
クライアントを使用する場合には、Java ソース ファイルに定義されている EJB クラスがマッピング情報の源になります。WebLogic Server には、
必要な IDL ファイルを生成するための weblogic.ejbcユーティリティが用意さ れています。これらのファイルは、CORBA ビューを、対象となる EJB の状態と 動作で表します。weblogic.ejbcユーティリティの用途は以下のとおりです。
EJB
のクラス、インタフェース、およびデプロイメント記述子ファイルをJAR ファイルに格納する。
EJB
用の WebLogic Server コンテナ クラスを生成する。
RMI
コンパイラを使用して各 EJB コンテナ クラスを実行し、スタブとスケ ルトンを作成する。これらのクラスへの CORBA インタフェースを記述する CORBA IDL ファイ ルのディレクトリ ツリーを生成する。
weblogic.ejbcユーティリティでは、さまざまなコマンド修飾子がサポートさ
れています。 「
CORBA/IDL
クライアント使用型 RMI-IIOP アプリケーションの 開発」を参照してください。結果として生成されたファイルはコンパイラで処理されます。コンパイラはその 際に、idlSourcesディレクトリからソース ファイルを読み込み、CORBA C++
のスタブ ファイルとスケルトン ファイルを生成します。 値タイプ以外のすべて の CORBA データ型に対しては、生成されるこれらのファイルで十分です ( 詳細 については、「WebLogic RMI-IIOP の制約事項」を参照してください )。 生成され た IDL ファイルは、idlSourcesディレクトリに配置されます。なお、
Java-to-IDL
マッピング処理には、さまざまな問題が潜んでいます。 詳細については、Java Language Mapping to OMG IDL
仕様を参照してください。 また、
Sun
からも優れたガイド『Enterprise JavaBeansTM Components and CORBA Clients: A Developer Guide
』が公開されています。以下の例では、作成済みの Bean から IDL を生成する方法を示します。
> java weblogic.ejbc -compiler javac -keepgenerated -idl -idlDirectory idlSources
build\std_ejb_iiop.jar
%APPLICATIONS%\ejb_iiop.jar
次に、以下のようにして、EJB インタフェースとクライアント アプリケーショ ンをコンパイルします ( この例では CLIENT_CLASSES および APPLICATIONS ターゲット変数を使用しています )。
コード例
> javac -d %CLIENT_CLASSES% Trader.java TraderHome.java TradeResult.java Client.java
次に、先ほど weblogic.ejbcを使用して作成した IDL ファイルに対して、以下 のように IDL コンパイラを実行し、C++ のソース ファイルを作成します。
>%IDL2CPP% idlSources\examples\rmi_iiop\ejb\Trader.idl . . .
>%IDL2CPP% idlSources\javax\ejb\RemoveException.idl これで、C++ クライアントをコンパイルすることができます。
RMI-IIOP での EJB の使用方法の詳細については、WebLogic Server に付属して
いる RMI-IIOP サンプルを参照してください。このサンプルは、インストール済 み環境の SAMPLES_HOME/server/src/examples/iiopディレクトリに入ってい
ます。コー ド例
examples.iiopパ ッ ケージは、 数多 く の ク ラ イ アン ト と アプ リ ケーシ ョ ン と の 接続を示し た も ので、WL_HOME/samples/examples/iiopデ ィ レ ク ト リ にあ り ま す。 EJB を RMI-IIOP で使用し、 C++ ク ラ イ アン ト に接続し て Tuxedo サーバ と の相互運用性を設定する例 も用意さ れています。 詳細については、 サンプルの説 明を参照し て く だ さ い。 特に WebLogic Tuxedo Connector に関するサンプルにつ いては、/wlserver7.0/samples/examples/wtcデ ィ レ ク ト リ を参照し て く だ
さ い。
次の表に、 WebLogic Server 7.0 で提供 さ れる RMI-IIOP のサンプルに関する情報 を示し ます。
2 RMI over IIOP
プログラミングモデル図
2-4 WebLogic Server 7.0
のIIOP
サンプルサンプル
ORB/
プロ ト コル 必須条件iiop.ejb.entity.cppclient
WebLogic Server
のエン テ ィ テ ィ セ ッ シ ョ ンBean
を呼び出すC++
ク ラ イ ア ン ト を提供す る。
Borland Visibroker 4.1
Borland Visibroker 5.0
Borland Visibroker 4.1
の場合: GIOP 1.0
プ ロ ト コ ルを使用す る。ユーザはDefaultGIOPMinorVersion 属性を追加 し、config.xml のサーバ
Mbean
でその値を「
1
」 に設定す る必要があ る 。Borland Visibroker 5.0
の場合:
config.xmlのサーバ
Mbean
でデフ ォル ト ネ イ テ ィ ブコ ード セ ッ ト と し て
utf-16/iso-8859-1を指定 する 。
Borland Visibroker 5.0
の場合: GIOP 1.2
を使用する 。GIOP
のバージ ョ ンが含まれ る完全 なcorbaloc url
を使用する(
Client -ORBInitRef NameService=corbaloc:ii op:1.2@localhost:7001/N ameServiceな ど)
。iiop.ejb.entity.tuxclient 複雑な
valuetype
を使用 し てWebLogic Server
のエン テ ィ テ ィ セ ッ シ ョ ンBean
を呼び出すTuxedo
ク ラ イ ア ン ト を提供す る。BEA IIOP Tuxedo 8.x
。Tuxedo
の ラ イ セ ン ス は必要ない。iiop.ejb.entity.server.wls
C++
ク ラ イ ア ン ト ま たはTuxedo
ク ラ イ ア ン ト と エン テ ィ テ ィBean
の接続 を例示す る。該当な し
コード例
iiop.ejb.stateless.cppclient
WebLogic Server
の ス テー ト レ ス セ ッ シ ョ ンBean
を呼び出すC++ CORBA
ク ラ イ ア ン ト を提供する 。ま た、WebLogic Tuxedo Connector
を使用 し てTuxedo
サーバへの送信RMI-IIOP
呼び出 し を行 う 方法 も 例示す る。
Borland Visibroker 4.1
Borland Visibroker 5.0
Borland Visibroker 4.1
の場合: GIOP 1.0
プ ロ ト コ ルを使用する 。ユーザは
DefaultGIOPMinorVersion 属性を追加 し、config.xml のサーバ
Mbean
でその値を「
1
」 に設定する 必要があ る。
Borland Visibroker 5.0
の場合:
config.xmlのサーバMbean
でデフ ォ ル ト ネ イ テ ィ ブ コ ー ド セ ッ ト と し てutf-16/iso-8859-1を指定 す る。
Borland Visibroker 5.0
の場合: GIOP 1.2
を使用する 。GIOP
のバージ ョ ンが含まれ る 完全 なcorbaloc url
を使用する(
Client -ORBInitRef NameService=corbaloc:ii op:1.2@localhost:7001/N ameServiceな ど)
。iiop.ejb.stateless.rmiclient
WebLogic Server
の ス テー ト レ ス セ ッ シ ョ ンBean
を呼び出すRMI Java
ク ラ イ ア ン ト を提供す る。ま た、WebLogic Tuxedo Connector
を使用 し てTuxedo
サーバへの送信RMI-IIOP
呼び出 し を行 う 方法 も 例示す る。JDK 1.3.1 JDK 1.3.1
では、 セキ ュ リ テ ィ ポ リ シーフ ァ イ ルがない と サーバ にア ク セ ス で き ない。iiop.ejb.stateless.sectuxclie nt
WebLogic
のス テー ト レ スセ ッ シ ョ ンBean
を呼び出すセ キ ュ アなTuxedo
クラ イ ア ン ト を例示す る。
BEA IIOP Tuxedo 8.x
。Tuxedo
の ラ イ セ ン ス は必要ない。サンプル
ORB/
プロ ト コル 必須条件2 RMI over IIOP
プログラミングモデルiiop.ejb.stateless.server.tux
Tuxedo
サーバを通 じ て さ ま ざ ま な ク ラ イ ア ン ト アプ リ ケーシ ョ ンか ら ス テー ト レ ス セ ッ シ ョ ンBean
を呼び出 す方法を示す。Tuxedo
ク ラ イ ア ン トと の連携で、
WebLogic Tuxedo Connector
を使用し たサーバ間の接続 も 例示す る。Tuxedo TGIOP
Tuxedo 8.x
WebLogic Tuxedo Connector
を使用す る場合はTuxedo
の ラ イ セ ン スサーバ間接続を実現す る
WebLogic Tuxedo Connector
。「
RMI/IIOP
お よびCORBA
を 相互に運用す るWebLogic Tuxedo Connector
の使用」 を 参照。iiop.ejb.stateless.server.wls さ ま ざ ま な ク ラ イ ア ン ト を使用 し て、
WebLogic Server
で直接、 ま たはTuxedo
サーバを通 じ て間接的に ス テー ト レ スEJB
を呼び出す方法を例 示す る。該当な し
iiop.ejb.stateless.tuxclient
WebLogic Server
で直接ス テー ト レ ス セ ッ シ ョ ンBean
を呼び出すか、Tuxedo
サーバを通 じ てWebLogic
の 同じ ス テー ト レ スセ ッ シ ョ ンBean
を 呼び出すTuxedo
ク ラ イ ア ン ト を提供 する 。ま た、WebLogic Tuxedo Connector
を使用し てTuxedo
サーバ か らWebLogic Server
への送信RMI-IIOP
呼び出し を行 う 方法 も 例示 する 。BEA IIOP Tuxedo 8.x
。Tuxedo
の ラ イ セ ン ス は必要ない。サンプル
ORB/
プロ ト コル 必須条件コード例
iiop.rmi.cppclient
Tuxedo
サーバま たはWebLogic Server
のいずれかを呼び出すC++
クラ イ ア ン ト を提供す る。
WebLogic Tuxedo Connector
を使用 し たサーバ 間接続 も 例示し ます。
Borland Visibroker 4.1
Borland Visibroker 5.0
Orbix 2000
Borland Visibroker 4.1
の場合: GIOP 1.0
プ ロ ト コ ルを使用する 。ユーザは
DefaultGIOPMinorVersion 属性を追加 し、config.xml のサーバ
Mbean
でその値を「
1
」 に設定する 必要があ る。
Borland Visibroker 5.0
の場合:
config.xmlのサーバMbean
でデフ ォ ル ト ネ イ テ ィ ブ コ ー ド セ ッ ト と し てutf-16/iso-8859-1を指定 す る。
Borland Visibroker 5.0
の場合: GIOP 1.2
を使用する 。GIOP
のバージ ョ ンが含まれ る 完全 なcorbaloc url
を使用する(
Client -ORBInitRef NameService=corbaloc:ii op:1.2@localhost:7001/N ameServiceな ど)
。iiop.rmi.rmiclient
WebLogic Server
と の接続を例示す るRMI
ク ラ イ ア ン ト を提供する 。ま た、WebLogic Tuxedo Connector
を使用 し てWebLogic Server
か らTuxedo
サー バへの送信呼び出し を行 う 方法 も 例 示する 。該当な し サーバにア ク セ スす る にはセ キ ュ リ テ ィ ポ リ シーフ ァ イルが 必要。
サンプル