クラウドで再注目の「分散コンピューティング」の常識企業システムの常識をJBossで身につける(7)(2/4 ページ)

» 2010年03月24日 00時00分 公開
[上川伸彦株式会社ビーブレイクシステムズ]

Java標準の分散オブジェクト技術「Java-RMI」とは

 Java-RMIとは、Java Remote Method Invocationの略称で、ネットワークを意識せずにネットワークを介したアプリケーション間でのプログラム呼び出しを可能とするAPIです。前述したCORBAと同じ設計思想ですが、すべてをJavaで記述できるのでCORBAで必要となったIDLなどの別の言語を使う必要がありません。これは、JDK 1.1以降に標準で付属されています。

 動作には、クライアント側にスタブモジュール、サーバ側にスケルトンモジュールが必要であり、流れは以下のようになります。

図3 Java-RMIの処理の流れ 図3 Java-RMIの処理の流れ
  1. クライアントがサーバのメソッドを呼び出す
  2. スタブによって、自動的に引数がストリームに変換される
  3. このストリームを、サーバ側のスケルトンが受け取ることでオブジェクトのメソッドを呼び出し、処理が実行される
  4. 処理が実行されたことによる返却値は、逆にサーバのオブジェクト⇒スケルトン⇒スタブ⇒クライアントの流れで戻される

 上記がJava-RMIの基本的な流れですが、Javaのバージョンも上がりJava SE 5からはスタブやスケルトンは不要になっています。従って、Java SE 5以上を用いる場合は、スケルトンやスタブの生成は必要がなく、通常のJavaプログラムを作成する手順のみでRMIのプログラムを作成できるようになっています。

さまざまな接続方法を選べる「JBoss Remoting」とは

 これまでに説明したCORBAやJava-RMIなど、分散コンピューティングにはさまざまなプロトコルが存在します。どのプロトコルを使うかはネットワーク構成などの環境に依存する部分が大きくあります。

 ここからは、JBossにおける分散オブジェクトのための機能である「JBoss Remoting」に焦点を当てます。

 JBoss Remotingとは、JBossにおける分散オブジェクトのための機能です。サーバに合わせた接続方法を用いることができるように、接続にはSocketRMIHTTPServletBisocketを使うことができます。そのため、異なるネットワーク環境で実行されているアプリケーション同士でも接続可能です。

分散コンピューテイングを体感するサンプル

 では、実際にサンプルを動作させてみましょう。異なるJVMで動作しているクライアントとサーバの間でのやりとりが分かると思います。通信には、まずSocketを用いてみます。JBoss Remotingのサンプルの概要は、下図の通りです。

図4 Webプロジェクトの新規作成 図4 JBoss Remotingサンプルの概要図
  1. クライアントはInvokerLocatorを用いてSocketにてサーバに接続
  2. クライアントはサーバのメソッドを呼び出す
  3. サーバは呼び出されたメソッドを実行
  4. サーバは戻り値をクライアントへ返却

 サンプルは、以上のような流れで実行されます。実際にサンプルを作成してみましょう。開発を行う環境については、これまでの連載を参考にしてください。

サーバとクライアントで別のプロジェクトを作成

サーバのプロジェクトを作成

 Eclipse上で[ファイル]→[新規]→[プロジェクト]を選択します。

図5 プロジェクトの新規作成 図5 プロジェクトの新規作成

 [新規プロジェクト]のダイアログで、[Web]→[動的Webプロジェクト]を選択し、[次へ]をクリックします。

図6 新規プロジェクトの選択 図6 新規プロジェクトの選択

 [新規動的Webプロジェクト]ダイアログを以下のように入力し、[完了]をクリックします。

図7 新規動的Webプロジェクトの入力(サーバ) 図7 新規動的Webプロジェクトの入力(サーバ)
  • [プロジェクト名]simpleJBossRemotingServer
  • [Target Runtime]JBoss 5.0 Runtime
  • [動的Webモジュールバージョン]2.5
  • [構成]JBoss 5.0 Runtime デフォルト構成

 次ページでは、クライアントのプロジェクトを作成しサンプルを実装し始めます。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。