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.
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.
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.
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.
|