12

私は現在、Java RMI を広範囲に使用するプロジェクトに取り組んでおり、Java RMI に関する優れたリソースを誰かが知っているかどうか疑問に思っていました。

私が現在見つけている資料で抱えている問題は、通常はかなり古くなっている (Java 1.3 など) か、半分完成していることです。喜んで本を購入したいのですが、Amazon で見ると、すべての本は 7 年ほど前のものです。

したがって、誰かが優れたリソース、本、または優れた実装例を知っている場合は、それらについて聞くことに非常に興味があります.

4

10 に答える 10

9

RMI Hello Worldは、最初は良さそうです。もちろん、これはまだ単純な例なので、RMIに既に精通しているので、RMIのパフォーマンス/スケーラビリティに関するヒントが役立つかもしれません。

于 2009-02-03T09:31:52.127 に答える
5

Java.RMI は何年にもわたってほとんど変更されていないため、古いドキュメントのほとんどは引き続き参照できます。Java 5.0 のバージョンを使用している場合は、RMI スタブをコンパイルする必要があるという重要な変更があることに注意してください。ほとんどの人は RMI から離れ、River (以前は Jini と呼ばれていました) を分散システムに採用しています。

RMI の使用をまだ考えている場合は、Oracle のドキュメントを読むか、フォーラムに質問を投稿することをお勧めします。

書籍については、William Grosso 著のJava RMIまたはElliotte Harold 著のJava Network Programmingです。

于 2009-01-28T21:24:37.763 に答える
4

RMIはそれほど変わっていません。1.3時代の本で十分だと思います。

于 2009-01-02T18:28:13.513 に答える
3

回答ありがとうございましたRMIがあまり変わっていないことについて人々が言っ​​たことは正しいと思いますが、チュートリアルはいくつかの重要な点を理解しているので、それでも少し良くなる可能性があります。

結局、アクティベーションなどのRMIの非常に優れた部分のいくつかをカバーしている、私が見つけた最高の本は、Javaネットワークプログラミングと分散コンピューティングでした。

私は他のO'reillyJavaRMIの本を見ましたが、私の意見では、最小のRMIプロジェクトよりも大きいものについては、まったく良くありません。

于 2009-02-03T08:56:58.327 に答える
3

RMI を多用する場合は、Spring Remotingをご覧になることをお勧めします。これは、リモーティング プロトコルを抽象化するのに大いに役立ち、必要に応じて後でリモーティングの実装を切り替えるのに役立ちます (たとえば、ヘシアンや SOAP に切り替えるなど)。

RMI やその他のリモート オブジェクト プロトコルを使用する場合は、リモート オブジェクトのメソッドを呼び出すことで大量のトラフィックが生成される可能性があることに注意してください。これらのオブジェクトがリモートであることは、コードでは明らかではない場合があります。パフォーマンスの問題が発生する可能性があります。

可能であれば、リモートサービスを呼び出してデータオブジェクトを取得する、多かれ少なかれサービス指向のアーキテクチャを使用することをお勧めしますが、それらのオブジェクトに対してあまり多くの動作を行わないようにします...

于 2009-02-03T09:19:37.593 に答える
2

Sun のRMI チュートリアルを試しましたか? Sun のチュートリアルはすべて非常に優れており、通常、私が Java について何かを学ぶために最初に始める場所です。

私たちが学校で使用した良いサンプル コードのある本はJ2EE Developer's Handbookです。これは、RMI に関する 1 つの章 (約 50 ページ) しかない約 1500 ページの巨大な参考書であることを覚えておいてください。

于 2009-01-28T21:29:59.983 に答える
1

マルチホーム RMI (複数の IP を持つホスト) に関する絶対に貴重な記事RMI を非常に理解しやすい方法で説明し、複数の IP アドレスを持つマシンでレジストリをホストする問題と、プライベート IP の処理方法についても説明します。私のベーコンを保存しました。

これは、帰りのアーカイブからの画像付きの記事です。

于 2010-10-01T07:09:14.127 に答える
1

O'Reilly RMI の本はかなり良いです。頑張れ。

于 2009-01-03T15:05:53.373 に答える
0

Redisson フレームワークを使用したリモート メソッド呼び出しの別の良い例を次に示します。

リモートYourServiceImplで呼び出す必要があるメソッドが含まれており、YourServiceインターフェイスを実装しているとします。

YourServiceImpl は RemoteService オブジェクトを介して Redisson に登録する必要があります。

YourService yourService = new YourServiceImpl();

RRemoteService remoteService = redisson.getRemoteService();
remoteService.register(YourService.class, yourService);

メソッドをリモートで呼び出すには、サービス インターフェイスのみが必要です。

RRemoteService remoteService = redisson.getRemoteService();
YourService service = remoteService.get(YourService.class);

MyObject result = service.myMethod(someParam1, someParam2);

また、非同期呼び出しもサポートしています。

// async interface for YourService
@RRemoteAsync(YourService.class)
public interface YourServiceAsync {

    RFuture<Long> someMethod1(Long param1, String param2);

    RFuture<Void> someMethod2(MyObject param);

}

RRemoteService remoteService = redisson.getRemoteService();
YourServiceAsync asyncService = remoteService.get(YourServiceAsync.class);

RFuture<Long> res = asyncService.someMethod1(12L, "param");
res.thenApply(r -> {
 ...
});

詳細はこちら

于 2016-06-04T08:17:50.113 に答える
0

すでに述べたものに加えて、Java RMI の内部を理解するという記事は、内部を少し説明した非常にまともな私見です。

于 2009-02-03T13:33:23.247 に答える