Sowohl Softwareanbieter als auch Webseitenbetreiber möchten ihren Nutzern ein optimales Angebot an unterschiedlichen Diensten anbieten und sind deswegen auf eine Schnittstelle angewiesen. Aber auch für Unternehmen sind Schnittstellen ein wichtiges Tool, um heterogene Systeme miteinander verbinden zu können und ineffiziente Insellösung zu vermeiden. In diesem Artikel werden ausgewählte Arten von Schnittstellen wie API, Webservice und GUI vorgestellt und voneinander abgegrenzt.
Der Inhalt im Überblick
Schnittstelle
Allgemein gesagt ist eine Schnittstelle eine Verbindung zwischen zwei Systemen, die eine Kommunikation bzw. eine Übertragung ermöglicht. Beispielsweise ist eine Steckdose eine Schnittstelle, die notwendig ist, um elektrischen Strom zu übertragen.
In der IT-Welt kommen Schnittstellen eine große Bedeutung zu. Sie ermöglichen eine Kommunikation sowohl zwischen Software- als auch Hardwarekomponenten. So stellt ein USB-Anschluss am Rechner eine Hardwareverbindung zum USB-Stick bereit. Auch das Betriebssystem enthält Schnittstellen, um Zugriffe z.B. auf die Festplatte oder Grafikkarte über ein Anwendungsprogramm zu ermöglichen.
Application Programming Interface (API)
API ist ein Akronym für „application programming interface“ (englisch für Schnittstelle zur Anwendungsprogrammierung). Mittels einer API kann z.B. eine Software in ein anderes System eingebunden werden. Damit ein Programm die Funktionalitäten einer anderen Software aufrufen und nutzen kann, muss dieses die entsprechende API implementieren. Damit können unterschiedliche Softwaremodule / Programmteile (services) unabhängig voneinander erstellt werden, die über eine Schnittstelle kommunizieren. Der Vorteil einer solchen modularen Programmierung liegt darin, dass Software einfacher gewartet und durch zusätzliche Module individuell erweitert werden kann.
Webservice
Von einer „normalen“ API ist eine Web-API (Webservice) abzugrenzen. Ein Webservice beinhaltet zwar auch eine API bietet aber zusätzlich eine Web-Dienstleistung an. Durch Webservices kann ein Webseitenanbieter unterschiedliche Dienste z.B. externer Anbieter über ein Netzwerk (also Intranet, Internet) in seinem Portal integrieren und anbieten.
Eine Einheitliche Definition, was ein Webservice ist, gibt es zwar nicht, jedoch gibt es Eigenschaften die jeder Webservice hat:
- ein Webservice bietet einen Dienst über ein Netzwerk an
- ein Webservice bietet einen automatisierten Datenaustausch und Nutzung von Funktionalitäten an
- der Austausch von Daten und Funktionalität erfolgt unabhängig von der Programmiersprache bzw. Hardware und kann somit in unterschiedliche Systemen integriert werden
- bei einem Webservice handelt es sich um eine reine Computer-zu-Computer-Kommunikation
Beispiel Webservice
Anhand eines Onlineshops können Webservices wie folgt erklärt werden:
Unser Beispiel-Shop „Amazonien“ bietet verschiedene Produkte aus verschiedenen Kategorien an. Neben den üblichen Funktionalitäten wie elektronische Produktkataloge, Produktbestellung, elektronisches Bezahlen mittels Kredit- oder EC-Karte, bietet „Amazonien“ auch zusätzliche Services an. So kann der Käufer z.B. auch eine Versicherung abschließen oder den Status des Versandes durch den Paketdienst nachverfolgen. Um seinen Nutzern die Anmeldung zu erleichtern, hat „Amazonien“ eine Single Sing-on Lösung mittels einer Authentifizierungs-API implementiert, so dass sich ihre Kunden auch über ihr Facebook-Login anmelden können und keine separaten Login-Daten eingeben müssen.
Da „Amazonien“ diese Dienste selbst nicht erbringen kann, greift sie auf die Webservices anderer Anbieter zurück. Durch eine Schnittstelle kann „Amazonien“ diese Dienste in ihr eigenes Portal einbinden. Für den Nutzer erscheint nur die Seite von „Amazonien“, so dass dieser grundsätzlich nichts von dem im Hintergrund ablaufenden Austausch mitbekommt. „Amazonien“ selbst kann über die Web-APIs zusätzlich z.B. die Bonität des Kunden prüfen, die Zahlung mittels Kredit- oder EC-Karte veranlassen, ein Paketdienst beauftragen oder den aktuellen Währungskurs erfragen.
Welche Unternehmen welche Dienste und Webservices anbieten, kann in der Universal Description Discovery and Integration (UDDI) recherchiert werden.
Graphical User Interface (GUI)
Von der API bzw. Webservice ist die Benutzerschnittstelle zu unterscheiden (auch Graphical User Interface oder Frontend genannt). Die GUI ist die Oberfläche einer Anwendung, die der Benutzer sieht. Über diese Benutzeroberfläche kann der Nutzer Daten eingeben. Die GUI leitet dann diese Daten zur Verarbeitung an die Software weiter (auch Backend genannt). Anschließend stellt die GUI dem Nutzer die angeforderten Ergebnisse dar. Bei der GUI handelt sich also um eine Schnittstelle zwischen Mensch und Maschine. Im Gegensatz dazu dient eine API bzw. ein Webservice dem automatisierten Austausch zwischen Maschinen.
Auftragsdatenverarbeitung oder Funktionsübertragung
Datenschutzrechtlich stellt sich oft die Frage, ob bei Webservices eine Auftragsdatenverarbeitung vorliegt, wenn ein Portalbetreiber in seinem Portal ein Webservice eines externen Anbieters implementiert hat und hierüber personenbezogene Daten ausgetauscht werden. Dies muss im Einzelfall entschieden werden und ist von der erbrachten Leistung abhängig. Jedoch wird in den meisten Fällen eine Funktionsübertragung vorliegen, da neben der konkreten Verarbeitung von personenbezogenen Daten ein gesamter Aufgabenbereich übertragen wird. In diesem Fall ist der Dritte nicht mehr bloß Auftragnehmer, sondern selbst verantwortliche Stelle. Im Fokus steht dann nicht nur eine Verarbeitung der Daten im Auftrag sondern, ob die erbrachten Leistungen und Prozesse allein in der Verantwortung des Webservice-Anbieters liegen.
Liegt eine Funktionsübertragung vor, so ist zu überprüfen, ob eine Übermittlung von Daten gemäß § 28 BDSG als Verarbeitung für „eigene Geschäftszwecke“ erfolgen darf oder eine Einwilligung eingeholt werden muss.
Sicherheit
Auch bei der Absicherung des Systems (insbesondere bei Webservices) sollte u.a. an Folgendes gedacht werden:
- Absicherung der Übertragungswege bei Webservices (Verschlüsselung)
- Rollen – und Berechtigungskonzept
- Durchführen von Penetrationstests
- Protokollierung
- Regelmäßiges Einspielen sicherheitsrelevanter Updates
- Regelmäßige Überprüfung der Verfügbarkeit und Funktionalität der Schnittstelle
Wir betreiben einen Onlineshop und nutzen hierfür das plentymarkets Shopsystem. Da alle Daten innerhalb des Systems verarbeitet werden und dies selbstständig erfolgt, stellt das meiner Meinung nach eine Funktionsübertragung dar und plentymarkets müsste uns einen ADV Vertrag vorlegen, oder? Das gleiche wäre dann mit dem angebundenen Warenwirtschaftsystem, richtig?
Das System läuft auf der AWS Cloud, gehostet auf einem deutschen Server in Frankfurt. Da Amazon jedoch ein amerikanisches UN ist, könnte da nicht rein theoretisch eine Datenübermittlung personenbezogener Daten ins Ausland stattfinden?
Sylvia
Ein ADV-Vertrag ist zu schließen, wenn eine Auftragsdatenverarbeitung i.S.d. § 11 BDSG vorliegt. Nur in diesem Fall ist eine ADV-Vereinbarung zu schließen.
Wenn eine Funktionsübertragung vorliegt, dann ist der Dienstleister als Dritter anzusehen, so dass eine Rechtsgrundlage für die Übermittlung gegeben sein muss. Eine ADV-Vereinbarung ist für den letztgenannten Fall nicht vorgesehen, da der Dritte die Daten nicht nach Weisung verarbeitet.
Wenn also eine Funktionsübertragung bei plentymarkets Shopsystem vorliegt, dann ist keine ADV-Vereinbarung zu schließen, sondern zu prüfen, ob eine Rechtsgrundlage für die Übermittlung und Verarbeitung der Daten vorliegt. Wie in dem Artikel erwähnt kann § 28 BDSG als Verarbeitung für „eigene Geschäftszwecke“ in Betracht kommen.
Bei AWS könnte eine Auftragsdatenverarbeitung vorliegen, so dass zu prüfen ist ob in diesem Vertragsverhältnis eine ADV-Vereinbarung zu schließen ist. Zudem sollte geprüft werden, wo die Daten gespeichert werden. Wenn dies außerhalb der EU/EWR erfolgt, besteht die übliche Problematik bei Übermittlung in Drittländer. Ansonsten besteht bei US-Firmen ein weiteres Risiko, welches wir in diesem Artikel vorgestellt haben:
Microsoft vs. USA: Streit um Herausgabe von EU-Kundendaten geht in die nächste Runde
Bzgl. der AWS Cloud … hier besteht ja ein Verhältnis zwischen plentymarkets und AWS, da plentymarkets die Systeme dort hostet. Tangiert uns das dann überhaupt? In dem Fall müsste doch nur zwischen plentymarkets und AWS ein ADV Vertrag geschlossen werden oder gibt es für uns noch etwas zu beachten?
Wenn eine Funktionsübertragung vorliegt, dann ist plentymarkets die verantwortliche Stelle und muss somit die datenschutzrechtlichen Anforderungen in diesem Bereich beachten.
Kann es sein, dass es eine Diskrepanz zwischen einem Online Web Dienst und die dazugehörende App geben kann?
Z. B. auf Verlangen der Autovermietung war meine Kreditkarte nicht in Ordnung. Ich habe in der App die Kreditkarte absolut richtig mutiert, aber es wurde mir mehrmals gemeldet es sei nicht ok. Nachdem habe ich zusätzlich im Online Web die Kreditkarte mutiert und ich bekam sofort die Bestätigung, dass es ok ist.
Kann es eine Transaktionszeit Verzögerung zwischen der App und dem Web Dienst geben?
Oder irgend einen techn. Systemfehler beim Anbieter oder Anwender geben?
Logout /Login Problem etc.
Danke für Ihre Bemühung
Freundliche Grüssen
B. Berger
Vollkommen richtig haben Sie erkannt, dass eine Website oder ein Service auf einer Website nicht immer direkt mit einer App des Anbieters zusammenhängt. Hier kann es aus verschiedenen Gründen dazu kommen, dass die App und der „Web Dienst“ sich unterschiedlich verhalten und Funktionen auf der einen Plattform funktionieren und auf der anderen nicht. Das liegt an der verwendeten IT-Systeme und deren Struktur. Es ist daher von Anbieter zu Anbieter unterschiedlich, die von Ihnen geschilderten Ereignisse könnten jedoch auf eine Unabhängigkeit der App und der Web Dienste hindeuten.
Ihre Frage bezieht sich jedoch leider nicht direkt auf den Inhalt des Artikels. Sollten Sie dazu weitere Fragen haben, empfehle ich Ihnen daher, dass Sie sich an den Support des jeweiligen Anbieters wenden. In Ihrem Fall dementsprechend der Support der Autovermietung.
Nach langen Jahren ein Dankeschön für den Artikel – dafür, dass er klar das Problem beschreibt (auch unter DSGVO ist das noch immer so :-)); und v.a. auch für die knackig-kurze Punkteliste unter „Sicherheit“!