Heim

Schnittstelle

Dieser Artikel erläutert den Begriff Interface, zu der gleichnamigen Firma; siehe Interface Inc.

Die Schnittstelle oder das Interface [ˈɪntɚfeɪs] (englisch „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]

Inhaltsverzeichnis

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

Maschinenschnittstelle

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.

Physikalische Daten

Mechanische Parameter:

Elektrische Parameter:

Thermische Parameter:

Chemische Daten

Hardwareschnittstellen

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

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.

Schnittstellen zur Interprozesskommunikation

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

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

Benutzerschnittstellen

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.

Siehe auch

Literatur

Einzelnachweise

  1. siehe Interface als chemischer Fachausdruck, englische Wikipedia
  2. interface, www.etymonline.com
  3. face, www.etymonline.com