Schnittstelle
KonzeptEine Schnittstelle ist ein definierter Übergang zwischen Systemen, Komponenten oder anderen Systembestandteilen.
An dieser Grenze können relevante Eigenschaften, Wechselwirkungen und Bedingungen festgelegt sein. Je nach System können dazu beispielsweise Daten, Funktionen, Nachrichten, elektrische Signale, mechanische Eigenschaften oder physische Ressourcen gehören.
Schnittstellen ermöglichen damit die Zusammenarbeit unterschiedlicher Teile eines Systems, ohne dass jeder Beteiligte sämtliche internen Details der jeweils anderen Seite kennen muss.
Wie Schnittstellen funktionieren
Eine Schnittstelle entsteht dort, wo unterschiedliche Systeme oder Systembestandteile miteinander in Beziehung treten.
Sie beschreibt die Eigenschaften dieses Übergangs.
Je nach Art des Systems kann dazu gehören:
- welche Informationen ausgetauscht werden
- welche Funktionen aufgerufen werden können
- welche Datenformate verwendet werden
- welche Protokolle gelten
- welche Zustände möglich sind
- in welcher Reihenfolge Interaktionen stattfinden
- welche zeitlichen Bedingungen gelten
- wie Fehler dargestellt oder behandelt werden
- welche physischen oder elektrischen Eigenschaften erforderlich sind
Eine Schnittstelle kann sehr klein sein.
Sie kann aus einem einzelnen Signal bestehen, das nur zwei Zustände kennt.
Sie kann aber auch ein umfangreiches Protokoll mit zahlreichen Operationen, Datentypen und Zuständen beschreiben.
Eine Schnittstelle beschreibt eine Grenze
Eine wichtige Eigenschaft von Schnittstellen ist die Trennung zwischen dem Inneren eines Systems und dem, was andere Systeme davon kennen müssen.
Eine Anwendung kann beispielsweise Daten über eine Schnittstelle bereitstellen, ohne offenzulegen, wie diese Daten intern gespeichert oder erzeugt werden.
Für die andere Seite ist zunächst nur relevant, was die Schnittstelle zusichert.
Dadurch können interne Bestandteile verändert werden, ohne zwangsläufig alle verbundenen Systeme ebenfalls verändern zu müssen.
Das funktioniert allerdings nur, solange die für andere Systeme relevanten Eigenschaften der Schnittstelle erhalten bleiben.
Eine technisch unveränderte Schnittstelle kann deshalb trotzdem inkompatibel werden, wenn sich ihre tatsächliche Bedeutung oder ihr Verhalten verändert.
Syntax und Bedeutung
Dass zwei Systeme dieselben Daten technisch austauschen können, bedeutet noch nicht, dass sie diese Daten gleich verstehen.
Eine Schnittstelle kann beispielsweise festlegen:
stock: 12
Damit ist die technische Darstellung zunächst eindeutig.
Noch nicht geklärt ist jedoch, was 12 bedeutet.
Sind zwölf Artikel physisch vorhanden?
Sind zwölf Artikel noch nicht verkauft?
Sind bereits reservierte Artikel enthalten?
Kann der Wert negativ werden?
Wann wurde der Bestand zuletzt aktualisiert?
Die Syntax einer Schnittstelle kann korrekt sein, während ihre Bedeutung zwischen den beteiligten Systemen unterschiedlich interpretiert wird.
Für eine funktionierende Integration müssen deshalb nicht nur Formate und Protokolle, sondern auch die relevanten Bedeutungen und Annahmen ausreichend geklärt sein.
Eine API ist nur eine Form von Schnittstelle
Im Softwarebereich werden Schnittstelle und API häufig nahezu synonym verwendet.
Eine API ist jedoch nur eine mögliche Form.
Schnittstellen können beispielsweise sein:
- Programmierschnittstellen
- Netzwerkprotokolle
- Dateiformate
- Kommandozeilen
- Datenbankzugänge
- Nachrichtenformate
- elektrische Anschlüsse
- Bussysteme
- mechanische Verbindungen
- Bedienoberflächen
Auch eine Benutzeroberfläche bildet eine Schnittstelle: Sie verbindet einen Menschen mit einem technischen System.
Welche Art von Schnittstelle betrachtet wird, hängt deshalb von der jeweiligen Systemgrenze ab.
Schnittstellen erzeugen und begrenzen Abhängigkeiten
Schnittstellen sollen häufig ermöglichen, dass zwei Komponenten unabhängig voneinander entwickelt oder verändert werden können.
Vollständig unabhängig werden sie dadurch jedoch nicht.
Beide Seiten sind weiterhin von bestimmten Eigenschaften der Schnittstelle abhängig.
Dazu können gehören:
- Datenstrukturen
- Protokolle
- Bedeutungen
- zeitliches Verhalten
- Fehlerzustände
- Sicherheitsanforderungen
- Versionen
- Verfügbarkeit
Eine gut definierte Schnittstelle macht diese Abhängigkeiten sichtbar und begrenzt sie.
Eine schlecht verstandene Schnittstelle kann dagegen versteckte Abhängigkeiten erzeugen.
Schnittstellen verändern sich
Technische Systeme und ihre Einsatzbedingungen können sich im Laufe der Zeit verändern.
Damit können sich auch ihre Schnittstellen entwickeln.
Neue Felder werden ergänzt, Funktionen entfallen, Daten erhalten eine andere Bedeutung oder bisher tolerierte Zustände werden plötzlich anders behandelt.
Eine Änderung kann dabei technisch offensichtlich sein.
Sie kann aber auch auftreten, obwohl die formale Schnittstelle unverändert aussieht.
Ein externer Dienst könnte beispielsweise weiterhin dasselbe JSON-Schema liefern, aber die Bedeutung eines Feldes verändern.
Für verbundene Systeme ist deshalb nicht nur die formale Version einer Schnittstelle relevant, sondern auch ihr tatsächliches Verhalten.
Schnittstellen sind Beobachtungspunkte
Schnittstellen besitzen noch eine weitere interessante Eigenschaft:
An ihnen wird Verhalten zwischen Systemteilen sichtbar.
An einer Schnittstelle lässt sich beispielsweise beobachten:
- welche Daten ein System verlässt
- welche Daten eintreffen
- wann Kommunikation stattfindet
- welche Fehler auftreten
- welche Zustände übertragen werden
- wie lange eine Interaktion dauert
Damit können Schnittstellen wichtige Beobachtungspunkte eines Systems sein.
Sie zeigen allerdings nur das, was an der jeweiligen Grenze sichtbar wird.
Aus einer korrekten Antwort an einer Schnittstelle lässt sich deshalb nicht automatisch schließen, dass alle internen Vorgänge des beteiligten Systems ebenfalls korrekt sind.
Warum Schnittstellen praktische Auswirkungen haben
- Komponenten können getrennt werden: Interne Details müssen nicht vollständig nach außen bekannt sein.
- Abhängigkeiten werden beschreibbar: Es wird sichtbar, worauf sich andere Systeme verlassen.
- Systeme können ersetzt werden: Eine stabile Schnittstelle kann ermöglichen, interne Komponenten auszutauschen.
- Integration wird möglich: Unterschiedliche Systeme erhalten einen definierten Übergang für ihre Zusammenarbeit.
- Fehlergrenzen werden sichtbar: Probleme können an Übergängen erkannt und eingegrenzt werden.
- Legacy-Systeme können gekapselt werden: Neue Schnittstellen können alte interne Strukturen gegenüber anderen Systemen abschirmen.
- Beobachtung wird möglich: Übergänge bieten geeignete Stellen, um Verhalten zwischen Komponenten zu untersuchen.
Typisches Beispiel
Ein älteres Warenwirtschaftssystem stellt jeden Abend eine CSV-Datei mit aktuellen Produktdaten bereit.
Die Bereitstellung dieser Datei bildet eine Schnittstelle zwischen dem Warenwirtschaftssystem und anderen Systemen.
Ein neues Shopsystem benötigt dieselben Daten. Es wäre möglich, den Shop unmittelbar an die interne Datenbank des Warenwirtschaftssystems anzubinden.
Damit würde der Shop jedoch von internen Tabellenstrukturen und deren Bedeutung abhängig.
Stattdessen kann die vorhandene Dateischnittstelle weiterverwendet oder durch eine neue definierte Schnittstelle ergänzt werden.
Wird das Warenwirtschaftssystem später ersetzt, muss das Shopsystem nicht zwangsläufig verändert werden, solange das neue System dieselbe relevante Schnittstelle bereitstellt.
Die Schnittstelle bildet damit eine kontrollierte Grenze zwischen beiden Systemen.
Abgrenzung
- Eine Schnittstelle beschreibt einen Übergang zwischen Systemen oder Systembestandteilen.
- Eine API ist eine bestimmte Form von Schnittstelle, über die Software Funktionen oder Daten für andere Software bereitstellt.
- Systemintegration geht über die Schnittstelle hinaus. Sie betrachtet das tatsächliche Zusammenwirken der beteiligten Systeme einschließlich Zuständen, Abläufen, Bedeutungen und Fehlerfällen.
- In der Systemarchitektur beschreiben Schnittstellen Beziehungen und Grenzen zwischen Architekturelementen.
- Bei der Beobachtbarkeit können Schnittstellen wichtige Informationsquellen darstellen, weil an ihnen Interaktionen zwischen unterschiedlichen Systembestandteilen sichtbar werden.
Weiterführend
Verwandte Begriffe
→ API
→ Systemanalyse
→ Systemarchitektur
→ Lösungsarchitektur
→ Systemintegration
→ Legacy-System
→ Legacy-Modernisierung
→ Offenes Datenformat
→ Beobachtbarkeit
Quellen
Hauptquellen
Vertiefung
Quellen archiviert am: 2026-08-29