Return to search

Benchmarking the request throughput of conventional API calls and gRPC : A Comparative Study of REST and gRPC / Mätning av genomströmningen av förfrågningar hos konventionella API-anrop och gRPC : En jämförande studie mellan REST och gRPC

As the demand for better and faster applications increase every year, so does the demand for new communication systems between computers. Today, a common method for computers and software systems to exchange information is the use of REST APIs, but there are cases where more efficient solutions are needed. In such cases, RPC can provide a solution. There are many RPC libraries to choose from, but gRPC is the most widely used today. gRPC is said to offer faster and more efficient communication than conventional web-based API calls. The problem investigated in this thesis is that there are few available resources demonstrating how this performance difference translates into request throughput on a server. The purpose of the study is to benchmark the difference in request throughput for conventional API calls (REST) and gRPC. This was done with the goal of providing a basis for making better decisions regarding the choice of communication infrastructure between applications. A qualitative research method with support of quantitative data was used to evaluate the results. REST and gRPC servers were implemented in three programming languages. A benchmarking client was implemented in order to benchmark the servers and measure request throughput. The benchmarks were conducted on a local network between two hosts. The results indicate that gRPC performs better than REST for larger message payloads in terms of request throughput. REST initially outperforms gRPC for small payloads but falls behind as the payload size increases. The result can be beneficial for software developers and other stakeholders who strive to make informed decisions regarding communication infrastructure when developing and maintaining applications at scale. / Eftersom efterfrågan på bättre och snabbare applikationer ökar varje år, så ökar även behovet av nya kommunikationssystem mellan datorer. Idag är det vanligt att datorer och programvara utbyter information genom användning av APIer, men det finns fall där mer effektiva lösningar behövs. I sådana fall kan RPC erbjuda en lösning. Det finns många olika RPC-bibliotek att välja mellan, men gRPC är det mest använda idag. gRPC sägs erbjuda snabbare och mer effektiv kommunikation än konventionella webbaserade API-anrop. Problemet som undersöks i denna avhandling är att det finns få tillgängliga resurser som visar hur denna prestandaskillnad översätts till genomströmning av förfrågningar på en server. Syftet med studien är att mäta skillnaden i genomströmning av förfrågningar för konventionella API-anrop (REST) och gRPC. Detta gjordes med målet att ge en grund för att fatta bättre beslut om val av kommunikationsinfrastruktur mellan applikationer. En kvalitativ forskningsmetod med stöd av kvantitativa data användes för att utvärdera resultaten. REST- och gRPC-servrar implementerades i tre programmeringsspråk. En benchmarking-klient implementerades för att mäta servrarnas prestanda och genomströmning av förfrågningar. Mätningarna genomfördes i ett lokalt nätverk mellan två datorer. Resultaten visar att gRPC presterar bättre än REST för större meddelanden när det gäller genomströmning av förfrågningar. REST presterade initialt bättre än gRPC för små meddelanden, men faller efter när meddelandestorleken ökar. Resultatet kan vara fördelaktig för programutvecklare och andra intressenter som strävar efter att fatta informerade beslut gällande kommunikationsinfrastruktur vid utveckling och underhållning av applikationer i större skala.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-334990
Date January 2023
CreatorsBerg, Johan, Mebrahtu Redi, Daniel
PublisherKTH, Skolan för elektroteknik och datavetenskap (EECS), Stockholm : KTH Royal Institute of Technology
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess
RelationTRITA-EECS-EX ; 2023:437

Page generated in 0.019 seconds