Doch diese Mensch-Außenwelt-Schnittstelle ist nur eine Variante einer Schnittstelle. Geläufiger sind den meisten eher die Mensch-Maschine-Schnittstelle, Software- und Computerschnittstellen wie auch die Programmierschnittstelle (API auf Englisch).
- Wozu dient eine Schnittstelle?
- Aufgaben / Funktionen einer Schnittstelle:
- Komponenten einer Schnittstelle
- Schnittstellen-Arten
- Hardware-Schnittstelle
- Serielle und parallele Schnittstelle
- Software-Schnittstelle
- Beispiel einer Software-Schnittstelle
- Webservice
- Application Programming Interface (API)
- REST-API
- SOAP-API
- Systeminterne API
- Netzwerk-Schnittstelle
- Mensch-Maschine-Schnittstelle
Wozu dient eine Schnittstelle?
Bei der Auswahl einer Unternehmenssoftware liegt ein besonderer Schwerpunkt auf der Anbindung an weiteren Systemen, z. B. der Anbindung eines ERP-Systems an ein CRM-System. Mit der fortschreitenden Digitalisierung wird diese Anforderung immer wichtiger, da Unternehmen wie auch Privatpersonen immer mehr verschiedene digitale Tools für die verschiedensten Aufgaben einsetzen.
Dieses Verbinden mit anderen Systemen wird mithilfe von Schnittstellen und Schnittstellenadaptern realisiert.
Aufgaben / Funktionen einer Schnittstelle:
- Standardisierung der Übergabe und Aufnahme von Dingen (Daten, Strom etc.)
- Verlässlichen Austausch sicherstellen
- Austauch innerhalb oder außerhalb eines Systems
- Funktionen bereitstellen innerhalb oder außerhalb eines Systems
Komponenten einer Schnittstelle
Wer von einer Schnittstelle spricht, meint in vielen Fällen die komplette Vernetzung zwischen zwei Systemen. Eine Schnittstelle bedeutet jedoch erst einmal nur, dass es eine Möglichkeit gibt, andere Systeme an diese Schnittstelle anzuschließen. Die Schnittstelle an sich definiert nur, welche ihrer Funktionen von anderen Systemen wie angesprochen werden dürfen und welche Rückgabedaten sie in welcher Form erwartet. Den Anschluss an die Schnittstelle und damit die Vernetzung zweier fremder Systeme muss jedoch noch in Form eines Adapters geschaffen werden. Dieser Adapter übersetzt die Signale oder Datenformate, sodass sie auf das System passen, an das ein System angeschlossen werden soll.
Ein Beispiel hierfür sind zum Beispiel die Steckdosenadapter, die wir brauchen, um in einem anderen Land unsere Geräte anzuschließen oder Adapterkabel, um zum Beispiel einen VGA-Eingang eines Monitors mit dem HDMI-Ausgang unseres PCs zu verbinden.
Für eine Systemanbindung mithilfe von Schnittstellen brauchen wir also:
- eine Schnittstelle pro System
- einen Adapter zur Übersetzung
Eine bidirektionale Schnittstelle verläuft in beide Richtungen. Das bedeutet, dass System A Daten an System B senden kann, aber auch System B kann Daten an System A senden. Bei einer unidirektionalen Schnittstelle kann nur ein System Daten an das andere System senden.
Schnittstellen-Arten
Im folgenden Abschnitt gehe ich hauptsächlich auf die bekanntesten Schnittstellen im IT-Bereich ein. Weitere Schnittstellen-Arten finden Sie auf Wikipedia unter Schnittstelle.
Hardware-Schnittstelle
Eine Hardware-Schnittstelle ist zum Beispiel der USB-Anschluss, der eine Verbindung zwischen Smartphone mit einem PC ermöglicht. In diesem Fall dienen Schnittstelle und Schnittstellenadapter dazu, zwei Geräte miteinander zu verbinden (Maschine-Maschine). Bei Hardware-Schnittstellen handelt es sich also um physische Schnittstellen.
Serielle und parallele Schnittstelle
USB steht für Universal Serial Bus und stellt somit eine serielle Schnittstelle dar. Seriell bedeutet, dass immer nur eine Information nacheinander mithilfe der Schnittstelle übertragen wird und nicht mehrere gleichzeitig wie es bei einer parallelen Schnittstelle der Fall wäre.
Parallele Schnittstellen gibt es zum Beispiel auf dem Motherboard eines PCs. Dort befindet sich der Prozessor und mehrere Steckplätze für Grafikkarten, Festplatten (ATA ist eine parallele Schnittstelle, die heutigen SATA-Festplatten nutzen jedoch die serielle Datenübertragung, siehe SATA / Serial-ATA, Elektronik-Kompendium), Peripheriegeräte und so weiter. Die RAM (Random Access Memory, auf Deutsch Arbeitsspeicher)-Steckplätze sind ein Beispiel für eine parallele Schnittstelle. Diese Steckplätze sind die Schnittstellen, die es erlauben, verschiedenartige Komponenten über das Motherboard miteinander zu verbinden und kommunizieren zu lassen.
Software-Schnittstelle
Eine Software-Schnittstelle ist ein standardisierter Weg, wie sich lesend oder schreibend auf Daten zugreifen lässt. Bekannte Beispiele sind der Druckertreiber und sogenannte APIs – Programmierschnittstellen.
Beispiel einer Software-Schnittstelle
In der Softwareindustrie können wir das Beispiel der ERP-CRM-Schnittstelle nehmen. In größeren Unternehmen ist es üblich, dass beide Systeme zum Einsatz kommen: Die CRM-Software dient dann als Marketing- und Vertriebstool und das ERP-System übernimmt die Materialwirtschaft und das Auftrags- und Rechnungswesen. Um nun eine Schnittstelle zwischen CRM-Software und ERP-System entwickeln zu können, muss erst einmal klar sein, was die Schnittstellen bzw. Übergangsphasen wie auch die Schnittmengen im Prozess sind.
Ein Übergang bildet zum Beispiel die Wandlung eines Interessenten zu einem Kunden. Bezeichnend für diesen Prozess ist die Erstellung eines Auftrags bzw. einer Bestellung. Ein Angebot hingegen zeigt, dass ein Kontakt noch als Interessent gilt. Ob aus dem Angebot auch ein Auftrag wird, ist noch unklar. Die Unterscheidung ist wichtig, denn alles was mit Interessenten zu tun hat, wird im CRM-System abgewickelt. Alles was mit der Auftragsabwicklung von Kunden zu tun hat, wird im ERP abgewickelt.
Allerdings gibt es Schnittmengen. Für die Erstellung des Angebots im CRM zum Beispiel brauchen wir die Produktinformationen, die im ERP-System gespeichert sind. Das ERP-System stellt über die Schnittstelle also die Informationen zur Verfügung, damit das CRM die eigenen Prozesse abwickeln kann, ohne die Informationen selbst vorhalten zu müssen.
Webservice
Mit dem Aufkommen des Internets und der Nutzung von Cloud-Software haben sich sogenannte Webservices für die Vernetzung von Systemen mehr und mehr etabliert.
Ein Webservice fällt unter die Kategorie Maschine-zu-Maschine-Schnittstelle und nutzt eine API, um fremde Systeme über das Internet zu verbinden. Er ist bildlich gesprochen der Laufbursche, der Befehle annimmt und Pakete von einer Software annimmt und an die andere Software ausliefert.
Eine sehr beliebte Implementierung eines Webservices war lange Zeit SOAP (Simple Object Access Protocol). Dieses nutzt XML als Austauschformat. Daten, die über SOAP übertragen werden, müssen nach bestimmten Regeln ausgezeichnet werden, damit sich zwei unterschiedliche Systeme verstehen können. System A braucht also eine SOAP-Schnittstelle, aber auch System B braucht eine Schnittstelle. Dazwischen befindet sich dann ein Schnittstellenadapter, der sozusagen die Gleise richtig stellt, damit die Nachricht von System A bei System B richtig ankommt.
Was aber heutige Software-Systeme in den meisten Fällen bieten, sind sogenannte RESTful Webservices. Diese basieren auf HTTP (Hypertext Transfer Protocol). Wer jemals eine URL in einen Browser eingegeben hat, wird dieses Protokoll kennen: Der Anfang einer Webadresse wie http://domain.de oder https://domain.de gibt an, das zum Aufruf der Domain das Protokoll eingesetzt werden soll. Hierbei geht es auch um das Format, wie die Domain aufgerufen werden soll. Es ist wichtig, die richtige Etikette anzuwenden, um Missverständnisse zu vermeiden. HTTP bietet zum Beispiel standardisierte Methoden wie GET oder POST, um Daten anzufordern oder Daten zu senden. RESTful Webservices nutzen diese HTTP-Methoden, um ebenso Daten von einem Software-System anzufordern und an ein anderes Software-System zu senden.
Application Programming Interface (API)
Application Programming Interface ist die englische Bezeichnung für Programmierschnittstelle oder auch Anwendungsschnittstelle. Was das genau ist, bringt Wikipedia recht gut auf den Punkt: „Eine Programmierschnittstelle […] ist ein Programmteil, der von einem Softwaresystem anderen Programmen zur Anbindung an das System zur Verfügung gestellt wird.“
Eine API lässt sich auf zwei Arten nutzen:
- um zwei völlig fremde Software-Systeme miteinander zu verbinden, z. B. über eine REST- oder SOAP-API
- um ein Software-System mit weiteren Programmteilen zu erweitern über eine systeminterne API
REST-API
Um fremde Software miteinander zu verbinden, wird oftmals eine REST-API verwendet. REST steht für Representational State Transfer und nutzt HTTP und HTTPS als Kommunikationsformat.
Da REST als besonders komfortabel bei der Abfrage und dem Übermitteln von Daten gilt, ist die Verwendung von REST bei Software-Entwicklern sehr beliebt. Eine Vielzahl an Systemen wie auch 1CRM bieten bereits eine REST-API und stellen darüber eine standardisierte Möglichkeit bereit, Daten und Funktionalität mit anderer Software auszutauschen.
SOAP-API
Der Dino unter den Webservice-Schnittstellen, wird aber immer noch oft eingesetzt und hat auch klare Vorteile gegenüber dem beliebteren REST (WSDL, XSD etc.). SOAP basiert auf der Markup-Sprache XML und nutzt in der Regel WSDL – Web Services Description Language –, um die Struktur des Aufrufes zu beschreiben. Das ist ein großer Vorteil gegenüber REST. Denn mithifle von WSDL lässt sich einsehen, welche Daten die Schnittstelle zur Verfügung stellt und was sie als Aufruf erwartet. Wir haben mit SOAP und WSDL also eine gute Dokumentation der Schnittstelle. Nachteil von SOAP ist die höhere Komplexität im Vergleich zu REST.
Systeminterne API
Zusätzlich zur Vernetzung von zwei völlig verschiedenen Software-Systemen lässt sich eine API auch zur update-sicheren Erweiterung und Anpassung einer Software verwenden. Content-Management-Systeme bieten häufig APIs, um die Erweiterung des Systems über die Community und Webagenturen zu ermöglichen. Das Kernsystem kommuniziert mithilfe der API dann mit den Erweiterungen und Plugins des Systems.
Die API stellt eine Art Vertrag dar, dass der Zugriff auf die Funktionen immer gleich bleibt, auch wenn sich die Funktion an sich verändert. Auf diese Weise lässt sich das Kernsystem flexibel verändern und updaten, ohne dass Erweiterungen plötzlich nicht mehr funktionieren.
Auch das CRM-Programm 1CRM bietet eine CRM-API, die es ermöglicht, auf Programmteile zuzugreifen und damit eigene Erweiterungen und CRM-Module effizient und stabil zu entwickeln.
Netzwerk-Schnittstelle
Eine Netzwerk-Schnittstelle ermöglicht den Zugriff zu einem Rechnernetz. An Notebooks und PCs sind zum Beispiel Anschlüsse für das Ethernet-Kabel, über das sich ein Computer an einen Router anschließen lässt, der dann eine Verbindung zum Internet herstellt. Das Internet ist nichts anderes als ein weltweites Rechnernetz.
Es existieren auch drahtlose Netzwerkschnittstellen, die die Verbindung zu einem WLAN (Wireless Local Area Network), einem Mobilfunknetz oder anderen Funknetzen herstellen. Die Datenübertragung wird hierbei mithilfe elektromagnetischer Wellen realisiert.
Damit ein Smartphone beispielsweise das zukünftige 5G-Netz nutzen kann, muss es eine Netzwerkschnittstelle haben, die die elektromagnetischen Wellen des 5G-Netzes verstehen kann und auch selbst passende Signale aussenden können, die das 5G-Netz verarbeiten kann.
Mensch-Maschine-Schnittstelle
Die Mensch-Maschine-Schnittstelle, auf Englisch Human Machine Interface (HMI), wird auch Benutzerschnittstelle genannt. Die Computer-Tastatur ist eine solche Schnittstelle wie auch der Monitor des PCs. Auch das Gaspedal eines Automobils ist eine Mensch-Maschine-Schnittstelle.
Solche Mensch-Maschine-Schnittstellen ermöglichen uns Befehle an eine Maschine weiterzugeben (Tastatur) und das Feedback der Maschine interpretieren zu können (Monitor).