Referenzarchitektur Gateway

Ein Gateway ist ein IT-Systemtyp, der eine Verbindung zwischen externen Systemen und IT-Systemen der Systemlandschaft herstellt. Die Aufgaben eines Gateways reichen von Routing, Authentifizierung & Autorisierung, Protokollierung & Monitoring, Transformation von Anfragen und Antworten bis hin zum Schutz der Systemlandschaft vor externen Angriffen. Gateways beinhalten weder Geschäftslogik noch eine eigene Datenhaltung.

Gateways setzen, auf die fachliche Referenzarchitektur bezogen, maßgeblich extern genutzte Nachbarsystemschnittstellen um und binden externe Services in die Systemlandschaft ein.

1. Rolle & Aufgaben

Gateways nehmen eine von zwei Rollen wahr. Als Ingress-Gateway leiten sie Anfragen von außerhalb der Systemlandschaft an einen Service eines Backends weiter. Als Egress-Gateway leiten sie Anfragen von innerhalb der Systemlandschaft an einen externen Service weiter. Die folgende Abbildung zeigt dies.

technical context gateway.dn
Abbildung 1. Technischer Kontext der Gateways

Architektonisch bilden sich die Rollen primär darin aus, welche Aufgaben die Gateways übernehmen und ob sie Anfragen von externen Systemen entgegennehmen oder an sie weiterleiten.

Die folgenden Abschnitte beschreiben die Aufgaben, die Ingress- und Egress-Gateways übernehmen können. Welche Aufgaben ein konkretes Gateway übernimmt, muss im Rahmen des Systementwurfs festgelegt werden.

Ingress/Egress vs. Provider/Consumer

Frühere Versionen der IsyFact sprechen von Provider und Consumer. Ab der Version 5 hält sich die IsyFact stärker an den allgemeinen Sprachgebrauch, der in Container-Plattformen üblich ist. Inhalte zu konkreten Gateways werden in naher Zukunft ebenfalls auf diese Begriffe umgestellt.

1.1. Ingress-Gateway

Ingress-Gateways können die folgenden Aufgaben übernehmen.

Routing

Ingress-Gateways leiten die Anfragen externer Systeme weiter an die zuständigen Backend-Services und geben deren Antworten an den jeweiligen Aufrufer zurück.

Authentifizierung & Autorisierung

Ingress-Gateways nehmen Credentials entgegen und prüfen die Berechtigung des externen Systems, auf den Backend-Service zuzugreifen.

Transformation

Ingress-Gateways nehmen eine technische Übersetzung von Schnittstellenformaten und -technologien vor, damit Backends Anfragen von externen Systemen gleichartig zu Anfragen aus der Systemlandschaft beantworten können.

Protokollierung & Monitoring

Ingress-Gateways statten die Anfrage externer Systeme mit Tracing-Informationen (Korrelations-ID) aus und protokollieren den externen Zugriff.

Sicherheit

Ingress-Gateways sind ein wichtiger Bestandteil der Sicherheitsarchitektur.

1.2. Egress-Gateway

Egress-Gateways können die folgenden Aufgaben übernehmen.

Routing

Egress-Gateways leiten die Anfragen aus der Systemlandschaft weiter an die externen Systeme und geben deren Antworten an den jeweiligen Aufrufer zurück.

Authentifizierung & Autorisierung

Egress-Gateways statten die Anfragen aus der Systemlandschaft mit den geforderten Credentials (zum Beispiel Client-ID und -Secret, API-Key, Access Token) aus und, falls nötig, fragen sie beim IAM-Service des externen Systems an.

Transformation

Egress-Gateways nehmen eine technische Übersetzung von Schnittstellenformaten und -technologien vor, damit Backends Anfragen an externe Systeme gleichartig zu Anfragen innerhalb der Systemlandschaft stellen können.

Protokollierung & Monitoring

Egress-Gateways statten die Antworten externer Systeme mit Tracing-Informationen (Korrelations-ID) aus und protokollieren den Zugriff auf das externe System.

2. Systemarchitektur

Ingress- und Egress-Gateways sind architektonisch gleichartig aufgebaut. Sie bestehen aus zwei Komponenten, die den Großteil ihrer Funktionalität umsetzen: dem Provider und dem Adapter. Querschnittliche Aufgaben setzen Gateways mit Bausteinen um: durch direkte Nutzung in Eigenentwicklungen oder durch eine zu den Bausteinen konforme Umsetzung bei der Nutzung von Produkten.

Ingress- und Egress-Gateways können ihre Aufgaben für mehrere Services bereitstellen. In dem Fall enthalten sie die Komponenten Provider und Adapter jeweils einmal pro Service. Die Komponenten verschiedener Services dürfen nicht miteinander kommunizieren. Die Rollen (Ingress und Egress) dürfen nicht in einem Gateway vermischt werden, da sie grundlegend unterschiedliche Aufgaben wahrnehmen und unterschiedlich skalieren.

architektur gateway.dn
Abbildung 2. Systemarchitektur Gateways

Die Komponente Provider stellt den Service des Gateways bereit und nimmt die Anfragen entgegen. Die Komponente kümmert sich um die Authentifizierung & Autorisierung der Anfragen, protokolliert sie und erhebt Metriken gemäß der konkreten Anforderungen an das Gateway. In einem Ingress-Gateway führt die Komponente Provider zusätzlich die Sicherheitsmaßnahmen aus, für die es von der Sicherheitsarchitektur der Systemlandschaft aus verantwortlich ist. Berechtigte Anfragen gibt sie an die Komponente Adapter weiter.

Die Komponente Adapter nimmt die Anfragen entgegen und transformiert sie technisch so, dass sie der hinter dem Gateway liegende Service versteht. Die Komponente nimmt keine fachliche Transformation der Nutzdaten vor. Sie leitet die transformierte Anfrage anschließend an den hinter dem Gateway liegenden Service weiter.

Bei der Umsetzung von Gateways mit Produkten ist die Systemarchitektur in der Regel nicht anwendbar. Anstatt dessen müssen im Nutzungskonzept des Produkts die Aufgaben der Komponenten Provider und Adapter auf die Funktionalität des Produkts übertragen werden.