Gibt es eine Möglichkeit, Transaktionen zwischen verschiedenen SOA-Diensten zu verbreiten, die von verschiedenen Plattformen wie .NET oder Java stammen?
Ich weiß, dass die Transaktion zwischen WCF-Diensten, die von .NET kommen, ein- und ausgehen kann. Aber ich bin nicht vertraut mit Java-Plattform.
Jetzt arbeite ich in einem Projekt, das die Dienste von verschiedenen Plattformen aus kommuniziert.
Wie kann ich die Konsistenz im Geschäft aufrechterhalten?
Wenn Ihre Client- und Server-SOA-Infrastruktur (und damit auch die zugrunde liegenden Backend-Systeme, auf die in den verschiedenen Service-Implementierungen zugegriffen wird) die WS-Transaktion unterstützen, würde dies die Weiterleitung von Transaktionen ermöglichen.
Ich arbeite jedoch in einer riesigen SOA-Middleware-Umgebung für Finanzdienstleistungen und wir entscheiden uns, Transaktionen selbst zu verwalten: mit manueller Kompensation. Obwohl es komplexer ist und uns nicht auf einen verteilten Transaktionskoordinator verlässt, erhöht dies unsere Flexibilität und Leistung.
Transaktionen zwischen Diensten sind schlecht für Ihre SOA , da sie eine Menge Kopplung verursachen zwischen den Diensten. Dienstgrenze ist eine Vertrauensgrenze. Sie sind besser dran mit Sagas und Entschädigungen, wie Daniel bemerkte
Probieren Sie dieses Muster: Ссылка
Es hängt mit den Saga und Kompensationsansätzen zusammen und kombiniert das Beste aus allen Welten.
Beste
Tags und Links java .net transactions soa