Verteilte Transaktion zwischen mehreren Apps im Frühjahr

Ich habe derzeit eine Reihe von Webanwendungen im ERP-Stil, die auf Spring 3 aufbauen. Die Anwendung wird in Tomcat 7 implementiert.

Das System wurde vor einiger Zeit ohne eine klar definierte Architektur entwickelt. Jede Anwendung besteht aus 3 Teilen (als Unterprojekte). API: Definieren von Modellen und Schnittstellen, IMPL: The Service Layer und das WEB.

Das aktuelle Layout des Systems ist wie folgt.

Financial API + IMPL ist im Inventarmodul enthalten, um das Transaktionsmanagement zu erreichen. Wir haben zuvor versucht, Inventar und Finanzdaten mithilfe von REST-Aufrufen in verschiedene Web-Apps zu unterteilen, hatten jedoch Probleme mit dem Transaktionsmanagement. Was wir derzeit tun, ist @Autowiring der finanziellen Impl direkt an Inventory Services. Wenn beispielsweise eine Verkaufsrechnung erstellt wird, müssen sich sowohl die Finanz- als auch die Bestandsbuchhaltung in derselben Transaktion befinden.

Nun tauchen, wie bereits erwartet, Probleme mit diesem Ansatz auf. Das Inventarsystem ist sehr umfangreich, da ein doppelter Financial Layer gestartet werden muss.

Ich denke, die Einführung einer Messaging-Middleware wie HornetQ oder ActiveMq ist das Beste, was Sie hier tun können.

Meine Fragen sind:

Wie kann ich ein zentrales Transaktionsmanagement zwischen Finanzen und Inventar erreichen? Gibt es hier einen Vorteil, wenn ich einen Java EE Server wie jBoss verwende?Wenn ich eine der Anwendungen in eine andere jboss-Instanz verschiebe, die auf einem anderen Server ausgeführt wird, kann ich trotzdem zentralisierte Transaktionen durchführen?

Antworten auf die Frage(0)

Ihre Antwort auf die Frage