Unser Kracher-Beitrag im April: Extraktion strukturierter Daten aus Tankbelegen

Top Beitrag des Monats

Trotz 12 Millionen Geschäftsreisen in 2018 setzen nur 13% der befragten Unternehmen eine vollständige digitale Reisekostenabrechnung ein. Auch bei uns ist die Reisekostenabrechnung noch nicht komplett digitalisiert. Wir haben Verfahren zur Informationsextraktion untersucht, um dies zu ändern.

Hier geht’s zum Beitrag

 

Cloud Bursting – Wie man mit Kubernetes die Hybrid Cloud zum Platzen bringt

In den vergangenen sechs Monaten haben wir uns im Rahmen einer Masterarbeit mit dem Thema Hybrid Cloud auseinandergesetzt. Ziel war es, eine Hybrid Cloud mit Kubernetes und Cloud Bursting für eine Beispielanwendung umzusetzen.
Doch was genau bedeutet denn nun Cloud Bursting? Der Begriff stammt aus dem Englischen „to burst“ – zu Deutsch „platzen“. Es geht darum, Anwendungen im privaten Teil einer Hybrid Cloud bei steigender Last durch Public-Cloud-Ressourcen zu erweitern. Die Private Cloud platzt also auf und wird – wenn man so will – von der Public Cloud aufgefangen.

Die Hybrid Cloud ist eine Lösung, die eine Private Cloud mit einem oder mehreren Public Cloud Services kombiniert und mittels proprietärer Software eine Kommunikation zwischen unterschiedlichen Services ermöglicht. Hybrid Cloud Services sind leistungsfähig, weil sie Unternehmen eine bessere Kontrolle ihrer privaten Daten ermöglichen. Eine Organisation kann vertrauliche Daten in einer Private Cloud oder in einem lokalen Rechenzentrum speichern und gleichzeitig von den robusten Rechenressourcen einer verwalteten Public Cloud profitieren. https://www.citrix.com/de-de/glossary/what-is-hybrid-cloud.html

Für welche Anwendungen ist das interessant? Es ist hauptsächlich dann spannend, wenn die Last stark schwankt. Eine gewisse Grundlast wird durch die private Cloud abgedeckt und die Spitzen skalieren automatisch in die Public Cloud. So fallen dort auch nur Kosten an, wenn die Ressourcen benötigt werden.

Lastzeiten
Abbildung 1: Lastzeiten – eigene Darstellung

Use Case Machine Learning

Machine Learning (kurz ML) kann ziemlich viel Ressourcen und Zeit in Anspruch nehmen. Neuronale Netze zur Bilderkennung, welche für das ImageNet Projekt trainiert wurden, benötigen mittlerweile nur noch wenige Minuten Trainingszeit. Dafür müssen jedoch mehrere Knoten mit jeweils mehreren GPUs zur Beschleunigung eingesetzt werden1 . Gleichzeitig unterscheidet sich die Auslastung beispielsweise von der eines Web-Servers. Während dieser potenziell unendlich lange läuft, ist das Training eines neuronalen Netzes irgendwann abgeschlossen. Beim maschinellen Lernen können deshalb erhebliche Schwankungen entstehen.

In der Beispielanwendung sollen Trainingsdaten auf eine hybride Cloud-Plattform hochgeladen werden. Das Training erfolgt mit der Python-Bibliothek Keras, welche über eine einfache API verfügt und verschiedene Beispiele bereitstellt. Es können jedoch auch andere Frameworks oder Bibliotheken genutzt werden. Zu Beginn des Trainings werden die Trainingsdaten von der Plattform heruntergeladen. Daraufhin wird das eigentliche Learning ausgeführt. Zum Schluss wird das fertige Modell auf die Plattform hochgeladen. Ob das Training nun im privaten oder im öffentlichen Teil stattfindet, muss automatisch von der Hybrid Cloud entschieden werden.

Technische Hürden: Kommunikation einzelner Services

Innerhalb eines Kubernetes Clusters können einzelne Services miteinander kommunizieren. Jeder Service bekommt dazu seinen eigenen clusterinternen DNS-Eintrag. In der Regel besteht ein Cluster aus mehreren Knoten. Auf welchem ein Container ausgeführt wird, wird von Kubernetes entschieden. In einer Hybrid Cloud existieren mindestens zwei Cluster. Idealerweise verhalten sich diese wie ein großer Cluster. Daraus entstehen folgende Herausforderungen:

  1. Cross-Cluster-Kommunikation: Services können über Clustergrenzen hinweg untereinander kommunizieren, als wären sie alle im selben Cluster.
  2. Multicluster-Scheduling: Kubernetes Pods werden automatisch in einem freien Cluster platziert.

 

Technische Umsetzung durch Cross-Cluster Kommunikation und Multicluster-Scheduling

Zum Glück gibt es für beide Probleme Lösungen aus der Kubernetes-Community. Für die Cross-Cluster-Kommunikation kann das Service Mesh Istio als Mulitcluster-Installation eingesetzt werden. Dies hat den schönen Nebeneffekt, dass automatisch sämtlicher Netzwerkverkehr über mutual TLS (mTLS) verschlüsselt wird. Andere Lösungen wie Cilium oder Linkerd verfügen über ähnliche Funktionen.

Das Multicluster-Scheduling kann über den gleichnamigen Multicluster Scheduler von Admiralty erreicht werden. Dessen Einsatz ist außerdem im Blogbeitrage Running Argo Workflows Across Multiple Kubernetes Clusters auf deren Website erläutert.

 Istio Multicluster Service Mesh
Abbildung 2: Istio Multicluster Service Mesh – eigene Darstellung

Was bedeutet dies nun für unseren Use Case? Durch den Einsatz von Istio können die Trainingsdaten aus jedem Cluster der Hybrid Cloud heruntergeladen werden, ohne dass dafür extra Freischaltungen nötig sind. Über den Ausführungsort des Machine Learnings entscheidet der Multicluster Scheduler.

Damit das Bursting auch funktioniert, muss in der Public Cloud das Autoscaling für den Kubernetes Cluster aktiviert werden. So werden bei steigender Last automatisch neu Konten zum Cluster hinzugefügt.

Test der Beispielumgebung

Natürlich haben wir die Beispielanwendung einem Test unterzogen. Dabei wurden in kurzer Zeit eine große Menge an ML-Jobs erstellt und ausgewertet in welchem Cluster sie ausgeführt wurden. Die Erwartung war, dass zunächst der private Cluster genutzt wird und im Anschluss der öffentliche. Im Test hat dies größtenteils auch funktioniert, allerdings wurden einzelne Jobs schon in die Public Cloud „geburstet“, als in der Private Cloud noch ausreichend Kapazität verfügbar war. Hier offenbart sich eine aktuelle Schwäche des Schedulers. Seine Entscheidungen lassen sich nur schwer nachvollziehen oder beeinflussen. Die Möglichkeit Cluster zu gewichten könnte Abhilfe schaffen. Dann könnte dem privaten Cluster eine höhere Priorität zugewiesen werden. Da sich das Projekt aber noch in der Beta-Phase befindet, ist eine Umsetzung in Zukunft in Betracht zu ziehen.

Fazit: Wie lässt sich Cloud Bursting implementieren 

Cloud Bursting lässt sich basierend auf Kubernetes, Istio und dem Multicluster Scheduler implementieren. Es kann helfen, die Cloud bei Lastschwankungen besser zu nutzen. Der Funktionsumfang des Schedulers lässt aktuell noch ein Feature zur Priorisierung von Clustern vermissen. Es sind einige weitere Projekte zur Mulitcluster-Verwaltung in der Entstehung. Dazu zählen z. B. Kubernetes Federation, Submariner oder Google Anthos. Es bleibt also weiterhin spannend.

Simon Mennig hat diesen Blogbeitrag im Rahmen seiner Thesis „Herausforderungen bei einer Hybrid Cloud“ verfasst.


1 https://www.fast.ai/2018/08/10/fastai-diu-imagenet/

Extraktion strukturierter Daten aus Tankbelegen: So wird die Reisekostenabrechnung endlich effizient

12 Millionen Geschäftsreisende gab es 2018 nach Angaben der Geschäftsreisenanalyse 2019 des VDR (Verband Deutsches Reisemanagement e.V.)1 und damit einen ganzen Berg an Reisekostenabrechnungen, die es zu bearbeiten gilt – für Arbeitnehmer und in den Unternehmen. In Zeiten von KI und Digitalisierung setzen allerdings nur 13 % der befragten Unternehmen (10-500 Mitarbeitern) eine vollständige digitale Reisekostenabrechnung um1. Auch bei uns – einem Softwareunternehmen – ist die Reisekostenabrechnung noch nicht vollständig automatisiert. Daher haben wir uns in Form einer Thesis mit möglichen Verfahren der Informationsextraktion beschäftigt, um diesen Prozess digitalisieren zu können.

Fehlende Normierung behindert Automatisierungsprozess

Ein Teilproblem der vollständigen Automatisierung ist das Fehlen einer Normierung für Rechnungen über Kleinstbeträge – auch bekannt als Belege. Dies erschwerte ein automatisiertes Extrahieren der gesuchten Daten enorm. Zeit für die Digitalisierung des Prozesses durch Umsetzung eines Systems zur automatischen Extraktion von Daten aus Tankbelegen. Das System gliedert sich dabei in drei Teilprobleme, die es zu lösen gilt:

 

Vorverarbeitung des Eingabebildes

Der erste Schritt zur Digitalisierung eines Dokumentes ist das Umwandeln des bedruckten Papiers in eine Datei. Dazu kann entweder ein Scanner oder eine Fotokamera verwendet werden. Das Resultat aus beiden Vorgängen ist eine Bilddatei. Hier ein Beispiel, das mithilfe einer Handykamera aufgenommen wurde:

Quelle: Bild von Tankbeleg – eigene Darstellung
Quelle: Bild von Tankbeleg – eigene Darstellung

Um dieses Bild für eine Textextraktion zu optimieren, muss dieses in seine binäre Darstellung umgewandelt werden – dies erreichen wir durch eine sogenannte Binarisierung. Das Ziel einer Binarisierung ist, dass alle Pixel nur noch die Werte „eins“ (Vordergrund / Schrift) oder „null“ (Hintergrund) erhalten. Dadurch lässt sich der Text vom Hintergrund separieren. Voraussetzung hierfür ist ein Bild in Graustufen, denn bei der Binarisierung wird versucht eine Schwelle für Grauwerte zu berechnen, damit ein Pixel eindeutig als „eins“ oder „null“ identifiziert werden kann. Binarisierungsverfahren lassen sich in zwei Ansätze einteilen: Ein globaler Ansatz versucht eine Schwelle für das gesamte Bild zu finden. Ein lokaler Ansatz hingegen versucht eine Schwelle für kleine Ausschnitte des Bildes zu finden. Aber wann nun welches Verfahren nutzen? Globale Ansätze sind gut, falls das Bild in einer einheitlichen Helligkeit vorliegt. Dies ist aufgrund der per Kamera aufgenommenen Fotos allerdings nicht der Fall. Daher haben wir festgestellt, dass in das System ein lokaler Binarisierungsansatz implementiert werden muss. Nach dem Anwenden einer Binarisierung mithilfe der Methode von Sauvola – ein adaptives Binarisierungsverfahren, welches Dokumente anhand lokal adaptiver Schwellenwerte binarisiert – liegt das Bild in seiner binären Darstellung vor:

Quelle: Binäre Darstellung Tankbeleg – eigene Darstellung
Quelle: Binäre Darstellung Tankbeleg – eigene Darstellung

Ein weiteres wichtiges Verfahren der Vorverarbeitung ist die Korrektur des Neigungswinkels, falls das Bild schief eingescannt oder fotografiert wurde. Durch diese Korrektur kann ein Finden von Textzeilen stark vereinfacht werden. Zu diesem Zweck haben wir in das System eine Linienfindung implementiert. Diese sucht zusammenhängende Textzeilen und stellt diese als Linie dar. Anhand der Mittelung aller Winkel dieser Linien relativ zur x-Achse kann so der Neigungswinkel berechnet werden. Das Dokument muss anschließend noch im inversen Winkel rotiert werden. Durch eine Korrektur des Neigungswinkels verbessert sich die Qualität der Textextraktion erheblich. Seht selbst:

Originale Darstellung Tankbelegbeispiel
Originale Darstellung
Korrigierte Darstellung Tankbelegbeispiel
Korrigierte Darstellung

Quelle: https://www.kress.eu/de/news/309-deutliche-kraftstoffersparnis-erneut-nachgewiesen.html

Auslesen des Textes

Das Überführen von gescannten oder fotografierten Bildern in maschinenlesebaren Text nennt sich Optical Character Recognition (OCR). Durch diese Technologie ist es möglich, Bilder mit textuellem Inhalt durch Computersysteme erkennen zu lassen. Eine populäre Lösung hierfür ist die OpenSource OCR Engine Tesseract. Die Engine wurde ursprünglich von HP entwickelt und wird seit 2006 von Google gepflegt und erweitert2.
Um Tesseract zu verwenden, kann auf das Apache Tika Toolkit zurückgegriffen werden. Dieses Toolkit bietet unterschiedliche Parser zum Extrahieren von Daten an, unter anderem den TesseractOCRParser. Durch ihn ist eine problemlose Kopplung der Tesseract OCR Engine an eine Java Applikation möglich.

Extraktion der relevanten Informationen

Da der Text nun in maschinenlesbarer Form vorliegt, muss das System die eigentliche Informationsextraktion durchführen. Eine Bibliothek zum Finden strukturierter Informationen in unstrukturiertem Text ist Apache UIMA (Unstructered Information Management Architecture). Die Bibliothek bietet Schnittstellen zu den Programmiersprachen C++ und Java. Mit UIMA können Annotatoren entwickelt werden, die zum Beispiel auf Basis von regulären Ausdrücken Informationen aus unstrukturiertem Text extrahieren.

Alle Komponenten innerhalb von UIMA kommunizieren mithilfe der Common Analysis Structure (CAS). Die CAS ist ein Subsystem in UIMA, das den Datenaustausch zwischen UIMA Komponenten ermöglicht3. Innerhalb der CAS wird ein TypeSystem definiert, das alle Datentypen beinhaltet, die extrahiert werden sollen. In unserem Fall der Tankbelege wären das die Datentypen Sum, Date, Time, Quantity (Literzahl), Type (Kraftstoffart) und Address. Für diese Datentypen werden in dem vorher erwähnten Annotator die entsprechenden regulären Ausdrücke hinterlegt.
Im nächsten Schritt wird in das CAS der im vorhergehenden Schritt ermittelte Dokumententext eingegeben. Der Annotator durchsucht nun den im CAS hinterlegten Dokumententext und speichert die Start- und Endposition im Text, wo der jeweilige Datentyp zu finden ist. Das CAS kann anschließend nach diesen Datentypen, also den strukturierten Informationen, durchsucht werden. Eine Beispielhafte Informationsextraktion mit Apache UIMA aus dem Belegfoto (s. oben) ist im Folgenden dargestellt:

Beispielhafte Informationsextraktion mit Apache UIMA – eigene Darstellung
Beispielhafte Informationsextraktion mit Apache UIMA – eigene Darstellung

Es ist zu erkennen, dass alle Daten bis auf die Gesamtsumme korrekt extrahiert werden können. Dies hängt mit der Schwierigkeit zusammen einen regulären Ausdruck zu entwickeln, der nicht alle Eurobeträge extrahiert, sondern nur den gewünschten. Bei nicht-normierten Daten wie dem Gesamtbetrag schneidet ein KI-System besser ab, da dort der vorliegende textuelle Kontext (z.B. die Position im Gesamttext) in die Klassifizierung mit einbezogen werden kann.

Fazit

Das System zur Extraktion strukturierter Daten aus Tankbelegen ist damit fertiggestellt und erleichtert die Reisekostenabrechnung in Zukunft erheblich.
Die wichtigsten Schritte der Vorverarbeitung bei der Digitalisierung analoger Dokumente sind die Binarisierung und eine anschließende Korrektur des Neigungswinkels, da ansonsten eine Texterkennung unter Umständen deutlich schlechtere Ergebnisse liefert. Falls Dokumente vorliegen, die unterschiedliche Helligkeitsgrade aufweisen muss statt eines globalen Binarisierungsverfahren ein lokales verwendet werden.
Die Qualität der Informationsextraktion hängt stark von den entwickelten regulären Ausdrücken für den jeweiligen Datentyp ab. Es kann festgehalten werden, dass auch in Zeiten der Künstlichen Intelligenz eine regelbasierte Informationsextraktion durchaus noch eine Daseinsberechtigung besitzt, da viele Daten (wie z. B. Datum und Uhrzeit) normiert sind und dadurch eindeutige reguläre Ausdrücke zur Informationsextraktion angewendet werden können. Durch die Anbindung des Systems an die Cloudlösung „Business Filemanager“ können Tankbelege sogar von unterwegs aus direkt hochgeladen, ausgelesen und damit der Reisekostenabteilung zur Verfügung gestellt werden.

P.S: Wir haben eine Lösung gefunden, die wir zwar nicht selbst programmiert haben, aber rege nutzen: die App Lunchit®. Hierbei handelt es sich um denselben Ansatz nur für Essensbelege. Seit wir Lunchit® nutzen sparen wir erheblich Zeit in der Verwaltung. Wir müssen nun keine Essensmarken mehr ausgeben und mit den Restaurants verrechnen. Ein weiterer Pluspunkt: Arbeitnehmer sparen außerdem Zeit durch die Nutzung der App, da keine Belege oder Marken mehr abgeholt, mitgenommen und abgezählt werden müssen.
Und wie sieht es bei Dir aus – tippst Du noch Reisekostenabrechnungen manuell oder digitalisierst Du schon? Teile Deine Erfahrungen mit uns durch einen Kommentar.

Hier mehr über Machine Learning Verfahren in der Praxis erfahren

 

1. Quelle: https://www.vdr-service.de/fileadmin/services-leistungen/fachmedien/geschaeftsreiseanalyse/VDR-Geschaeftsreiseanalyse-2019.pdf

2. Quelle: Ray Smith. An overview of the tesseract ocr engine. In Ninth International Conference on Document Analysis and Recognition (ICDAR 2007), volume 2, pages 629 – 633. IEEE, 2007.

3. Quelle: Thilo Gotz and Oliver Suhre. Design and implementation of the uima common analysis system. IBM Systems Journal, 43(3):476{489, 2004.

Vendor Lock-In in der Cloud richtig erkennen

Besitzen Sie mehrere Apple-Produkte? Dann können Sie nicht einfach auf ein Samsung Smartphone umsteigen, da Ihnen so die Kompatibilität zu Ihrer Apple Watch verloren ginge. Sie müssten sich zusätzlich noch eine andere Smartwatch zulegen, die mit Ihrem neuen Smartphone kompatibel ist. Selbst wenn Sie gerne also ein Samsung Smartphone hätten, der komplette Umstieg auf eine andere Marke wäre teuer. Hindern Sie die abzusehenden Kosten an einem solchen Umstieg und Sie bleiben deshalb bei Ihrem iPhone, hat Apple Sie „eingelockt“ – man spricht hier auch von „Vendor Lock-In“. Wir zeigen Ihnen was Vendor Lock-In ist und wie Sie es richtig erkennen.

Vendor Lock-In ist die Abhängigkeit eines Anwenders/ Kunden/ Nutzers bezüglich eines oder mehrerer Produkte oder Services von einem bestimmten Hersteller. Diese Abhängigkeit entsteht dadurch, dass ein Wechsel zu einem alternativen Anbieter

  • aufgrund mangelnder Alternativen (z.B. fehlender Funktionen) nicht möglich oder
  • aufgrund zu hoher Transaktionskosten unwirtschaftlich ist.

Das klingt zunächst nach etwas, womit wir uns nur selten befassen müssen. Aber weit gefehlt – Vendor Lock-In kann nicht nur in unserem Alltag auftreten, sondern auch in der Cloud. Wie entsteht ein solcher Vendor Lock-In und wie können Sie ihn erkennen?

Vendor Lock-In der Cloud – was ist das?

Ein Vendor Lock-In in der Cloud entsteht dann, wenn die Kosten für eine Migration höher sind als ihr Nutzen.¹ Haben Sie sich für einen bestimmten Cloud-Anbieter entschieden, kann es verschiedene Gründe geben, dass ein Umstieg zu einem anderen Cloud-Anbieter – sollte dieser gewünscht oder notwendig sein – so teuer ist, dass diese Kosten die Vorteile der Migration überwiegen. Im Rahmen meiner Thesis habe ich ein Vorgehen entwickelt, um einen möglichen Vendor Lock-In in der Cloud frühzeitig erkennen und ihm vorbeugen zu können.

Vendor Lock-In am Beispiel von Serverless-Plattformen

Wie ein Vendor Lock-In in der Cloud entstehen kann, lässt sich sehr gut anhand verschiedener Serverless Plattformen zeigen. AWS Lambda und Google Cloud Functions ermöglichen beispielsweise beide das Erstellen von Functions. Functions sind in ihrer Funktion abgeschlossene Code-Einheiten, die bei Bedarf automatisiert ausgeführt werden. Vergleicht man AWS Lambda² mit Google Cloud Functions³, so fällt zunächst auf, dass nicht unbedingt die gleichen Programmiersprachen und Laufzeitumgebungen verwendet werden können. Von beiden Umgebungen werden Node.js, Python und Go unterstützt, seitens AWS Lambda zudem noch Java, C# und Ruby. Wurden nun Functions für AWS Lambda in Java erstellt, können diese nicht für die Google Cloud übernommen werden, da hier keine Java Functions unterstützt werden.

Weiterhin werden in den verschiedenen Cloud-Plattformen verschiedene proprietäre Bibliotheken verwendet. Eine Bibliothek ist eine vorgefertigte Sammlung von Programmcode, der für bestimmte Aufgaben eingesetzt werden kann. Für die betrachteten Plattformen gibt es zum Beispiel die folgenden Bibliotheken:

  • AWS – aws-lambda-java-core: Diese Bibliothek enthält unter anderem das Lambda-Context-Objekt, über das mit der AWS Lambda-Ausführungsumgebung interagiert wird.4
  • Azure – com.microsoft.azure.functions: Diese Bibliothek enthält unter anderem den ExecutionContext, durch den mit der Azure Functions-Ausführungsumgebung interagiert wird.5

Functions können also nicht immer einfach von einer Cloud in die andere übernommen werden, sondern müssen vorher möglicherweise angepasst oder komplett neu geschrieben werden.

Für ein paar Functions ist dies vielleicht kein großer Aufwand. Denken Sie jedoch daran, dass Ihre Anwendung vermutlich nicht ausschließlich aus Functions besteht. Sie müssen beispielsweise auch folgende Punkte genauer betrachten:

  • Sind Ihre Daten kompatibel mit der Zieldatenbank in der neuen Cloud?
  • Wie viel kostet der Export der Daten?
  • Was muss in der Anwendung angepasst werden, um proprietäre Cloud-Schnittstellen unterstützen zu können?
  • Und sind die benötigten Funktionalitäten überhaupt in der neuen Cloud verfügbar?

 

Vendor Lock-In richtig erkennen

Die Summe all dieser verschiedener Lock-In-Gefahren ist es, die am Ende einen Vendor Lock-In ausmachen können. Aus diesem Grund beschäftigte sich meine Thesis mit der Entwicklung einer Möglichkeit, einen Vendor Lock-In zu erkennen. Damit noch darauf reagiert werden kann, muss dies möglichst vor der Migration in eine Cloud oder vor der Neuentwicklung eines Cloud-Services geschehen.

Wie bereits erwähnt entsteht ein Vendor Lock-In dann, wenn die Kosten für eine Migration ihren Nutzen übersteigen. Es müssen also sowohl die Kosten einer Migration als auch ihr Nutzen identifiziert werden, um einen Vendor Lock-In erkennen zu können.

Da der tatsächliche Nutzen einer Migration erst in der Zukunft deutlich werden würde und somit nicht vorhersehbar ist, muss hierfür eine alternative Zahl herangezogen werden. Deshalb wird der Nutzen betrachtet, der bei der Wahl eines bestimmten (anstatt eines bestimmten anderen) Cloud-Anbieters entsteht. Beispielhaft ist dies hier mit fiktiven Zahlen zu sehen:

 

Berechnung eines Vendor Lock-Ins
Abbildung: Beispiel für die Berechnung eines Vendor Lock-Ins (anhand fiktiver Zahlen)

Im Beispiel fällt die Entscheidung auf die Cloud A. Betrachtet werden die Erstellungskosten, bei denen zunächst gegenüber der Wahl von Cloud B ein Nutzen von 10.000€ entsteht. Durch die günstigeren Nutzungskosten in einem bestimmten Betrachtungszeitraum entsteht hier außerdem ein Nutzen von zusätzlich 5.000€. Der Nutzen im Betrachtungszeitraum insgesamt liegt also bei 15.000€. Diesem muss man jedoch die zu erwartenden Migrationskosten gegenüberstellen, im Beispiel 30.000€. Da der Nutzen dann negativ wird, entstünde hier ein Vendor Lock-In.

 

Fazit:

Letztendlich besteht jedoch auch hier das Problem, dass sich in der Zukunft die Nutzungskosten und die zu erwartenden Migrationskosten verändern können. Entweder wird so eventuell ein Vendor Lock-In vorausgesagt, der dann doch nicht entsteht, oder ein Vendor Lock-In tritt wider Erwarten doch auf. Es kann also keine genaue, durch Zahlen belegte Aussage getroffen werden, ob bei einem Cloud-Anbieter mit Sicherheit ein Vendor Lock-In auftreten wird.

Trotzdem können die identifizierten Migrationskosten zumindest als Einschätzung herangezogen werden, an welchen Stellen in einer Cloud-Anwendung ein Vendor Lock-In entstehen könnte. In Verbindung mit Expertenwissen kann so eingeschätzt werden, ob einem möglichen Lock-In entgegengewirkt werden sollte und welche Maßnahmen hierzu herangezogen werden können.

 

Welche FaaS-Plattform ist für Ihren Anwendungsfall die geeignete?

 


Quellen:

1 angelehnt an: Justice Opara-Martins, Reza Sahandi und Feng Tian. „A Holistic Decision Framework to Avoid Vendor Lock-in for Cloud SaaS Migration. In: Computer and Information Science 10 (Juli 2017), S. 29. issn: 1913-8989. doi: 10.5539/cis.v10n3p29. (S.30)

2 https://docs.aws.amazon.com/de_de/lambda/latest/dg/lambda-runtimes.html

3 https://cloud.google.com/functions/docs/writing

4 https://docs.aws.amazon.com/de_de/lambda/latest/dg/java-programming-model.html

5 https://docs.microsoft.com/en-us/java/api/com.microsoft.azure.functions.executioncontext?view=azure-java-stable

 

AR/IoT-Prototyp: IoT in Verbindung mit Augmented Reality

Ich hatte das Glück bei doubleSlash meine Master Thesis im Bereich der Augmented Reality in Verbindung mit dem Internet of Things zu schreiben: „Exploring new worlds using Mixed Reality and the Internet of Things“. Zur Zeit gibt es viel Neues aus dieser Sparte zu berichten, deshalb teile ich hier gerne meine Erkenntnisse, auch wenn die Thesis schon etwas her ist.Mehr

IoT Prototyp: Entwicklung einer IoT Tunnellösung für Azure und ThingWorx

Im Rahmen meiner Bachelorarbeit habe ich Netzwerktunnellösungen von IoT Plattformen untersucht und selbst eine Tunnellösung entwickelt. Zu den untersuchten IoT Plattformen gehören Microsoft Azure, PTC ThingWorx und die Eurotech Everyware Cloud. Herausgekommen ist eine Client-Server-Anwendung in Java. Sie kann im Standalone-Modus und im Zusammenspiel mit bestehenden IoT Plattformen genutzt werden.

Mehr

Steganographie als sichere Alternative zu Metadaten

Praktisch alle Daten lassen Rückschluss auf unser Verhalten zu. So auch Bilddaten. Im Rahmen meiner Bachelor-Thesis „Hidden Image Data Encoding“ habe ich eine Alternative zu herkömmlichen Bildmetadaten entworfen. Fast jede Bilddatei trägt diese Metadaten. Darin enthalten sind Informationen und Details zum Bild und Autor. Obwohl Metadaten den meisten ein Begriff sind, kennt sich kaum jemand so richtig damit aus. Kaum einer weiß, welche Daten gespeichert werden, oder ob man diese Daten wirklich veröffentlichen möchte.

Mehr

Dokumentenklassifikation mittels Layout- und Textanalyse

DCF 1.0

Die wachsende Digitalisierung stellt eine stetige Belastung für das Dokumentenmanagement eines Unternehmens dar. Jedes eingehende elektronische Dokument erfordert in der Regel eine initiale Betrachtung durch dessen Mitarbeiter, um die interne Zuständigkeit zu ermitteln. Gleichermaßen muss der für das Dokument zuständige Fachbereich reagieren, bevor er das Anliegen des Schriftstücks erschließen und entsprechend bearbeitet kann.Mehr

IoT-Prototyp: Gießroboter ermöglicht automatisiertes Blumengießen

Staubsauger-Roboter-Roomba - IoT-Prototyp
Staubsauger Roboter Roomba ohne Deckplatte, mit bereits verbundenem Spannungswandler.

Im Rahmen meiner Bachelor-Thesis „Prototypische Entwicklung eines autonomen Gießroboters mit Hilfe von 3D Kollisionsvermeidung auf Basis eines Staubsaugerroboters“ habe ich einen automatisierten Gießroboter entwickelt. Der Gießroboter ist vernetzt und dadurch in der Lage, über eine Parrot FlowerPower – einem kabellosen Pflanzen-Sensor, der in die Blumenerde gesteckt wird und Werte wie die Feuchtigkeit misst – gezielt Pflanzen anzusteuern und zu gießen.
Mehr

Von der Idee zum Geschäftsmodell – wie Ihr IoT Projekt zum Erfolg wird

iot_slashtalk2016Der Begriff „Internet of Things” (IoT) ist in aller Munde. Das Konzept des Internet der Dinge beschreibt die zunehmende Vernetzung von Dingen und Maschinen, die Unternehmen und Kunden völlig neue Möglichkeiten bietet. Diese neuen Chancen sorgen gleichzeitig dafür, dass sich Unternehmen mit einer Vielzahl an neuen, geschäftsrelevanten Fragestellungen beschäftigen müssen.

Mehr