Refine
Year of publication
- 2023 (1)
Document Type
- Bachelor Thesis (1)
Language
- German (1)
Has Fulltext
- yes (1)
Im Jahr 2015 veröffentlicht Facebook GraphQL als Open-Source-Projekt. Durch die
eingebaute Abfragesprache können präzise Querys formuliert werden, deren Antwort
immer nur die vom Client spezifizierten Felder enthält. Entwickelnde müssen für die
Ausführung der Anfrage notwendige Resolver Functions in traditioneller Entwicklung selbst
implementieren. Im Gegensatz dazu stehen LowCode-Frameworks, die seit einigen Jahren
eine neue Art der Softwareentwicklung ermöglichen und den Entwicklungsaufwand deutlich
reduzieren. Durch die automatische Generierung eines GraphQL-Schemas inklusive Querys
und Mutations können Softwaresysteme schneller und damit kostengünstiger entwickelt
werden.
In dieser Bachelorarbeit werden zwei Implementierungen einer GraphQL-API verglichen.
Dafür wird ein traditionell entwickelter Service mit Spring Boot und ein Service mittels des
LowCode-Frameworks PostGraphile umgesetzt. Der Vergleich beinhaltet quantitative und
qualitative Metriken. Die Ergebnisse des qualitativen Vergleichs zeigen, dass PostGraphile
selbst für komplexere Querys ein SQL-Statement generiert, das durch die Nutzung von
Subquerys und des with-Statements das N+1-Problem vermeidet und Seiteninformationen
für Pagination nach der Relay-Spezifikation abruft. Der quantitative Vergleich betrachtet
unter anderem die Kosten der generierten SQL-Statements. Es wird deutlich, dass die
SQL-Statements des Spring Service für einfache Querys mit weniger Kosten beziffert
werden, während die Statements für komplexere Querys, die PostGraphile generiert,
kostensparender sind. Weiterhin zeigen auf dem bwUniCluster2.0 durchgeführte Leistungs-
tests, dass der PostGraphile Service mehr gleichzeitige Anfragen als der Spring Service
beantworten kann. Betrachtet man die Verteilung der Anfrageausführungszeit, erkennt
man eine höhere Standardabweichung in der Antwortzeit des PostGraphile Service.
Zum Schluss wird die Eignung der Entwicklungsansätze untersucht. Neben der Ergebnisse
des Vergleichs können auch weitere Faktoren berücksichtigt werden, die die Entwicklung
selbst betreffen. Die Nutzung von hohen Programmiersprachen wie Java ermöglicht eine
große Bandbreite an Anpassungen, die bei der Implementierung von Logik in PL/pgSQL
oder anderen von PostgreSQL unterstützten Sprachen nicht in diesem Umfang geboten
wird. Dies betrifft auch Möglichkeiten zur synchronen oder asynchronen Kommunikation
mit weiteren externen APIs.