Beliebte Suchanfragen

Cloud Native

DevOps

IT-Security

Agile Methoden

Java

//

Microservices und Legacy-Systeme / Standardsoftware

11.1.2016 | 2 Minuten Lesezeit

Eine Microservices-Architektur entsteht selten auf der grünen Wiese. Wie geht man also mit Schnittstellen zu Legacy-Systemen um? Und neben Legacy-Systemen gibt es ja auch noch Standardsoftware, denn manchmal macht es einfach keinen Sinn, etwas selbst zu entwickeln. Wie integriert man diese? In diesem Blogpost zeige ich drei Pattern der Integration.

Für unsere Microservices haben wir eine Basis- oder Makroarchitektur definiert, die die Kommunikation regelt. Für synchrone Kommunikation ist das beispielsweise REST über http, für asynchrone Kommunikation verwenden wir ein Messagingsystem.

Synchrone Services

Ein Legacy-System bzw. eine Standardsoftware spricht nicht unbedingt die gleiche Sprache, also nutzen wir einen Anti-Corruption-Layer, der für uns übersetzt – beispielsweise von REST nach SOAP.

Diese ACL-Anwendungen gehören fachlich zum Bestandssystem und werden demnach auch von dem Team entwickelt und gewartet. Synchrone Aufrufe sind jedoch problematisch, wie ich auch schon im Blog-Post „Kommunikation von Microservices – Die vier Ebenen der Entkopplung “ dargestellt habe. Neben Performance gehört dazu auch die Entwicklungsgeschwindigkeit.

Asynchrone Services

Synchrone Aufrufe sind natürlich nicht die einzige Möglichkeit der Integration. Wenn wir uns in der Microservices-Welt eher auf asynchrone Events und Datenduplikation verlassen, können und sollten wir auch Legacy-Systeme entsprechend einbinden.

In diesem Beispiel duplizieren Service A und Service B jeweils Teile von Anträgen, um schnell und effizient auf den Daten arbeiten zu können. Der Anti-Corruption-Layer für Antrag nimmt nun keine synchronen Requests entgegen, sondern feuert ein Event, wenn sich ein Antrag ändert. In vielen Legacy-Systemen ist die Datenhoheit nicht geklärt – das heißt, dass verschiedenste Services eine Entität in der Datenbank ändern können. Um wirklich jede Änderung mitzubekommen, kann ein Trigger an der Tabelle dienen. Wenn die Datenhoheit klar ist, gibt es natürlich auch andere Wege.

GUI-Integration

Neben kommunizierenden Services gibt es natürlich auch noch die Möglichkeit, Legacy-Anwendungen über einen Link in das Microservices-System zu integrieren.

Diese sehr einfache Möglichkeit wird häufig nicht in Betracht gezogen, da eine nahtlose GUI-Integration mit einem Fremdsystem in der Regel nicht möglich ist.

Fazit

Es gibt Legacy-Systeme und Standardsoftware, und das ist auch gut so! Dieser Blogpost hat drei Möglichkeiten zur Integration von Legacy- und Fremdsystemen gezeigt. Dabei können die verschiedenen Varianten natürlich auch kombiniert werden.

Beitrag teilen

Gefällt mir

0

//

Gemeinsam bessere Projekte umsetzen.

Wir helfen deinem Unternehmen.

Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.

Hilf uns, noch besser zu werden.

Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.