Schnittstelle

Eine Schnittstelle (englisch , [] oder []) ist ein Teil eines Systems, das der Kommunikation dient.

Der Begriff stammt aus der Naturwissenschaft und bezeichnet die physikalische Phasengrenze zweier Zustände eines Mediums. Er beschreibt bildhaft die Eigenschaft eines Systems als Black Box, von der nur die „Oberfläche“ sichtbar ist; nur über diese ist eine Kommunikation möglich. Zwei benachbarte Black Boxes können nur miteinander kommunizieren, wenn ihre Oberflächen „zusammenpassen“.

Daneben bedeutet das Wort „Zwischenschicht“: Für die beiden beteiligten Boxes ist es ohne Belang, wie die jeweils andere intern mit den Botschaften umgeht, und wie die Antworten darauf zustande kommen. Die Beschreibung der Grenze ist Teil ihrer selbst, und die Black Boxes brauchen nur die ihnen zugewandte Seite zu kennen, um die Kommunikation zu gewährleisten. Das entspricht der lateinischen Wortherkunft  „zwischen“ und  „Aussehen“, „Form“ für  „Gesicht“.

Wenn man ein beliebiges „System“ als Ganzes betrachtet, das es zu analysieren gilt, wird man dieses Gesamtsystem in Teilsysteme „zerschneiden“. Die Stellen, die als Berührungspunkte oder Ansatzpunkte zwischen diesen Teilsystemen fungieren (über die die Kommunikation stattfindet), stellen dann die Schnittstellen dar. Unter Verwendung dieser Schnittstellen kann man die Teilsysteme wieder zu einem größeren Ganzen zusammensetzen. Sie dienen dann als Nahtstellen.

Grundlagen 
Der Austausch von Informationen erfolgt in Form von physikalischen (z. B. Elektrische Spannung, Stromstärke) oder logischen Größen (Daten) und kann analog (z. B. Mikrofon an einem Ton-Eingang) oder digital (z. B. Parallelschnittstelle des PC) erfolgen. Nicht als Interface bezeichnet werden allgemeine mechanische Verbindungselemente der Konstruktionslehre, die der Informationsübermittlung dienen (etwa Seilzüge oder Federn).

Man unterscheidet:
 Datenschnittstelle (data interface) – Daten als Schnittstellen zwischen Programmen
 Maschinenschnittstelle – Schnittstellen zwischen physischen Systemen
 Hardwareschnittstelle (hardware interface) – Schnittstellen zwischen physischen Systemen der Computertechnik
 Netzwerkschnittstelle (network interface) – Schnittstellen zwischen Netzwerkkomponenten
 Softwareschnittstelle (software interface) – Schnittstellen zwischen Programmen untereinander, zum Betriebssystem, zur Vereinbarung von Methoden in der Objektorientierten Programmierung etc.
 Benutzerschnittstelle (user interface) – Schnittstellen zwischen Mensch und Gerät

Eine Schnittstelle wird durch eine Menge von Regeln beschrieben, der Schnittstellenbeschreibung. Neben der Beschreibung, welche Funktionen vorhanden sind und wie sie benutzt werden, gehört zu der Schnittstellenbeschreibung auch ein sogenannter Kontrakt, der die Semantik der einzelnen Funktionen beschreibt.

Standardisierte Schnittstellen bieten den Vorteil, dass Komponenten oder Module, die die gleiche Schnittstelle unterstützen, gegeneinander ausgetauscht werden können, das heißt, sie sind miteinander kompatibel.

Es kommt häufig vor, dass zwei Teilnehmer der Kommunikation unterschiedliche, aber zueinander passende Schnittstellen besitzen müssen (Kompatibilität, z. B. Stecker – Buchse).

Der Begriff Schnittstelle wird ebenso im Projektmanagement im Anlagenbau verwendet, wobei Schnittstellen die Interaktionen zwischen verschiedenen Gewerken zur Erreichung der geforderten Funktionalität eines Systems beschreiben.

Maschinenschnittstelle 
Maschinenschnittstelle ist der Ort, an dem ein Gerät bzw. eine Maschine mit einem weiteren Gerät bzw. mit einer weiteren Maschine interagiert. Eine solche Schnittstelle wird wie folgt beschrieben.

Physikalische Daten 
Mechanische Parameter:
 örtliche Lage (Länge, Breite, Höhe, bezogen auf einen festzulegenden Bezugspunkt)
 Abmessungen (Länge, Breite, Höhe, ggf. andere Abmessungen der mechanischen Schnittstelle, wie beispielsweise Lochabstände oder Durchmesser für Befestigung)
 Verbindungselemente (Art und Lage)
 erforderliche Kräfte und Momente, um eine statische Bestimmtheit des Systems zu gewährleisten (z. B. Anzugsmomente für Schrauben, Nietverbindungen)
 Lage der Kraftangriffspunkte (z. B. Fundamentaufnahmen, Gerüste, Träger)
 dynamische Belastungen (z. B. Schwingungen, Explosionen)
 Drücke (max., min. bei Hydraulik, Pneumatik, ggf. bei Förderung)
 bei Materialförderung (auch Luft oder Flüssigkeiten): Art des Materials und Menge je Zeitspanne (min., max.)
 nichtelektrische Energieformen an der Schnittstelle (Pneumatik, Hydraulik).

Elektrische Parameter:
 Lage und Art der elektrischen Verbindung(en)
 elektrische Spannung (min., max.)
 elektrischer Strom (min., max.)
 weitere, notwendige Informationen über Leitungsdaten (Art und Querschnitt), Erdung
 Systemparameter elektrischer Steuerungen.

Thermische Parameter:
 Systemtemperaturen (max., min.)

Chemische Quelle 
 Erforderliche Materialeigenschaften der Konstruktionsmaterialien des Ursprungssystems und der anzuschließenden Systeme
 Gegebenenfalls Eigenschaften zu fördernden Materials

Hardwareschnittstelle 
Hardwareschnittstellen sind Schnittstellen zwischen physischen Systemen in der Elektrotechnik und Elektronik. Die Schnittstellenausstattung eines Gerätes wird häufig als Konnektivität bezeichnet.

Hardwareschnittstellen sind in der Computertechnik weit verbreitet. Industrienormen sorgen zum Beispiel dafür, dass ein PC ein offenes System ist, das aus Komponenten verschiedener Hersteller zusammengesetzt werden kann. Beispiele für Hardwareschnittstellen, die in Computern eingesetzt werden, sind der PCI-Bus, AGP, SCSI, USB, FireWire und die ältere EIA-232 (auch als RS-232 oder V24 bekannt).

Man unterscheidet zwischen paralleler und serieller (Hardware-)Schnittstelle, je nachdem, ob mehrere Bits gleichzeitig übertragen werden können (siehe Parallele Datenübertragung). Im Kontext von Peripheriegeräten für Computer ist mit paralleler Schnittstelle im Allgemeinen der IEEE-1284-Anschluss gemeint, der meistens für den Drucker verwendet wird; als serielle Schnittstelle bezeichnet man in diesem Zusammenhang die veraltete EIA-232-Schnittstelle.

In der Elektrotechnik ergibt jedes Verbinden von analogen oder digitalen Geräten beim Zusammentreffen eine Schnittstelle. Bei jeder Schnittstelle bildet der Ausgangswiderstand Ra der Quelle mit dem Eingangswiderstand Ri der Last eine Anpassungsdämpfung, die auch Schnittstellendämpfung genannt wird. Besonders ist der wichtige Dämpfungsfaktor für diese Anpassungsdämpfung bei der Schnittstelle vom Endverstärker zum Lautsprecher zu beachten; letzteres ist wie bei allen Verbindungen in der Tontechnik ausschließlich Spannungsanpassung mit Ri ≪ Ra. Das Verbinden eines Mikrofons mit dem Eingang einer Soundkarte ergibt eine Schnittstelle mit den Problemen der Anpassungsdämpfung, genauso das Verbinden eines Endverstärkers mit dem Lautsprecher. Bei der Verbindung von digitalen Geräten muss Ri = Ra gewählt werden, um unerwünschte und störende Reflexion von Impulsen zu vermeiden. Unerheblich dabei ist, dass diese Bedingung zufällig mit der für Leistungsanpassung zusammenfällt.

Siehe auch 
 Bluetooth
 Infrared Data Association oder kurz IrDA
 Wireless Local Area Network oder kurz WLAN, Wi-Fi oder IEEE 802.11
 Adapter
 Schnittstellendämpfung, Eingangsimpedanz, Ausgangsimpedanz, Bit-Banging
 eBus
 Common Interface bei DVB-Empfangsgeräten

Softwareschnittstelle 

Softwareschnittstellen oder softwareseitige Datenschnittstellen sind logische Berührungspunkte in einem Softwaresystem: Sie ermöglichen und regeln den Austausch von Kommandos und Daten zwischen verschiedenen Prozessen und Komponenten. In der Software benutzte Schnittstellen lassen sich grundsätzlich unterscheiden in:
 Nur zur Kommunikation benutzte, datenorientierte Schnittstellen: Hierbei bleibt die Schnittstelle immer 'passiv', sie enthält lediglich die Informationen, die zwischen beteiligten Systemteilen ausgetauscht werden. Beispiel: Adressübergaben mit Verweis auf zu verwendende Daten/Informationen bei Aufruf von Unterprogrammen.
 Schnittstellen als funktionale Einheiten: Die so benutzten Schnittstellen führen eine bestimmte Funktionalität aus, um die primär beteiligten Systemteile zu synchronisieren oder zu unterstützen. Beispiel: Druckertreiber, siehe auch Programmierschnittstelle.

Schnittstelle zur Interprozesskommunikation 
Manche Schnittstellen ermöglichen Interprozesskommunikation (IPC), die Kommunikation zwischen verschiedenen Programmen auf demselben oder einem anderen Computer. Beispiele für solche Kommunikationsschnittstellen über ein Netzwerk hinweg sind Remote Procedure Call, DCOM, RMI oder CORBA (siehe auch Interface Definition Language), aber auch ODBC und JDBC. Auch die bekannten Netzwerkprotokolle wie TCP, HTTP usw. können als IPC-Schnittstellen verstanden werden. Eine unidirektionale Variante ist der Hotfolder.

Schnittstelle für Programmkomponenten 
Schnittstellen für Programmkomponenten sind eine formale Deklaration, welche Funktionen vorhanden sind und wie sie angesprochen werden können. Das hat den Vorteil, dass Module, die die gleiche Schnittstelle besitzen, gegeneinander ausgetauscht werden können. Auch ist es auf diese Weise möglich, verschiedene Komponenten gleichzeitig zu entwickeln, ohne dass die erste fertig sein muss, um die zweite zu übersetzen. Solche Schnittstellen dienen der Modularisierung einer Softwarearchitektur.

Ein frühes Beispiel für solche Komponenten-Schnittstellen sind Header-Dateien, wie sie in C und C++ verwendet werden. Besonders wichtig sind Schnittstellen aber für Programmbibliotheken, die erst zur Laufzeit geladen werden (Dynamische Bibliotheken): Sie erlauben zu erkennen, welches Programm welche Bibliothek in welcher Version benötigt. Je nach Verwendungszweck sind wichtige Bewertungskriterien einer Schnittstelle beispielsweise Leistung, Skalierbarkeit, Transaktionssicherheit oder Ausfallsicherheit.

Eine besondere Bedeutung haben Schnittstellen in der Objektorientierten Programmierung: Hier werden sie verwendet, um für bestimmte Klassen festzulegen, welche Methoden sie unterstützen müssen und an welchen Stellen Instanzen dieser Klasse verwendet werden dürfen. Ontologisch bedeutet die Zugehörigkeit einer Instanz zu einem bestimmten Interface eine Ist-ein-Relation.

Siehe auch 
 Schnittstelle (UML)
 Webservice
 Digitale Schnittstelle für Gasmessgeräte

Benutzerschnittstelle 
Eine Benutzerschnittstelle (oder Mensch-Maschine-Schnittstelle) ist der Punkt, an dem ein Mensch mit einem Gerät interagiert. Das können Schalter und andere Bedienelemente sein, Anzeigen von Geräten, aber auch die grafische Benutzeroberfläche eines Computers oder eine einfache Kommandozeile.

Organisatorische Schnittstelle

Verbindende Einrichtung 
Neben den technischen Schnittstellen gibt es auch im Bereich der Organisationstechnik Schnittstellen. Solche Schnittstellen sind verwaltungstechnische oder auch physische Einrichtungen, die einen reibungslosen Ablauf innerhalb eines Betriebes oder unter mehreren Betrieben und Personen ermöglichen. Dies wiederum ermöglicht es Unternehmen und Personen auf einfache und daher auch kostengünstige Art und Weise untereinander Güter auszutauschen oder zu kommunizieren.

Beispiele:
 Geld als standardisierte Form des Werteaustausches von Gütern und Dienstleistungen zwischen Privatpersonen und Unternehmen in jeder Kombination.
 ISO-Container als standardisierte Form der Transportverpackung, somit eine physische Schnittstelle zwischen Logistikunternehmen, Empfänger und Sender.
 Formulare als standardisierte Form des Informationsaustausches, somit eine Schnittstelle zwischen Staat und Bürger.
 Warenhäuser bieten häufig bauliche Schnittstellen zu Logistikunternehmen in Form von vorinstallierten Verladerampen die ein schnelles Verladen neuer Waren ermöglichen.

Verbindungs- oder Trennstelle 
Als Schnittstelle werden in der modernen Organisationstheorie Verbindungs- bzw. Trennstellen zwischen Organisationseinheiten bezeichnet. Werden z. B. aus zwei zusammenarbeitenden Organisationen drei gebildet, dann erhöht sich die Anzahl der Verbindungs-, Schnitt- oder Trennstellen von einer auf drei. Das ergibt dann Sinn, wenn der inhaltliche Gewinn der Aufteilung von Aufgaben der Organisationen größer ist, als der Aufwand, der zur Bedienung der häufigeren Schnittstellen benötigt wird.

Im Sprachgebrauch wird für „Schnittstelle“ gelegentlich auch „Nahtstelle“ benutzt, besonders um den verbindenden (gegenüber dem trennenden) Charakter von Schnittstellen hervorzuheben.

Literatur 
 Wulf R. Halbach: Interfaces. Medien- und Kommunikationstheoretische Elemente einer Interface-Theorie. Fink, München 1994, ISBN 3-7705-2934-0.
 Katharina Hoins, Thomas Kühn und Johannes Müske (Hrsg.): Schnittstellen. Die Gegenwart des Abwesenden. Reimer, Berlin 2014, ISBN 978-3-496-02862-8; Rezension von Johanna Fernández Castro

Weblinks 

 Interfacetechnik in der industriellen Fertigung – eine Übersicht
 Die Schnittstelle zwischen zwei Audiogeräten und die Anpassung

Einzelnachweise