Frage

Hallo allerseits Ich bin derzeit Unternehmen ein Projekt, die umfangreiche Verwendung von Java RMI handelt und ich wurde gefragt, ob jemand Kenntnis von guten Ressourcen über es ist.

Das Problem, das ich mit dem Material habe ich zur Zeit zu finden, ist, dass sein in der Regel ziemlich veraltet (wie Java 1.3) und / oder die Hälfte abgeschlossen. Ich würde auch gerne ein Buch auf, es zu kaufen, aber die Suche auf Amazon all Bücher sind wie 7 Jahre alt.

Also, wenn jemand Kenntnis von guten Ressourcen, Büchern oder guten Beispiel Implementierungen ich sehr daran interessiert wäre, um sie zu hören. Vielen Dank im Voraus für Ihre Hilfe.

War es hilfreich?

Lösung

RMI Hallo Welt sucht nach einem Start schön. Natürlich ist es immer noch ein einfaches Beispiel, vielleicht Tipps RMI Performance / Skalierbarkeit nützlich sein werden da Sie bereits vertraut sind mit RMI.

Andere Tipps

Die java.rmi hat sehr wenig über die Jahre verändert, so dass die meisten der alten Dokumentation noch verwiesen werden kann. Beachten Sie, dass eine wesentliche Änderung der Notwendigkeit, die RMI Stubs zu kompilieren, wenn Sie eine Version von Java 5.0 verwenden. Die meisten Menschen haben zog von RMI entfernt und haben Fluss umarmte (früher Jini) für verteilte Systeme.

Wenn Sie noch denken an voran mit RMI, dann würde ich vorschlagen, Lesung die Oracle-Dokumentation oder veröffentlichen Ihre Fragen über ihren Foren .

Wie für Bücher ... Java RMI durch William Grosso oder Java Network Programming von Elliotte Harold.

RMI hat sich nicht viel geändert. Ich denke, 1.3 Ära Bücher werden gut.

Vielen Dank für Ihre Antworten Ich denke, was die Leute sagten über RMI nicht geändert hat viel richtig, aber die Tutorials immer noch ein bisschen besser sein könnte sie einige wichtige Punkte beschönigen.

Am Ende ist das beste Buch bei weitem, dass ich gefunden, dass einige der wirklich guten Seiten von RMI wie Aktivierung abdeckt war Java Network Programming und Distributed Computing .

Ich sah auf der anderen O'reilly Java RMI Buch und in meinem opnion seines nicht sehr gut überhaupt, für etwas größer ist als die kleinste von RMI-Projekten.

Wenn Sie die starke Nutzung von RMI machen sind, würde ich vorschlagen, einen Blick auf Frühling Remoting. Es hilft viel in den Remote Protokoll zu abstrahieren, helfen Sie Implementierung Schalter remoting später, wenn Sie benötigen (zB Umstellung auf hessischen oder SOAP).

Eine Sache im Auge zu behalten, wenn Sie RMI oder andere Remote-Objekt-Protokoll verwenden, ist, dass Sie viel Verkehr durch den Aufruf von Methoden, die auf Remote-Objekte erzeugen können. Es ist vielleicht nicht in Ihrem Code offensichtlich sein, dass diese Objekte entfernt sind. Es könnte Performance Probleme erzeugen.

Wenn Sie können, würde ich Ihnen raten, eine Architektur zu haben, mehr oder weniger serviceorientiert, in dem Sie Remote-Dienste rufen Datenobjekt zu erhalten, aber nicht zu viel Verhalten zu haben, auf diese Objekte ...

Haben Sie versucht, Sun't RMI Tutorial ? Die Sun-Tutorials sind alle sehr gut, und sie sind in der Regel der erste Ort, den ich für das Lernen etwas über Java starten.

Ein Buch, das wir in der Schule, die guten Beispiel-Code hat, ist Handbuch J2EE Entwickler . Denken Sie daran, dass dies ein großes Nachschlagewerk von etwa 1500 Seiten mit nur einem Kapitel (ca. 50 Seiten) über RMI.

Das O'Reilly RMI Buch ist ziemlich gut. Go for it.

Absolut unschätzbare Artikel auf Multihomed RMI ( Hosts mit mehreren IP-Adressen) Erläutert RMI in einer sehr einfachen Art und Weise zu verstehen, und die Themen Hosting-Register auf Maschinen mit mehr als einer einzigen IP-Adresse und, wie private IP-Adressen mit werden behandelt geht. Gespeichert meinen Speck.

Zusätzlich zu den bereits erwähnten Artikel Verständnis Java RMI Internals war ganz anständig IMHO, ein wenig über die Interna gehen.

Hier ist ein weiteres gutes Beispiel für Remote Method Invocation mit redisson Rahmen:

Nehmen wir an, YourServiceImpl enthält Methode Sie remote aufrufen müssen und implementiert YourService Schnittstelle.

YourServiceImpl sollte über Remoteservice-Objekt in redisson registriert werden:

YourService yourService = new YourServiceImpl();

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

Methode aufzurufen Ferne nur Service-Schnittstelle ist erforderlich:

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

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

Auch unterstützt es asynchrone Aufrufe.

// 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 -> {
 ...
});

Weitere Details hier

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top