Add Thesis

CloudRun - Analyse und Erweiterung

Written by A. Pahlen

Paper category

Bachelor Thesis

Subject

Computer Science

Year

2017

Abstract

Bachelorarbeit: Was ist CloudRun Um die Themen dieser Bachelorarbeit vollständig zu verstehen, müssen wir zunächst verstehen, was CloudRun ist und wie seine interne Programmstruktur ist. CloudRun ist eine mit Hilfe von NodeJS [NodeJS] entwickelte Serveranwendung, die eine Schnittstelle zum Aufrufen sogenannter Module bereitstellt. Dadurch können Algorithmen oder Software über ein Netzwerk oder eine Internetverbindung genutzt werden, ohne dass der Nutzer selbst direkt auf die bereitgestellten Module zugreifen muss. So kann der Algorithmus beispielsweise für Forschungszwecke genutzt werden, auch wenn der Quelltext nicht veröffentlicht werden soll. Obwohl dieses Verhalten auch durch das Verteilen ausführbarer, kompilierter Dateien erreicht werden kann, besteht ein sogenanntes Dekompilierungsrisiko [Kumar, 2011], welches die kompilierten Dateien relativ zuverlässig wieder in den Quelltext zurückkonvertieren kann. Da CloudRun als Vermittler zwischen dem Benutzer und dem Modul fungiert, ist es nicht möglich, direkt auf den Quellcode oder die ausführbare Datei des Algorithmus zuzugreifen, und CloudRun hat den Vorteil, dass der Algorithmus nicht bezogen und in das Benutzerprojekt importiert werden muss. Dies minimiert den Aufwand bei der Umsetzung von Projekten, die externe Algorithmen verwenden. Nachdem wir nun den Zweck von CloudRun kennen, wird die interne Struktur im Folgenden grob skizziert. Eine detaillierte Beschreibung aller Komponenten von CloudRun finden Sie in der Projektdokumentation [Pahlen uForster, 2017]. Die Kommunikation mit dem CloudRun-Server erfolgt über die REST-Schnittstelle [Fielding, 2000]. Format [Internet Engineering TaskForce (IETF), 2014] ] CloudRun ist modular aufgebaut, damit Administratoren oder andere Entwickler die Funktionalität so einfach wie möglich erweitern können. Es gibt drei Arten von modularen CloudRun-Komponenten, wie unten beschrieben. Module Die sogenannten Module enthalten Algorithmen oder übernehmen Aufrufe von ausführbaren Dateien. Das Modul empfängt die Parameter des Ausführungsalgorithmus vom Benutzer, berechnet das Ergebnis und sendet es zurück an den CloudRun-Server, und der CloudRun-Server sendet das Ergebnis an den Benutzer zurück. Der CloudRun-Server wird gestartet und in den Funktionsumfang des Servers eingebunden. Das Authentifizierungsmodul CloudRun bietet sogenannte Token-Authentifizierungsoptionen. Dies bedeutet, dass nur autorisierte Benutzer (mit Token) den CloudRun-Server verwenden können. 1.3 Vergleichbare Software/verwandte Arbeiten Nachdem das eigentliche Projekt, also die Entwicklung von CloudRun, abgeschlossen war, habe ich ein sehr ähnliches Projekt [Algorithmia] realisiert. Algorithmia bietet über eine REST-Schnittstelle Zugriff auf verschiedene Algorithmen und verfolgt damit genau den gleichen Ansatz wie CloudRun. CloudRun wurde ohne Algorithmia-Kenntnisse entwickelt, aber es ist klar, dass Algorithmia auch auf die Datenübertragung im JSON-Format setzt. Dies zeigt, dass wir bei der Entwicklung von CloudRun die richtige und gängige Methode befolgt haben. Im Fall von Algorithmia erfolgt die Authentifizierung auch mithilfe von API-Schlüsseln, bei denen es sich um Token handelt. Im Vergleich zu CloudRun ist Algorithmia jedoch keine frei verfügbare Software (ur Algorithmen (Übersetzung von "Open Marketplace for Algorithms") und zugehörige Infrastruktur. "Open bedeutet, dass jeder Entwickler seinen Algorithmus dort bereitstellen kann, egal ob kostenlos oder einmal pro Anruf. Zusätzlich wird eine Gebühr für die benötigte Rechenzeit erhoben. Algorithmia behauptet, dass es Zugang zu mehr als 3.000 Microservices bietet, darunter Identifizierung in Text, Emotionserkennung und Nacktbildprüfung. Auf Algorithmen kann in 16 verschiedenen Programmiersprachen zugegriffen werden, darunter Python, Java, JavaScript und .NET-Sprachen. Auch die manuelle Kommunikation mit curl wird beworben, Algorithmia und CloudRun sind insofern vergleichbar, als sie sich in der technischen Umsetzung sehr ähnlich sind. Der Algorithmus basiert jedoch auf einer Methode zur Schaffung eines Marktes, auf dem Algorithmusentwickler Geld verdienen können, {wenn sie wollen}. Darüber hinaus kann Algorithmia in jeder Sekunde Rechenzeit einen kleinen Umsatz erzielen. Die von Algorithmia verwendete Software wird nicht kostenlos zur Verfügung gestellt, sodass sie im Gegensatz zu CloudRun nicht für persönliche Zwecke verwendet werden kann. Aber für kleine Projekte und Hobbyentwickler stellt Algorithmia 5.000 Sekunden kostenlose Tarifberechnungszeit pro Monat zur Verfügung (wenn ausschließlich der kostenlose Algorithmus verwendet wird). Während der Entwicklungsphase von CloudRun wurde darauf geachtet, dass die Software so effizient und sicher wie möglich läuft, CloudRun hat ihre Zuverlässigkeit oder Sicherheit jedoch noch nicht eindeutig analysiert. Diese Art der Analyse sollte jedoch vor dem Einsatz durchgeführt werden Die Serversoftware muss dringend ausgeführt werden, um die Verfügbarkeit und Integrität des gesamten Servers nicht zu gefährden. Read Less