Java-RMIとは、Java Remote Method Invocationの略称で、ネットワークを意識せずにネットワークを介したアプリケーション間でのプログラム呼び出しを可能とするAPIです。前述したCORBAと同じ設計思想ですが、すべてをJavaで記述できるのでCORBAで必要となったIDLなどの別の言語を使う必要がありません。これは、JDK 1.1以降に標準で付属されています。
動作には、クライアント側にスタブモジュール、サーバ側にスケルトンモジュールが必要であり、流れは以下のようになります。
上記がJava-RMIの基本的な流れですが、Javaのバージョンも上がりJava SE 5からはスタブやスケルトンは不要になっています。従って、Java SE 5以上を用いる場合は、スケルトンやスタブの生成は必要がなく、通常のJavaプログラムを作成する手順のみでRMIのプログラムを作成できるようになっています。
これまでに説明したCORBAやJava-RMIなど、分散コンピューティングにはさまざまなプロトコルが存在します。どのプロトコルを使うかはネットワーク構成などの環境に依存する部分が大きくあります。
ここからは、JBossにおける分散オブジェクトのための機能である「JBoss Remoting」に焦点を当てます。
JBoss Remotingとは、JBossにおける分散オブジェクトのための機能です。サーバに合わせた接続方法を用いることができるように、接続にはSocketやRMI、HTTP、Servlet、Bisocketを使うことができます。そのため、異なるネットワーク環境で実行されているアプリケーション同士でも接続可能です。
では、実際にサンプルを動作させてみましょう。異なるJVMで動作しているクライアントとサーバの間でのやりとりが分かると思います。通信には、まずSocketを用いてみます。JBoss Remotingのサンプルの概要は、下図の通りです。
サンプルは、以上のような流れで実行されます。実際にサンプルを作成してみましょう。開発を行う環境については、これまでの連載を参考にしてください。
Eclipse上で[ファイル]→[新規]→[プロジェクト]を選択します。
[新規プロジェクト]のダイアログで、[Web]→[動的Webプロジェクト]を選択し、[次へ]をクリックします。
[新規動的Webプロジェクト]ダイアログを以下のように入力し、[完了]をクリックします。
次ページでは、クライアントのプロジェクトを作成しサンプルを実装し始めます。
Copyright © ITmedia, Inc. All Rights Reserved.