Die Schnittstelle oder das Interface ([ˈɪntəfeɪs] oder [ˈɪnt̬ɚfeɪs], englisch für ‚Grenzfläche‘) ist der Teil eines Systems, der der Kommunikation dient.
Der Begriff stammt ursprünglich aus der Naturwissenschaft und bezeichnet die physikalische Phasengrenze zweier Zustände eines Mediums.[1] Er beschreibt bildhaft die Eigenschaft eines Systems als Black Box, von der nur die „Oberfläche“ sichtbar ist, und daher auch nur darüber eine Kommunikation möglich ist. 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 legt die lateinischen Wurzeln inter = ‚zwischen‘ und facies = ‚Aussehen‘, ‚Form‘ für englisch face = ‚Gesicht‘ nahe.[2][3]
Wenn man einen Teil der Realität als Ganzes betrachtet, das es zu analysieren und aufzugliedern gilt, so wird man das Ganze, also das Gesamtsystem in kommunizierende Teilsysteme zerschneiden – jene Stellen der Teilsysteme, die als Berührungspunkte oder Ansatzpunkte fungieren, über welche die Kommunikation stattfindet, stellen dann die Schnittstellen dar. Unter Verwendung dieser Schnittstellen kann man die Teilsysteme wieder zu einem größeren System zusammensetzen.
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 einer Soundkarte) 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:
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 so genannter 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 zueinander 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 ist der Ort, an dem ein Gerät bzw. eine Maschine mit einem weiteren Gerät bzw. mit einer weiteren Maschinen interagiert. Eine solche Schnittstelle wird wie folgt beschrieben.
Mechanische Parameter:
Elektrische Parameter:
Thermische Parameter:
Hardwareschnittstellen sind Schnittstellen zwischen physikalischen Systemen in der Elektrotechnik und Elektronik.
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 nach dem, 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 ist Leistungsanpassung mit Ri = Ra üblich.
Softwareschnittstellen oder softwareseitige Datenschnittstellen sind logische Berührungspunkte in einem Softwaresystem: sie definieren, wie Kommandos und Daten zwischen verschiedenen Prozessen und Komponenten ausgetauscht werden. Dabei unterscheidet man Schnittstellen zum Zugriff auf Systemroutinen, zur Kommunikation mit anderen Prozessen und zum Verbinden einzelner Softwarekomponenten (Module) eines Programmes bzw. programmübergreifende Schnittstellen.
Manche Schnittstellen ermöglichen die Kommunikation zwischen verschiedenen Programmen (Interprozesskommunikation, IPC) auf dem gleichen 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.
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 dazu: Schnittstellen in der objektorientierten Programmierung
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 modernen Computers oder eine einfache Kommandozeile.
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 eine 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.[4]
Beispiele:
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 macht 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.