Länderübergreifende Abfragen

Länderübergreifende Abfragen können auf vielfältige Weise implementiert werden. Im Folgenden werden drei Pattern zur Umsetzung dargestellt.

Integration lokal gespeicherter fremder Daten

Fremde Länder lösen im allgemeinen Business Events aus. Als Reaktion hierauf werden für übergreifende Abfragen die benötigten fremden Daten lokal gespeichert. Die Implementierung kann dann in den unter CQRS beschriebenen Ausbaustufen erfolgen.

Wichtig ist hierbei, die Kopplung zwischen den Bausteinen zu beachten. Dementsprechend ist zu überlegen, ob übergreifende Abfragen besser in einer Geschäftsprozesskomponente zu implementieren sind. Wir werden dies weiter unten für Reports aufgreifen.

Orchestrierung auf Serviceebene

Mithilfe des sogenannten API Composition-Patterns können die Query-Services der einzelnen Länder ebenfalls zusammengeschlossen werden, um Aggregat-übergreifende Abfragen zu implementieren. Jeder Service kann dabei beispielsweise nach CQRS-Muster implementiert werden. Die folgende Abbildung zeigt das Pattern:

Hier ist die Kopplung zwischen den Ländern behoben.

Wichtig hierbei ist, dass dieses Pattern folgende Nachteile mit sich bringt, die gegen die Einfachheit der Implementierung gehalten werden müssen:

  • Die Gefahr von Timeouts ist deutlich höher als bei der Variante der lokalen Speicherung.
  • Es kann nur eine einfache Abfragesemantik implementiert werden.

Sammler

Im Kontext des Reportings wird das vorherige Pattern dahingehend erweitert, dass über einen Service die Daten einzelner Länder gelesen und in der GP-Komponente persistiert werden.

GP-Komponente als Sammler

Um der Problematik der Timeouts zu entgehen, wird dieser "Sammler"-Service als Command Service implementiert. Die Daten werden nun über einen einfachen Query Service der GP-Komponente aus der Datenbank gelesen.

Dieses Sammeln kann auch über einen Workflow erfolgen. Dies kann sinnvoll sein, wenn die Daten noch transformiert und konvertiert werden müssen.

Sammler in ETL-Manier

Auch hier werden die Daten über einen einfachen Query Service der GP-Komponente aus der Datenbank gelesen.

Speziell für das Reporting wird ein Report durch die Geschäftsprozesskomponente bereitgestellt, die den Report erstellen / bereitstellen soll, da strukturell beispielsweise kein Unterschied bzgl. der Orchestrierung zu Workflows besteht. In den Ländern sind die Bestandsdaten der CS 3.0-Bausteine persistiert. Reports arbeiten häufig landübergreifend, um übergreifende Auswertungen o.ä. zu fahren.

Zur Umsetzung wird ein Service in der GP-Komponente, die den Report erstellen soll, als ProcessService implementiert. Dieser soll maximal stabil sein, sammelt und aggregiert die Daten per ETL-Prozess als Workflow. Dabei gibt es die folgenden Phasen:

  • Sammeln der Daten
  • Transformieren
  • Report erstellen
Cookie Consent mit Real Cookie Banner