- PR -

RMIの利用事例について

1
投稿者投稿内容
こば
会議室デビュー日: 2008/11/21
投稿数: 1
投稿日時: 2008-11-25 19:11
トランザクションやセッションなどを伴わない、単純なリクエスト伝播にRMIを利用しようと考えております。
RMIはEJBの実装にも使われている枯れた技術で、性能や信頼性の面で問題ないと認識しております。

後は、当方のリーダへの説明資料として、実案件をベースにしたRMI利用事例・トラブルなどが纏まった情報が
有ればよいのですが、ご存知でしょうか。

稚拙な質問で申し訳ありません。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-11-25 19:23
RMIはリモーティングのコア技術なので、
RMIを主とする事例というのは中々ないのではないでしょうか。
JDBCを使った開発事例が出てこないのと同じくらい、
一般的な技術ではないかと思います。

逆にejb 事例で検索すれば、いくらでも出てきますね。
ejbの他にもJDK5以降のJMXでも利用されています。

RMIのAPIは若干低レベルに感じますので、
メンテナンス性を考えると、JMXをオススメしますよ。
POJOに近い形でクラス設計をできますし、
JBossやGeronimoのコア技術にもなっています。
これなら信頼性が伝わるのではないでしょうか。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2008-11-26 01:16
RMI を単体で使うことは今はないのではないでしょうか。
わざわざレジストリを立ち上げたり、スタブを作ったり・・・という作業は面倒ですから。

アプリケーションサーバで EJB+RMI とするのが無難かつ事例も豊富かと思います。
未記入
大ベテラン
会議室デビュー日: 2008/02/07
投稿数: 115
投稿日時: 2008-11-26 09:50
RMIも成長しているのですよ。

レジストリの立ち上げは必要ですが、これは別プロセスを起動する必要はなく、RMIサーバープロセス自身がレジストリサービスを提供できるようになっています。

スタブも必要なくなっています。

RMI-IIOP を使用して CORBA と相互運用することもできるようになっています。

リクエスト伝播という目的では、Webサービス(JAX-WS)も検討対象になるかと思いますが、Webサービスに比べて RMI のほうがオーバーヘッドが少ないというメリットがありますね。逆に、Webサービスは相互運用性の高さがメリットになると思います。
わたなべ
大ベテラン
会議室デビュー日: 2007/12/09
投稿数: 123
お住まい・勤務地: 札幌
投稿日時: 2008-11-26 22:54
面倒だから使わないって事はないような気がしますね。
S2RMIとかラッパー使えば設定もほとんど不要ですし。

ただ、分散処理が必要な案件が少ないと思います。
なんだかんだとWebアプリの案件が多いですしね。
バックエンドで行うプロセスをどうしても別サーバでやりたいという事案ではRMIを使いましたが、別サーバでやる意味はほとんどありませんでした。
考えられるケースだと、WebサーバでWebアプリが動いているけどWindowsでしか動作できないアプリを使いたいとか、そんなケースでしょうか?
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-11-27 00:39
引用:

レジストリの立ち上げは必要ですが、これは別プロセスを起動する必要はなく、RMIサーバープロセス自身がレジストリサービスを提供できるようになっています。


java.rmi.registry.LocateRegistryクラスですね。
ローカルだけテストしながら開発するなら楽ですね。
本番用ではさすがにやらないですが・・・。
リモートサービスがレジストリを巻き込んで落ちるのは御免です。

引用:

リクエスト伝播という目的では、Webサービス(JAX-WS)も検討対象になるかと思いますが、Webサービスに比べて RMI のほうがオーバーヘッドが少ないというメリットがありますね。逆に、Webサービスは相互運用性の高さがメリットになると思います。


バックエンドサーバにもフロントエンドと同じフレームワークで、
バッチの仕組みを実装したことがあります。

普通にStrutsなんですが、バッチのキックはcronで別プロセスからHTTPです。
アプリはDAOなどもそのままの構造で使えたので便利でした。
管理者画面と同居なので、開発もシームレスです。
DAOとかも、そのまま考えることなく使えますし。

最近のフレームワークは起動からの初期化シーケンスに、
結構な時間がかかったりしますから、
事前にWEBアプリとしてデプロイされていれば、
オーバーヘッドはHTTP通信くらいです。
1

スキルアップ/キャリアアップ(JOB@IT)