Runtime Tracing of Low-Code Applications: A Case Study for the OutSystems Platform

Detalhes bibliográficos
Autor(a) principal: Deodato, Pedro Henrique Jones
Data de Publicação: 2021
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10362/160537
Resumo: Low-Code Development platforms enable users to rapidly develop applications relying on a form of abstraction of the actual code run by the system. The developer interacts mostly with a visual programming language, needing to write few or no lines of code at all. The abstraction and the degree of automation working underlyingly diminish greatly the time required to implement a fully functional application. However, the same abstraction that accelerates development also contributes to the mapping gap between running and written code. The problem arises as the information exposed by the current running systems complies with the generated running code (e.g.: through verbose logs), rather than the low-code abstraction employed by the developer. This work’s case study is of the OutSystems platform, on which it addresses the improvement of the relation between a runtime problem and the OutSystems code that led to it. Particularly, the problem will be faced in the context of most OutSystems running applications, i.e., of a multi-machine setting. The proposed solution modifies the OutSystems compiler, so that the application publishing process automatically generates OpenTelemetry instrumentation code, that exports tracing information on the same abstraction level as the one developed. Said information is currently presented using external tools, such as Jaeger. As a whole, the approach shall provide relevant information about the system’s runtime state, facilitating the task of finding a possible root-cause of an encountered problem. The proposed solution was tested against its impact regarding performance overhead, namely on the server and client machines, as well as on network activity. The results pointed out some overhead, particularly on the client-side’s CPU consumption and number of KBytes sent. Real users were also tested, to analyse the overall usability of the solution (and its collected and presented information), leading to a success rate of, approximately, 90% on user interpretation of the information and usability scoring.
id RCAP_4169b703a87a3db83f95f28d2344f183
oai_identifier_str oai:run.unl.pt:10362/160537
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Runtime Tracing of Low-Code Applications: A Case Study for the OutSystems PlatformLow-Code DevelopmentOutSystemsDistributed SystemsObservabilityMonitoringTracingDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaLow-Code Development platforms enable users to rapidly develop applications relying on a form of abstraction of the actual code run by the system. The developer interacts mostly with a visual programming language, needing to write few or no lines of code at all. The abstraction and the degree of automation working underlyingly diminish greatly the time required to implement a fully functional application. However, the same abstraction that accelerates development also contributes to the mapping gap between running and written code. The problem arises as the information exposed by the current running systems complies with the generated running code (e.g.: through verbose logs), rather than the low-code abstraction employed by the developer. This work’s case study is of the OutSystems platform, on which it addresses the improvement of the relation between a runtime problem and the OutSystems code that led to it. Particularly, the problem will be faced in the context of most OutSystems running applications, i.e., of a multi-machine setting. The proposed solution modifies the OutSystems compiler, so that the application publishing process automatically generates OpenTelemetry instrumentation code, that exports tracing information on the same abstraction level as the one developed. Said information is currently presented using external tools, such as Jaeger. As a whole, the approach shall provide relevant information about the system’s runtime state, facilitating the task of finding a possible root-cause of an encountered problem. The proposed solution was tested against its impact regarding performance overhead, namely on the server and client machines, as well as on network activity. The results pointed out some overhead, particularly on the client-side’s CPU consumption and number of KBytes sent. Real users were also tested, to analyse the overall usability of the solution (and its collected and presented information), leading to a success rate of, approximately, 90% on user interpretation of the information and usability scoring.As plataformas de desenvolvimento low-code permitem que os utilizadores desenvolvam aplicações rapidamente, baseando-se numa forma de abstração do código que efetivamente é executado pelo sistema. O programador interage maioritariamente com uma linguagem de programação visual, necessitando apenas de escrever poucas ou nenhumas linhas de código. A abstração e o grau de automação subjacentes diminuem sobejamente o tempo necessário para a implementação de uma aplicação completamente funcional. Contudo, a mesma abstração que acelera o desenvolvimento também contribui para a separação entre o código executado e o código escrito. O problema surge uma vez que a informação exposta pelo sistema em execução diz respeito ao código gerado que estiver em execução (e.g.: através de logs verbosos), ao invés da abstração low-code empregue pelo programador. O caso de estudo deste projeto é o da plataforma OutSystems, no qual é abordada a melhoria da relação entre um problema encontrado em tempo de execução e o código OutSystems que o originou. Particularmente, o problema será enfrentado no contexto no qual a maior parte das aplicações OutSystems se situam, i.e., de uma configuração de múltiplas máquinas. A solução proposta altera o compilador OutSystems, para que, no processe de publicação de uma nova aplicação, este gere código de instrumentação OpenTelemetry, que exportará informação de tracing ao mesmo nível de abstração que o usado no processo de desenvolvimento. Esta informação é atualmente apresentada em ferramentas externas, como o Jaeger. Como um todo, esta abordagem deverá providenciar informação relevante sobre o estado do sistema em tempo de execução, facilitando a identificação de possíveis causas de um problema encontrado. A solução proposta foi testada contra o seu impacto ao nível de performance, nomeadamente nas máquinas de servidor e cliente, bem como quanto à atividade de rede. Os resultados apontam para a presença de impacto, particularmente no consumod e CPU e número de KBytes enviados pelo cliente. Foram também inquiridos utilizadores reais, para analisar a usabilidade geral da solução, apontando para uma taxa de sucesso de, sensivelmente, 90%.Lourenço, JoãoGregório, HélderRUNDeodato, Pedro Henrique Jones2023-11-27T08:29:54Z2021-022021-02-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/160537enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2024-03-11T05:43:14Zoai:run.unl.pt:10362/160537Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T03:58:05.203027Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Runtime Tracing of Low-Code Applications: A Case Study for the OutSystems Platform
title Runtime Tracing of Low-Code Applications: A Case Study for the OutSystems Platform
spellingShingle Runtime Tracing of Low-Code Applications: A Case Study for the OutSystems Platform
Deodato, Pedro Henrique Jones
Low-Code Development
OutSystems
Distributed Systems
Observability
Monitoring
Tracing
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Runtime Tracing of Low-Code Applications: A Case Study for the OutSystems Platform
title_full Runtime Tracing of Low-Code Applications: A Case Study for the OutSystems Platform
title_fullStr Runtime Tracing of Low-Code Applications: A Case Study for the OutSystems Platform
title_full_unstemmed Runtime Tracing of Low-Code Applications: A Case Study for the OutSystems Platform
title_sort Runtime Tracing of Low-Code Applications: A Case Study for the OutSystems Platform
author Deodato, Pedro Henrique Jones
author_facet Deodato, Pedro Henrique Jones
author_role author
dc.contributor.none.fl_str_mv Lourenço, João
Gregório, Hélder
RUN
dc.contributor.author.fl_str_mv Deodato, Pedro Henrique Jones
dc.subject.por.fl_str_mv Low-Code Development
OutSystems
Distributed Systems
Observability
Monitoring
Tracing
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Low-Code Development
OutSystems
Distributed Systems
Observability
Monitoring
Tracing
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Low-Code Development platforms enable users to rapidly develop applications relying on a form of abstraction of the actual code run by the system. The developer interacts mostly with a visual programming language, needing to write few or no lines of code at all. The abstraction and the degree of automation working underlyingly diminish greatly the time required to implement a fully functional application. However, the same abstraction that accelerates development also contributes to the mapping gap between running and written code. The problem arises as the information exposed by the current running systems complies with the generated running code (e.g.: through verbose logs), rather than the low-code abstraction employed by the developer. This work’s case study is of the OutSystems platform, on which it addresses the improvement of the relation between a runtime problem and the OutSystems code that led to it. Particularly, the problem will be faced in the context of most OutSystems running applications, i.e., of a multi-machine setting. The proposed solution modifies the OutSystems compiler, so that the application publishing process automatically generates OpenTelemetry instrumentation code, that exports tracing information on the same abstraction level as the one developed. Said information is currently presented using external tools, such as Jaeger. As a whole, the approach shall provide relevant information about the system’s runtime state, facilitating the task of finding a possible root-cause of an encountered problem. The proposed solution was tested against its impact regarding performance overhead, namely on the server and client machines, as well as on network activity. The results pointed out some overhead, particularly on the client-side’s CPU consumption and number of KBytes sent. Real users were also tested, to analyse the overall usability of the solution (and its collected and presented information), leading to a success rate of, approximately, 90% on user interpretation of the information and usability scoring.
publishDate 2021
dc.date.none.fl_str_mv 2021-02
2021-02-01T00:00:00Z
2023-11-27T08:29:54Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10362/160537
url http://hdl.handle.net/10362/160537
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799138162377752576