Repository logo
 
Publication

Evaluating Ballerina's impact on performance and elasticity in distributed applications: a comparison with Java

datacite.subject.fosEngenharia e Tecnologiapt_PT
dc.contributor.advisorAzevedo, Isabel de Fátima Silva
dc.contributor.authorCoelho, Ricardo Jorge Gonçalves
dc.date.accessioned2024-12-12T15:05:45Z
dc.date.available2024-12-12T15:05:45Z
dc.date.issued2024-10-04
dc.description.abstractNowadays, there are many programming languages, some quite versatile and others developed for a specific purpose [1]. Ballerina, a new programming language recently launched, is, according to its development team, an innovative language designed specifically for the development of cloud applications [2]. Although Ballerina has emerged on the market as a solution for the development and integration of distributed applications [3], aspects such as its performance and elasticity compared to more traditional languages in application development remain slightly explored. As such, its impact as a language and platform for developing these applications is still unknown, along with its potential and limitations. Furthermore, in one of its most recent versions, it was announced that the language supports the creation of native GraalVM executables, promising “performance improvements and a reduction in start-up times” [4], aspects which, apart from being very promising, have not yet been examined to draw a concise conclusion. In response to these gaps, this study analysed the impact of Ballerina as a language and platform for developing applications compared to a more traditional programming language, Java. An open-source project, based on a microservices architecture, was migrated to Ballerina in order to collect data from both the original and newly migrated applications. Performance and elasticity tests determined that, with the use of GraalVM and Ahead-Of-Time (AOT) compilation, Ballerina applications were able to improve their start-up times by around 90% and their performance in aspects such as response times, throughput and resilience in managing greater number of simultaneous users. In addition, Ballerina applications were able to outperform Java applications in various scenarios, particularly under high-load conditions. Based on the results obtained, it was concluded that the use of Ballerina brings several advantages in terms of performance and elasticity, which makes it an option to be considered for both application development and integration.pt_PT
dc.description.abstractAtualmente, existem inúmeras linguagens de programação, algumas mais versáteis e outras criadas com propósitos específicos [1]. Ballerina, uma nova linguagem de programação que surgiu recentemente, é, segundo a sua equipa de desenvolvimento, uma linguagem inovadora projetada especificamente para o desenvolvimento de aplicações na cloud [2]. Apesar de Ballerina surgir no mercado como uma solução para o desenvolvimento e integração de aplicações distribuídas [3], aspetos como a sua performance e elasticidade em comparação com linguagens mais tradicionais no desenvolvimento de aplicações, permanecem pouco explorados. Assim, o seu impacto como linguagem e plataforma para o desenvolvimento dessas aplicações ainda é desconhecida, juntamente com as suas potencialidades e limitações. Além disso, numa das suas versões mais recentes foi anunciado que a linguagem suporta a criação de executáveis nativos GraalVM prometendo “melhorias de desempenho e redução nos tempos de inicialização” [4], aspetos esses que para além de serem bastante promissores ainda não foram examinados para se tirar uma conclusão concisa. Tendo em conta estas incógnitas, analisou-se o impacto de Ballerina como linguagem e plataforma para o desenvolvimento de aplicações comparativamente com uma linguagem de programação mais tradicional, Java. Um projeto open-source, baseado numa arquitetura em microsserviços, foi migrado para Ballerina para depois se recolherem dados, quer das aplicações originais, quer das novas aplicações migradas. Os testes de performance e elasticidade determinaram que, com o uso de GraalVM e a compilação Ahead-Of-Time (AOT), as aplicações Ballerina conseguem melhorar os seus tempos de arranque em cerca de 90% e a sua performance em aspetos como tempos de resposta, rendimento e resiliência em gerir um maior número de utilizadores simultâneos. Para além disso, as aplicações Ballerina conseguiram superar os resultados das aplicações em Java em vários cenários, particularmente em condições de carga altas. Com base nos resultados obtidos, concluiu-se que o uso de Ballerina traz várias vantagens em termos de performance e elasticidade, o que faz dela uma opção a ser considerada quer para o desenvolvimento ou integração de aplicações.pt_PT
dc.identifier.tid203734033pt_PT
dc.identifier.urihttp://hdl.handle.net/10400.22/26799
dc.language.isoengpt_PT
dc.subjectBallerinapt_PT
dc.subjectJavapt_PT
dc.subjectGraalVMpt_PT
dc.subjectPerformancept_PT
dc.subjectElasticitypt_PT
dc.subjectDistributed applicationspt_PT
dc.subjectElasticidadept_PT
dc.subjectAplicações distribuídaspt_PT
dc.titleEvaluating Ballerina's impact on performance and elasticity in distributed applications: a comparison with Javapt_PT
dc.typemaster thesis
dspace.entity.typePublication
rcaap.rightsopenAccesspt_PT
rcaap.typemasterThesispt_PT
thesis.degree.nameMestrado em Engenharia Informáticapt_PT

Files

Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
Tese_5372_v2.pdf
Size:
4.47 MB
Format:
Adobe Portable Document Format
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
1.71 KB
Format:
Item-specific license agreed upon to submission
Description: