Schnittstellen Programmierung

Die Schnittstellen Programmierung macht es möglich, dass Daten und Kommandos zwischen zwei Systemen ausgetauscht werden können.
Zwei Menschen programmieren zusammen an einem PC
© RED PIXEL

Was ist eine Schnittstelle?

Eine Schnittstelle, auf Englisch auch Interface genannt, ist Teil eines Kommunikationssystems. Ursprünglich stammt der Begriff aus der Naturwissenschaft und beschreibt die physikalische Phasengrenze zweier Zustände eines Mediums.

Es gibt eine Reihe von unterschiedlichen Schnittstellenarten. Es wird dabei differenziert zwischen Datenschnittstellen (data interfaces), Maschinenschnittstellen, Hardwareschnittstellen (hardware interfaces), Netzwerkschnittstellen (network interfaces), Softwareschnittstellen (software interfaces), Benutzerschnittstellen (user interfaces) und „allgemeine Schnittstellen“ (common interfaces).

Im Bereich der Datenschnittstellen fungieren die Daten als Schnittstellen zwischen zwei Programmen.

Maschinenschnittstellen werden verwendet, um physische Systeme miteinander zu verbinden.

Hardwareschnittstellen stellen ebenfalls eine Verbindung zwischen physischen Systemen dar, werden aber im Bereich der Computertechnik benutzt.

Netzwerkschnittstellen sind die Schnittstellen, die sich zwischen Netzwerkkomponenten befinden.

Softwareschnittstellen bezeichnen Schnittstellen zwischen Programmen untereinander oder Schnittstellen zum Betriebssystem.

Als Benutzerschnittstellen werden jene Schnittstellen definiert, die sich zwischen Mensch und Gerät befinden (bspw. Schalter).

Die Common Interfaces werden für DVB-Empfangsgeräte eingesetzt. DVB steht für Digital Video Broadcasting (Digitalfernsehen). Das Verfahren wird zur Übertragung digitaler Inhalte verwendet.

Alle Schnittstellen vereint, dass sie für den Datenaustausch zwischen zwei Systemen zuständig sind.

Was bedeutet Schnittstellen Programmierung?

Im Bereich der Softwareentwicklung wird mit Datenschnittstellen und Softwareschnittstellen gearbeitet.

Programmierte Schnittstellen bzw. APIs werden als eine Art Zugangsportal verstanden und geben den Zugang zu Datensammlungen frei, die sonst geschlossen sind. Unterschiedliche Anwendungen werden mithilfe der Schnittstellen Programmierung miteinander verbunden. Die Funktion der Schnittstellen Programmierung ist demnach die sichere Datenübertragung zwischen Systemen. Ohne die Schnittstellen Programmierung müssten Daten manuell eingegeben werden und per E-Mail oder in Papierform versendet werden. Um Ressourcen wie Zeit zu sparen, Abläufe zu vereinfachen und Fehlerquellen zu beseitigen, werden passende Schnittstellen programmiert.

Programmiersprachen-APIs und Remote-APIs

Der Oberbegriff Schnittstelle, im Englischen API genannt, kann zwischen Programmiersprachen-APIs und den sogenannten Remote-APIs unterschieden werden.

Die Programmiersprachen-APIs werden zum Beispiel in Bibliotheken eingesetzt und variieren stark bezüglich der Sprachen und Plattformen. Ein Beispiel für Programmiersprachen-APIs stellen die objektorientierten Java-APIs dar.

Remote-APIS besitzen z. B. HTTP Protokolle und sind daher sprach- und plattformunabhängig. Beispiele für Remote-APIs sind RESTful-APIs (REST), SOAP-Webservices und Messaging-APIs.

Anwendungsbeispiele

Schnittstellen werden für eine Vielzahl von Anwendungen programmiert. Diese Anwendungen werden wiederum in vielen unterschiedlichen Bereichen eingesetzt. Da die Bereiche vielfältig sind, gibt es demnach unterschiedliche Arten von Schnittstellen und verschiedene Lösungen, die im Folgenden dargestellt werden.

Interne Schnittstellen

Diese Schnittstellen haben keinen öffentlichen Zugang und werden seitenintern verwendet, um die Modularisierung des Webseitenaufbaus zu ermöglichen. Das bedeutet, dass die einzelnen Teile der Software in Module und Komponenten aufgeteilt und mittels Schnittstellen verbunden werden. Im Bereich der Softwareentwicklung ist fast alles eine interne API.

Externe Schnittstellen

Sie stellen Schnittstellen dar, die von Drittservern für andere Anwendungen genutzt werden. Diese Anwendungen basieren auf dem eigentlichen Dienst und werden anderes aufbereitet bzw. mit einem neuartigen Zugang versehen.

Plattform Schnittstellen

Eine Schnittstelle, die für die Integration in eine andere Website eingesetzt wird, wird Plattform Schnittstelle genannt. Integriert werden können Videos von YouTube oder anderen Anbietern, Standorte (bspw. für Restaurants) über Google-Maps und anderen Navigationsdiensten oder Versandstatusverfolgungen für Versanddienste wie DHL oder andere.

Authentifizierungsschnittstellen

Um Login-Formulare in Websites zu integrieren, werden Authentifizierungsschnittstellen verwendet. Beispielhaft dafür ist Facebook Connect. Auf vielen Websites können User sich mithilfe ihrer Facebook Anmeldedaten anmelden, um einen langwierigen Registrierungsprozess zu vermeiden.

Autorisierungsschnittstellen

Autorisierungsschnittstellen werden verwendet, um automatische Aktionen wie einem Facebook-Post im Namen des Nutzers, durchzuführen.

Ebenfalls können Zahlungsdienste in eine Website (z. B. für einen Onlineshop) eingebettet werden. Es ist zudem möglich, einen automatischen Datenaustausch zwischen einem Onlineshop und beispielsweise einem ERP-System zu realisieren und eine Anbindung durch eine Schnittstelle herzustellen. Warenwirtschaftssysteme werden dafür verwendet, um zum einen die Daten zu beispielsweise Lagerbeständen, Personal und Rechnungswesen zu verwalten. Eine Schnittstelle zwischen einem Shop und einem Warenwirtschaftssystem kann die Daten aus beiden Systemen zentral abspeichern. Somit ist es möglich, zum Beispiel vorrätige Stückzahlen an den Onlineshop zu senden. Das Shopsystem übertragt wiederum Bestelldaten an die Warenwirtschaft.

Sicherheit

Gerade wenn es um die Übertragung von sensiblen Daten (beispielsweise Bankverbindungen) geht, stellt die Sicherheit einen wichtigen Punkt bei der Schnittstellen Programmierung dar. Jeder Anbieter, der Schnittstellen Programmierung umsetzt, ist dazu aufgerufen, ein Pflichtbewusstsein gegenüber sicheren Datenverbindungen zu haben. Es gibt verschiedene Sicherheitsmaßnahmen, die eingerichtet werden sollten, damit die Lösung funktioniert und geschützt ist. Im Folgenden werden die Beispiele Schnittstellen Autorisierung und das Verschlüsselungsprotokoll näher erläutert.

Schnittstellen Autorisierung

Da zwei Systeme über Schnittstellen miteinander kommunizieren und Daten übertragen, ist es wichtig, diese Schnittstellen durch die Schnittstellen Autorisierung zu schützen. Auf diese Art und Weise haben nur autorisierte Clients Zugriff auf Daten.

Ein Beispiel für die sichere API-Autorisierung ist die sogenannte Open Authorization, kurz OAuth. Dieser Begriff bezeichnet zwei unterschiedliche Protokolle, die für alle Marktteilnehmer leicht zugänglich und weiterentwickelbar sind (offener Standard). Sie machen eine standardisierte, sichere Schnittstellen Autorisierung für Desktop-, Web- und Mobile-Anwendungen möglich.

Die Funktionsweise sieht vor, dass ein Endbenutzer (User) mithilfe von OAuth einer Anwendung (Client) den Zugriff auf die vorhandenen Daten erlauben (Autorisierung) kann. Die Daten werden von einem anderen Anbieter (Resource Server) bereitgestellt und geben dabei keine Geheimnisse bezüglich der Zugangsberechtigung (Authentifizierung) an den Client weiter. Der Endbenutzer ist auf diese Weise berechtigt, Dritten zu erlauben, in seinem Namen einen Dienst zu gebrauchen. Die Weitergabe von Passwörtern an Dritte ist dabei nicht gestattet.

Zur Autorisierung eines Zugriffs werden bei OAuth 2.0 Tokens verwendet. Es gibt Access Token und Refresh Token.

Access Token werden vom Client als Repräsentation der Autorisierung gesendet. Durch den Parameter scope werden die Berechtigungen festgelegt, die der Access Token haben soll. Die Gültigkeit dieses Tokens ist zeitlich begrenzt.

Refresh Token werden dann eingesetzt, wenn beim Authorization Server ein neuer Access Token angefragt werden soll. Dies geschieht dann, wenn das Token abgelaufen oder ungültig ist. Auch Refresh Token haben eine zeitliche Begrenzung, die in der Regel jedoch länger andauert als die eines Access Tokens. Wie beim Access Token wird auch das Refresh Token nach der Autorisierung durch den Resource Owner vom Authorization Server an den Client gesendet.

OAuth kam das erste Mal im November 2006 zum Einsatz. Blaine Cook arbeitete an einer sogenannten OpenID-Implementierung. Die OpenID ist ein Authentifizierungssystem für webbasierte Dienste und ist dafür zuständig, einem Benutzer, der sich einmal mit seinen Zugangsdaten angemeldet hat, den Zugang zu allen Websites zu erlauben, die OpenId-konform sind. OpenID arbeitet nach dem Single-Sign-on-Prinzip. Die Entwickler von Ma.gnolia (später Gnolia), einer Website mit den Themenschwerpunkten Design, sozialen Funktionen und offenen Standards, benötigten ebenfalls eine Autorisierungslösung. Blaine Cook, Chris Messina, Larry Halff und David Recordon erkannten durch ein gemeinsames Treffen, dass es zu dieser Zeit keinen offenen Standard für die Schnittstellen Autorisierung gab.

Ein Internetforum wurde eingerichtet und eine Gruppe von Implementierern ausgewählt, die am offenen Protokoll arbeiteten. Durch Weiterentwicklungen über die Jahre und weiteren Standardisierungsideen entwickelte sich das Protokoll von OAuth zu OAuth 2.0.

Verschlüsselungsprotokoll

Um die Sicherheit bei der Datenübertragung mittels Schnittstellen zu wahren und DSGVO-konform zu arbeiten, hat sich beispielsweise die Verwendung der sogenannten Transport Layer Security (TLS) bewährt. Auf Deutsch heißt dieser englische Begriff Transportschichtsicherheit und ist gemeinhin ebenfalls unter der Bezeichnung des Vorgängers Secure Sockets Layer (SSL) bekannt. TLS stellt ein Verschlüsselungsprotokoll dar. Dieses Protokoll hat die Funktion, Daten sicher im Internet zu übertragen. Verschlüsselungsprotokolle sind Netzwerkprotokolle, die für den Austausch von Daten zwischen Computern verantwortlich sind. Die Daten sind innerhalb eines Rechnernetzes miteinander verbunden. Verschlüsselungsprotokolle bestehen aus einem Schlüsselaustauschprotokoll und symmetrischen Verfahren. Das symmetrische Verfahren zeichnet sich dadurch aus, dass bei der Datenübertragung Sender und Empfänger denselben Schlüssel bekommen. Dies sorgt für Vertraulichkeit und Integrität.

DSGVO

Wenn die verschiedenen Sicherheitsmaßnahmen zum Einsatz kommen, ist es unabdingbar dabei auf die Einhaltung der DSGVO zu achten. Die DSGVO ist die Datenschutz-Grundverordnung der Europäischen Union und vereinheitlicht die Regeln zur Verarbeitung der personenbezogenen Daten. Dabei werden sowohl private als auch öffentliche Datenverarbeiter angesprochen.

Merkmale für gute Schnittstellen

Wichtige Merkmale, die eine gute Schnittstelle ausmacht, sind:

  • Die Schnittstelle ist kommunikativ, das heißt sie sollte genügend Informationen liefern, die den Arbeitsprozess erleichtern, aber auch nicht zu viele, um ihn nicht zu erschweren.
  • Die Schnittstelle speichert die zur Verfügung gestellten Rohdaten und ändert dabei nichts an ihnen.
  • Die Schnittstelle läuft immer durch und beendet die Datenübertragung komplett.
  • Die Schnittstelle ermöglicht den Nachimport aus den schon bestehenden Rohdateien.

Vorgefertigt vs. Individuell

Auf der einen Seite werden fertige Anwendungen angeboten, in denen mehrere vorgefertigte Programmierschnittstellen enthalten sind. Mit dieser Art von Software lassen sich Daten in Drittanwendungen nutzen, was einen Vorteil darstellt. Ein Nachteil ist dabei die fehlende Möglichkeit der Individualisierung.

Demzufolge ist es auf der anderen Seite möglich, eine Agentur dafür zu beauftragen, eine individuelle Programmierschnittstelle zu entwickeln, die sich an den spezifischen Bedürfnissen der Unternehmen orientiert und somit in der Lage ist, Individualsoftware für die unterschiedlichsten Anliegen herzustellen.

Schnittstellen Programmierung für individuelle Softwarelösungen bei TenMedia

Die TenMedia GmbH ist eine Agentur aus Berlin, die sich auf Web- und Softwareentwicklung spezialisiert hat. Seit 2011 bieten wir individuelle Softwarelösungen an, entwickeln moderne und umfangreiche Apps sowie state-of-the-art Websites und Datenbanken mithilfe modernster Technologien und Responsive Webdesign. Dies realisieren wir durch individuell abgestimmte Schnittstellen Programmierung. Diese sorgen für eine hohe Funktionalität und Benutzerfreundlichkeit. Natürlich achten wir auf die Sicherheit der Daten. Die Entwicklung erfolgt DSGVO-konform und bietet so einen Schutz vor Datenverlusten und Hackerangriffen. Unsere Kunden sind kleine und mittelständische Unternehmen, Start-ups und viele andere.