Schnittstellen - Brücken der IT

Vielleicht ist bei Ihnen mal eine API in der Updateliste aufgetaucht, oder der Begriff „Schnittstelle“ tauchte plötzlich in einem Artikel oder in einem Projektplan auf. Fast jeder, der sich mit IT auseinandersetzen muss, kennt das Wort. Aber was ist eigentlich eine Schnittstelle? Und warum machen sie gerne mal Probleme, sind sogar Angriffsflächen für Hacker? Der Versuch eines Crashkurses.

bilder/Startfolie2.png

Eine Schnittstelle hat eine allgemeine und eine für unsere Arbeit spezifische Bedeutung. Im Grunde genommen ist eine Schnittstelle ein Art Brücke zwischen zwei unabhängigen Systemen.

Wenn zwei Systeme etwas untereinander tauschen müssen, obwohl sie eigentlich nicht Teil des gleichen größeren Systems sind, dann muss eine solche Schnittstelle her. Wie es der Name schon verrät: an einer Schnittstelle überschneiden sich beide Systeme und erlauben daher eine Interaktion.

Nehmen wir diese allgemeine Definition als Grundlage, dann ergeben sich viele Schnittstellen, die erstmal wenig mit Programmierarbeit zu tun haben. Eine typische Schnittstelle, mit der sich (fast) jeder im Alltag konfrontiert sieht, ist die Schnittstelle zwischen einem Menschen und einer Maschine.

In diesem Fall ist der Mensch ein von der Maschine unabhängiges System (aus Organen, Knochen usw.), das Informationen an eine Maschine, z.B. an ein Auto, weitergeben möchte. Dabei besteht das Problem, dass das Auto und der Mensch ja nicht miteinander verschmolzen sind. Es braucht also eine Schnittstelle, über die der Mensch Informationen – z.B. Gas zu geben oder zu bremsen – auf das Auto übertragen kann. Das sind in diesem Fall Pedale. Das Auto wiederum gibt Informationen über ein Interface, wie ein Tachometer, an den Menschen zurück.

 

Ein Spiel vieler Systeme

Schnittstellen gibt es also überall, wo Systeme miteinander interagieren sollen. Aber in der IT scheinen sie besonders präsent zu sein. Warum ist das so?

Jedes Computersystem ist in ein intrikates Zusammenspiel aus unzähligen Subsystemen, egal, ob von Hardware- oder Softwareseite. Ein ständiger Tausch an Daten und Informationen ist dabei unerlässlich und vielseitig. Ein paar Beispiele:

• Damit Sie von Ihrem PC auf das Internet zugreifen können, müssen die Daten zunächst über den Router auf Ihren PC – und umgekehrt. Jede Information, die Sie aus dem Internet erhalten oder ins Internet schicken muss also mehrere Systeme und Schnittstellen passieren.

• Damit Ihr PC überhaupt funktioniert, müssen viele Einzelteile miteinander kommunizieren können; Grafikkarten, Soundkarten, Prozessoren und Netzteile müssen zusammenspielen, damit alles reibungslos funktioniert. Dieses Zusammenspiel wird durch Datentausch mit Schnittstellen realisiert.

• Ihre Maschine muss auch mit Ihren Softwareprogrammen interagieren können. Wenn Sie beispielsweise in Word den Buchstaben ‚A‘ eintippen wollen, muss die Information erst über Ihre Tastatur in den PC und von dort in das Programm weitergegeben werden.

• Ihre Programme wollen auch untereinander interagieren: Sie wollen in Windows ein Worddokument speichern? Dann öffnet sich in der Regel ein Fenster mit Ihrem Windows Explorer. Beide Systeme laufen also Hand in Hand.

Und das ist nur eine kleine Auswahl. Bei großen Systemen greifen Maschinen und Programme oft in komplexen Ketten aufeinander zu. Das geht nur, wenn alles reibungslos läuft. Dass alle Schnittstellen funktionieren und jede Information ungehindert weitergegeben werden kann, ist also ein wichtiger Teil jedes IT-Systems.

 

In den Hochburgen der IT wird an neuen Standard-APIs gefeilt. (Quelle: wikimedia commons)

 

Auf den Schultern von Giganten

Dabei fangen wir natürlich nicht immer ganz von vorne an. Die meiste Arbeit wurde tatsächlich schon vor langer Zeit für uns gemacht; gerade bei Hardwareschnittstellen gibt es klare Standards (von USB-Anschlüssen bis Ethernet-Steckern), die garantieren, dass bei sachgemäßer Verwendung Informationen ungehindert übertragen werden können.

Etwas komplizierter wird es bei der Übertragung von Daten, entweder zwischen verschiedenen Programmen oder bei der Übersetzung von Daten von materiellen Abnehmern – z.B. Sensoren – in eine Software. Hier entscheidet oft die Verbreitung des Problems darüber, ob es bereits eine Lösung von der Stange gibt. Ansonsten müssen unsere Entwickler ran. Einige typische Fälle:

• Mehrere Programme sind darauf ausgelegt, von Haus aus zusammenzuwirken. Unter diesen Umständen müssen wir in der Regel nicht mehr viel machen; die verschiedenen Programme haben in der Regel problemlos miteinander kommunizieren. Beispiele hierfür sind verschiedene Subprogramme und Module von zusammengehörigen ERP-Systemen.

• Mehrere Programme teilen eine gemeinsame Architektur. Wenn wir mehrere Programme haben, die zwar nicht für ein direktes Zusammenspiel entwickelt wurden, aber auf einer ähnlichen Architektur basieren, dann kann man auf eine breite Auswahl bestehender APIs (also Software-Schnittstellen) zurückgreifen. Unser Software-Stack arbeitet sehr viel mit .NET-Frameworks, für die Microsoft sogar einen eigenen API-Browser zur Verfügung stellt.

• Mehrere Programme haben APIs, die aber nicht miteinander kompatibel sind. In diesem Fall ist Kreativität gefragt. Im Grunde gibt es für dieses Problem zwei Lösungsansätze. Entweder schreiben wir ein Programm, dass die Daten so umformatiert, dass sie durch die Schnittstelle passen. Oder aber wir schalten einen Mittelsmann dazwischen. Hier werden die Daten über beispielsweise in einen Browser eingepflegt, der mit Programm A und Programm B kompatibel ist. Der funktioniert dann als erweiterte Brücke, quasi als eine Schnittstelle mit erhöhter Kompatibilität.

 

Daten tauschen leicht gemacht

Hat man zwei kompatible APIs, muss man nur noch festlegen, wie, wann oder unter welchen Umständen Informationen fließen sollen. In der Regel sind bei APIs Verbindungen ständig offen – der Prozess ist also am ehesten mit einer Schleuse vergleichbar, die man öffnet oder schließt, abhängig davon, ob Bewegung stattfinden soll oder nicht.

Welche Methode man benutzt, ist ganz vom Zweck abhängig. Manchmal macht es Sinn, nur ab und zu nach neuen Informationen zu suchen. Manchmal macht es Sinn, die andere Seite sofort über jede Veränderung zu informieren. Und manchmal möchte man dem User die völlige Freiheit geben, wann welche Daten fließen sollen. Wir können also grob drei Prinzipien unterscheiden:

• Manuelle Steuerung: Bei der manuellen Steuerung entscheidet der User, wann die Schleuse geöffnet werden soll. Das Funktioniert in der Regel über ein Interface, zum Beispiel ein Knopfdruck. Diese schlichte Form der Informationsübertragung findet man fast überall. Ein Beispiel ist der vorhin erwähnte Knopfdruck bei Word, der sich schließlich eine Eingabe in einem Programm überträgt.

• Polling: Der Begriff des Pollings beschreibt das regelmäßige Suchen nach neuen Daten, die über eine Schnittstelle übertragen werden sollten. Man muss sich das Vorstellen wie ein Hausbesitzer, der jeden Morgen zum Briefkasten geht, um nachzuschauen, ob neue Post eingetroffen ist – unabhängig davon, ob ein Umschlag voller Daten drin ist, geht er am nächsten Morgen wieder hin.

• Pushing: Eine Pushing-Übertragung macht sich selbst bemerkbar. Hier kommuniziert Subsystem A über die API an Subsystem B, dass sich im System etwas geändert hat. Subsystem B schaut dann nach, was das sein könnte. Ein E-Mail-Postfach, das sich automatisch meldet, wenn eine neue Mail eingetroffen ist, fällt unter das Push-System.

Auch diese Einteilung ist vereinfacht und unvollständig, gibt aber einen groben Überblick darüber, wie APIs in der Praxis funktionieren. Im Grunde muss man sich das als ein System mit zwei Schritten vorstellen: zum einen muss es einen Durchgang für Information geben, auf der anderen Seite benötigen die Informationen einen Antrieb, um durch diesen Durchgang geleitet zu werden.

 

 

Hardwareschnittstellen gehören zu den sichereren Vertretern ihrer Art. (Quelle: wikimedia commons)

 

 

Die Sache mit der Sicherheit

Sie können sich sicher denken, dass Schnittstellen ein gefundenes Fressen für Hacker jeder Couleur sind. Dennoch kommen IT-Systeme nicht ohne APIs aus; eine Zwickmühle ohne Entkommen. Entsprechend zahlreich sind die Versuche, Schnittstellen als Türe in ein System zu benutzen – und entsprechend zahlreich sind die Möglichkeiten, das zu verhindern.

Durch eine ungesicherte Schnittstelle können Daten abfließen wie durch ein undichtes Rohr. Ein Hacker muss dann effektiv nur meinem Eimer darunter stehen und auffangen, was abtropft. Es gibt automatisierte Programme, die das Internet nach derartigen Lecks durchsuchen. Oder man tarnt sich als schnittstellenkompatibles Programm und dockt einfach an – und zieht sich, was man bekommen kann.

Von Verschlüsselungen bis Authentifizierungen für Programme gibt es tausend Wege, derartige Angriffe abzuwehren. Sie müssen nur implementiert werden. Nicht zuletzt deswegen ist es wichtig, besonders empfindliche IT von Profs einrichten und absichern zu lassen. Die wissen, auf welche Wege Hacker versuchen, Schnittstellen als Einfallstor in das System zu benutzen, und kennen die nötigen Vorsichtsmaßnahmen. Vertrauen Sie daher bevorzugt IT-Spezialisten aus einem etablierten Systemhaus bei der Einrichtung Ihrer Systeme.

 

Der Turm von Babel

Schnittstellen sind Übersetzer und Brücken, und als solche unabdingbar für jedes komplexere System. Sie sind überall – in der Regel sind wir uns ihnen nur nicht bewusst. Wir hoffen, dass Sie durch diesen Artikel ein besseres Verständnis dafür gewonnen haben, was Ihre IT-System eigentlich ticken lässt.

Wenn Sie weitere Fragen zur Einrichtung von IT-Systemen haben oder sich sogar bei uns nach einem Angebot erkundigen wollen, zögern Sie nicht, uns zu kontaktieren. Unsere Spezialisten helfen Ihnen in allen Fragen gerne weiter.


Beitrag vom 27.05.2022

Kommentar abgeben: