Günstige Alternativen für SOA Teil 2 - Asynchrone Kommunikation

Post date: Mar 23, 2014 10:31:59 AM

Im Rahmen der firmeneigenen SOA Frameworks ist asynchrone Kommunikation eine Zuständigkeit die oft an einer Enterprise Service Bus (ESB) zugeordnet wird. Diese ESB hat die Verantwortung Nachrichten zu routen und sie auf verschiedene Schichten zu übersetzen als Teil der unterschiedlichen Business-Transaktionen die sich zwischen den Systemen abspielen.

Wenn diese Systeme die als Teil der Business Transaktionen miteinander interagieren sind nicht auf verschiedene Protokolle angewiesen dann stellt sich die Frage ob ein signifikantes Investment in ein proprietäres SOA Framework

nicht eine weniger effiziente Kosten-Nutzen Analyse als eine selbst gemachte

RESTful Lösung die auf einige Designmustern die sich auf asynchrone Kommunikation beziehen basiert ist, liefern würde.

Designmuster wie z.B. Request/Acknowledge/Poll und Request/Acknowledge/Callback sind perfekte Beispiele für die Implementierung solcher asynchronen Interaktionen mit Hilfe von zugrundeliegenden Technologien wie Java Message Service (JMS) und mit dem Korrelationmuster zwischen Anfragen und deren Antworten die die Gleichung zwischen der MessageId der Anfrage und die Korrelationid der Antwort besagt.

Eine solche Lösung wird auf verbundene Muster wie Linked Service (als Teil der Request/Acknowledge/Callback Strategie) und möglicherweise auf Request und Response Mappers die als Mediatoren innerhalb der Übersetzung der Request und Response Nachrichten zu einem kanonischen Format agieren würden, basieren.

Obwohl die Umsetzung solcher Mustern mit Komplexität und zusätzlichen Aufwand verbunden ist, kann sich ein solcher Ansatz als eine nachhaltige Alternative beweisen. Eine solche Strategie wird günstiger als das Investment in ein proprietäres SOA Framework sein und was noch wichtiger ist, sie wird eine Herstellerabhängigkeit komplett vermeiden können.

Ein anderer wichtiger Aspekt der SOA ist die Workflow-basierte Interaktion aber mit einer sorgsam ausgewählten Menge von Mustern kann eine solche Funktionalität als Teil einer RESTful-Architektur umgesetzt werden. Mehr darüber erfahren sie in dem nächsten Eintrag dieser Serie...