Bewerte uns auf

FAQ zu Software Schnittstellen

Schnittstellen

Was bedeutet „Anwendungsschnittstelle“?

Der Begriff „Schnittstelle“ wird in sehr vielen verschiedenen Zusammenhängen benutzt. Gemeint ist bei uns eine softwareseitige Datenschnittstelle, mit der eine Kommunikation zwischen zwei oder mehreren voneinander unabhängigen Softwaresystemen ermöglicht wird.

Systeme können sowohl reine Daten als auch Programmfunktionen „miteinander teilen“. Wenn z.B. System A Daten benötigt, die nur System B kennt, kann System A mittels einer Schnittstelle, die Daten von System B beziehen. Üblicherweise sprechen die beiden verbundenen Systeme nicht dieselbe „Sprache“ und die Schnittstelle dient als eine Art Übersetzer.

Wann brauche ich eine Schnittstelle zu einem Fremdsystem?
Eine Steckdose, ein Smartphone und verschiedene andere Geräte

Die benötigst du immer dann, wenn du zwei unterschiedliche Softwaresysteme oder Programme funktionell miteinander in Verbindung setzen willst. So kann man hervorragend automatisierte Prozesse abbilden und schützt sich auch noch vor menschlichen Fehlern.

Ein gutes Beispiel ist ein Online Shop, der mit einem Warenwirtschaftssystem zusammenarbeitet. Normalerweise pflegt man hier die Daten in beiden Systemen einzeln. Einfacher wäre es aber, wenn das Warenwirtschaftssystem über eine Schnittstelle die Daten mit dem Online Shop synchronisiert.

Welche Schnittstellen kann ich mir von euch programmieren lassen?

Das kommt drauf an, welche Systeme du miteinander verbinden willst. Theoretisch können wir dir alle Schnittstellen umsetzen, zu denen wir im Haus die passende Programmiersprache beherrschen. Falls das Thema Lizenzen von Bedeutung ist, brauchen wir außerdem die offiziellen Rechte und API-Beschreibungen des jeweiligen Schnittstellenpartner.

Denkbar wären z.B. Anbindungen an deine Warenwirtschaft, eine Schnittstelle zu einem Zahlungsdienstleister, einer Spedition oder einer Mediendatenbank. Auch der Datenaustausch zwischen einer Software und speziellen Druckern oder Scannern ist möglich.

Im Bereich e Commerce spielen oft Schnittstellen zu Amazon oder eine Anbindung an eBay eine Rolle. Zahlungsdienstleister wie Klarna, PayPal, Sofortüberweisung oder auch Payment-Service Provider wie Concardis haben wir schon mehrfach erfolgreich angebunden.

Spricht uns doch einfach an und wir helfen dir gerne weiter! Bis jetzt war uns noch keine Anforderung zu ausgefallen.

Könnt ihr Daten auf meiner Webseite in Echtzeit aktualisieren?
Ein Laptop der Messwerte anzeigt und eine Hand

In manchen Fällen ist es sinnvoll, auf der Webseite angezeigte Daten in Echtzeit und ohne Laden des Browserfensters zu aktualisieren. Beispiele dafür sind Börsenkurse, Reporting-Daten (Monitoring), Warnungen bei Fehlern oder Newsticker.

Es ist möglich, den Webbrowser mit dem Webserver direkt kommunizieren zu lassen. Auf diese Weise kann der Browser selbst Funktionen vom Server aus aufrufen, ohne die Webseite komplett neu laden zu müssen. In diesem Fall werden einfach nur Teile der Ansicht auf dem Browser ausgetauscht und nicht die ganze Seite.

Mögliche Techniken, die wir hierzu verwenden würden, sind MQTT und Ajax.

Welche Vorteile bieten mir Microservices?

Ein Microservice ist ein kleine unabhängige Schnittstelle, die sich nur um genau eine Aufgabe (Funktion) kümmert. Microservices werden so entworfen, dass sie von allen anderen Diensten unabhängig bleiben können. Durch eine Software-Architektur, die mit Microservices arbeitet, sparst du Kosten und bist sehr flexibel.

Mit Microservices möchte man verhindern, dass während der Weiterentwicklung der Schnittstelle ein gigantisches All-in-One Softwareprogramm (Monolith) entsteht. Microservices werden meist nicht erweitert, wenn sich zum Beispiel die Anforderungen ändern. Stattdessen werden die Funktionen durch andere Microservices ersetzt oder durch neue Schnittstellen ergänzt (Baukastenprinzip).

Wenn du also mehrere Komponenten miteinander verbinden möchtest, sind Microservices dazu perfekt geeignet.Sie bieten dir eine sehr einfache Möglichkeit, Benutzer- und Rollenberechtigungen zu definieren.

Microservices teilen sich keine Daten, sodass gemeinsam genutzte Daten (zum Beispiel dein Artikel- oder Kundenstamm) redundant abgelegt werden. Durch die Datenredundanz wird die Betriebssicherheit deiner Anwendung erhöht und bei einem Ausfall beschränkt sich der Schaden auf eine Funktion. Dadurch kann der Rest deiner Software weiterhin genutzt werden.

„REST“ oder „SOAP“ – was soll ich nutzen?

Beide Technologien stellen seit vielen Jahren einen Standard für den Datenaustausch im Web dar.

SOAP ist ein Protokoll das vom World Wide Web Consortiums (W3C) bereitgestellt wurde. Es kombiniert den XML-basierten Datenaustausch mit der Möglichkeit, Funktionen über das Internet aufzurufen. Die Stärke von SOAP liegt darin, dass es keinen Unterschied mehr macht, ob eine Funktion in deiner Software lokal oder über das Internet aufgerufen wird. Das erleichtert die Programmierung und senkt die Entwicklungskosten für deine Software.

REST orientiert sich an der Sprache, die wir durch das Internet kennen. Es nutzt URL’s genauso, wie du sie in deinen Webbrowser eingeben würdest. Über jede URL kann eine „Ressource“ abgefragt, angelegt oder auch gelöscht werden. Eine Ressource können dann deine Kunden, deine Termine oder andere Objekte sein, die du in deiner Software verwendest. Der Vorteil einer REST-Schnittstelle ist, dass Sie sehr gut gelesen und verstanden werden kann. Allerdings ist REST nicht dazu geeignet, komplexe Geschäftsabläufe abzubilden.

Heutzutage werden sehr häufig RESTful APIs verwendet. REST-Schnittstellen bieten den Vorteil, dass sie komplett mit dem HTTP-Protokoll arbeiten, sodass keine Regeln in deiner Firewall angelegt werden müssen.

Da beide Konzepte völlig unterschiedlich sind, lautet die Antwort „Es kommt drauf an!“.

Ist eine AMQP- oder MQTT-Schnittstelle für mich sinnvoll?
Bild von einem Sensorgerät mit Displayanzeige

Es gibt Situationen, in denen deine Software Informationen aus Fremdsystemen benötigt, aber die Informationen noch nicht zur Verfügung stehen. Ein Beispiel wäre ein manueller Freigabeprozess, etwa für eine Bestellung.

In diesem Szenario gibt es zwei Möglichkeiten. Die erste Möglichkeit ist, dass du selbst eine Webschnittstelle für das Fremdsystem anbietest, über das die Informationen an dich bereitgestellt werden können. Die Daten müssen in diesem Fall aber erst vom Sender explizit gesendet werden.

Eine elegantere Möglichkeit ist es, Nachrichten über das MQTT- oder AQMP-Protokoll auszutauschen. Dazu wird ein Messagebroker (z.B. ein MQTT-Server) benötigt. Der Sender kann dann die Daten einfach immer schicken. Dein System holt sie ab, wenn sie gebraucht werden.

Sowohl mit MQTT als auch mit AQMP ist eine s.g. „bidirektionale Kommunikation“ möglich. Das bedeutet, das Daten in zwei verschiedene Richtungen fließen können. Der Empfänger muss also nicht darauf warten, dass „die Leitung frei“ ist, um selbst Daten verschicken zu können. Das ermöglicht einen sehr schnellen Datenaustausch.

Allerdings eignet sich diese Technologie eher für kleine Datenmengen, wie Messwerte oder Statuscodes (es ist z.B. nicht sinnvoll, ein PDF-Dokument über diesen Weg zu verschicken).

MQTT und AQMP sind auf Grund ihrer Eigenschaften hervorragend für den SmartHome Bereich und in der Industrie geeignet. Immer dann wenn ganz schnell kleine Datenmengen übertragen werden sollen. Gerne beraten wir dich darüber ausführlich!

© 2021 — Violution GbR — #AusLeidenschaftDigital