TCC I - Jorge Roniel de Paula Souza

Título: Uma Arquitetura Paralela para Offloading Computacional Multi-Linguagem em Aplicações Android com gRPC e Kotlin Resumo: O aumento da complexidade das aplicações móveis, particularmente devido ao crescente uso de comunicação de dados via streaming, impõe desafios a dispositivos que, naturalmente, possuem restrições de hardware e energia. Técnicas como o offloading computacional atacam esses problemas ao delegar tarefas complexas de dispositivos com recursos limitados para servidores remotos, reduzindo o consumo de recursos locais dos primeiros e acelerando o processamento. Além disso, a combinação da abordagem multi-linguagem com o offloading computacional potencializa seus benefícios ao permitir a execução mais eficiente das tarefas nos servidores remotos, reduzindo o consumo de recursos por meio do uso de linguagens de programação mais eficientes. Nesse contexto, a aplicação BenchVideoGRPC foi desenvolvida para avaliar o offloading via streaming bidirecional do gRPC em servidores implementados em diferentes linguagens, aplicando filtros a vídeos de diversas resoluções. Embora demonstre os ganhos do offloading aliado ao streaming bidirecional, sua implementação é síncrona e não explora o assincronismo, limitando o uso dos benefícios do streaming e aproximando a comunicação, na prática, de um modelo unário. Este trabalho propõe e implementa a refatoração da aplicação BenchVideoGRPC aplicando técnicas de multithreading no cliente e nos servidores, com o objetivo de amplificar o envio e o processamento dos frames dos vídeos, otimizando o desempenho da aplicação e utilizando de melhor forma o streaming bidirecional do gRPC. Após isso, como parte f inal da refatoração, o cliente Android será migrado de Java para Kotlin, para que a aplicação se aproveite dos mecanismos de concorrência da linguagem, por serem mais leves que as estruturas tradicionais do Java. No decorrer da pesquisa, ao implementar a nova arquitetura multithreading, ainda sem a migração para Kotlin, testes preliminares foram realizados para verificar como a aplicação se comportava com a implementação da nova solução. Avaliando o tempo médio de processamento como métrica principal, a solução proposta apresentou reduções significativas em relação à arquitetura síncrona original. Em um cenário de maior carga computacional, o tempo de execução foi reduzido em aproximadamente 77%, evidenciando a vibilidade da refatoração arquitetural como estratégia para ganho de desempenho e estabelecendo uma base promissora para futuras otimizações, como a migração para Kotlin.