Frage

Wenn die Entwicklung verteilter Anwendungen, die alle von der gleichen Firma in Java geschrieben, würden Sie Web Service oder RMI wählen? Was sind die Vor- und Nachteile in Bezug auf Leistung, lose Kopplung, einfache Bedienung, ...? Würde jemand WS wählen? Können Sie eine serviceorientierte Architektur mit RMI bauen?

War es hilfreich?

Lösung

Ich würde versuchen Sie es so denken:

Werden Sie unabhängige Dienste für untereinander laufen, und diese Dienste können durch Nicht-Java-Anwendungen einige Zeit in der Zukunft erreicht werden? Dann gehen Sie für Web-Services.

Wollen Sie nur Teile einer Anwendung verbreiten (achten Sie auf die Einzahl) über mehrere Server? Dann gehen Sie für RMI und Sie werden das Java-Universum nicht verlassen müssen, um alles miteinander eng gekoppelt zum Laufen zu bringen.

Andere Tipps

Ich würde WS wählen.

  • Es ist unwahrscheinlich, dass WS / RMI Ihr Engpass sein wird.
  • Warum für andere mögliche Technologien in Zukunft die Tür schließen?
  • RMI möglicherweise Probleme haben, wenn Version von Klassen auf Client / Server nicht mehr synchronisiert sind.

Und ... ich würde höchstwahrscheinlich REST-Services zur Verfügung.

Wenn Sie nicht gehend, es braucht (Interop mit Nicht-Java), und Sie werden wahrscheinlich nicht, RMI werden besser sein; weniger Code, weniger Konfiguration, weniger Bandbreite Overhead.

Eine Option, wenn Sie Angst haben, dass Sie gehen zu benötigen Es ist EJB3 zu verwenden; es nutzt RMI, ist sehr einfach einzurichten und zu implementieren, sondern auch können Sie Ihre Anrufe in Web-Services leicht drehen, wenn Sie sie benötigen.

Was auch immer Sie tun, tun Sie nicht erstellen Sie Ihre eigene Sache; Stick zu einem Standard.

Meine Auswahl ist:

Standard-Java-Serialisierung - Profis: imho bieten die Leistung, einfach zu implementieren (I Frühling bin mit lokaler Schnittstelle als Fern eine belichten); Nachteile: Serialisierung funktioniert nicht zwischen verschiedenen Versionen Jvm

binäre Serialisierung (zB hessische von Anlegesteg) - Profis: gleiche Leistung wie mit Java Serialisierung und arbeitet zwischen verschiedenen Jvm Versionen

WS:. Nur, wenn es eine Notwendigkeit der Interoperabilität zwischen den verschiedenen Plattformen Java + .net, sonst ist es einfach zu haveweight

RMI ist ein großer S-Entwicklung Transport, aber ich würde davon abraten, es in einer Produktionsumgebung einsetzen. Die Serialisierung Kompatibilitätsproblem kann die Dinge umständlich machen, müssen Sie sehr sorgfältig Ihre Einsätze koordinieren.

WebServices sind ineffizient, ja, aber es nur durch Hardware. Alternativ können Sie einfache, leichte XML-over-HTTP, anstatt Vollfett SOAP / WSDL.

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