• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 61
  • 4
  • 4
  • 3
  • 3
  • 1
  • 1
  • 1
  • 1
  • 1
  • Tagged with
  • 82
  • 36
  • 25
  • 24
  • 23
  • 22
  • 20
  • 19
  • 18
  • 16
  • 16
  • 14
  • 14
  • 14
  • 12
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
71

Unraveling Microservices : A study on microservices and its complexity

Romin, Philip January 2020 (has links)
Microservices is one of the most commonly used buzzword of the systems architecture industry and is being adopted by several of the world’s largest technology companies such as Netflix, Uber and Amazon. The architecture which embraces splitting up your system in smaller independent units is an extension of the service-oriented architecture and an opponent of the monolithic architecture. Being a top buzzword and promises of extreme scalability has spiked the interest for microservices, but unlike the relatively simple monolithic architecture the complexity of microservices creates a new set of obstacles. This work sheds a light on these issues and implements solutions for some of the most frequent problems using a case study. The study shows that while microservices can help reduce the inner complexity of a system, it greatly increases the outer complexity and creates the need for a variety of tools aimed at distributed systems. It also concludes that communication and data storage are two of the most frequently occurring issues when developing microservices with the most difficult one being how you reason with and structure your data, especially for efficient queries across microservices. / Microservices eller så kallade mikrotjänster är ett ofta förekommande buzzword inom systemarkitektur och nyttjas av flera teknikjättar som exempelvis Netflix, Uber och Amazon. Arkitekturen som bygger på att dela upp sina system i mindre oberoende delar är en utbyggnad av den tjänstorienterade arkitekturen och numera motståndare till den klassiska monolitiska arkitekturen. En plats högt upp på trendlistan och lovord om extrem skalbarhet har gjort att intresset för mikrotjänster är enormt, men till skillnad från den relativt simpla monolitiska arkitekturen skapar komplexiteten hos mikrostjänster en rad nya hinder. Det här arbetet belyser dessa hinder och implementerar även lösningar för de vanligaste förekommande problemen med hjälp av en fallstudie. Resultatet visar att även fast en mikrotjänstarkitektur kan minska systemets interna komplexitet så leder det till en markant ökning av systemets yttre komplexitet och det skapas ytterligare behov av en mängd olika verktyg och tjänster designade för distribuerade system. Studien visar också att de två mest förekommande problemen vid utveckling av en mikrotjänstarkitektur är kommunikation och datalagring där hantering och struktur av data är den mest komplicerade och kräver mycket kunskap, speciellt för att skapa effektiva datasökningar som sträcker sig över flera mikrotjänster.
72

Security Analysis of Microservice Choices / Säkerhets analys av microservice design val

Dannberg, Daniel January 2021 (has links)
Security research is beneficial for companies that want their system protected against threats to their business. The focus of this project is on security considerations. These considerations are with regards to when companies want to evaluate the benefits of extracting microservices from their monolithic system. The problem with this task is that extracting microservices have potential effects on security. Changing a systems design could lead to potential security risks which need to be considered. This type of problem is on a high difficulty level because of the amount of abstraction and research required to analyze the system regarding the security aspect. Since the problem requires abstractions and analysis of the system both pre and post-extraction it also becomes a big task to complete. The problem is solved with threat modeling and also by using the National Institute of Standards and Technology guidelines and by measuring The Common Misuse Scoring System scores and Return Of Security Investment costs. The results show an increase in security by allowing a function to become a microservice. The increase mainly came from how access changes with the extracted service. The result also showcased that movements towards the cloud meant more security regarding access when compared to the system before a microservice was extracted. The reasoning being that cloud services could provide more access control surface for functions. With the results, the host company and companies with similar software architecture can see how a function will affect security if extracted into a microservice. Further research should be conducted upon a larger pool of microservices. These should then be examined if the trend of security increase keeps occurring. The results can be further examined with penetration testing which puts more practical work upon the theoretical work that was done in this thesis. The research also showcases the adaptability of the National Institute of Standards and Technology guides steps and how similar research regarding security comparisons can be made. / Säkerhetsforskning är essentiellt för företag som vill skydda sig emot attacker som kan skada deras affärsverksamhet. Med detta i åtanke så fokuserar detta projektet på att undersöka överväganden gällande säkerhet när det kommer till att extrahera mikrotjänster från en monolitisk struktur. Att ändra i ett företags system kan potentiellt påverka säkerheten vilket är ett scenario vars effekter måste säkerhetsklassas. Detta säkerhetsproblemet är ett svårt problem att tackla på grund av mängden abstraktion som behövs göras och även på grund av perspektivet som behövs appliceras på abstraktionen. Då abstraktioner behövs göras på företagets system innan och efter en extraktion är utförd innebär det också att problemet är tidskrävande. Rapporten tacklar problemen genom att använda sig av hotmodellering, specifikt National Institute of Standards and Technology guide i hur man utför hotmodellering. NIST har också ett system för att ge värden till attacker som kallas The Common Misuse Scoring System vilket används i projektet för att producera jämförbara mätvärden. Projektet jämför också beräkningar gällande avkastning på säkerhetsinvesteringar. Resultaten visade att molntjänster kan erbjuda mer säkerhet. Med hjälp av resultaten kan Indicio Technologies AB och företag med samma struktur se hur extrahering av en funktion kan påverka säkerheten. Liknande forskning rekommenderas att utföras på större företag där det finns flera färdiga mikrotjänster. En större mängd av mikrotjänster kan bli utvärderade med samma princip som i denna rapport för att se ifall man alltid kan se en ökning av säkerhet. Rapportens resultat kan undersökas vidare med hjälp av praktiska metoder såsom penetrationstestning där mera praktiskt arbete blir utfört på den teoretiska grund som var satt i denna rapporten. Rapporten visade också på en anpassningsförmåga för National Institute of Standards and Technology guiden.
73

Implementation and Analysis of Authentication and Authorization Methods in a Microservice Architecture : A Comparison Between Microservice Security Design Patterns for Authentication and Authorization Flows / Implementation och Analys av Autentisering och Auktoriseringsmetoder i en Microservicearkitektur : En Jämförelse Mellan Säkerhetsdesignmönster för Autentisering och Auktorisering i Microservices

Tran Florén, Simon January 2021 (has links)
Microservices have emerged as an attractive alternative to more classical monolithic software application architectures. Microservices provides many benefits that help with code base comprehension, deployability, testability, and scalability. As the Information technology (IT) industry has grown ever larger, it makes sense for the technology giants to adopt the microservice architecture to make use of these benefits. However, with new software solutions come new security vulnerabilities, especially when the technology is new and vulnerabilities are yet to be fully mapped out. Authentication and authorization are the cornerstone of any application that has a multitude of users. However, due to the lack of studies of microservices, stemming from their relatively young age, there are no standardized design patterns for how authentication and authorization are best implemented in a microservice. This thesis investigates an existing microservice in order to secure it by applying what is known as a security design pattern for authentication and authorization. Different security patterns were tested and compared on performance. The differing levels of security provided by these approaches assisted in identifying an acceptable security versus performance trade-off. Ultimately, the goal was to give the patterns greater validity as accepted security patterns within the area of microservice security. Another goal was to find such a security pattern suitable for the given microservice used in this project. The results showed a correlation between increased security and longer response times. For the general case a security pattern which provided internal authentication and authorization but with some trust between services was suggested. If horizontal scaling was used the results showed that normal services proved to be the best target. Further, it was also revealed that for lower user counts the performance penalties were close to equal between the tested patterns. This meant that for the specific case where microservices sees lower amounts of traffic the recommended pattern was the one that implemented the maximum amount access control checks. In the case for the environment where the research were performed low amounts of traffic was seen and the recommended security pattern was therefore one that secured all services of the microservices. / Mikrotjänster har framträtt som ett mer attraktivt alternativ än mer konventionella mjukvaruapplikationsarkitekturer såsom den monolitiska. Mikrotjänster erbjuder flera fördelar som underlättar med en helhetsförståelse för kodbasen, driftsättning, testbarhet, och skalbarhet. Då IT industrin har växt sig allt större, så är det rimligt att tech jättar inför mikrotjänstarkitekturen för att kunna utnyttja dessa fördelar. Nya mjukvarulösningar medför säkerhetsproblem, speciellt då tekniken är helt ny och inte har kartlagts ordentligt. Autentisering och auktorisering utgör grunden för applikationer som har ett flertal användare. Då mikrotjänster ej hunnit blivit utförligt täckt av undersökning, på grund av sin relativt unga ålder, så finns det ej några standardiserade designmönster för hur autentisering och auktorisering är implementerade till bästa effekt i en mikrotjänst. Detta examensarbete undersöker en existerande mikrotjänst för att säkra den genom att applicera vad som är känt som ett säkerhetsdesignmönster för autentisering och auktorisering. Olika sådana mönster testades och jämfördes baserat på prestanda i olika bakgrunder. De varierade nivåerna av säkerhet från de olika angreppssätten som säkerhetsmönstrena erbjöd användes för att identifiera en acceptabel kompromiss mellan säkerhet mot prestanda. Målet är att i slutändan så kommer detta att ge mönstren en högre giltighet när det kommer till att bli accepterade som säkerhetsdesignmönster inom området av mikrotjänstsäkerhet. Ett annat mål var att hitta den bästa kandidaten bland dessa säkerhetsmönster för den givna mikrotjänsten som användes i projektet. Resultaten visade på en korrelation mellan ökad säkerhet och längre responstider. För generella fall rekommenderas det säkerhetsmönster som implementerade intern autentisering och auktorisering men med en viss del tillit mellan tjänster. Om horisontell skalning användes visade resultaten att de normala tjänsterna var de bästa valet att lägga dessa resurser på. Fortsättningsvis visade resultaten även att för ett lägre antal användare så var den negativa effekten på prestandan nästan likvärdig mellan de olika mönstren. Detta innebar att det specifika fallet då mikrotjänster ser en lägre mängd trafik så är det rekommenderade säkerhetsmönstret det som implementerad flest åtkomstkontroller. I fallet för den miljö där undersökningen tog plats förekom det en lägre mängd trafik och därför rekommenderades det säkerhetsmönster som säkrade alla tjänster närvarande i mikrotjänsten.
74

Plutt: A tool for creating type-safe and version-safe microfrontends

Colliander Celik, Julius Recep January 2020 (has links)
Microfrontend applications are composed of multiple smaller frontend applications, which are integrated at run-time. As with microservices, microfrontends can be updated in production at any time. There are no technological restrictions for releasing API-breaking updates. Therefore it is difficult to trust microfrontend applications to perform reliably in run-time and to introduce API-breaking updates without the risk of breaking consumers. This thesis presents Plutt, a tool that provides automatic guarantees for safely consuming microfrontends, by ensuring that updates in run-time are compatible. By using Plutt, consumers can be confident that a provided microfrontend will per- form the same during production as in development. Likewise, microfrontend providers can release updates without being concerned about how it will affect consumers. Moreover, a comprehensive survey about microfrontends is presented, where five industry experts are interviewed. Aspects that are not found in existing literature are discovered, which contributes to a broader knowledge base that helps future microfrontend research. / Mikrofrontend-applikationer är sammansatta av flera mindre frontend-applikationer som integreras under exekvering. Precis som med mikrotjänster, kan mikrofrontends bytas ut i produktion när som helst. Det saknas teknologiska restriktioner för att publicera API-brytande uppdateringar. Därför är det svårt att lita på att en mikrofrontend-applikation beter sig tillförlitligt under exekvering samt att introducera API-brytande uppdateringar utan att riskera att förstöra konsumenter. Det här examensarbetet presenterar Plutt, ett verktyg som erbjuder automatiska garantier för att säkert konsumera mikrofrontends genom att säkerställa att uppdateringar som introduceras i körtid är kompatibla. Genom att använda Plutt, kan konsumenter vara trygga i vetskapen att en försedd mikrofrontend presterar likadant under produktion som i utveckling. Samtidigt kan utvecklare som förser mikrofrontends släppa uppdateringar utan att bekymra sig över hur det påverkar konsumenter. Utöver Plutt, presenteras en grundlig kartläggning över mikrofrontends, där fem experter från industrin är intervjuade. Aspekter som inte hittas i existerande litteratur är upptäckta, vilket kunskapsbas och framtida forskning om mikrofrontends.
75

Разработка распределенной системы управления коммуникациями с клиентами : магистерская диссертация / Development of a distributed system for managing communications with clients

Ткачук, Д. В., Tkachuk, D. V. January 2023 (has links)
Цель работы – разработка распределённой системы управления коммуникациями с клиентами под нужды компании АО «Эр-Телеком Холдинг». Объект исследования – класс информационных систем для уведомления пользователей. Методы исследования: анализ, систематизация и обобщения данных о предыдущей версии системы нотификации клиентов, сравнение и анализ инструментов, технологий и принципов построения информационных систем. Результаты работы: разработана система массовой нотификации клиентов.Выпускная квалификационная работа выполнена в текстовом редакторе Microsoft Word и представлена в твёрдой копии. / The goal of the work is to develop a distributed system for managing communications with clients for the needs of ER-Telecom Holding JSC. The object of study is a class of information systems for notifying users. Research methods: analysis, systematization and generalization of data on the previous version of the customer notification system, comparison and analysis of tools, technologies and principles for constructing information systems. Results of work: a system for mass notification of clients has been developed. The final qualifying work was completed in the text editor Microsoft Word and presented in a hard copy.
76

Proteomics Studies of Subjects with Alzheimer’s Disease and Chronic Pain

Emami Khoonsari, Payam January 2017 (has links)
Alzheimer’s disease (AD) is a neurodegenerative disease and the major cause of dementia, affecting more than 50 million people worldwide. Chronic pain is long-lasting, persistent pain that affects more than 1.5 billion of the world population. Overlapping and heterogenous symptoms of AD and chronic pain conditions complicate their diagnosis, emphasizing the need for more specific biomarkers to improve the diagnosis and understand the disease mechanisms. To characterize disease pathology of AD, we measured the protein changes in the temporal neocortex region of the brain of AD subjects using mass spectrometry (MS). We found proteins involved in exo-endocytic and extracellular vesicle functions displaying altered levels in the AD brain, potentially resulting in neuronal dysfunction and cell death in AD. To detect novel biomarkers for AD, we used MS to analyze cerebrospinal fluid (CSF) of AD patients and found decreased levels of eight proteins compared to controls, potentially indicating abnormal activity of complement system in AD. By integrating new proteomics markers with absolute levels of Aβ42, total tau (t-tau) and p-tau in CSF, we improved the prediction accuracy from 83% to 92% of early diagnosis of AD. We found increased levels of chitinase-3-like protein 1 (CH3L1) and decreased levels of neurosecretory protein VGF (VGF) in AD compared to controls. By exploring the CSF proteome of neuropathic pain patients before and after successful spinal cord stimulation (SCS) treatment, we found altered levels of twelve proteins, involved in neuroprotection, synaptic plasticity, nociceptive signaling and immune regulation. To detect biomarkers for diagnosing a chronic pain state known as fibromyalgia (FM), we analyzed the CSF of FM patients using MS. We found altered levels of four proteins, representing novel biomarkers for diagnosing FM. These proteins are involved in inflammatory mechanisms, energy metabolism and neuropeptide signaling. Finally, to facilitate fast and robust large-scale omics data handling, we developed an e-infrastructure. We demonstrated that the e-infrastructure provides high scalability, flexibility and it can be applied in virtually any fields including proteomics. This thesis demonstrates that proteomics is a promising approach for gaining deeper insight into mechanisms of nervous system disorders and find biomarkers for diagnosis of such diseases.
77

Hybrid Cloud Migration Challenges. A case study at King

Boronin, Mikhail January 2020 (has links)
Migration to the cloud has been a popular topic in industry and academia in recent years. Despite many benefits that the cloud presents, such as high availability and scalability, most of the on-premise application architectures are not ready to fully exploit the benefits of this environment, and adapting them to this environment is a non-trivial task.Therefore, many organizations consider a gradual process of moving to the cloud with Hybrid Cloud architecture. In this paper, the author is making an effort of analyzing particular enterprise case in cloud migration topics like cloud deployment, cloud architecture and cloud management.This paper aims to identify, classify, and compare existing challenges in cloud migration, illustrate approaches to resolve these challenges and discover the best practices in cloud adoption and process of conversion teams to the cloud.
78

More tools for Canvas : Realizing a Digital Form with Dynamically Presented Questions and Alternatives

Sarwar, Reshad, Manzi, Nathan January 2019 (has links)
At KTH, students who want to start their degree project must complete a paper form called “UT-EXAR: Ansökan om examensarbete/application for degree project”. The form is used to determine students’ eligibility to start a degree project, as well as potential examiners for the project. After the form is filled in and signed by multiple parties, a student can initiate his or her degree project. However, due to the excessively time-consuming process of completing the form, an alternative solution was proposed: a survey in the Canvas Learning Management System (LMS) that replace s the UT-EXAR form. Although the survey reduces the time required by students to provide information and find examiners, it is by no means the most efficient solution. The survey suffers from multiple flaws, such as asking students to answer unnecessary questions, and for certain questions, presenting students with more alternatives than necessary. The survey also fails to automatically organize the data collected from the students’ answers; hence administrators must manually enter the data into a spreadsheet or other record. This thesis proposes an optimized solution to the problem by introducing a dynamic survey. Moreover, this dynamic survey uses the Canvas Representational State Transfer (REST) API to access students’ program-specific data. Additionally, this survey can use data provided by students when answering the survey questions to dynamically construct questions for each individual student as well as using information from other KTH systems to dynamically construct customized alternatives for each individual student. This solution effectively prevents the survey from presenting students with questions and choices that are irrelevant to their individual case. Furthermore, the proposed solution directly inserts the data collected from the students into a Canvas Gradebook. In order to implement and test the proposed solution, a version of the Canvas LMS was created by virtualizing each Canvas-based microservice inside of a Docker container and allowing the containers to communicate over a network. Furthermore, the survey itself used the Learning Tools Interoperability (LTI) standard. When testing the solution, it was seen that the survey has not only successfully managed to filter the questions and alternative answers based on the user’s data, but also showed great potential to be more efficient than a survey with statically-presented data. The survey effectively automates the insertion of the data into the gradebook. / På KTH, studenter som skall påbörja sitt examensarbete måste fylla i en blankett som kallas “UT-EXAR: Ansökan om examensarbete/application for degree project”. Blanketten används för att bestämma studenters behörighet för att göra examensarbete, samt potentiella examinator för projektet. Efter att blanketten är fylld och undertecknad av flera parter kan en student påbörja sitt examensarbete. Emellertid, på grund av den alltför tidskrävande processen med att fylla blanketten, var en alternativ lösning föreslås: en särskild undersökning i Canvas Lärplattform (eng. Learning Management System(LMS)) som fungerar som ersättare för UT-EXAR-formulär. Trots att undersökningen har lyckats minska den tid som krävs av studetenter för att ge information och hitta examinator, det är inte den mest effektiva lösningen. Undersökningen lider av flera brister, såsom att få studenterna att svara på fler frågor än vad som behövs, och för vissa frågor, presenterar studenter med fler svarsalternativ än nödvändigt. Undersökningen inte heller automatiskt med att organisera data som samlats in från studenters svar. Som ett resultat skulle en administratör behöva organisera data manuellt i ett kalkylblad. Detta examensarbete föreslår en mer optimerad lösning på problemet: omskrivning av undersökningens funktionaliteter för att använda Representational State Transfer(REST) API för att komma åt studenters programspecifika data i back-end, såväl att använda speciella haschar för att hålla referenser till uppgifter som lämnas av studenterna när de svarar på frågorna i undersökningen, så att undersökningen inte bara kan använda dessa data för att dynamiskt konstruera frågor för varje enskild student, men också dynamiskt konstruera svarsalternativ för varje enskild student. Denna lösning förhindrar effektivt undersökningen från att presentera studenter med frågor och valbara svarsalternativ som är helt irrelevanta för var och en av deras individuella fall. Med den föreslagna lösningen kommer undersökningen dessutom att kunna organisera de data som samlats in från Studenterna till ett speciellt Canvas-baserat kalkyllblad, kallas som Betygsbok. För att genomföra och testa den förslagna lösningen skapades en testbar version av Canvas LMS genom att virtualisera varje Canvas-baserad mikroservice inuti en dockercontainer och tillåter containers att kommunicera över ett nätverk. Dessutom var undersökningen själv konfigurerad för att använda Lärverktyg Interoperability (LTI) standard. Vid testning av lösningen, det visade sig att undersökningen på ett sätt effektivt har lyckats använda vissa uppgifter från en testanvändare att bara endast svara på de relevanta frågorna, men också presentera användaren med en mer kondenserad lista svarsalternativ över baserat på data.<p>
79

Optimizing Resource Allocation in Kubernetes : A Hybrid Auto-Scaling Approach / Optimering av resurstilldelning i Kubernetes : En hybrid auto-skalningsansats

Chiminelli, Brando January 2023 (has links)
This thesis focuses on addressing the challenges of resource management in cloud environments, specifically in the context of running resource-optimized applications on Kubernetes. The scale and growth of cloud services, coupled with the dynamic nature of workloads, make it difficult to efficiently manage resources and control costs. The objective of this thesis is to explore the proactive autoscaling of virtual resources based on traffic demand, aiming to improve the current reactive approach, the Horizontal Pod Autoscaler (HPA), that relies on predefined rules and threshold values. By enabling proactive autoscaling, resource allocation can be optimized proactively, leading to improved resource utilization and cost savings. The aim is to strike a balance between resource utilization and the risk of Service Level Agreement (SLA) violations while optimizing resource usage for microservices. The study involves generating predictions and assessing resource utilization for both the current HPA implementation and the proposed solution. By comparing resource utilization and cost implications, the economic feasibility and benefits of adopting the new approach can be determined. The analysis aims to provide valuable insights into resource utilization patterns and optimization opportunities. The analysis shows significant improvements in CPU utilization and resource consumption using the proposed approach compared to the current HPA implementation. The proactive strategy allows for handling the same number of requests with fewer replicas, resulting in improved efficiency. The proposed solution has the potential to be applied to any type of service running on Kubernetes, with low computational costs. In conclusion, the analysis demonstrates the potential for resource optimization and cost savings through the proposed approach. By adopting proactive strategies and accurately predicting resource needs, organizations can achieve efficient resource utilization, system robustness, and compliance with SLA. Further research and enhancements can be explored based on the findings of this analysis. / Denna avhandling fokuserar på att adressera utmaningarna med resurshantering i molnmiljöer, specifikt i kontexten att köra resursoptimerade applikationer på Kubernetes. Skalan och tillväxten av molntjänster, tillsammans med arbetsbelastningarnas dynamiska natur, gör det svårt att effektivt hantera resurser och kontrollera kostnader. Syftet med denna avhandling är att utforska proaktiv autoskalning av virtuella resurser baserat på trafikbehov, med målet att förbättra den nuvarande reaktiva metoden, Horizontal Pod Autoscaler (HPA), som förlitar sig på fördefinierade regler och tröskelvärden. Genom att möjliggöra proaktiv autoskalning kan resurstilldelningen optimeras i förväg, vilket leder till förbättrad resursanvändning och kostnadsbesparingar. Målet är att hitta en balans mellan resursanvändning och risken för överträdelser av Service Level Agreements (SLA) samtidigt som resursanvändningen för mikrotjänster optimeras. Studien innefattar att generera förutsägelser och bedöma resursanvändning för både den nuvarande HPA-implementeringen och den föreslagna lösningen. Genom att jämföra resursanvändning och kostnadsimplikationer kan den ekonomiska genomförbarheten och fördelarna med att anta det nya tillvägagångssättet bestämmas. Analysen syftar till att ge värdefulla insikter i mönster för resursanvändning och möjligheter till optimering. Analysen visar betydande förbättringar i CPU-användning och resursförbrukning med den föreslagna metoden jämfört med den nuvarande HPA-implementeringen. Den proaktiva strategin möjliggör hantering av samma antal förfrågningar med färre replikor, vilket resulterar i förbättrad effektivitet. Den föreslagna lösningen har potential att tillämpas på alla typer av tjänster som körs på Kubernetes, med låga beräkningskostnader. Sammanfattningsvis visar analysen potentialen för resursoptimering och kostnadsbesparingar genom det föreslagna tillvägagångssättet. Genom att anta proaktiva strategier och noggrant förutsäga resursbehov kan organisationer uppnå effektiv resursanvändning, systemets robusthet och uppfyllnad av SLA:er. Vidare forskning och förbättringar kan utforskas baserat på resultaten av denna analys.
80

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

Berg, Johan, Mebrahtu Redi, Daniel January 2023 (has links)
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.

Page generated in 0.1431 seconds