Schnittstellen
Definition – Was sind Schnittstellen?
Schnittstellen oder auch Interfaces (engl. inter – zwischen; faces – Gesichter, Aussehen) bezeichnen Übergangsstellen zwischen diversen Komponenten eines IT-Systems. Es wird zwischen Mensch-Computer-Schnittstellen oder Computer-Computer-Schnittstellen differenziert.
Es existieren verschiedene Schnittstellentypen. Zumeist wird zwischen Datenschnittstellen, Maschinenschnittstellen, Hardwareschnittstellen, Netzwerkschnittstellen, Softwareschnittstellen, Benutzerschnittstellen und den sogenannten Common Interfaces unterschieden.
Hardwareschnittstellen
Im Bereich der Hardwareschnittstellen werden die Schnittstellen oftmals standardisiert. Diese Standardisierung ermöglicht eine Verbreitung kooperierender Systeme und die Automatisierung elektronischer und digitaler Systeme. Vor allem in der Computertechnik werden Schnittstellen populär eingesetzt, da sie unterschiedliche Formen von Hardware zur Eingabe, Ausgabe und Verarbeitung miteinander verbinden können. Ebenfalls werden standardisierte Schnittstellen in der Kommunikations- und Netzwerktechnik eingesetzt.
Zu Beginn des Computer-Zeitalters wurde für jede Anwendung ein eigenes Interface konzipiert. Mittlerweile werden vermehrt Universal-Schnittstellen verwendet. Die bekanntesten unter ihnen sind die Universal-Schnittstellen USB und PCIe. Auf diese Weise können verschiedene Geräte oder Systeme von unterschiedlichen Herstellern miteinander verbunden werden.
Auch Meta-Schnittstellen werden mittlerweile immer häufiger verwendet. Sie zeichnen sich dadurch aus, dass eine Schnittstelle aus vielen verschiedenen Schnittstellen besteht. Ein Beispiel dafür ist der USB, der aus unterschiedlichen USB-Signalen und beispielsweise DisplayPort besteht und innerhalb eines USB-C-Kabels verbunden wird.
Serielle vs. parallele Schnittstellen
Durch die Art und Weise, wie Informationen durch Hardwareschnittstellen übertragen werden, lassen sie sich in serielle und parallele Schnittstellen unterteilen.
Die serielle Schnittstelle ermöglicht die Versendung der einzelnen Bytes nacheinander über eine Leitung. Sie stellt eine unkomplizierte Methode zur Datenübertragung dar und ist insbesondere für Geräte geeignet, die nicht auf hohe Übertragungsgeschwindigkeiten setzen (Bsp.: Computer-Maus).
Durch parallele Schnittstellen werden die Bytes gleichzeigt über viele Leitungen vermittelt. Dadurch entsteht eine schnelle Datenübertragung, die zum Beispiel für Drucker von Vorteil ist.
Interne und externe Schnittstellen
Im Bereich der Hardware kann zwischen internen und externen Schnittstellen differenziert werden. In einem Comupter befinden sich interne Schnittstellen innerhalb des Gehäuses. Dort findet die Systemverbindung im Computer statt. Externe Schnittstellen sind aus dem Computer herausgeführt. Sie sind dafür verantwortlich, beispielsweise externe Systeme mit dem PC zu verbinden.
Beispiel Hardwareschnittstelle Bluetooth
Auch das allseits verwendete Bluetooth ist eine Schnittstelle, die für die Datenübertragung verwendet wird. Der Name Bluetooth, also Blauzahn, bezieht sich auf den dänischen König Harald Blauzahn, der dafür verantwortlich ist, dass sich verfeindete Teile von Norwegen und Dänemark wieder vereinten. Daher stellt das Bluetooth-Logo eine Verbindung aus den altnordischen Runen Hagalaz und Berkano dar.
Laut einer Statista-Umfrage aus dem Jahr 2020, die die Frage stellte, was den Menschen bei ihrem Smartphone wichtig ist, nannten 57,22 % die Bluetooth-Verbindung.
Ein Grund dafür ist, dass via Kurzstreckenfunk Daten, Sprache oder Musik komplett kabellos übertragen werden können. Geräte wie Handys, Scanner und Drucker können auf diese Weise zur Datenübertragung verwendet werden. Auch können Geräte zudem über Bluetooth gelenkt werden. Das wohl bekannteste Beispiel dafür ist die Freisprechanlage im Auto. Durch die Übertragung in nur einem Frequenzbereich ist Bluetooth jedoch anfällig für Störungen und kann auch WLAN-Verbindungen teilweise unterbrechen. Eine Bluetooth-Verbindung ist in einem Umkreis bis zu 10 Metern stabil.
Softwareschnittstellen
Im Softwarebereich werden die Schnittstellen Softwareschnittstellen genannt und sind dafür verantwortlich, eine Berührung innerhalb eines Software-Systems darzustellen. So findet ein Austausch von Kommandos und Daten zwischen verschiedenen Prozessen über Schnittstellen statt. Sie verbinden Systeme, die verschiedene Eigenschaften in Bezug auf Physik, Elektrik und Mechanik besitzen und befinden sich an jedem Punkt, an dem diese unterschiedlichen Systeme miteinander verbunden sind. Der Übergang von einem Programm auf ein anderes wird durch die Verwendung von Softwareschnittstellen realisiert. Im Bereich der Daten-, Informations- und Kommunikationstechnik wird ein Programm als eine Abfolge von Befehlen verstanden. Diese Befehle kommunizieren dem Rechner die Vorgehensweise, wie eine Aufgabe erledigt werden kann.
Datenorientierte Schnittstellen vs. Funktionale Schnittstellen
Es werden zwei Schnittstellenarten unterschieden. Zum einen gibt es die datenorientierten Schnittstellen, die einzig und allein zur Kommunikation genutzt werden und zum anderen funktionale Schnittstellen, die als funktionale Einheiten gelten. Diese werden auch Kommunikationsschnittstellen genannt.
Datenorientierte Schnittstellen beinhalten Informationen, die zwischen den beteiligten Systemen ausgetauscht werden.
Funktionale Schnittstellen, oder auch Programmierschnittstellen genannt, haben eine bestimmte Funktionalität und unterstützen somit die beteiligten Systeme. Zudem sind sie für die Synchronisierung dieser zuständig. Ein Beispiel für funktionale Schnittstellen sind Druckertreiber. Programmierschnittstellen werden im Englischen Application Programming Interface, kurz APIs genannt. APIs werden vorzugsweise dann genutzt, wenn ein Server unabhängig von der Benutzeroberfläche erreichbar sein soll (Maschine-zu-Maschine-Kommunikation). Der Einsatz solcher Programmierschnittstellen ist vielfältig. Eine einfach aufgebaute Website muss keine Programmierschnittstellen-Endpunkte haben, um zu funktionieren. Wenn größere Projekte realisiert werden sollen, sind Schnittstellen notwendig, da sie die eigene Daten abrufbar machen oder Daten von Drittanbietern abrufen.
Schnittstellen zur Interprozesskommunikation
Interprozesskommunikation (IPC) wird von manchen Schnittstellen ermöglicht, um die Kommunikation zwischen verschiedenen Programmen auf demselben oder einem anderen Computer herzustellen. Die Kommunikationsschnittstellen sind dabei netzwerkübergreifend. Ein Beispiel dafür sind Netzwerkprotokolle wie TCP (Übertragungssteuerungsprotokoll) und HTTP (Hypertext-Übertragungsprotokoll).
Schnittstellen Programmkomponenten
Im Bereich der Softwarearchitektur sind Komponenten vorhanden, die als Teile der Software zu definieren sind. Komponenten arbeiten mit anderen Softwareteilen anhand eines Komponentenmodells zusammen. Dieses Modell entscheidet darüber, wie der Rahmen für die Entwicklung und Ausführung von Komponenten dargestellt wird. Außerdem definiert es, wie die Verknüpfungs- und Kompositionsmöglichkeiten der einzelnen Komponenten erfolgen.
Im Software Engineering stellen sogenannte Module einen Baustein des Softwaresystems dar. Ein Modul ist eine funktional geschlossene Einheit und ist für einen bestimmten Dienst im System verantwortlich.
Vorteilhaft an Schnittstellen für Programmkomponenten ist, dass diese Module untereinander ausgetauscht werden können, wenn sie die gleiche Schnittstelle besitzen. Außerdem ist es dadurch möglich, die Entwicklung verschiedener Komponenten gleichzeitig durchzuführen, ohne dass die erste Komponente fertig sein muss, damit die zweite übersetzt werden kann. Diese Art von Schnittstellen werden innerhalb der Softwarearchitektur für die Modularisierung verwendet.
Die Modularisierung oder auch Modularität wird ebenfalls als Baustein- oder Baukastenprinzip definiert und beschreibt die Aufteilung des Softwaresystems in Teile (Module, Komponenten, Bauelemente, Baugruppen oder Bausteine). Je nach Form und Funktion können die Teile zusammengefügt werden und/oder über Schnittstellen interagieren.
Ein Beispiel für die Programmkomponenten-Schnittstellen sind Header-Dateien, die in den Programmiersprachen C und C++ vorkommen. Eine Header-Datei ist eine Textdatei, die Informationen über Datentyp, Bezeichner und weiteren Aspekten beinhaltet und diverse Bestandteile des Quelltextes (in einer Programmiersprache verfasster Text eines Computerprogrammes) bereitstellt.
Besondere Wichtigkeit konnten die Komponenten-Schnittstellen für Programmbibliotheken erlangen. Wenn diese erst zur Laufzeit (Zeitdauer, die ein Programm für eine Aufgabe benötigt) geladen wird, wird auch von dynamischen Bibliotheken gesprochen. Programmkomponenten-Schnittstellen helfen dabei, herauszufinden, welches Programm, welche Bibliothek in welcher Version verwenden kann.
Protokollarten
Die Art und Weise wie Kommunikationsregeln zwischen zwei verbundenen Systemen durch Schnittstellen festgelegt werden, tritt in unterschiedlichen Varianten auf. Genutzt wird dafür ein Netzwerkprotokoll. Dies ist ein Kommunikationsprotokoll und übernimmt den Austausch von Daten zwischen Computern bzw. Prozessen, die sich in einem Rechnernetz befinden. Demnach existieren unterschiedliche Arten von Protokollen. Die bekanntesten unter ihnen heißen SOAP und REST.
SOAP
SOAP Schnittstellen gelten als sehr komplex in der Handhabung und werden für Projekte großer Unternehmen eingesetzt. SOAP steht für Simple Object Access Protocol und ist nicht nur für Objekte (object) gedacht. Daher wird der Begriff eher als Markenname verstanden und ist nicht für die Begriffsdefinition zuständig.
Die sogenannte SOAP-Message ist in den meisten Fällen ein Dokument, welches in der Auszeichnungssprache XML verfasst ist. Diese wird für die Datenübertragung genutzt. Neben XML-Formaten stehen auch Base64- oder CSV-Formatierungen zur Auswahl.
Wenn Protokolle verwendet werden, findet in der Regel ein Übersetzungsvorgang statt. In SOAP muss nichts mehr umgewandelt werden, weil zumeist in einer universalen und plattform-, protokoll- und programmiersprachenunabhängigen Sprache formatiert wurde. Diese Sprache nennt sich Web Services Description Language (WSDL).
SOAP findet seine Ursprünge im Jahr 1998 als Dave Winter und Microsoft die Spezifikation für das sogenannte XML-RPC entwickelten. SOAP gilt als eine Weiterentwicklung und wurde in der Version 0.9 Ende 1999 veröffentlicht. Der große Zuspruch blieb jedoch aus. Erst mit der Version 1.0 wurde die Entwicklung populärer.
REST
REST steht für die Abkürzung Representational State Transfer. Die dazugehörigen Schnittstellen werden als ReSTful APIs bezeichnet. REST stellt kein Protokoll im klassischen Sinne dar, sondern eher einen Architekturstil. Demnach ist es möglich, dass ReSTful Schnittstellen auch SOAP oder andere Protokolle verwenden können.
Schnittstellen, die mit REST aufgebaut sind, werden im Bereich der Web-Anwendung genutzt, da diese zumeist REST-kompatibel sind. Sie sind für Web-Anwendungen ausgelegt und zeichnen sich durch eine gute Performance und Skalierbarkeit aus.
Das REST-Paradigma wurde 1994 entwickelt. Roy Fieldings Entwurf eines http Object Models war dabei der Ausgangspunkt. Über die Jahre wurde das Konzept stetig weiter angepasst. Im Jahr 2000 stellte er den REST-Architekturstil in seiner Dissertation vor. Dort setzt sich Fielding auch mit den verschiedenen Anforderungen auseinander, die für die Webarchitekturen von großer Bedeutung sind.
Schnittstellennutzung bei TenMedia
Seit 2011 bietet TenMedia individuelle Softwarelösungen an und entwickelt moderne und umfangreiche Apps sowie state-of-the-art Websites unter Verwendung modernster Technologien. Im Bereich der Softwareentwicklung binden wir APIs ein, um eine hohe Funktionalität und Benutzerfreundlichkeit zu gewährleisten. Dabei haben wir uns auf die Verwendung von ReSTful APIs ausgerichtet. Wenn Sie spannende Ideen haben, die auf ihre Umsetzung warten, freuen wir uns über eine unverbindliche Kontaktaufnahme per Telefon oder Mail.