Volltext-Downloads (blau) und Frontdoor-Views (grau)
  • search hit 5 of 376
Back to Result List

Vergleich und Evaluation von GraphQL-Implementierungen

  • 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.
  • In 2015 Facebook released GraphQL as an open source project. Using the built-in query language, precise queries can be formulated. The response returned by the server only includes the fields requested by the client. In traditional programming, resolver functions necessary for the execution of GraphQL queries have to be implemented manually. Contrary, LowCode frameworks, which enable a modern way of programming since a couple of years, reduce the amount of work to be put in programming. Due to automatic generation of a GraphQL schema including queries and mutations software systems can be implemented faster and therefore less cost intensive. This bachelor thesis will compare two different implementations of a GraphQL-API. Therefore, one service will be implemented in traditional programming using the Spring framework and another service will be realized using the LowCode framework Post- Graphile. The comparison includes quantitative and qualitative metrics. The results of the qualitative comparison demonstrate that PostGraphile generates SQL statements that avoid the n+1-problem and fetch page information for pagination according to the Relay specification using subqueries and the with statement. The quantitative comparison looks at the cost of the generated SQL statements. It becomes clear that the statements generated by the Spring service for less complex queries come down to a lower cost. Meanwhile, the SQL statements generated by PostGraphile for more complex queries are more cost-efficient. Performance tests executed on the bwUniCluster2.0 present that the service implemented using PostGraphile can respond to more concurrent requests than the Spring service. Taking a closer look to the distribution of the response execution time, it becomes clear that the response execution time of the PostGraphile service as a higher standard deviation. Finally, the suitability of the different implementation approaches is examined. Apart from the results of the comparison there are further factors to be considered regarding the process of implementation itself. Higher programming languages like Java offer a wide range of customization not provided to this degree in PL/pgSQL or other languages supported by PostgreSQL. This also includes synchronous and asynchronous communication to other external APIs.

Download full text files

  • Bachelorarbeit_Julius_Freudenberger.pdf
    deu

    nur im Campusnetz einsehbar

Export metadata

Statistics

frontdoor_oas
Metadaten
Author:Julius Freudenberger
URN:urn:nbn:de:bsz:753-opus4-27673
Subtitle (German):LowCode Framework gegenüber traditioneller Entwicklung
Referee:Mirko Sonntag
Advisor:Jörg Nitzsche
Document Type:Bachelor Thesis
Language:German
Year of Completion:2023
Publishing Institution:Hochschule Esslingen
Granting Institution:Hochschule Esslingen
Date of final exam:2023/07/14
Release Date:2023/10/16
Page Number:64
Open Access?:nur im Hochschulnetz
Faculty:Informatik und Informationstechnik