Was sind die Vor- und Nachteile der Verwendung von RMI oder JMS zwischen Web- und Business-Ebenen?

StackOverflow https://stackoverflow.com/questions/71144

  •  09-06-2019
  •  | 
  •  

Frage

Für einen typischen Web-Client -zu-- Servlet / WS -zu-- Business Tier (Frühjahr oder EJB) app, was sind die Kompromisse von Ansätzen wie Remote-RPC oder Messaging für Web (Servlets) Tier auf Remote-Business-Tier, abgesehen von den grundlegenden Sync / async-Aspekten?

War es hilfreich?

Lösung

Mit dem Web-Client meinen Sie Web-Browser? Wenn dies der Fall bei Sachen wie DWR oder JAX-RS suchen sind meine Empfehlungen. RMI oder JMS nur dann wirklich funktionieren, wenn beide Seiten Java-Code sind.

Mit jedem Remote Technologie das größte Problem mit ihnen zu sein scheint, wie aufdringlich die Technologie auf Ihre Business-Objekte wird. z.B. mit RMI-Schnittstelle / Ausnahmen überall oder JMS-APIs innerhalb Ihres Unternehmens-Code.

Meine Empfehlung ist, POJOs überall in Java zu verwenden, dann eine Technologie verwenden, wie Frühling auf Remoting-Middleware-Schicht, ob seine RMI oder JMS oder was auch immer - aber völlig de-Paar des Middleware-Code aus Ihrer Business-Logik, so dass Sie zwischen den Technologien jederzeit wechseln können (und halten Sie Ihren Business-Logik-Code einfacher und auf Ihr Unternehmen Problem fokussiert).

Zum Beispiel finden Sie in der Camel Implementierung von Spring Remoting die Sie dann erlaubt jeder dieser Transporte und Protokolle verwenden wie RMI, JMS oder auch Plain-HTTP, E-Mail, Dateien oder XMPP - dann zwischen ihnen wechseln trivialerweise eine einfache URI-Zeichenfolge ändern mit

.

Andere Tipps

Wir verwenden RMI über Frühling und finden es sehr einfach zu bedienen, ziemlich robust und schnell. Obwohl unsere Anforderungen an eine recht ansprechende Verbindung waren, und es gab keine wirkliche Notwendigkeit, eine Messaging-Komponente hinzuzufügen.

SUN RMI brach für uns.

Die Einstellungen und die Garbage Collection für eine sehr lange laufende Anwendung mit kontinuierlichem meassaging. Wir patchen, um es kontinuierlich zu arbeiten. JMS-Anwendungen laufen wir nicht bekommen, die aus Speicherfehlern oder gc Probleme, die RMI tut. Alles, was System.gc () regelmäßig aufrufen muss und nicht mit inkrementellen Sammlung arbeiten Ressourcen zu erholen falsch codiert.

RMI Zuverlässigkeit verbessert mit dem JDK 6 und die korrekten Einstellungen der Eigenschaften, aber JHC, es ist ein bodgey Rahmen. RMI würde verbessert werden, in beträchtlichem Ausmaß durch Kanäle in nio mit und die Sonne nio Verwendungen von System.gc Festsetzung ().

Die richtige Antwort - separate Kommunikation (Mechanismus) aus dem Domain-Code. RPC ist eng gekoppelt ist, und das Protokoll, und die Anwendung kann sich gegenseitig stören. JMS seperates das Protokoll aus der Anwendung, ein viel besseres Paradigma.

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