- - PR -
RMIの利用事例について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-11-25 19:11
トランザクションやセッションなどを伴わない、単純なリクエスト伝播にRMIを利用しようと考えております。
RMIはEJBの実装にも使われている枯れた技術で、性能や信頼性の面で問題ないと認識しております。 後は、当方のリーダへの説明資料として、実案件をベースにしたRMI利用事例・トラブルなどが纏まった情報が 有ればよいのですが、ご存知でしょうか。 稚拙な質問で申し訳ありません。 | ||||||||
|
投稿日時: 2008-11-25 19:23
RMIはリモーティングのコア技術なので、
RMIを主とする事例というのは中々ないのではないでしょうか。 JDBCを使った開発事例が出てこないのと同じくらい、 一般的な技術ではないかと思います。 逆にejb 事例で検索すれば、いくらでも出てきますね。 ejbの他にもJDK5以降のJMXでも利用されています。 RMIのAPIは若干低レベルに感じますので、 メンテナンス性を考えると、JMXをオススメしますよ。 POJOに近い形でクラス設計をできますし、 JBossやGeronimoのコア技術にもなっています。 これなら信頼性が伝わるのではないでしょうか。 | ||||||||
|
投稿日時: 2008-11-26 01:16
RMI を単体で使うことは今はないのではないでしょうか。
わざわざレジストリを立ち上げたり、スタブを作ったり・・・という作業は面倒ですから。 アプリケーションサーバで EJB+RMI とするのが無難かつ事例も豊富かと思います。 | ||||||||
|
投稿日時: 2008-11-26 09:50
RMIも成長しているのですよ。
レジストリの立ち上げは必要ですが、これは別プロセスを起動する必要はなく、RMIサーバープロセス自身がレジストリサービスを提供できるようになっています。 スタブも必要なくなっています。 RMI-IIOP を使用して CORBA と相互運用することもできるようになっています。 リクエスト伝播という目的では、Webサービス(JAX-WS)も検討対象になるかと思いますが、Webサービスに比べて RMI のほうがオーバーヘッドが少ないというメリットがありますね。逆に、Webサービスは相互運用性の高さがメリットになると思います。 | ||||||||
|
投稿日時: 2008-11-26 22:54
面倒だから使わないって事はないような気がしますね。
S2RMIとかラッパー使えば設定もほとんど不要ですし。 ただ、分散処理が必要な案件が少ないと思います。 なんだかんだとWebアプリの案件が多いですしね。 バックエンドで行うプロセスをどうしても別サーバでやりたいという事案ではRMIを使いましたが、別サーバでやる意味はほとんどありませんでした。 考えられるケースだと、WebサーバでWebアプリが動いているけどWindowsでしか動作できないアプリを使いたいとか、そんなケースでしょうか? | ||||||||
|
投稿日時: 2008-11-27 00:39
java.rmi.registry.LocateRegistryクラスですね。 ローカルだけテストしながら開発するなら楽ですね。 本番用ではさすがにやらないですが・・・。 リモートサービスがレジストリを巻き込んで落ちるのは御免です。
バックエンドサーバにもフロントエンドと同じフレームワークで、 バッチの仕組みを実装したことがあります。 普通にStrutsなんですが、バッチのキックはcronで別プロセスからHTTPです。 アプリはDAOなどもそのままの構造で使えたので便利でした。 管理者画面と同居なので、開発もシームレスです。 DAOとかも、そのまま考えることなく使えますし。 最近のフレームワークは起動からの初期化シーケンスに、 結構な時間がかかったりしますから、 事前にWEBアプリとしてデプロイされていれば、 オーバーヘッドはHTTP通信くらいです。 |
1